Вывести шахматную доску с изображением слона и всех клеток, в которые он может походить - PascalABC.NET
Формулировка задачи:
Условие
Слон — шахматная фигура, которая может двигаться на любое число клеток по диагонали. Имеется шахматная доска N на N клеток. В клетке с координатами (X; Y) находится слон. Требуется вывести шахматную доску с изображением слона и всех клеток, в которые он может походить. Клетки чёрного цвета обозначаются символом '#' (ASCII 35), клетки белого цвета обозначаются символом '.' (точка, ASCII 46), клетка со слоном обозначается символом 'X' (ASCII 88), клетка, в которую может походить слон обозначается символом '*' (ASCII 42). Ось ординат (OY) направлена вертикально вниз. Верхний левый угол доски имеет чёрный цвет и координаты (1; 1).Формат входного файла
Входной файл содержит целые числа N X Y.Формат выходного файла
Выходной файл должен содержать N строчек из N символов каждая — изображение шахматной доски.Ограничения
2 ≤ N ≤ 100 1 ≤ X, Y ≤ NРешение задачи: «Вывести шахматную доску с изображением слона и всех клеток, в которые он может походить»
textual
Листинг программы
var a:array[1..100,1..100] of char; n,x,y,i,j:integer; input,output:text; begin assign(input,'input.txt'); assign(output,'output.txt'); reset(input); rewrite(output); read(input,n,x,y); for i:=1 to n do begin for j:=1 to n do begin if(i=y)and(j=x)then a[i,j]:='X' else if abs(i-y)=abs(j-x)then a[i,j]:='*' else if (i+j)mod 2=0 then a[i,j]:='#' else a[i,j]:='.'; write(output,a[i,j]); end; writeln(output); end; close(input); close(output); end.
Объяснение кода листинга программы
- Объявлены переменные: a (двумерный массив символов), n (количество слонов), x, y (координаты слона).
- Заданы пути к файлам для ввода и вывода данных.
- Открыты файлы для чтения и записи.
- Считываются данные из файла: количество слонов и координаты.
- Выполняется обход массива a с помощью двух вложенных циклов.
- Если координаты текущего элемента массива a совпадают с координатами слона, то этому элементу присваивается значение 'X'.
- Если абсолютное значение разности координат текущего элемента массива a и координат слона равно абсолютному значению разности его собственных координат, то этому элементу присваивается значение '*'.
- Если сумма текущих координат элемента массива a и слона (или их разность) равна 0, то этому элементу присваивается значение '#'.
- Если ни одно из вышеописанных условий не выполнено, то этому элементу присваивается значение '.'.
- В файл output записывается значение текущего элемента массива a.
- После завершения обхода массива a выводится номер строки с шахматной доской.
- Закрываются файлы input и output.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д