Найти первую гласную и последнюю согласную затем удалить всё между ними - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д