Консультация № 130582
04.04.2008, 18:12
0.00 руб.
0 1 1
Здравствуйте, уважаемые эксперты, помогите пожалуйсто с решением задачу. Тема - строки. Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 букв, между соседними словами - запятая, за последним словом точка. Напечатать все слова, отличные от последнего преобразовав каждое по правилу: удалить из слова все предыдущие вхождения последней буквы. Спасибо

Обсуждение

давно
Старший Модератор
31795
6196
07.04.2008, 17:18
общий
это ответ
Здравствуйте, Samuray!

В приложении программа, которая всё делает только с помощью строк и строковых функций.
<small>ps:вопросы задавайте в мини-форум.</small>
Удачи!

Приложение:
var a,b:string; begin {вводим строку} write(‘Enter string:‘); readln(a); {для обеспечения работы цикла} a:=a+‘ ‘; {сбрасываем словo} b:=‘‘; {всё делаем в цикле} repeat {удаляем начальные пробелы, если они есть} while((pos(‘ ‘,a)=1))do delete(a,pos(‘ ‘,a),1); {удаляем пробел в конце слова} delete(b,pos(‘ ‘,b),1); {удаляем предыдущие последней буквы} while (pos(b[length(b)],b)<(length(b)))do delete(b,pos(b[length(b)],b),1); {выводим слово} writeln(b); {формируем текущее слово} b:=copy(a,1,pos(‘ ‘,a)); {вырезаем его} delete(a,1,length(b)); until pos(‘ ‘,a)=0; end.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа