Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Паскаль
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 27.12.2008, 20:33   #1
GUnt
 
Регистрация: 27.12.2008
Сообщений: 4
Репутация: 10
По умолчанию Пожалуйста помогите найти ошибку в коде решения задачи на записи

дана задача:
В аптечном складе хранятся лекарства. Сведения о лекарствах содержатся в специальной ведомости: наименование лекарственного препарата; количество; цена; срок хранения (в месяцах). Выяснить, сколько стоит самый дорогой и самый дешевый препарат: сколько препаратов хранится на складе; какой препарат имеет срок хранения более 3 месяцев; сколько стоят все препараты, хранящиеся на складе.
мой код:
Program SKLAD_LEKARSTV;
type sklad = record
name: string;
kol: integer;
cena:integer;
srok:integer;
end;
const n=3;
var a: array [1..100] of sklad;
s,k, i,y,max,min:integer;
begin
for i:=1 to n do begin
writeln('imya tovara?');
readln(a[i].name);
writeln('kolichestvo na sklade');
readln(a[i].kol);
writeln('tsena tovara?');
readln(a[i].cena);
writeln('srok godnosti tovara?');
readln(a[i].srok);
end;
for i:=1 to n do begin
k:=k+1;
write(k,' ');
writeln('tovar',' ',a[i].name,' ','kolichestvo',' ',a[i].kol,' ','tsena',' ',a[i].cena,' ','srok godnosti',' ',a[i].srok);
end;

for i:=1 to n do begin
y:=3;
if a[i].srok>y then
writeln ('nujniy srok godnosti' , a[i].name ,'kolichestvo', a[i].kol ,'tsena', a[i].cena ,'srok godnosti', a[i].srok);
end;
s:=0;
for i:=1 to n do begin
s:=s+a[i].kol;
end;
writeln ('summa lekarstv na sklade', s);

max:=a[1].cena;
for i:=2 to n do
if a[i].cena>max then

max:=a[i].cena;

writeln ('tovar s maximalnoi tsenoi', a[i].name ,'kolichestvo', a[i].kol ,'tsena', a[i].cena ,'srok godnosti', a[i].srok );

min:=a[1].cena;
for i:=2 to n do
if a[i].cena<min then

min:=a[i].cena;
writeln ('tovar s minimalnoi tsenoi', a[i].name ,'kolichestvo', a[i].kol ,'tsena', a[i].cena ,'srok godnosti', a[i].srok );

readln;
end.

проблема в том что не правильно находятся товары с минимальной и максимальной ценой.Заранее спасибо.
GUnt вне форума   Ответить с цитированием
Старый 27.12.2008, 21:41   #2
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
Репутация: 41

icq: 466410310
По умолчанию

держи:
Код:
Program SKLAD_LEKARSTV;
type sklad = record
 name: string;
 kol: integer;
 cena:integer;
 srok:integer;
end;
const n=3;
var a: array [1..100] of sklad;
s,k, i,y,max,min,nomer:integer;
 begin
   for i:=1 to n do begin
     writeln('imya tovara?');
     readln(a[i].name);
     writeln('kolichestvo na sklade');
     readln(a[i].kol);
     writeln('tsena tovara?');
     readln(a[i].cena);
     writeln('srok godnosti tovara?');
     readln(a[i].srok);
 end;
    for i:=1 to n do begin
      k:=k+1;
      write(k,' ');
      writeln('tovar ',' ',a[i].name,' ','kolichestvo',' ',a[i].kol,' ','tsena',' ',a[i].cena,' ',
      'srok godnosti',' ',a[i].srok);
    end;

   for i:=1 to n do begin
     y:=3;
      if a[i].srok>y then
        writeln ('nujniy srok godnosti ' , a[i].name ,'kolichestvo ', a[i].kol ,'tsena ', a[i].cena ,'srok godnosti ', a[i].srok);
     end;

  s:=0;
  for i:=1 to n do begin
   s:=s+a[i].kol;
  end;
  writeln ('summa lekarstv na sklade ', s);

  nomer:=1;
  max:=a[1].cena;
   for i:=2 to n do
    if a[i].cena>max then
      begin
       max:=a[i].cena;
       nomer:=i;
      end;
  writeln ('tovar s maximalnoi tsenoi ', a[nomer].name ,' kolichestvo ', a[nomer].kol ,' tsena ', a[nomer].cena
  ,' srok godnosti ', a[nomer].srok );

  nomer:=1;
  min:=a[1].cena;
   for i:=2 to n do
    if a[i].cena<min then
     begin
      min:=a[i].cena;
      nomer:=i;
     end;
 writeln ('tovar s minimalnoi tsenoi ', a[nomer].name ,' kolichestvo ', a[nomer].kol
 ,' tsena ', a[nomer].cena ,' srok godnosti ', a[nomer].srok );

readln;
end.
Викдон вне форума   Ответить с цитированием
Старый 27.12.2008, 21:42   #3
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
Репутация: 41

icq: 466410310
По умолчанию

ОШИБКА-writeln ('tovar s maximalnoi tsenoi', a[i].name ,'kolichestvo', a[i].kol ,'tsena', a[i].cena ,'srok godnosti', a[i].srok ); - здесь просто выводится последний элемент массива))
Викдон вне форума   Ответить с цитированием
Старый 27.12.2008, 22:09   #4
GUnt
 
Регистрация: 27.12.2008
Сообщений: 4
Репутация: 10
Радость

спасибо большое Викдон
GUnt вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку в коде! alex2008ean Паскаль 1 27.12.2008 19:31
Помогите найти ошибку в коде, пожалуйста Gobl1n Паскаль 3 30.11.2008 18:44
Помогите найти ошибку в коде C++ Жека:) Помощь студентам 15 29.10.2008 12:32
помогите найти ошибку в коде плиз Айат Помощь студентам 2 01.10.2008 17:43
помогите найти ошибку в коде Joker88 Помощь студентам 1 04.03.2008 13:43


06:15.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.