Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2007, 10:34   #1
McMilin
 
Регистрация: 11.11.2007
Сообщений: 3
Хорошо Оператор цикла с предусловием While. Оператор цикла с пост условием Repeat

5. В закусочной имеется список из десяти блюд, который выводится на экран. Покупатель может выбрать нужное количество любых из этих блюд. По окончании выбора на экран выводится сумма, которую должен уплатить покупатель за выбранные блюда.
помогите решить
McMilin вне форума Ответить с цитированием
Старый 11.11.2007, 11:06   #2
bill
Форумчанин
 
Аватар для bill
 
Регистрация: 26.04.2007
Сообщений: 440
По умолчанию

Тут по идее не нужны While и Repeat. Только if. Вводите блюда, потом требуется чтобы пользователь ввел те блюда(можно цифрами- № блюда), которые он хочет. Потом идет проверка выбранных блюд и на экран выдается сумма(счет). Я так понимаю.
bill вне форума Ответить с цитированием
Старый 11.11.2007, 11:18   #3
McMilin
 
Регистрация: 11.11.2007
Сообщений: 3
По умолчанию

у меня задание сделать через Оператор цикла с предусловием While. Оператор цикла с пост условием Repeat
McMilin вне форума Ответить с цитированием
Старый 11.11.2007, 11:25   #4
kommunist
C# developer
Форумчанин
 
Аватар для kommunist
 
Регистрация: 03.10.2007
Сообщений: 393
По умолчанию

вот код правильный или нет незнаю в данный момент неначем проверит но двигатся нужно в эту сторону.
Код:
 
program a;
uses crt;
const n = 10;
type vec = array [1..n] of string = ('здесь введш свои блюда в опострафах и через запятую);
       cena = array[1..n] of integer =('здесь цены для каждого блюда');
var a:vec;
     b:cena;
     i:integer;
     vib:string; //люда которые выбрали
     summa:integer;
begin
 clrscr;
 writeln('menu);
 readln(a[i]);
 summa:=0
 vib:=0;
 writeln('сделайте заказ');
for i:= 1 to n do
begin
readln(vib);
if vib:=a[i] then 
inc(cena,b[i]);
end;
writeln('ваш счет:',cena);
readkey;
end;
end.
I like WPF
kommunist вне форума Ответить с цитированием
Старый 11.11.2007, 11:29   #5
kommunist
C# developer
Форумчанин
 
Аватар для kommunist
 
Регистрация: 03.10.2007
Сообщений: 393
По умолчанию

если через while или repeat то тогда какое условие выхода из цикла?
I like WPF
kommunist вне форума Ответить с цитированием
Старый 11.11.2007, 12:06   #6
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию repeat

Код:
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.

Последний раз редактировалось Alex21; 11.11.2007 в 12:09.
Alex21 вне форума Ответить с цитированием
Старый 11.11.2007, 12:12   #7
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию while

Для оператора WHILE код тот же, небольшие изменения в процедуре ZAKAZ;
Код:
procedure zakaz;
label lab;
begin
sum:=0;
lab:
  begin
  {предлагаем ввести номер блюда,
  для выхода нужно ввести 0}
    Write('nomber : ');
    Readln(i);
    while (i<>0) do
    begin
    {если номер введен верно, то
    спрашиваем кол-во}
      Write('Kol-vo : ');
      ReadLn(kolvo);
      {увеличиваем сумму на Цена*Колво}
      sum:=sum+(b[i].Price*kolvo);
      goto lab;
    end;
  end;

  Writeln('-------');
  {вывод результата}
  WritelN('sum = ',sum:4:2,ye);
end;
Alex21 вне форума Ответить с цитированием
Старый 11.11.2007, 14:10   #8
McMilin
 
Регистрация: 11.11.2007
Сообщений: 3
По умолчанию

спасибо что помогли
McMilin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оператор в с++ JOFRIF Помощь студентам 2 22.04.2008 18:12
Пожалуйста помогите решить 4 задачки на массивы и оператор цикла. alena-yalymova Паскаль, Turbo Pascal, PascalABC.NET 8 05.04.2008 22:21
Пожалуйста помогите решить задачи на Массивы, текстовые данные и оператор цикла alena-yalymova Паскаль, Turbo Pascal, PascalABC.NET 35 04.04.2008 16:23
Оператор LIKE в SQL _SERGEYX_ БД в Delphi 4 16.10.2007 16:57
Оператор WITH Enko Общие вопросы Delphi 1 20.09.2007 20:36