Визуализировать карту двора с заявленными футбольными полями - Turbo Pascal
Формулировка задачи:
В одном большом дворе, представленном прямоугольной решёткой в N строк и M столбцов (N,M<=9), существовали две гордые футбольные команды. Каждая из них решила построить собственное прямоугольное футбольное поле, определяемое левым верхним углом (i1 j1 для первой команды и i2 j2 для второй) и высотой и шириной (R1 C1 для первой команды и R2 C2 для второй).
Пожалуйста, помогите им визуализировать карту двора с заявленными футбольными полями, пометив цифрой 0 область, не занятую никаким полем, цифрой 1 - клетки только под первым полем, цифрой 2 - клетки под вторым полем и, наконец, цифрой 3 - спорные территории, которые заявлены как часть своего футбольного поля и первой командой, и второй.
Формат ввода:
N M
i1 j1 R1 C1
i2 j2 R2 C2
Пример ввода:
5 6
1 2 3 4
3 3 3 4
Формат вывода:
a[1,1] a[1,2] ... a[1,M]
a[2,1] a[2,2] ... a[2,M]
...
a[N,1] a[N,2] ... a[N,M]
Пример вывода:
0 1 1 1 1 0
0 1 1 1 1 0
0 1 3 3 3 2
0 0 2 2 2 2
0 0 2 2 2 2
Заранее спасибо!!!
Решение задачи: «Визуализировать карту двора с заявленными футбольными полями»
textual
Листинг программы
const nmax=9; var a:array[1..nmax,1..nmax] of byte; n,m,i,j,i1,j1,i2,j2,r1,c1,r2,c2:byte; begin n:=5; m:=6; i1:=1; j1:=2; r1:=3; c1:=4; i2:=3; j2:=3; r2:=3; c2:=4; for i:=1 to n do for j:=1 to m do if not(i in [i1..i1+r1-1])and not(j in [j1..j1+c1-1]) and not(i in [i2..i2+r2-1])and not(j in [j2..j2+c2-1]) then a[i,j]:=0 else if (i in [i1..i1+r1-1])and (j in [j1..j1+c1-1]) and (i in [i2..i2+r2-1])and (j in [j2..j2+c2-1]) then a[i,j]:=3 else if (i in [i1..i1+r1-1])and (j in [j1..j1+c1-1]) then a[i,j]:=1 else if (i in [i2..i2+r2-1])and (j in [j2..j2+c2-1]) then a[i,j]:=2; for i:=1 to n do begin for j:=1 to m do write(a[i,j]:4); writeln; end; readln end.
Объяснение кода листинга программы
- Объявляются переменные n, m, i, j, i1, j1, i2, j2, r1, c1, r2, c2:byte.
- Значения переменных n и m присваиваются соответствующим полям.
- Задаются начальные значения переменных i1, j1, i2, j2, r1, c1, r2, c2.
- Задается начальное значение для массива a[].
- Запускается цикл for i:=1 до n do for j:=1 до m do.
- Внутри цикла проверяется условие: если не выполняется хотя бы одно из условий, то a[i,j]:=0.
- Если выполняется хотя бы одно из условий, то a[i,j]:=3.
- Если выполняется еще одно из условий, то a[i,j]:=1.
- Если выполняется последнее из условий, то a[i,j]:=2.
- После завершения внутреннего цикла for i:=1 до n do for j:=1 до m do выводится значение a[i,j]:4.
- Выводится символ новой строки (writeln).
- Запускается внешний цикл for i:=1 до n do.
- После завершения внешнего цикла выводится символ новой строки (writeln).
- Программа завершается с помощью команды readln.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д