Var Text,S:string; n,k:boolean; i:integer; Begin Write('Введите текст на русском языке: ');ReadLn(Text); Text:=LowerCase(Text)+' '; // перевоит текст в нижний регистр WriteLn(Text); // показывает действие предыдущей строки For i:= 1 to Length(Text) do Begin if ('а' <= Text[i])and(Text[i] <= 'я')or(Text[i] = 'ё') then S:=S+Text[i] // записываем русские буквы в S else // как только встречаем другой символ, проверяем, if Length(S) > 0 then // есть ли в S хоть одна буква, Begin // и если есть, то проверяем условие задачки, и выводим слово на экран, если оно истинно if (S[1] in 'бвгджзйклмнпрстфхцчшщ')and(S[Length(S)] in 'аоэиуыеёюя') then WriteLn(S); S:=''; // далее обнуляем S End; End; End.
Пример работы программы:
Введите текст на русском языке: Дан произвольный текст на русском языке. Написать программу, которая выводит слова, начинающиеся на согласную и заканчивающиеся гласной буквой. дан произвольный текст на русском языке. написать программу, которая выводит слова, начинающиеся на согласную и заканчивающиеся гласной буквой. на программу которая слова начинающиеся на согласную заканчивающиеся
Прикладываю исходник и скрин в приложении к ответу.
Несколько замечаний:
1. Большое количество комментариев внесено в код исключительно в учебных целях. В реальную программу переносить не рекомендуется - признак нехорошего тона.
2. У вас допущены синтаксические ошибки в двух последних циклах, а точнее - в операторах If, в которых стоит три условия (объединённых and), но нет ключевого слова "then" и последующих инструкций. Исправил.
3. Так же, автор вашей программы построил на мой взгляд нелогичную структуру алгоритма. Переменные min, min2 и min3, как я догадался, должны хранить три минимальных значения массива. А вот что происходит в вашей конструкции: первый цикл безошибочно находит наименьший элемент и записывает его в min, а последующие два цикла записывают в min2 и min3 первые попавшиеся(начиная с первого) элементы, если они больше min. Таким образом, нет никакой закономерности в том, что попадёт в эти переменные и сложно представить, для какой задачи потребовались бы такие случайности.
Одним из вариантов решения предлагаю изначально записывать в эти три переменные не значение первого элемента массива, а какое-то большое число, которое в массиве нам не встретится (например 100). Тогда цикл будет искать значения меньше 100 и перезаписывать им соответствующую переменную, пока не найдёт самое маленькое значение. В таком случае не очень стабильная переменная j нам так же не нужна, я её вычеркнул.
Вам отсылаю уже с учётом поправок, однако если вам требовалась именно первоначальная версия несмотря на её минусы, просто поправьте синтаксис в последних циклах (41 и 34 строчка на скрине) и пользуйтесь ей.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку