Задача 4 Урок 14

Задача 4 Урок 14

Составьте программу, которая выводит на экран прямоугольный флаг N×M вида (с чередованием плюсов и минисов в строках):

- - - - - -
+ + + + + +
- - - - - -
+ + + + + +
- - - - - -

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

var M, N: integer;

function Flag(H, L: integer): integer;
var k, i: integer;
begin
  k := 1;
  while(k <= L) do
    begin
      i := 0;
      while(i < H) do
        begin
          if((k mod 2) = 0) then
            write('+')
          else
            write('-');
            i := i + 1;
        end;
        writeln();
        k := k + 1;
    end;
end;
begin
  writeln('vvedi shiriny');
  readln(M);
  writeln('vvedi visota');
  readln(N);
  Flag(M,N);
  readln();
end.
    
vedro-compota's picture

1) используйте процедуру
2) процедуру вывода очередной строки должен вызывать внешний цикл (т.е. процедура отвечает только за печать строки)

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

var M, N, k, i: integer;

procedure Flag(H: integer);
begin
  if((H mod 2) = 0) then
    write('+')
  else
    write('-');
end;
begin
  writeln('vvedi shiriny');
  readln(M);
  writeln('vvedi visota');
  readln(N);
  k := 1;
  while(k <= N) do
    begin
      i := 0;
      while(i < M) do
        begin
          Flag(k);
          i := i + 1;
        end;
      writeln();
      k := k + 1;
    end;
  readln();
end. 
vedro-compota's picture

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

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