Урок 9 Задание 11

УСЛОВИЕ:

Есть программа:
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().
Если идей нет, смотрите разбор решения.

Ссылка на урок:

Попытка решения:

program U9Z11;

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

  1. отформатируйте код
  2. используйте идеи http://fkn.ktu10.com/?q=node/12480

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

program U9Z11;

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

end. 
vedro-compota's picture

форматирование неверно + сейчас блоки работают как независимые, что неверно

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

program U9Z11;

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

end.     
vedro-compota's picture


z,s:integer;
  f:boolean;
begin
s:=1;
z:=1;
f:=false;

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

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