Занести в файл h только согласные буквы из исходного файла - Turbo Pascal
Формулировка задачи:
Записать в текстовый файл N русских строчных символов. Выполнить следующие операции с созданным файлом:
- Получить в другом файле тот же текст, записанный заглавными буквами;
- Занести в файл h только согласные буквы из исходного файла;
- Написать программу, которая ищет количество букв «о» в данном файле и удаляет их.
Решение задачи: «Занести в файл h только согласные буквы из исходного файла»
textual
Листинг программы
function UCase(c: Char): Char;
begin
case c of
'a'..'z','а'..'п': Dec(c,$20);
'р'..'я': Dec(c,$50);
'ё': Dec(c);
end;
UCase:=c;
end;
const
ruLo = ['а'..'п','р'..'я','ё'];
ruLoVow = ['а','е','и','о','у','ы','э','ю','я','ё'];
ruLoCons = ruLo-ruLoVow-['ъ','ь'];
var
f: array [0..3] of Text;
c: Char;
i, n: Integer;
begin
Assign(f[0],'0.txt'); Reset(f[0]);
for i:=1 to 3 do begin
Assign(f[i],Chr(Ord('0')+i)+'.txt'); Rewrite(f[i]);
end;
while not EoF(f[0]) do begin
Read(f[0],c);
Write(f[1],UCase(c));
if c in ruLoCons then Write(f[2],c);
if c='о' then Inc(n) else Write(f[3],c);
end;
WriteLn('Количество "о": ',n);
for i:=0 to 3 do Close(f[i]);
end.
Объяснение кода листинга программы
- Функция UCase принимает символ и увеличивает его код на 20 для согласных букв 'a'..'z', на 50 для 'р'..'я' и на 1 для 'ё'.
- Константы ruLo, ruLoVow и ruLoCons представляют собой списки символов.
- Переменные f, c и i используются для чтения и записи в файлы.
- Цикл for используется для чтения символов из файла '0.txt' и записи символов в файлы '1.txt', '2.txt' и '3.txt'.
- Если символ является согласной буквой, он записывается в файл '2.txt'.
- Если символ - 'о', увеличивается счетчик 'n'.
- После окончания чтения символов из '0.txt' выводится количество 'о' в тексте.
- Закрываются все файлы перед завершением программы.