![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
choodo |
![]()
Сообщение
#1
|
Гость ![]() |
Помогите, пожалуйста, решить задачу, которую я решаю уже месяца 2..
Вот условие: Даны 2 файла: F1:шифр продукции; наименование F2:№ склада; шифр продукции; количество На одном складе может быть несколько видов продукции и продукция с одним шифром может встречаться в разных записях(т.е. в разных записях по файлу, на каждом складе в различных количествах?) Нужно выдать ведомость для каждого склада: [Шифр; наименование; количество(сумма)] Значение номера склада печатать только в заголовке и подсчитать количество различных видов продукции на каждом складе. Пример: ------№ склада 10 ---------- Шифр:56 Наименование: лампа паяльная Количество:100 Шифр:99 Наименование: лампа керосиновая Количество:100 ------№ склада 19 ---------- Шифр:58 Наименование: лампа накаливания(220В, 150Вт) Количество:107 Шифр:99 Наименование: лампа керосиновая Количество:10 У меня проблемы с выводом ведомости(то наименование неправильно выводит, то суммирует не то?). Код uses crt; type table=record ct:word;{Cipher in Table} name:string[60];{naimenovanie} end; storage=record number:byte;{nomer sklada} cs:word;{Cipher in Storage} amount:word;{kolichestvo} end; const end_menu:boolean=false; var f1:file of table; f2:file of storage; work1:table; work2:storage; {/////////////////} procedure ioe; begin textcolor(4); writeln; writeln('Ћ??ЃЉЂ ‚‚Ћ„Ђ! ЏЋЏђЋЃ“‰’… ‘ЌЋ‚Ђ!'); writeln; writeln('ЌЂ†Њ?’… ‹ћЃ“ћ Љ‹Ђ‚??“...'); textcolor(10); readkey; end; {/////////////////} procedure inputintable; var c:byte; aonr,i:word; begin clrscr; reset(f1); writeln('1-‚‚…‘’? …„?Ќ?—Ќ“ћ ‡ЂЏ?‘њ'); writeln('2-‚‚…‘’? Ќ…‘ЉЋ‹њЉЋ ‡ЂЏ?‘…‰'); write('>'); readln(c); case c of 1:with work1 do begin seek(f1,filesize(f1)); write('??”ђ ЏђЋ„“Љ–??:'); readln(ct); write('ЌЂ?Њ…ЌЋ‚ЂЌ?…:'); readln(name); write(f1,work1); end; 2:begin seek(f1,filesize(f1)); write('‚‚…„?’… ЉЋ‹?—…‘’‚Ћ ЌЋ‚›• ‡ЂЏ?‘…‰:'); readln(aonr); for i:=1 to aonr do begin clrscr; writeln('‡ЂЏ?‘њ ь (ЌЋ‚Ђџ) ',i); with work1 do begin write('??”ђ ЏђЋ„“Љ–??:'); readln(ct); write('ЌЂ?Њ…ЌЋ‚ЂЌ?…:'); readln(name); write(f1,work1); end; end; end; end; close(f1); end; {////////////////////////////////////////////} procedure inputinstorage; var c:byte; aonr,i:word; begin clrscr; reset(f2); writeln('1-‚‚…‘’? …„?Ќ?—Ќ“ћ ‡ЂЏ?‘њ'); writeln('2-‚‚…‘’? Ќ…‘ЉЋ‹њЉЋ ‡ЂЏ?‘…‰'); write('>'); readln(c); case c of 1:with work2 do begin seek(f2,filesize(f2)); write('ь ‘Љ‹Ђ„Ђ:'); readln(number); write('??”ђ ЏђЋ„“Љ–??:'); readln(cs); write('ЉЋ‹?—…‘’‚Ћ:'); readln(amount); write(f2,work2); end; 2:begin seek(f2,filesize(f2)); write('‚‚…„?’… ЉЋ‹?—…‘’‚Ћ ЌЋ‚›• ‡ЂЏ?‘…‰:'); readln(aonr); for i:=1 to aonr do begin clrscr; writeln('‡ЂЏ?‘њ ь (ЌЋ‚Ђџ)',i); with work2 do begin write('ь ‘Љ‹Ђ„Ђ:'); readln(number); write('??”ђ ЏђЋ„“Љ–??:'); readln(cs); write('ЉЋ‹?—…‘’‚Ћ:'); readln(amount); write(f2,work2); end; end; end; end; close(f2); end; {/////////////////} procedure bordereau; var i,j,k,l,m,fnumber,lnumber,fct,lct:word; sum:longint; cstring:string[60]; cond:boolean; begin{1} clrscr; writeln('---------------------------BEDOMOCTb---------------------------------'); reset(f1); reset(f2); {vychisljaem nomera zanesennyh v basu skladov} fnumber:=65535;{first storage} lnumber:=0; {last storage} for i:=1 to filesize(f2) do begin{2} read(f2,work2); if work2.number<fnumber then fnumber:=work2.number; if work2.number>lnumber then lnumber:=work2.number; end;{2} {vychisljaem shifry zanesennyh v basu tovarov} fct:=65535;{first ciphertable} lct:=0; {last ciphertable} for i:=1 to filesize(f1) do begin{3} read(f1,work1); if work1.ct<fct then fct:=work1.ct; if work1.ct>lct then lct:=work1.ct; end;{3} {!} {dalee nachalis' problemy :))} seek(f1,0); seek(f2,0); sum:=0; for i:=fnumber to lnumber do begin{4} for j:=fct to lct do begin{5} read(f2,work2); if ((work2.number=i) and (work2.cs=j)) then begin{6} seek(f2,0); for k:=1 to filesize(f2) do begin{7} read(f2,work2); if ((work2.number=i) and (work2.cs=j)) then sum:=sum+work2.amount; end;{7} for l:=1 to filesize(f1) do begin{8} read(f1,work1); if work1.ct=j then begin{9} cstring:=work1.name;{cstring-CipherString} break; end;{9} end;{8} end;{6} writeln('storage # ',i); writeln('cipher: ',j); writeln('name: ',cstring); writeln('amount: ',sum); writeln('--------------------------'); seek(f1,0); seek(f2,0); sum:=0; end{5} end;{4} readkey; end;{1} {/////////////////} procedure menu; var code:char; pstn,c:integer; cnd:boolean; begin{!} cnd:=false; while cnd<>true do begin{while} clrscr; writeln('і=============KOHTOPA==============і'); writeln('і1-‚Ќ…‘…Ќ?… „ЂЌЌ›• ‚ ЃЂ‡“ "table" і'); writeln('і2-‚Ќ…‘…Ќ?… „ЂЌЌ›• ‚ ЃЂ‡“ "storage"і'); writeln('і3-‚›„Ђ’њ ‚…„ЋЊЋ‘’њ і'); writeln('і4-‚›•Ћ„ і'); write ('ЉЋ„ ЋЏ…ђЂ–??:'); readln(code); val(code,c,pstn); if pstn=0 then begin case c of 1:inputintable; 2:inputinstorage; 3:bordereau; 4:end_menu:=true; end; cnd:=true; end else ioe; end;{while} end;{!} {///////////////////////} {/////main_program//////} begin clrscr; {\\\\\\\\\\\\\\\\\\\\} assign(f1,'table.dat'); {$I-} reset(f1); {$I+} if ioresult<>0 then begin textcolor(4); writeln('”Ђ‰‹ "table.dat" Ќ… ЌЂ‰„…Ќ. Ѓ“„…’ ‘Ћ‡„ЂЌ ЌЋ‚›‰ ”Ђ‰‹'); readkey; rewrite(f1); end; {\\\\\\\\\\\\\\\\\\\\} assign(f2,'storage.dat'); {$I-} reset(f2); {$I+} if ioresult<>0 then begin textcolor(4); writeln('”Ђ‰‹ "storage.dat" Ќ… ЌЂ‰„…Ќ. Ѓ“„…’ ‘Ћ‡„ЂЌ ЌЋ‚›‰ ”Ђ‰‹'); readkey; rewrite(f2); end; close(f1); close(f2); textcolor(10); {/////////////////////} repeat menu until end_menu; end. Сообщение отредактировано: choodo - 2.11.2004 15:24 Прикрепленные файлы ![]() |
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 22:07 |