База данных |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
База данных |
SunDevil |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 28 Пол: Мужской Репутация: 0 |
Вот такая задача:
Надо составить базу данных товаров с их ценами и чтобы прога подсчитала общую сумму товара. Вот я прилагаю вариант, но как всделать так, чтобы прога сумму считала, у меня не выходит :fire: Там посмотрите, плиз, кто-нибудь процедуру output_baza и в ней написана Общая цена товара (руб.) и переменная sum, так надо, чтобы в эту переменную записывалась сумма товара СПАСИБО! Прикрепленные файлы LAB3.rar ( 956 байт ) Кол-во скачиваний: 205 |
volvo |
Сообщение
#2
|
Гость |
Цитата(SunDevil @ 25.03.05 22:41) так надо, чтобы в эту переменную записывалась сумма товара Если можно, поподробнее, что значит Сумма товара? Общая стоимость всех товаров в списке? |
SunDevil |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 28 Пол: Мужской Репутация: 0 |
2 volvo
Да, именно, общая стоимость ВСЕХ товаров в списке. Но там есть переменная price и у нее тип string. Как сумму-то получить Сообщение отредактировано: SunDevil - |
volvo |
Сообщение
#4
|
Гость |
Цитата(SunDevil @ 25.03.05 23:08) Но там есть переменная price и у нее тип string. Как сумму-то получить :D 2 варианта: или поменять тип Price на Integer (проблем при перекомпиляции не возникло, я проверил), или воспользоваться процедурой Val для преобразования строки в число. В аттаче я добавил использование Val, но я бы все-таки рекомендовал поменять тип на Price: integer; :yes: P.S. Кстати, напрасно контроль ошибок ввода-вывода отключен постоянно. Желательно его отключать только перед критическими частями программы... Прикрепленные файлы LAB3.PAS ( 2.62 килобайт ) Кол-во скачиваний: 231 |
SunDevil |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 28 Пол: Мужской Репутация: 0 |
2 volvo
я менял на integer, так он вообще переставал в цикле price писать |
klem4 |
Сообщение
#6
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
держи...
Исходный код program baza; {$i-} {ђ §¤Ґ« ®ЇЁб Ё©} uses crt; const r=100; q=10; type buhalt=record naim_tovar:string[12]; price:integer; end; dinam_massiv=array[1..r] of buhalt; pro=^dinam_massiv; var n:integer; list:pro; answer:char; f:boolean; price,sum:Integer; {‚ў®¤ ¤ л©} procedure input_baza(var list:pro;var n:integer); var i,z:integer; w:char; begin clrscr; write('‚ўҐ¤ЁвҐ зЁб«® § ЇЁбҐ© ¤«п ¤®Ў ў«ҐЁп <= ',r-n ,' : '); readln(z); if ioresult<>0 then exit; for i:=n+1 to n+z do with list^[i] do begin clrscr; write('‚ўҐ¤ЁвҐ Ё¬Ґ®ў ЁҐ в®ў а : '); readln(naim_tovar); write('‚ўҐ¤ЁвҐ жҐг в®ў а (агЎ.): '); readln(price); sum:=sum+price; if i<>n+z then begin write('‚ў®¤Ёвм ҐйҐ y/n'); w:=readkey; end; if (w='n') or (i=z+n) then begin z:=i; break; end; end; if z<>0 then n:=z; writeln; writeln('‡ ЇЁбм ¤®Ў ў«Ґ ў Ў §г. Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг'); readkey; end; {‚лў®¤ ¤ ле} procedure output_baza(var list:pro;var n:integer); var i,k,pos:integer; f:boolean ; begin clrscr; if n=0 then begin writeln('Ѓ § Їгбв '); readkey; exit; end; f:=false; pos:=1; repeat clrscr; k:=0; writeln(' ЙННННННННННННННННННННННСНННННННННННННННН НННН»'); writeln(' є Ќ Ё¬Ґ®ў ЁҐ в®ў а і –Ґ в®ў а (агЎ.) є'); writeln(' ИННННННННННННННННННННННПНННННННННННННННН ННННј'); for i:=pos to n do with list^[i] do begin writeln(' ',naim_tovar:12,' ',price:6); k:=k+1; if k=q then begin pos:=i+1; break; end; writeln(' ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ДДД '); end; writeln(' ЋЎй п жҐ в®ў а (агЎ.)',' ',sum); readkey; if (k<q) or (pos>n) then f:=true; until f; end; {ѓ®«®ў®© ¬®¤г«м} begin new(list); f:=false; repeat clrscr; writeln('0 - ‚л室'); writeln('1 - „®Ў ў«ҐЁҐ ¤ ле'); writeln('2 - ‚лў®¤ Ў §л'); answer:=readkey; case answer of '0': f:=true; '1': input_baza(list,n); '2': output_baza(list,n); else begin writeln('ЋиЁЎЄ ! „«п Їа®¤®«¦ҐЁп ¦¬ЁвҐ «оЎго Є« ўЁиг'); readkey end; end; until f; dispose(list); end. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
SunDevil |
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 28 Пол: Мужской Репутация: 0 |
2 klem4
спасибо за помощь |
volvo |
Сообщение
#8
|
Гость |
SunDevil, в следующий раз ОЧЕНЬ внимательно читайте то, что Вам отвечают, хорошо?
Цитата поменять тип Price на Integer (проблем при перекомпиляции не возникло, я проверил) Если я сказал, что проверил, то это не значил, что программа просто была откомпилирована. Это значит, что программа была запущена и нормально отработала... Или опять нужно было все переписать сюда до запятой? |
Текстовая версия | 14.05.2024 22:55 |