Advertisement
melnikovmaxim

KLENINA_Matrix_shading

Jan 2nd, 2020
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.61 KB | None | 0 0
  1. program nullone;
  2.  
  3. uses
  4.    graphabc;
  5.  
  6. var
  7.    m: array[1..100] of array [1..100] of integer;
  8.    t: text;
  9.    i, j, ax, ay, k, count, ymax, xmax, k1: integer;
  10.  
  11. procedure fill(x, y: integer);
  12. var
  13.    x1, x2, y1, y2: integer;
  14. begin
  15.    if (x >= 1) and (y >= 1) and (x <= xmax) and (y <= ymax) then
  16.       begin
  17.          x1 := ay * y;
  18.          y1 := ax * x;
  19.          x2 := x1 + ax;
  20.          y2 := y1 + ay;
  21.          if m[x, y] = 1 then
  22.             begin
  23.                setbrushcolor(clblack);
  24.                Rectangle(x1, y1, x2, y2);
  25.             end;
  26.          if m[x, y] = 0 then
  27.          begin
  28.             setbrushcolor(clwhite);
  29.             Rectangle(x1, y1, x2, y2);
  30.          end;
  31.          if y < ymax then
  32.             begin
  33.                sleep(10);
  34.                fill(x, y + 1);
  35.             end;
  36.          if (y = ymax) and (x < xmax) then
  37.             begin
  38.                sleep(10);
  39.                fill(x + 1, y - y + 1);
  40.             end;
  41.       end;
  42. end;
  43.  
  44.  
  45. begin
  46.    writeln('Программа закрашивает матрицу, единицы - чёрным, нули - белым');
  47.    ax := 30;
  48.    ay := 30;
  49.    assign(t, 'input.txt');
  50.    reset(t);
  51.    count := 0;
  52.    while not eoln(t) do
  53.       begin
  54.          read(t, k);
  55.          inc(count);
  56.       end;
  57.    close(t);
  58.    reset(t);
  59.    for i := 1 to count do
  60.       begin
  61.          for j := 1 to count do
  62.                read(t, m[i, j]);
  63.    end;  
  64.    ymax := j;
  65.    xmax := i;
  66.    i := 1;
  67.    j := 1;
  68.    if k1 = 0 then
  69.       fill(i, j)
  70.    else
  71.       writeln('На границе матрицы должны быть 1');
  72.    close(t);
  73. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement