Написать программку на Паскале: Удалить все слова, начинающиеся и кончающиеся на
Написать программку на Паскале: Удалить все слова, начинающиеся и кончающиеся на одну и ту же буковку. (написать комментарий(что означает любая переменная))
Задать свой вопрос1 ответ
Амелия Худовская
Var s: string; // строчка текста
i,lf: integer; // lf - номер первого символа отдельного слова в строке
// i - переменная цикла, для просмотра строчки
begin
write('строчка: '); readln(s); // считывание слова
i:=1; lf:=1; // i:=1; - текущий знак слова - 1-ый
// lf:=1; - lf показывает на 1-ый знак слова
repeat // цикл по строке
if s[i]=' ' then // если очередной знак строчки - пробел, то
begin // начало блока операторов
if UpperCase(s[i-1])=UpperCase(s[lf]) then // если заключительный символ
текущего
// слова равен первому символу слова без учета регистра,
то
begin // начало блока операторов
delete(s,lf,i-lf+1); // устраняем слово вкупе с пробелом справа
i:=lf; // i:=lf; - переменная i показывает на следующее слово
end // конец блока операторов
else lf:=i+1; // по другому, если первый символ слова не равен
// последнему символу слова, устанавливаем lf на
// 1-ый знак последующего слова
end; // конец блока по условию, что очередной знак - пробел
i:=i+1; // перебегаем к последующему символу в строке
until gt;length(s); // если номер еще одного знака строчки больше
длины // строчки, то выход из цикла по строке
// если в заключительном слове текста есть совпадения
// первого и заключительного символа
if s[length(s)] in ['.','?','!'] then // если текст кончается одним из знаков
.?!
if s[lf]=s[length(s)-1] then delete(s,lf-1,length(s)-lf+1) // сопоставляем с
предпоследним
// если одинаковы, то устраняем последнее слово
else // по другому ничего не делаем
else if s[lf]=s[length(s)] then delete(s,lf-1,length(s)-lf+2); // если заключительный
// знак не .?!, то сопоставляем первый знак
последнего
// слова с заключительным эмблемой текста, если равны,
// то устраняем заключительнее слово
writeln('новая строчка: ',s); // выводим новейшую строчку на экран
end. // конец программы
строка: Это озеро около заповедника.
новая строчка: Это заповедника.
строчка: Около этого заповедника находится озеро.
новенькая строка: этого заповедника находится.
строчка: озеро около заповедника
новенькая строка: заповедника
i,lf: integer; // lf - номер первого символа отдельного слова в строке
// i - переменная цикла, для просмотра строчки
begin
write('строчка: '); readln(s); // считывание слова
i:=1; lf:=1; // i:=1; - текущий знак слова - 1-ый
// lf:=1; - lf показывает на 1-ый знак слова
repeat // цикл по строке
if s[i]=' ' then // если очередной знак строчки - пробел, то
begin // начало блока операторов
if UpperCase(s[i-1])=UpperCase(s[lf]) then // если заключительный символ
текущего
// слова равен первому символу слова без учета регистра,
то
begin // начало блока операторов
delete(s,lf,i-lf+1); // устраняем слово вкупе с пробелом справа
i:=lf; // i:=lf; - переменная i показывает на следующее слово
end // конец блока операторов
else lf:=i+1; // по другому, если первый символ слова не равен
// последнему символу слова, устанавливаем lf на
// 1-ый знак последующего слова
end; // конец блока по условию, что очередной знак - пробел
i:=i+1; // перебегаем к последующему символу в строке
until gt;length(s); // если номер еще одного знака строчки больше
длины // строчки, то выход из цикла по строке
// если в заключительном слове текста есть совпадения
// первого и заключительного символа
if s[length(s)] in ['.','?','!'] then // если текст кончается одним из знаков
.?!
if s[lf]=s[length(s)-1] then delete(s,lf-1,length(s)-lf+1) // сопоставляем с
предпоследним
// если одинаковы, то устраняем последнее слово
else // по другому ничего не делаем
else if s[lf]=s[length(s)] then delete(s,lf-1,length(s)-lf+2); // если заключительный
// знак не .?!, то сопоставляем первый знак
последнего
// слова с заключительным эмблемой текста, если равны,
// то устраняем заключительнее слово
writeln('новая строчка: ',s); // выводим новейшую строчку на экран
end. // конец программы
строка: Это озеро около заповедника.
новая строчка: Это заповедника.
строчка: Около этого заповедника находится озеро.
новенькая строка: этого заповедника находится.
строчка: озеро около заповедника
новенькая строка: заповедника
Вадим
В строке "until >length(s); // если номер еще одного символа строчки больше " просит выражение.
Тамара Словестная
В строке "if s[i] = ' ' then" ошибка времени исполненья: Индекс находился вне границ массива
Алиса
Приведите пример входной строчки, где ошибка времени исполненья.
Валерка
В строке "until >length(s)", природно, обязано быть until i>length(s);
Ксения Анисинкова
Вы желали комментарии, Вы их получили, сейчас убирайте их все.
Дарина Вадченко
Заработало! Спасибо огромное!
Вадим Сумбатьянц
Пожалуйста.
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
выпиши в свою тетрадь те правила этикета которые тебе не были
Разные вопросы.
Анна хорошо учится у неё много подруг свободное от учёбы время
Обществознание.
Облако тегов