Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УПП Программирование 2102,2202.doc
Скачиваний:
17
Добавлен:
20.04.2015
Размер:
760.32 Кб
Скачать

X,y:real;

begin

{логический файл f связывается с физическим func.txt}

assign(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 9_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.

Пример 9-2. Посчитать зарплату рабочих. Сведения об их меся­чной выра­ботке находятся в типизированном (типа record) файле VIR: табельный номер 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 реализует только два действия: вывод всей ведомости к оплате или вывод сведений только об одном работнике по запросу (по имени).

файл

Vir

файл

Ved

tab

im

Tarif

dn

im

zar

nalog

vid

таб

имя

тариф

дни

имя

зарплата

налог

выдать

35

Иван

100

20

Иван

2000

48

Петр

150

30

Петр

4500

15

Олег

200

10

Олег

3000


PROGRAM Vvod; {--ввод данных и сохранение результата----}

uses crt; {к примеру 9-2}

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; {---------вывод данных по запросу-----------}

uses crt; {к примеру 9-2}

const n=3;

label m;

type

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