Задача 6 Урок 11

Задача 6 Урок 11:

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

program Lesson6;
var a,b,c,d: integer;
begin
a:=0;
while (a <= 15) do
begin
  writeln('vvedite celoe chislo:');
  readln(a);
  if (a mod 2)=0 then
  begin
    d:=c+a;     //считаем сум.прошлая+число
    c:=a+b;     //сумма прошлого числа и новое
    b:=a;
    writeln(d);
  end;
end;
writeln('End!');
readln();
end.       
vedro-compota's picture

  1. определиться какая переменная отвечает за предыдущее, а какая за предыпредыдущее
  2. оптимизировать количество переменных

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

program Lesson6;
var a,b,c: integer;
begin
a:=0;
while (a <= 15) do
begin
  writeln('vvedite celoe chislo:');
  readln(a);
  if (a mod 2)=0 then
  begin
    writeln(a+c);
    c:=b;  // пред-предыдущее
    b:=a; //предыдущее 
  end;
end;
writeln('End!');
readln();
end.        
vedro-compota's picture

if (a mod 2)=0 then
  begin
    writeln(a+c);
    c:=b;  // пред-предыдущее
    b:=a; //предыдущее 
  end;

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

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

vedro-compota's picture

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

В первом витке цикла все "предыдущие" числа можно считать единицами.

-- решить для этого варианта условия

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

program Lesson6isp;
var a,b,c,d: integer;
begin
  a:=0;
  while (a <= 15) do
  begin
    writeln('vvedite celoe chislo:');
    readln(a);
    d:=c;
    c:=b; 
    b:=a; 
    if (a mod 2)=0 then
      writeln(a+d);
    end;
writeln('End!');
readln();
end.
vedro-compota's picture

решить с трех переменных, 4-я лишняя

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

program Lesson6isp;
var a,b,c,d: integer;
begin
  a:=0;
  while (a <= 15) do
  begin
    c:=b;
    b:=a;
    writeln('vvedite celoe chislo:');
    readln(a);
    if (a mod 2)=0 then
      writeln(a+c);
    end;
writeln('End!');
readln();
end.       
vedro-compota's picture

засчитано

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