Решение задачи №6 из главы 11

Решение задачи №6 из главы 11

Модификация одной из пред. задач: Пользователь вводит целые числа. Пока он не введёт число большее 15, в ответ на каждое введённое число выводите сумму этого числа и пред-предыдущего введённого им числа, если это число чётное, иначе просто запрашивать новое число. Если же введённое число больше 15, то цикл необходимо завершить.
В первом витке цикла все "предыдущие" числа можно считать единицами.

var a, b, c : integer;
begin
    a:=1; //инициализация переменной
    c:=1;  //инициализация переменной


    while (a < 15) do
    begin
      b:=a;//запоминаем предыдущее введеное число
      writeln('Vvedite cheloe cislo:');
      readln(a); //вводим первое число
      if ((a+c) mod 2)=0 then
         writeln('summa: (a+c): ', (a+c)) {Выводим сумму  введеного
         числа и пред-предыдущее введеное число}
      else
         writeln('Vvedite cheloe cislo:');
         readln(a); //вводим первое число
      c:=b;//запоминаем пред-предыдущее введеное число
    end;
    writeln ('poka!'); // завершаем цикл если условие
    readln(); //Удерживаем консоль
end.           
vedro-compota's picture

ключевые слова исправьте

_____________
матфак вгу и остальная классика =)

vedro-compota's picture

У вас в теле цикла:

readln(a);

идет два раза. Почему? По-идее вы должны читать число один раз только в одном витке.

_____________
матфак вгу и остальная классика =)

gani84's picture

var a, b, c : integer;
begin
    a:=1; //инициализация переменной
    c:=1;  //инициализация переменной
    while (a < 15) do
    begin
      b:=a;//запоминаем предыдущее введеное число
      writeln('Vvedite cheloe cislo:');
      readln(a); //вводим первое число
      if ((a+c) mod 2)=0 then
          writeln('summa: (a+c): ', (a+c)); {Выводим сумму  введеного
         числа и пред-предыдущее введеное число}
       c:=b;//запоминаем пред-предыдущее введеное число
    end;
    writeln ('poka!'); // завершаем цикл если условие
    readln(); //Удерживаем консоль
end.
vedro-compota's picture

написать комментарии - какая переменная отвечает за "предыдущее" число, а какая "пред-предыдущее"

_____________
матфак вгу и остальная классика =)

gani84's picture

{переменная "b"- запоминает предыдущее введеное число}
{переменная "c"- запоминает пред-предыдущее введеное число}
var a, b, c : integer;
begin
    a:=1; //инициализация переменной
    c:=1;  //инициализация переменной
    while (a < 15) do
    begin
      b:=a;//запоминаем предыдущее введеное число
      writeln('Vvedite cheloe cislo:');
      readln(a); //вводим первое число
      if ((a+c) mod 2)=0 then
          writeln('summa: (a+c): ', (a+c)); {Выводим сумму  введеного
         числа и пред-предыдущее введеное число}
       c:=b;//запоминаем пред-предыдущее введеное число
    end;
    writeln ('poka!'); // завершаем цикл если условие
    readln(); //Удерживаем консоль
end.                          
vedro-compota's picture

решение засчитано

_____________
матфак вгу и остальная классика =)