• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите пожалуйста исправить задачу на строки, Паскаль

  • Автор темы Автор темы Lucy
  • Дата начала Дата начала

Lucy

Ученик
Регистрация
30 Окт 2011
Сообщения
2
Реакции
0
Баллы
0
Помогите пожалуйста исправить задачу на строки, Паскаль

Помогите пожалуйста решить задачу: в каждом слове строки удалить символы, совпадающие с первым символом слова.
Я написала программу, но она не работает: в первом слове удаляет символы, совпадающие с первым, а дальше удаляет символы, совпадающие с первым символом второго слова(даже если слов больше чем 2) и если ввести подряд несколько совпадающих символов, то удаляется только половина.

Программа:

uses crt;
var s:string;
c:char;
i:integer;
begin
readln(s);
while s[1]=' ' do
delete(s,1,1);
c:=s[1];
for i:=2 to length(s) do
if s<>' ' then
begin
if s=c then delete(s,i,1);
end
else
begin
c:=s[i+1];
i:=i+2;
while s<>' ' do
begin
if s=c then delete(s,i,1);
i:=i+1;
end;
end;
write(s);
end.
 
Помогите пожалуйста решить задачу: в каждом слове строки удалить символы, совпадающие с первым символом слова. Я написала программу, но она не работает: в первом слове удаляет символы, совпадающие с первым, а дальше удаляет символы, совпадающие с первым символом второго слова(даже если слов больше чем 2) и если ввести подряд несколько совпадающих символов, то удаляется только половина. Программа:
Чего-то Вы там явно лишнего накрутили. Я бы решил так (проверено):
Код:
var
 s:string;
 c:char;
 i:integer;
begin
 writeln('Enter the string:');
 readln(s);
 while s[1]=' ' do
  delete(s,1,1);
 i:=0;
 Repeat
  inc(i);
  c:=s[i];
  repeat
   inc(i);
   if s[i]=c then
    begin
     delete(s,i,1);
     dec(i);
    end;
  until (s[i]=' ') or (i=length(s));
 Until i=length(s);
 writeln(s);
 readln
end.
 
Спасибо большое, всё работает!
 
Назад
Сверху