Найти первую гласную и последнюю согласную затем удалить всё между ними - 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.
Объяснение кода листинга программы
- Объединение файлов с помощью функции
assignдля чтения и записи. - Заполнение случайными символами файла
f1с помощью циклаforи функцииwrite. - Чтение содержимого файла
f1в строкуsс помощью функцииreadln. - Определение глобальных и строковых переменных с помощью выражения
ord('a')для получения числового представления символа 'a'. - Определение гласных и согласных букв с помощью множеств
gl,sgl, иabc. - Поиск первой гласной буквы в строке
sс помощью циклаwhileи проверки условияs[m] in gl. - Поиск последней согласной буквы в строке
sс помощью циклаwhileи проверки условияs[n] in sgl. - Удаление символов между первой гласной и последней согласной буквами с помощью функции
delete. - Запись измененной строки
sв файлf2с помощью функцииwriteln. - Перезапись файла
f1с помощью функцииrewrite. - Закрытие файлов
f1иf2с помощью функцииclose. - Завершение программы с помощью ключевого слова
end.