задача 3 урок 21

задача 3 урок 21

Дано целое положительное число A и целое положительно число B. Выведите на экран все числа, расположенные между между ними.

program task_3_lesson21;
function between(a, b: integer; f: boolean): integer;
begin
  if (a <> b) then
    if (f) then
    begin
      result := between(a, b - 1, f);
      write(b, ' ');
    end
    else
    begin
      result := between(a, b - 1, f);
      write(b, ' ');
    end;
end;

var
  f: boolean;
  a, b: integer;
begin
  f := true;
  readln(a);
  readln(b);
  if (a > b) then
    f := false;
  between(a , b, f);
  readln
end.

консоль

1
10
2 3 4 5 6 7 8 9 10

Программ печатает либо меньшее число, либо большее. Как не печатать А или B?

vedro-compota's picture

попробовать решить без 3 аргумента

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

Теперь процедура не печатает числа которые мы вводим, а только те которые между ними. Ушел от третей переменной булевого типа.

program task_3_lesson21;
procedure between(a, b: integer);
var n, m:integer;
begin
  n := a - b; //знать колво операций
  m := b - a;
  if (n - 1 > 0) then  //n - 1 повторов т.к печетать b = a не нужно
  begin
    write(b + 1); // печатаем b+1 т.к нам нужны числа после b
    between(a, b + 1);
  end
  else if (m - 1 > 0) then
    begin
      write(a + 1);
      between(a + 1, b);
    end;
end;

var
  a, b: integer;
begin
  readln(a);
  readln(b);
  between(a , b);
  readln
end.
vedro-compota's picture

засчитано

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