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

Объяснение кода листинга программы

  1. Объявлены переменные: a (двумерный массив символов), n (количество слонов), x, y (координаты слона).
  2. Заданы пути к файлам для ввода и вывода данных.
  3. Открыты файлы для чтения и записи.
  4. Считываются данные из файла: количество слонов и координаты.
  5. Выполняется обход массива a с помощью двух вложенных циклов.
  6. Если координаты текущего элемента массива a совпадают с координатами слона, то этому элементу присваивается значение 'X'.
  7. Если абсолютное значение разности координат текущего элемента массива a и координат слона равно абсолютному значению разности его собственных координат, то этому элементу присваивается значение '*'.
  8. Если сумма текущих координат элемента массива a и слона (или их разность) равна 0, то этому элементу присваивается значение '#'.
  9. Если ни одно из вышеописанных условий не выполнено, то этому элементу присваивается значение '.'.
  10. В файл output записывается значение текущего элемента массива a.
  11. После завершения обхода массива a выводится номер строки с шахматной доской.
  12. Закрываются файлы input и output.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.375 из 5
Похожие ответы