
Вопрос задан 03.07.2019 в 08:27.
Предмет Информатика.
Спрашивает Тарасова Яна.
Модифицируйте программу так, чтобы печатались только: а) слова, начинающиеся на букву «л»; б)
слова, заканчивающиеся на букву «ь»; Код программы: 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.



Ответы на вопрос

Отвечает Тетерина Оля.
Нужно добавить всего-то 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
....
...
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
....


Топ вопросов за вчера в категории Информатика

Информатика 557

Информатика 33

Информатика 74

Информатика 12

Информатика 10

Информатика 33

Информатика 27
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili