В тексте найти слова, начинающиеся и оканчивающиеся на гласные буквы - Pascal

  1. Здравствуйте! Написать программу, которая считывает английский текст из файла и выводит на экран слова текста, начинающиеся и оканчивающиеся на гласные буквы. Интересует непосредственно алгоритм нахождения необходимого слова. Благодарю за помощь!


textual

Код к задаче: «В тексте найти слова, начинающиеся и оканчивающиеся на гласные буквы - Pascal»

const rz=[' ','.',',','-','?','!'];//символы, разделители слов, можно добавить
      gl=['A','E','I','O','U']; //гласные буквы английского алфавита
//........................................................
//читаем строку из файла
s:=' '+s;//добавим пробел в начало
n:=length(s);
i:=2;
f:=0;
while i<=n do
if not(s[i] in rz)and (s[i-1] in rz) then//если не разделитель
                                         //и перед ним разделитель, то начало слова*
 begin
  k:=i;
  s1:='';
  while (k<=n) and not(s[k] in rz) do //пока не разделитель и не конец строки
   begin
    s1:=s1+s[k];
    k:=k+1;
   end;
  if (upcase(s1[1])in gl)and(upcase(s1[length(s1)])in gl) then
   begin
    writeln(s1);
    k:=1;
   end;
  i:=i+length(s1);
 end
else i:=i+1;{пропускаем разделители}
writeln(' ');
if f=0 then write('Таких слов нет');

СДЕЛАЙТЕ РЕПОСТ

8   голосов, оценка 4.250 из 5



Похожие ответы
  1. Для введенного с клавиатуры произвольного целого числа определить все возможные целые делители, кроме 1 и самого числа. Если число не имеет таких делителей, сообщить об этом. (Например: для 20 – 2,4,5,10; для 21 - 3,7; для 23 – «нет делителей»).

  1. Описать процедуру, записывающую в переменную X минимальное из значений X и Y, а в переменную Y — максимальное из этих значений. Используя четыре вызова этой процедуры, найти минимальное и максимальное из данных чисел A, B,C, D. Заранее спасибо.

  1. В данной задаче нельзя использовать цикл, т.к. не уложитесь по времени. Время выполнения программы не более 2 сек Написать программу, которая находит остаток от деления числа: 2^21+2^22+2^23+...+2^2n-1+2^2n на 7 Входные данные: Вводится n<100 000 Выходные данные: остаток от деления

  1. Дали в шараге задачу, не могу сам решить, посоветовали в паскаль онлайн напечатать это, мол ответ даст, ошибки лезу, пожалуйста дайте значение или скажите что не так...))) Очень прошу.. //fpc 3.0.0 a := "decomposition"; n := 0; Делать от i = 1 до LEN(a) { b := Часть(a, i, 1); k := 0; Делать от j := i + 1 до LEN(a) { Если Часть(a, j, 1) = b то { k :=1; } } n := n + k; }

  1. в матрице 3*4 найти произведение элементов кратных 3 и 9

  1. Дана квадратная матрица размером М x М, найти индексы первого отрицательного и первого положительного элемента.

  1. Помогите. Составит программу, в которой вводится размер массива (одномерный). Выделить память, найти произведение наибольшего и наименьшего элемента. Освободить память. Начало программы вроде правильно.

  1. Здравствуйте форумчане! Помогите пожалуйста с написанием программы, которая выбирает вектор минимальной длины из заданного множества n-мерных векторов через функцию. Буду очень благодарен всем кто откликнется на помощь!

  1. Дано A(6.6) Двумерная матрица из этой матрицы надо найти минимальную сумму параллельным побочной диагонали.Добавлено через 2 минуты