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

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.

Leave a Comment