Найти первую гласную и последнюю согласную затем удалить всё между ними - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Создать текстовый файл, записать туда строку с любыми символами. Найти

В ФАЙЛЕ

первую гласную из этой строки, последнюю согласную и удалить все, что находится между ними. Затем перезаписать получившийся результат в текстовый файл. Рабочие (дополнительные) файлы не использовать. Работать с маленькими английскими буквами (в англ. буквах искать согласную и гласную, а не в русских). Помогите, пожалуйста, никак не могу сообразить как это сделать...

Решение задачи: «Найти первую гласную и последнюю согласную затем удалить всё между ними»

textual
Листинг программы
uses crt;
var gl,sgl,abc: set of char;
f1,f2:text;
s:string;
m,n,i:byte;
begin
clrscr;
assign(f1,'text1.in');
assign(f2,'text1.out');
rewrite(f1);
randomize;
for i:=1 to random(256) do write(f1,chr(ord('a')+random(26)));
close(f1);
writeln('Iz fayla text1.in: ');
reset(f1);
readln(f1,s);
writeln(s);
abc:=['a'..'z']; {Ves alfavit}
gl:=['a','o','e','i','y','u']; {Glasnie}
sgl:=abc-gl; {Soglasnie}
m:=0;n:=length(s);
while not(s[m] in gl)and(m<=length(s)) do m:=m+1;
while not(s[n] in sgl)and(n>=1) do n:=n-1;
writeln('Dlinna=',length(s),' nomer pervoy glasnoy=',m,' posledney soglasnoy=',n);
delete(s,m+1,n-m-1);
writeln('Posle obrabotki v fayl text1.out - ',s);
rewrite(f2);
writeln(f2,s);
close(f2);
end.

Объяснение кода листинга программы

  1. Объединение файлов с помощью функции assign для чтения и записи.
  2. Заполнение случайными символами файла f1 с помощью цикла for и функции write.
  3. Чтение содержимого файла f1 в строку s с помощью функции readln.
  4. Определение глобальных и строковых переменных с помощью выражения ord('a') для получения числового представления символа 'a'.
  5. Определение гласных и согласных букв с помощью множеств gl, sgl, и abc.
  6. Поиск первой гласной буквы в строке s с помощью цикла while и проверки условия s[m] in gl.
  7. Поиск последней согласной буквы в строке s с помощью цикла while и проверки условия s[n] in sgl.
  8. Удаление символов между первой гласной и последней согласной буквами с помощью функции delete.
  9. Запись измененной строки s в файл f2 с помощью функции writeln.
  10. Перезапись файла f1 с помощью функции rewrite.
  11. Закрытие файлов f1 и f2 с помощью функции close.
  12. Завершение программы с помощью ключевого слова end.

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы