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

Im: string[4];

zar, nalog, vid: real;

end;

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

r: array[1..n] of vd; {массив R для вывода}

xz,xn,xv:real; {итоги: зарплата, налог, выдать}

I: integer;

x:string[4]; {искомое имя}

begin

clrscr;

assign(ved,'ved.txt');

write('показать всех (0) или одного (имя)? '); readln(x);

writeln(' имя зарплата налог выдать');

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

if x='0' then begin {вывод всех работников}

for i:=1 to n do begin

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

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

{подсчет итогов}

xz:=xz+r[i].zar; xn:=xn+r[i].nalog; xv:=xv+r[i].vid;

end;

writeln('Итог',xz:9:0,xn:7:2,xv:8:2) {вывод итогов}

end;

if x<>'0' then begin {поиск и вывод одного имени}

for i:=1 to n do begin

read(ved,r[i]);

if x=r[i].im then begin {если найдено - вывод и конец}

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

goto m {выход из цикла поиска}

end;

end;

writeln('Не найдено имя: ',x);

m:end;

close(ved)

end.

Пример 9-3. Положим, в течение месяца работники бригады выполняли различные виды работ (пусть три), сведения о которых хранятся в трех файлах с именами Rab1, Rab2, Rab3. Кроме того, имеется справочный файл тарифов работников Tarif.

Последовательность действий:

1. Предварительно создать на диске и заполнить файлы с именами Rab1, Rab2, Rab3 и Tarif.

2. Последовательно считать все три файла в массив Mr[1..15].

3. Отсортировать массив по табельному номеру (по полю mr.tb). Повторяю­щиеся номера объединить (часы суммиру­ются) в одну строку.

4. Считать файл Tarif в массив Mt[1..6]. Исходя из индивидуальных тарифов, рассчитать зарплату, налог и сумму к выдаче каждого и записать это в файл Ved.

5. Вывести из Ved полученные данные на экран вместе с общей суммой зарплат бригады.

файл

файл

файл

файл

файл

Tarif

Rab1

Rab2

Rab3

Ved

tb

im

tr

tb

ch

tb

ch

tb

ch

tb

im

ch

zr

nl

vd

таб №

имя

тариф

таб №

часы

таб №

часы

таб №

часы

таб №

имя

часы

заработок

налог

выдать

35

Иван

50

8

30

15

40

35

50

8

Лена

120

3000

390,0

2610,0

48

Петр

30

20

50

48

20

8

40

15

Олег

50

1000

130,0

870,0

8

Лена

25

15

10

35

10

20

Вася

50

1750

227,5

1522,5

20

Вася

35

8

50

35

Иван

60

3000

390,0

2610,0

15

Олег

20

48

Петр

20

600

78,0

522,0

всего

300

9350

1215,5

8134,5

мас

сивM

T

м

ассив

MR

tb

im

tr

tb

ch

Необходимо создать файл Ved ведомости на оплату, где будут собраны сведения обо всех работниках и сделаны необходимые вычис­ления.

Исходные данные и результаты показаны ниже. Над колонками приведены названия полей, принимающих соответствующие данные.

Программа Vedom реализует процесс обработки данных. Прог­рамму занесения данных в фалы Rab1, Rab2, Rab3, Tarif напишите сами.

PROGRAM VEDOM; {программа к примеру 9-3}

uses crt;

type {создание типов записей}

rab=record {тип записи Работы}

tb,ch:integer

end;

tar=record {тип записи Тарифы}

tb,tr:integer;