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

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

Пользователь вводит целые числа в цикле (разные: четные, нечетные, положительные, отрицательные в любом порядке и количестве). Считайте и выведите на экран значения первых трех отрицательных нечетных чисел. После чего завершите цикл.

program Lesson8;
var a,b,c,d,i: integer;
begin
  i:=0;
  while (i<3)  do
  begin
    writeln('vvedite celoe chislo:');
    readln(a);
    if (a<0) and ((a mod 2)<>0) then
    begin
      i:=i+1;
      if (i=1) then
        b:=a
      else if (i=2) then
        c:=a
      else if (i=3) then
        d:=a;
    end;
  end;
  writeln(b,' ',c,' ',d);
  readln();
end.
vedro-compota's picture

if (i=1) then
        b:=a
      else if (i=2) then
        c:=a
      else if (i=3) then
        d:=a;

-- можно упростить, есть лишняя проверка

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

program Lesson8v1;
var a,b,c,i: integer;
begin
  i:=0;
  while (i<3)  do
  begin
    writeln('vvedite celoe chislo:');
    readln(a);
    if (a<0) and ((a mod 2)<>0) then
    begin
      i:=i+1;
      if (i=1) then
        b:=a
      else if (i=2) then
        c:=a
    end;
  end;
  writeln(b,' ',c,' ',a);
  readln();
end.   

какой вариант предпочтительнее?

program Lesson8;
var a,b,c,d,i: integer;
begin
  i:=0;
  while (i<3)  do
  begin
    writeln('vvedite celoe chislo:');
    readln(a);
    if (a<0) and ((a mod 2)<>0) then
    begin
      i:=i+1;
      d:=c;
      c:=b;
      b:=a;
    end;
  end;
  writeln(d,' ',c,' ',a);
  readln();
end.   
vedro-compota's picture

засчитано

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