Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль (прогр) 2008июль.doc
Скачиваний:
1
Добавлен:
17.11.2018
Размер:
900.61 Кб
Скачать

X,y:real;

begin

assign(f,'func.txt'); {логический файл f связывается с физическим func.txt}

rewrite(f); {файл f открывается для записи в него данных}

x:=0;

while x<=4 do begin {вычисление в цикле функции}

y:=x/2; x:=x+0.5; writeln(f,x:3:1,y:4:1); {запись в файл переменных х и у}

end;

close(f); {закрытие файла}

end.

program 11_1b;{чтение записанных ранее данных из файла}

var f:text; {объявлен текстовый файл f}

X,y:real; I:integer;

begin

assign(f,'func.txt');

reset(f); {открытие файла для чтения}

for i:=1 to 9 do begin

read(f,y,x); {чтение из файла в память}

writeln('y=',y:3:1,' x=',x:4:1); {вывод на монитор, считанной из файла информации}

end;

close (f); {закрытие файла}

end.

б). Cоставить программу чтения из файла func.txt записанной ранее в него информации.

Пример 11-2. Посчитать зарплату рабочих. Сведения об их месячной выработке находятся в типизированном (типа record) файле VIR (рис. 11.1).

Он содержит поля: табельный номер tab, имя im (длиной до 4-х знаков), дневной тариф tarif работника, число отработанных им за месяц дней dn. Эти данные вводятся оператором. На основании их компьютером подсчитывается и заполняется файл ведомости VED, содержащий имя im, зарплату zar (=tarif*dn), налог nalog (=13%*zar) и сумму к выдаче vid (=zar-nalog). Далее содержимое файла выводится с подсчетом итоговых сумм. Здесь придется написать две программы. Программой Vvod выполняется следующая последовательность действий: 1). Заполняется файл Vir. 2). Считывается содержимое Vir в массив V. 3). Выполняются все расчеты и заносятся в массив R. 4). Данные из R сохраняются в файле Ved. Программа Vivod реализует только два действия: вывод всей ведомости к оплате или вывод сведений только об одном работнике по запросу (по имени).

program Vvod; {ввод данных и сохранение результата к примеру 11-2}

uses crt;

const n=3;

type vr=record {объявление записи для Выработки}

tab: integer; {табель}

im: string[4]; {имя}

tarif, dn: real;

end;

vd=record {объявление записи для Ведомости}

Im: string[4];

zar, nalog, vid: real;

end;

var vir: file of vr; {объявление файла Выработки}

ved: file of vd; {объявление файла Ведомости}

v: array[1..n] of vr; {массив V для ввода}

r: array[1..n] of vd; {массив R для расчета}

I: integer;

begin

clrscr;

assign(vir,'vir'); assign(ved,'ved'); {связывание логического и физического файлов}

rewrite(vir); {открытие файла Vir для записи}

writeln('введите!'); writeln('табель, имя, тариф, дни');

for i:=1 to n do begin

readln(v[i].tab); readln(v[i].im); readln(v[i].tarif); readln(v[i].dn);

writeln(v[i].tab:2, v[i].im:6, v[i].tarif:3:0, v[i].dn:4:0);

write(vir,v[i]); {занесение в файл Vir очередной записи}

end;

reset(vir); {открытие файла Vir для чтения}

rewrite(ved); {открытие файла Ved для записи}

for i:=1 to n do begin {вычисления}

read(vir,v[i]); {чтение записи из файла Vir}

r[i].im:=v[i].im; r[i].zar:=v[i].tarif*v[i].dn; r[i].nalog:=0.13*r[i].zar; r[i].vid:=r[i].zar-r[i].nalog;

write(ved,r[i]); {занесение записи в файл Ved}

end;

reset(ved); {открытие файла Ved для чтения}

for i:=1 to n do begin {печать}

read(ved,r[i]); {чтение записи из файла Ved}

writeln(r[i].im:4, r[i].zar:5:0, r[i].nalog:7:2, r[i].vid:8:2);

end;

close(ved);close(vir); {закрытие файлов}

end.

program Vivod; {вывод данных по запросу к примеру 11-2}

uses crt;

const n=3;

label m;

type

vd=record {объявление записи для Ведомости}