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

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

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

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


Новичок
*

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

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


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


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


Гость






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

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


Новичок
*

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

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


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

Сообщение отредактировано: SunDevil - 26.03.2005 0:09
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 26.03.2005 0:22
Сообщение #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 килобайт ) Кол-во скачиваний: 176
 К началу страницы 
+ Ответить 
SunDevil
сообщение 26.03.2005 0:25
Сообщение #5


Новичок
*

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

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


2 volvo
я менял на integer, так он вообще переставал в цикле price писать
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 26.03.2005 9:45
Сообщение #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 
 К началу страницы 
+ Ответить 
SunDevil
сообщение 26.03.2005 16:34
Сообщение #7


Новичок
*

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

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


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


Гость






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

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

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

 



- Текстовая версия 20.07.2025 6:31
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"