IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> База данных
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 28
Пол: Мужской

Репутация: -  0  +


Вот такая задача:
Надо составить базу данных товаров с их ценами и чтобы прога подсчитала общую сумму товара.
Вот я прилагаю вариант, но как всделать так, чтобы прога сумму считала, у меня не выходит :fire:
Там посмотрите, плиз, кто-нибудь процедуру output_baza и в ней написана Общая цена товара (руб.) и переменная sum, так надо, чтобы в эту переменную записывалась сумма товара
СПАСИБО!


Прикрепленные файлы
Прикрепленный файл  LAB3.rar ( 956 байт ) Кол-во скачиваний: 205
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата(SunDevil @ 25.03.05 22:41)
так надо, чтобы в эту переменную записывалась сумма товара

Если можно, поподробнее, что значит Сумма товара? Общая стоимость всех товаров в списке?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 28
Пол: Мужской

Репутация: -  0  +


2 volvo
Да, именно, общая стоимость ВСЕХ товаров в списке. Но там есть переменная price и у нее тип string. Как сумму-то получить blink.gif

Сообщение отредактировано: SunDevil -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата(SunDevil @ 25.03.05 23:08)
Но там есть переменная price и у нее тип string. Как сумму-то получить blink.gif

:D 2 варианта: или поменять тип Price на Integer (проблем при перекомпиляции не возникло, я проверил), или воспользоваться процедурой Val для преобразования строки в число.

В аттаче я добавил использование Val, но я бы все-таки рекомендовал поменять тип на Price: integer;
:yes:

P.S. Кстати, напрасно контроль ошибок ввода-вывода отключен постоянно. Желательно его отключать только перед критическими частями программы...


Прикрепленные файлы
Прикрепленный файл  LAB3.PAS ( 2.62 килобайт ) Кол-во скачиваний: 231
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 28
Пол: Мужской

Репутация: -  0  +


2 volvo
я менял на integer, так он вообще переставал в цикле price писать
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 28
Пол: Мужской

Репутация: -  0  +


2 klem4
спасибо за помощь
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






SunDevil, в следующий раз ОЧЕНЬ внимательно читайте то, что Вам отвечают, хорошо? angry.gif
Цитата
поменять тип Price на Integer (проблем при перекомпиляции не возникло, я проверил)

Если я сказал, что проверил, то это не значил, что программа просто была откомпилирована. Это значит, что программа была запущена и нормально отработала... Или опять нужно было все переписать сюда до запятой?
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 14.05.2024 22:55
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name