| Den1995 
 Newbie
 | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Corsairs Привет, у меня такая же задача, требуется помощь в выводе итоговой стоимости(общую итоговую стоимость всех товаров (т.е. по всем отделам) можно или подсчитывать сразу (т.е. при считывании инфы из первого файла - что проще), или с помощью уже заполненного списка по отделам. ).
 Вот мой код:
 program ABC;
 Type A=record
 NameO:string[30];
 data:string[8];
 chen,kol:integer;
 end;
 Type B=record
 NameOt:string[30];
 sum:integer;
 end;
 Var
 R,C,S:A;
 D:B;
 i,j,n:integer;
 F1:file of A;
 F2:file of B;
 g:boolean;
 Begin
 Assign(F1,'file.txt');
 Assign(F2,'file1.txt');
 Rewrite(F1);
 Writeln('Ведите кол-во записей');
 Readln(n);
 For i:=1 to n do Begin
 With C do begin
 Writeln('Введите наименование отдела: ');
 Readln(NameO);
 Writeln('Введите дату: ');
 Readln(data);
 Writeln('Введите кол-во товара: ');
 Readln(kol);
 Writeln('Введите цену: ');
 Readln(chen);
 end;
 Write(F1,C);
 end;
 For i:=1 to n-1 do Begin
 Reset(F1);
 For j:=1 to n-1 do begin
 Read(F1,C);
 Read(F1,R);
 If R.NameO>S.NameO then begin
 Seek(F1,filepos(F1)-2);
 Write(F1,C);
 Write(F1,R);
 end;
 Seek(F1,filepos(F1)-1);
 end;
 end;
 Reset(F1);
 Reset(F2);
 j:=0;
 While not eof(F1) do begin
 Read(F1,R);
 i:=R.kol*R.chen;
 g:=true;
 While (not eof(F1)) and g do begin
 Read(F1,S);
 If R.NameO=S.NameO then
 i:=i+S.kol*S.chen
 else
 begin
 Seek(F1,filepos(F1)-1);
 g:=false;
 end;
 end;
 D.NameOt:=R.NameO;
 D.sum:=i;
 Write(F2,D);
 j:=j+1;
 end;
 Close(F1);
 Reset(F2);
 Writeln;
 While eof(F2) do begin
 Read(F2,D);
 Writeln(D.NameOt,' ',D.sum);
 end;
 Writeln('Итоговая сумма ', j);
 Close(F2);
 End.
 P.S. Если вы найдёте ещё ошибки, буду благодарен в их обнаружении и желательно исправлении.
 
 |