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

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

Есть программа:

var z,s:integer;
  f:boolean;
begin
  s:=1;
  if (z=s) and (f=false) then
    begin
      writeln();// делаем перенос строки
      z:=0;
      s:=s+1;//но увеличиваем кол-во строк
    end;
 
  if (z=s) and (f=true) then
    begin
      writeln(); // делаем перенос строки
      z:=0;
      s:=s-1;//но уменьшаем кол-во строк
    end;
end.    

-- в двух условных операторах действия частично совпадают, а значит наблюдается дублирование кода. Перепишите код так, чтобы дублирования не было.

Подсказка: используйте вложенные блоки if().

Решение:

var z,s:integer;
  f:boolean;
begin
  writeln('Vvedite z');
  readln(z);
  f:=false;
  s:=1;
  if (z=s) then
    begin
         if (f=false) then begin
            writeln();// делаем перенос строки
            z:=0;
            s:=s+1;//но увеличиваем кол-во строк
            writeln('Vetka1');
            readln();
            end
         else begin
              writeln(); // делаем перенос строки
              z:=0;
              s:=s-1;//но уменьшаем кол-во строк
              writeln('Vetka2');
              readln();
              end;
    end;
end. 

Консоль:

Vvedite z
1

Vetka1
vedro-compota's picture

в целом нормально, разобраться с форматированием

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

var z,s:integer;
f:boolean;
begin
  writeln('Vvedite z');
  readln(z);
  f:=false;
  s:=1;
  if (z=s) then
    begin
      if (f=false) then
      begin
        writeln();// делаем перенос строки
        z:=0;
        s:=s+1;//но увеличиваем кол-во строк
        writeln('Vetka1');
        readln();
      end
      else
      begin
        writeln(); // делаем перенос строки
        z:=0;
        s:=s-1;//но уменьшаем кол-во строк
        writeln('Vetka2');
        readln();
      end;
    end;
end.  
vedro-compota's picture

 z:=0;

-- тоже можно обобщить

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

var z,s:integer;
f:boolean;
begin
  writeln('Vvedite z');
  readln(z);
  f:=true;
  s:=1;
  if (z=s) then
  begin
    writeln();// делаем перенос строки
    z:=0;
    if (f=false) then
    begin
      s:=s+1;//но увеличиваем кол-во строк
      writeln('Vetka1');
    end
    else
    begin
      s:=s-1;//но уменьшаем кол-во строк
      writeln('Vetka2');
    end;
  end;
  readln();
end.
vedro-compota's picture

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

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