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. Если вы найдёте ещё ошибки, буду благодарен в их обнаружении и желательно исправлении. |