Модифицируйте программу так, чтобы печатались только: а) слова, начинающиеся ** букву...

0 голосов
62 просмотров

Модифицируйте программу так, чтобы печатались только:
а) слова, начинающиеся на букву «л»;
б) слова, заканчивающиеся на букву «ь»;

Код программы:
var
stroka, slovo : string;
i : integer;
begin
var b:=['a'..'z','A'..'Z','а'..'я','А'..'Я'];
WriteLn('Введите строку из русских слов с любыми разделителями ');
ReadLn(stroka);
stroka:=trim(stroka);
stroka:=stroka + '.'; // В конец строки поставим точку для того,
// чтоб гарантировать обязательное завершение программы
i:= 1; // рассматривать строку будем с первой буквы
while Length(stroka) <> 0 do
begin
if pos(copy(stroka,i,1),' ,.?!-:;') <> 0 then
{если i-ый символ из строки stroka содержится в строке ' ,.?!-:;', то}
begin
slovo := copy(stroka,1,i-1); // копируем слово
writeln(slovo); //печатаем его
delete(stroka,1,i-1); // Удаляем его из текста
while (length(stroka)>0)and (not(stroka[1] in b)) do
delete(stroka,1,1); // удаляем все разделители до следующего слова
i := 1; // снова рассматриваем слово с первого символа
end
else i := i+1; // определяем следующий символ
end;
end.


image
image

Информатика (22 баллов) | 62 просмотров
0

Что делает предоставленный код?

0

Вроде PABC, а столько воды

0

Программа после каждого разделителя переносит слово на следующую строку.Т.е. ищет слово в строке до следующего разделителя (пробел, запятая и т.д.), копирует слово из stroka в slovo, печатает его, затем удаляет из stroka. И снова ищет слово с начала строки.

Дан 1 ответ
0 голосов

Нужно добавить всего-то 1 строку:
...
if pos(copy(stroka,i,1),' ,.?!-:;') <> 0 then 
{если i-ый символ из строки stroka содержится в строке ' ,.?!-:;', то}
begin 
slovo := copy(stroka,1,i-1); // копируем слово
If (slovo[1]='л') or (slovo[Length(slovo)]='ь') then Writeln(Slovo);
delete(stroka,1,i-1); // Удаляем его из текста
while (length(stroka)>0)and (not(stroka[1] in b)) do 
delete(stroka,1,1); // удаляем все разделители до следующего слова
i := 1; // снова рассматриваем слово с первого символа
end
....

(5.8k баллов)