Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ задача с оператором ветвления

Автор: stalin 4.03.2009 0:40

я недавно начал программировать!и мне это нравиться и я достиг определенных успехов!но вот задался вопросом а как будет выглядеть код такой задачи в которой будет выполнятся какое-то действие например с:=а+в и после этого действия будет следовать вопрос: может еще?Y/N и если будет дано Y, то цикл- а еcли N то End.
P.S.(естественно код должен быть примитивен как 5 рублей)
подскажите пожалуйста!
спасибо всем кто откликнется!

Автор: Unconnected 4.03.2009 0:57

Можно использовать оператор безусловного перехода goto (многие воспринимают его как зло, правда).. Создаёшь переменную типа label, например label p; перед секцией var, вставляешь её перед вводом данных например:
p:
{ввод данных}.

Далее, при запросе y/n если выбрано y, то goto p;
if (key='y') or (key='Y') then goto p; {key - переменная типа char или string}

Автор: stalin 4.03.2009 1:07

а нельзя ли на примере показать код?а то чет я не могу додуматься (я же еще начинающий) wacko.gif !

Автор: Unconnected 4.03.2009 1:21

Код
var
  c1:char;
  a,b,c:byte;
  label p;
begin
  p:
  writeln('Vvedite chislo A i chislo B');
  readln(a,b);
  c:=a+b;
  writeln(a,'+',b,'=',c);
  writeln('Restart? Y/N');
  readln(c1);
  if (c1='y') or (c1='Y') then goto p;
  if (c1='n') or (c1='N') then halt;
end.



Заметь, метки описываются не так, как я написал выше (уже исправлено).

Автор: amega 4.03.2009 1:23

можно еще так
только непомню код n N;


repeat
{действие}
Writeln('Хотите еще ?');
readln(а);
until keypressed#{код n N};


Автор: stalin 4.03.2009 21:19

всем спасибо!тему можно закрывать!