Подсчет суммы за заказ блюд

В закусочной имеется список из десяти блюд, который выводится на экран. Покупатель может выбрать нужное количество любых из этих блюд. По окончании выбора на экран выводится сумма, которую должен уплатить покупатель за выбранные блюда.

code: #delphi
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
const
N=5;    // всего блюд
ye=' rub.'; // условные еденицы
 
type bludo=Record         //запись блюдо
     Name  : string[12];  // название
     Price : real;        // цена
  end;
 
var
  b:array[1..N] of Bludo;
  i    :integer;        // номер выбранного блюда
  kolvo:integer;        // кол-во
  sum:real;             // сумма общая
 
procedure Load;
begin
{создаем прайс лист}
  b[1].Name:='Apple';     b[1].Price:=12.43;
  b[2].Name:='Orange';    b[2].Price:=14.89;
  b[3].Name:='Lime';      b[3].Price:=18.36;
  b[4].Name:='Tea';       b[4].Price:=1.87;
  b[5].Name:='Coffe';     b[5].Price:=2.56;
end;
 
procedure Menu;
begin
Load; // создаем прайс лист
{загружаем прайс лист}
Writeln('*** M-E-N-U ***');
  for i:=1 to N do
  begin
    Writeln(i,'. ',b[i].Name:12,' : ',b[i].Price:4:2,ye);
  end;
Writeln('******');
Writeln('nomber of position(1-',N,'), or 0 - exit');
end;
 
procedure zakaz;
begin
sum:=0;
  repeat
  begin
  {предлагаем ввести номер блюда,
  для выхода нужно ввести 0}
    Write('nomber : ');
    Readln(i);
    if (i<>0) then
    begin
    {если номер введен верно, то
    спрашиваем кол-во}
      Write('Kol-vo : ');
      ReadLn(kolvo);
      {увеличиваем сумму на Цена*Колво}
      sum:=sum+(b[i].Price*kolvo);
    end;
  end;
  {если введен 0, то ..}
  until (i=0)or (kolvo=0);
  Writeln('-------');
  {вывод результата}
  WritelN('sum = ',sum:4:2,ye);
end;
 
begin
  { TODO -oUser -cConsole Main : Insert code here }
  Menu;   // создание и вывод меню
  zakaz;  // делаем заказы
  readln;
end.
 
 
Поделиться:

Похожие статьи: