Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Ocha
3 / 2 / 1
Регистрация: 18.12.2008
Сообщений: 136
1

Записи: сколько стоит самый дорогой и самый дешёвый препарат на складе?

22.01.2009, 12:09. Просмотров 1136. Ответов 11
Метки нет (Все метки)

На аптечном складе хранятся лекарства.
Сведения о лекарствах содержатся в специальной ведомости:
Наим. лекарства
Кол-во
Цена
Срок хранения(в месяцах)

Выяснить, сколько стоит самый дорогой и самый дешёвый препарат, сколько препаратов хранится на складе, какие препараты имеют срок хранения более 3 месяцев, сколько стоят все препараты.

Помогите пож-та. Буду очень благодарен.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2009, 12:09
Ответы с готовыми решениями:

Определить, сколько стоит самый дешевый и самый дорогой обед
Здравствуйте товарищи администраторы программисты, помогите пожалуйста решить данную задачу по...

Сколько стоит самый дорогой автомобиль
в массиве хранится информация о стоимости 30 автомобилей определить сколько стоит самый дорогой...

Найдите самый дорогой и дешевый принтер
Не получается написать программу в паскале. Файл с исходными данными создан заранее(сведения о...

Обработка текстового файла: заменить самый часто встречающийся его символ на самый редкий
В общем задачка такая: дан текстовый файл, заменить самый частовстречающийся его символ на самый...

Включить в программу функцию, возвращающую true, если самый высокий ученик имеет и самый большой все, и fal
Включить в программу функцию, возвращающую true, если самый высокий ученик имеет и самый большой...

11
Игорь[Igor]
718 / 471 / 129
Регистрация: 24.12.2008
Сообщений: 3,922
22.01.2009, 13:19 2
Вот про студентов, если не глупый переделаеш под склад:
Код
program SpisStud;
uses printer;
type
    Anketa=record
    FIO: string;
    Age: integer;
    Kurs: byte;
    Ocenki: byte;
    i: boolean;
end;

var
   Tab: array [1..10] of Anketa;
   Variant: byte;
   NumRec, i: integer;
begin
repeat
      writeln('Viberite variant');
      writeln('1 - Dobavit zapis');
      writeln('2 - Vivod dannih');
      writeln('3 - Print');
      writeln('4 - Exit');
      writeln;
      readln(Variant);
      writeln;
      case variant of
           1:begin
                  NumRec:=0;
                  while Tab[NumRec].i<>false do
                  inc(NumRec);
                  writeln('Zapic #', NumRec);
                  writeln;
                  writeln('FIO');
                  readln(Tab[NumRec].Fio);
                  writeln('Age');
                  readln(Tab[NumRec].Age);
                  writeln('kurs');
                  readln(Tab[NumRec].kurs);
                  writeln('ocenki');
                  readln(Tab[NumRec].ocenki);
                  Tab[NumRec].i:=true;
                  writeln;
           end;
           2:begin
                  for NumRec:=1 to 10 do
                  begin
                       writeln('Zapis #', NumRec);
                       writeln('fio:   ', Tab[NumRec].fio: 10);
                       writeln('Age:   ', Tab[NumRec].age: 10);
                       writeln('kurs:  ', Tab[NumRec].kurs: 10);
                       writeln('ocenki:', Tab[NumRec].ocenki: 10);
                       writeln;
                  end;
           end;
           3:begin
                  for NumRec:=1 to 10 do
                      if Tab[NumRec].Ocenki in [4, 5] then
                      begin
                           writeln(LST, 'Zapis #', NumRec);
                           writeln(LST, Tab[NumRec].fio: 10);
                           writeln(LST, Tab[NumRec].age: 10);
                           writeln(LST, Tab[NumRec].kurs: 10);
                           writeln(LST, Tab[NumRec].ocenki: 10);
                           writeln;

                           writeln('Zapis #', NumRec);
                           writeln('fio:   ', Tab[NumRec].fio: 10);
                           writeln('Age:   ', Tab[NumRec].age: 10);
                           writeln('kurs:  ', Tab[NumRec].kurs: 10);
                           writeln('ocenki:', Tab[NumRec].ocenki: 10);
                           writeln;
                      end;
           end;
      end;
until Not (variant in [1, 2, 3]);
end.
1
Ocha
3 / 2 / 1
Регистрация: 18.12.2008
Сообщений: 136
24.01.2009, 02:47  [ТС] 3
что значит ЛСТ, у меня не работает.

Добавлено через 15 минут 41 секунду
Проверил в Турбо Паскале работает, мне нужно для Делфи.
Можете подкорректировать, чтобы на Делфи заработало?
0
Игорь[Igor]
718 / 471 / 129
Регистрация: 24.12.2008
Сообщений: 3,922
24.01.2009, 02:56 4
LST - принтер. Тебе нужно в консоле? В Delphi можно по другому все зделать.
1
Ocha
3 / 2 / 1
Регистрация: 18.12.2008
Сообщений: 136
24.01.2009, 03:03  [ТС] 5
Да в Делфи консоль апликэйшин
0
Игорь[Igor]
718 / 471 / 129
Регистрация: 24.12.2008
Сообщений: 3,922
24.01.2009, 03:26 6
Консоль в Delphi.
Код
program SpisStud;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
    Anketa=record
    FIO: string;
    Age: integer;
    Kurs: byte;
    Ocenki: byte;
    i: boolean;
end;

var
   Tab: array [0..10] of Anketa;
   Variant: byte;
   NumRec, i: integer;
begin
repeat
      writeln('Viberite variant');
      writeln('1 - Dobavit zapis');
      writeln('2 - Vivod dannih');
      writeln('3 - Print');
      writeln('4 - Exit');
      writeln;
      readln(Variant);
      writeln;
      case variant of
           1:begin
                  NumRec:=0;
                  while Tab[NumRec].i<>false do
                  inc(NumRec);
                  writeln('Zapic #', NumRec);
                  writeln;
                  writeln('FIO');
                  readln(Tab[NumRec].Fio);
                  writeln('Age');
                  readln(Tab[NumRec].Age);
                  writeln('kurs');
                  readln(Tab[NumRec].kurs);
                  writeln('ocenki');
                  readln(Tab[NumRec].ocenki);
                  Tab[NumRec].i:=true;
                  writeln;
           end;
           2:begin
                  for NumRec:=0 to 10 do
                  begin
                       writeln('Zapis #', NumRec);
                       writeln('fio:   ', Tab[NumRec].fio: 10);
                       writeln('Age:   ', Tab[NumRec].age: 10);
                       writeln('kurs:  ', Tab[NumRec].kurs: 10);
                       writeln('ocenki:', Tab[NumRec].ocenki: 10);
                       writeln;
                  end;
           end;
           3:begin
                  for NumRec:=0 to 10 do
                      if Tab[NumRec].Ocenki in [4, 5] then
                      begin
                           writeln('Zapis #', NumRec);
                           writeln('fio:   ', Tab[NumRec].fio: 10);
                           writeln('Age:   ', Tab[NumRec].age: 10);
                           writeln('kurs:  ', Tab[NumRec].kurs: 10);
                           writeln('ocenki:', Tab[NumRec].ocenki: 10);
                           writeln;
                      end;
           end;
      end;
until Not (variant in [1, 2, 3]);

end.
1
Ocha
3 / 2 / 1
Регистрация: 18.12.2008
Сообщений: 136
24.01.2009, 04:10  [ТС] 7
Вот немного сделал под свое условие, что нужно добавить\исправить?

program SpisStud;

{$APPTYPE CONSOLE}

uses
SysUtils;

type
Apteka=record
Lekarstvo: string;
Kolvo: integer;
Stoimost: byte;
Srokhraneniya: byte;
i: boolean;
end;

var
Tab: array [1..10] of Apteka;
Variant: byte;
NumRec, i: integer;
begin
repeat
writeln('Viberite variant');
writeln('1 - Dobavit zapis');
writeln('2 - Vivod dannih');
writeln('3 - Print');
writeln('4 - Exit');
writeln;
readln(Variant);
writeln;
case variant of
1:begin
NumRec:=1;
while Tab[NumRec].i<>false do
inc(NumRec);
writeln('Zapic #', NumRec);
writeln;
writeln('Lekarstvo');
readln(Tab[NumRec].Lekarstvo);
writeln('Kolvo');
readln(Tab[NumRec].Kolvo);
writeln('Stoimost');
readln(Tab[NumRec].Srokhraneniya);
writeln('Srok hraneniya');
readln(Tab[NumRec].Srokhraneniya);
Tab[NumRec].i:=true;
writeln;
end;
2:begin
for NumRec:=1 to 10 do
begin
writeln('Zapis #', NumRec);
writeln('Lekarstvo: ', Tab[NumRec].Lekarstvo: 10);
writeln('Kolvo: ', Tab[NumRec].Kolvo: 10);
writeln('Stoimost: ', Tab[NumRec].Stoimost: 10);
writeln('Srokhraneniya:', Tab[NumRec].Srokhraneniya: 10);
writeln;
end;
end;
3:begin
for NumRec:=1 to 10 do
if Tab[NumRec].Srokhraneniya in [4, 5] then
begin
writeln('Zapis #', NumRec);
writeln('Lekarstvo: ', Tab[NumRec].Lekarstvo: 10);
writeln('Kolvo: ', Tab[NumRec].Kolvo: 10);
writeln('Stoimost: ', Tab[NumRec].Stoimost: 10);
writeln('Srok hraneniya:', Tab[NumRec].Srokhraneniya: 10);
writeln;
end;
end;
end;
until Not (variant in [1, 2, 3]);

end.
0
Игорь[Igor]
718 / 471 / 129
Регистрация: 24.12.2008
Сообщений: 3,922
24.01.2009, 04:30 8
Здесь:
Код
3:begin
for NumRec:=1 to 10 do
[COLOR="Blue"]if Tab[NumRec].Srokhraneniya in [4, 5] then[/COLOR]
begin
writeln('Zapis #', NumRec);
writeln('Lekarstvo: ', Tab[NumRec].Lekarstvo: 10);
writeln('Kolvo: ', Tab[NumRec].Kolvo: 10);
writeln('Stoimost: ', Tab[NumRec].Stoimost: 10);
writeln('Srok hraneniya:', Tab[NumRec].Srokhraneniya: 10);
writeln;
end;
end;
Показывает срок хранения 4 и 5.

Добавляй к
Код
writeln('Viberite variant');
writeln('1 - Dobavit zapis');
writeln('2 - Vivod dannih');
writeln('3 - Print');
[COLOR="Blue"]writeln('Добавленый номер - команда');[/COLOR]
writeln('5 - Exit');
Код
[COLOR="Blue"]Добавленый номер[/COLOR]:begin
for NumRec:=1 to 10 do
[COLOR="Blue"]Условия или какие либо действия выполняемые командой[/COLOR]
end;
end;
end;
и
Код
until Not (variant in [1, 2, 3, [COLOR="Blue"]Добавленный номер[/COLOR]]);
Производи расчеты какие нужно все почти готого нужно только расширить программу, добавить ей команд.
1
Ocha
3 / 2 / 1
Регистрация: 18.12.2008
Сообщений: 136
24.01.2009, 06:59  [ТС] 9
А что значит in [4, 5]?

Добавлено через 2 часа 3 минуты 21 секунду
Со сроком хранения я понял:
3:begin
for NumRec:=1 to 10 do
if Tab[NumRec].Srokhraneniya>3 then
Помогите с остальными.
0
Игорь[Igor]
718 / 471 / 129
Регистрация: 24.12.2008
Сообщений: 3,922
24.01.2009, 14:57 10
in [4, 5] проверка входит значение в этот диапазон или нет.

Стоимость всех препаратов:
Код
var Sum: integer;
...
#:begin
Sum:=0;
for NumRec:=1 to 10 do
Sum:=Sum+(Tab[NumRec].Kolvo*Tab[NumRec].Stoimost);
writeln('Stoimost vsex preparatov: ', Sum: 10);
writeln;
end;
0
Ocha
3 / 2 / 1
Регистрация: 18.12.2008
Сообщений: 136
26.01.2009, 02:55  [ТС] 11
как высчитать самый дорогой и самый дешевый?
помогите, последнее осталось.
0
Puporev
Модератор
56321 / 43107 / 29819
Регистрация: 18.05.2008
Сообщений: 102,440
26.01.2009, 10:24 12
Обычным способом найти минимальный и максимальный элементы по полю цена, их номера, а потом вывести поле название с этими номерами.

Добавлено через 45 минут 46 секунд
Что-то замучали эту задачу. Вот простенький вариант, все есть. Должно подойти.
Код
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
type Tapt=record
nam:string[20];
kol:word;
cen:word;
src:byte;
end;
var sp:array[1..100]of Tapt;
n,i,imin,imax:byte;
min,max,kp:word;
ost:longint;
begin
write('Kolichestvo naimenovanij lekarstv n=');
readln(n);
for i:=1 to n do
begin
writeln('Lekarstvo ',i);
write('Naimenovanie: ');readln(sp[i].nam);
write('Kolichestvo: ');readln(sp[i].kol);
write('Cena: ');readln(sp[i].cen);
write('Srok hranenia: ');readln(sp[i].src);
end;
[FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]writeln;
[/SIZE][/FONT][/SIZE][/FONT][SIZE=2]{max, min}
max:=sp[1].cen;min:=sp[1].cen;imax:=1;imin:=1;
for i:=1 to n do
if sp[i].cen>max then
begin
max:=sp[i].cen;
imax:=i;
end
else if sp[i].cen<min then
begin
min:=sp[i].cen;
imin:=i;
end;
writeln('Samyj dorogoj preparat ',sp[imax].nam);
writeln('Samyj deshevyj preparat ',sp[imin].nam);
writeln;
{obsh. kol.}
kp:=0;
for i:=1 to n do
kp:=kp+sp[i].kol;
writeln('Na sclade hranitsa ',kp,' preparatov');
writeln;
{srok hranenia}
writeln('Imeyut srok hranenia > 3 mesyacev:');
for i:=1 to n do
if sp[i].src>3 then
writeln(sp[i].nam);
writeln;
{obsh. stoim.}
ost:=0;
for i:=1 to n do
ost:=ost+sp[i].kol*sp[i].cen;
writeln('Vse preparaty stoyat ',ost,' rub.');
readln
end
[/SIZE]
1
26.01.2009, 10:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2009, 10:24

Нужно чтоб выводила не цену самый дорогой пары обуви, а наименование обуви .
Нужно чтоб выводила не цену самый дорогой пары обуви, а наименование обуви . const nmax=100;...

Самый старший (на записи)
Дата=record число:1..31; месяц:1..12; год:1900..1979 ...

Условие: Кто из мальчиков самый высокий, а кто самый низкий?
даны числа p,q,r- рост Пети Кости и Ромы соответственно.Кто из мальчиков самый высокий кто самый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru