- •Министерство образования российской федерации
- •Var X,y: real;
- •Var X,y: real;
- •Var t:integer; p:char;
- •0..17: Write('детство');
- •20..30: Write('молодость');
- •31..54: Write('зрелость');
- •Var s:char;
- • Оператор цикла с предусловием имеет вид
- •Program p5_8;
- •Var y,X,z: integer;
- •Var I,j:integer; X,y,r:real;
- •Var I,j: integer;
- •Var n,I,j:integer; s,y,sr:real; X: array [1..10,1..5] of real;
- •Var I,j,n,m: integer;
- •X:array [1..10] of integer;
- •Var n,I,j,st,kl,k:integer;
- •Var st: char; sm: string[32]; ss: string;
- •Var n:integer;y:string;
- •Var k,I:integer; X: string;
- •Var X:string[1]; d:string; I:integer;
- •Var X:vr; y:array [1..5] of vr;
- •Ввод и вывод информации для типизированных и текстовых файлов производится процедурами:
- •X,y:real;
- •X,y:real; I:integer;
- •Im: string[4];
- •I: integer;
- •Im: string[4];
- •I: integer;
- •Im:string[4]
- •Im:string;
- •Var d,I,m,rx,ry:integer;
- •Var d,m,rx,ry:integer;
- •X,y,xn,xk,ymin,ymax,dx:real;
- •Ответы на тестовые задания, имеющиеся в тексте пособия:
- •& Тесты по курсу
- •Тираж: 150. Заказ №
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;