Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
261.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Практические примеры

Программа 1

Дан файл f, компоненты которого являются целыми числами. Получить в файле g все четные компоненты файла f, а в файле h все нечетные.

Program Dfile; Var f,h,g: File Of Integer;     i: Integer; Begin {Установка связи между файловыми переменными и соответствующими именами файлов}     Assign( f ,’Data.dat’);     Assign(g , ‘Chet.dat’);     Assign(h , ‘Nechet.dat’);     {Открытие файлов для чтения и записи}     Reset(f); Rewrite(h); Rewrite(g);     While Not(Eof(f)) Do         Begin             Read( f, i); {чтение из файла f}             If Odd(i)                 Then Write(h,i) {запись в файл h}                 Else Write(g, i) {запись в файл g}         End; {Закрытие файлов} Close(f); Close(g); Close(h); End.

Программа 2

Дан текстовой файл. Получить копию файла.

Program CopyFile; Var f,g: Text;     s: String; Begin     {установка связи файловых переменных с именами файлов}     Assign(f, ‘data1.txt’);     Assign(g, ‘data2.txt’);     {открытие файлов для чтения и записи}     Reset(f); Rewrite(g);     While Not(Eof(f)) Do         Begin             Readln(f,s); {чтение из файла в строку}             Writeln(g,s) {запись в файл из строки}         End;     {закрытие файлов}     Close(f); Close(g) End. Программа 3

program text;

var

ft : text; n : integer; ch : char; st : set of chart begin

assign (ft,'slov.txt'); reset(ft);

st := ['A'.'E','И','О','У,'Ы','Э','Ю','Я'];

st := st+['a','e','и','о','у','ы','э','ю','я'];

n: =0;

while not eof(ft) do begin

read(ft, ch); if ch in st then n:=n+l;

end;

close(ft);

writeln; write('кол-во гласных букв =',n);

end.

Поскольку длина текста (файла) неизвестна, то в цикле «пока» используется логическая функция eof(f), которая возвращает значение TRUE, если найден конец файла.

Шифрование и дешифрование текста

Программа шифрования заданного текста (sekret) использует следующее правило шифровки: каждая буква в тексте заменяется на букву, расположенную на n позиций вправо от искомой в русском алфавите. Причем последним символом алфавита является пробел '', а далее алфавит продолжается циклически.

Значение смещения n находится во внешнем файле 'n.key', который формируется программой key. Зашифрованный текст выводится во внешний файл с именем «шифр.eхe» , а также на дисплей.

Программа дешифровки (retsek) считывает шифрованный текст из файла «шифр.tхt» и выводит на экран дисплея искомый текст.

Программа 6 (а)

program key;

var

n : integer; f : file of integer;

begin , .

assign (f,'n.key'); rewrite(f); write\('Bвeди ключ(смещение): ');

readln(n);

write(f,n); close(f);

end.

Программа 6 (б)

program sekret;

var

| slovo,anslovo: string[100];

alfavit : string[33];

n, i, k, p : integer;

fkl : file of integer;

fs : text;

begin

alfavit:='абвгдежзийклмнопрстуфхцчшщъыьэюя ';

assign(fkl,'n.key'); reset(fkl); read(fkl,n); close(fkl);

writeln; write('введи текст: ');

readln(slovo); anslovo:='';

for k:=l to length(slovo) do begin for i:=l to 33 do

if slovo[k]=alfavit[i] then begin p:=i+n;

if p >33 then p:=p mod 33;

anslovo:=anslovo+alfavit[p];

end;

end;

assign(fs,'шифр.txt'); rewrite(fs); write(fs,anslovo);close(fs);

writeln; write(ansiovo) ;

end.

Программа 6 (в)

program retsek;

var slovo, anslovo : string[100];

alfavit : string[33];

n, i, k, p : integer;

fi : file of integer;

f : text;

begin alfavit:='абвгдежзийклмнопрстуфхцчшщъыьэюя ';

assign(fi,'n.key'); reset(fi); read(fi.n); close(fi);

assign(f,'шифр.txt'); reset(f); read(f,anslovo); close(f)

slovo:='' ;

for k:=l to length(anslovo) do

begin for i:=l to 33 do

if anslovo[k]=alfavit[i] then

begin p:=i-n; if p < 1 then p:=33-p mod 33;

slovo:=slovo+alfavit[p];

end;

end;

writeln; write('TeKCT шифровки: ',slovo);

end.