Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Степан / Информатика / Паскаль (Попов).doc
Скачиваний:
56
Добавлен:
20.04.2015
Размер:
828.93 Кб
Скачать

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 {объявление записи для Ведомости}