double arrow

Материал к лабораторной работе по файлам

Подведение итога по файлу (одной степени).

Код цеха Код участка Таб.номер Кол-во Расценка за единицу Начислено
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
Итого по заводу          

Type

Rec = record

Code_z: integer;

Code_uch: integer;

Tab_nom: integer;

Kol_vo: integer;

Rasz: real;

End;

Var

Zap: rec;

Sum_file: real;

Begin

Writeln (‘ Введите имя файла на диске: ‘);

Readln (Filename)’

Assign (Mainfile, filename);

Reset (mainfile);

Sum_file:= 0;

While (not EOF (mainfile)) do

Begin

Read (Mainfile, zap);

Nachisl:= zap.kol_vo * zap.rasz;

Sum_file:= sum_file + nachisl;

End;

Writeln (‘ Итого по заводу начислено ‘,

Sum_file:10:2);

Readln;

End.


Подведение итога по по цехам и по файлу/заводу

(итоги двух степеней).

Код цеха Код участка Таб.номер Кол-во Расценка за единицу Начислено
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
Итого по цеху 1          
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
Итого по цеху 2          
           
Итого по заводу          

Вариант 1 (необходимо особо учитывать случай обработки последней записи)

Type

Rec = record

Code_z: integer;

Code_uch: integer;

Tab_nom: integer;

Kol_vo: integer;

Rasz: real;

End;

Var

Zap: rec;

Sum_z, Sum_file: real;

Code_z: integer;

Begin

Writeln (‘ Введите имя файла на диске: ‘);

Readln (Filename)’

Assign (Mainfile, filename);

Reset (mainfile);

Sum_file:= 0;

Read (Mainfile, zap);

While (not EOF (mainfile)) do

Begin

Code_z:=zap.code_z;

Sum_z:= 0;

While (not EOF (mainfile)) and

(Code_z = zap.code_z) do

Begin

Nachisl:= zap.kol_vo * zap.rasz;

Sum_z:= sum_z + nachisl;

Read (Mainfile, zap);

End;

Writeln (‘ Итого по цеху’, code_z,

‘ начислено ‘, Sum_file:10:2);

Sum_file:= sum_file + Sum_z;

End;

Writeln (‘ Итого по заводу начислено ‘,

Sum_file:10:2);

Readln; End.

{ необходимо особо учитывать случай обработки последней записи}


Итоги трёх степеней

Код цеха Код участка Таб.номер Кол-во Расценка за единицу Начислено
           
           
           
           
           
           
           
           
           
           
Итого по участку          
           
           
           
           
           
           
           
           
           
           
           
           
Итого по участку          
           
Итого по цеху 1          
           
           
           
           
           
           
           
           
           
           
           
Итого по участку          
           
           
           
           
           
           
           
           
           
           
           
Итого по участку          
           
Итого по цеху 2          
           
Итого по заводу          

Type

Rec = record

Code_z: integer;

Code_uch: integer;

Tab_nom: integer;

Kol_vo: integer;

Rasz: real;

End;

Var

Zap: rec;

Sum_uch, Sum_z, Sum_file: real;

Code_uch, Code_z: integer;

Begin

Writeln (‘ Введите имя файла на диске: ‘);

Readln (Filename)’

Assign (Mainfile, filename);

Reset (mainfile);

Sum_file:= 0;

Read (Mainfile, zap);

While (not EOF (mainfile)) do

Begin

Code_z:=zap.code_z;

Sum_z:= 0;

While (not EOF (mainfile)) and

(Code_z = zap.code_z) do

Begin

Code_uch:=zap.code_uch;

Sum_uch:= 0;

While (not EOF (mainfile)) and

(Code_z = zap.code_z) and

(Code_uch = zap.code_uch)do

Begin

Nachisl:= zap.kol_vo * zap.rasz;

Sum_uch:= sum_uch + nachisl;

Read (Mainfile, zap);

End;

Writeln (‘ Итого по участку’, code_uch,

‘ начислено ‘, Sum_uch:10:2);

Sum_z:= sum_z + Sum_uch;

End;

Writeln (‘ Итого по цеху’, code_z,

‘ начислено ‘, Sum_z:10:2);

Sum_file:= sum_file + Sum_z;

End;

Writeln (‘ Итого по заводу начислено ‘,

Sum_file:10:2);

Readln;

End.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: