6 задача урок 11

{Пользователь вводит целые числа. Пока он не введёт число большее 15,
в ответ на каждое введённое число выводите сумму этого числа и пред-предыдущего введённого им числа, если это число чётное, иначе просто запрашивать новое число.
Если же введённое число больше 15, то цикл необходимо завершить.}

var a,b,c: integer;
begin
  c:=0;
  while (a <= 15) do
  begin
  writeln('write integer num:');
  readln(a);
  c := b;
  b := a;
    if (a mod 2) = 0 then
       writeln('curent + pre-prev nums summ = ' , a + c)
    else
    begin
        writeln('write another integer num:');
        readln(a);
    end;
    end;
  writeln('over');

  readln();
end.   

отформатируем:

var a,b,c: integer;
begin
  c:=0;
  while (a <= 15) do
  begin
    writeln('write integer num:');
    readln(a);
    c := b;
    b := a;
    if (a mod 2) = 0 then
       writeln('curent + pre-prev nums summ = ' , a + c)
    else begin
        writeln('write another integer num:');
        readln(a);
    end;
  end;
  writeln('over');
  readln();
end. 
vedro-compota's picture

пусть пользователь вводил числа так:

5 17 32

readln(a); // текущее
c := b; // пред-передыдущее становится равным предыдущему
b := a; // предыдущее становит равным текущему
// 17 32 32

как получить сумму текущего с пред-предыдущим?

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

vedro-compota's picture

более правильное решение приведено тут: http://fkn.ktu10.com/?q=node/12303#comme...

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