Напечатать те слова последовательности, которые отличаются от последнего слова - Pascal
Формулировка задачи:
Здравствуйте, нужна ваша помощь. Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2
до 10 строчных латинских букв; между соседними словами – запятые, за последним словом
точка. Напечатать те слова последовательности, которые отличаются от последнего слова,
предварительно преобразовав каждое из них по следующему правилу: удалить первую букву в каждом слове.
Заранее благодарю всех кто ответил.
Решение задачи: «Напечатать те слова последовательности, которые отличаются от последнего слова»
textual
Листинг программы
var
i,l:integer;
t:string;
c:char;
a:boolean;
b:array[1..128] of string;
begin
write('Введите последовательность:');
l:=0;
while not eoln do begin
read(c);
if not (c in ['.',',']) then t:=t+c else
if t<>'' then begin
l:=l+1;
b[l]:=t;
t:='';
if c='.' then break;
end;
end;
write('Новая последовательность:');
a:=false;
for i:=1 to l-1 do
if b[i]<>b[l] then begin
delete(b[i],1,1);
if a then write(',') else a:=true;
write(b[i]);
end;
if a then writeln('.') else writeln('Отсутствуют слова!');
end.
Объяснение кода листинга программы
- Объявляются переменные:
i- целочисленная переменная для использования в циклахl- целочисленная переменная для хранения длины последовательностиt- строковая переменная для хранения временного словаc- символьная переменная для хранения символовa- логическая переменнаяb- массив строковых переменных
- Выводится сообщение
Введите последовательность: - Инициализируется значение
lкак 0 - Происходит чтение последовательности символов с клавиатуры, и каждый символ добавляется к строке
t, за исключением знаков препинания (точки и запятой). Если встречается знак препинания, то словоtдобавляется в массивbиtочищается. Если встречается точка, цикл завершается. - Выводится сообщение
Новая последовательность: - Инициализируется переменная
aзначениемfalse. - В цикле происходит сравнение всех слов в массиве
bс последним словом (b[l]). Если слово отличается от последнего, то первая буква этого слова удаляется и это слово выводится, разделенное запятой. - В конце проверяется переменная
a: если она истинна, выводится точка с запятой, иначе выводится сообщениеОтсутствуют слова!.