Вывести шахматную доску с изображением слона и всех клеток, в которые он может походить - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д