Вывести шахматную доску с изображением слона и всех клеток, в которые он может походить - 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
Листинг программы
  1. var a:array[1..100,1..100] of char;
  2.     n,x,y,i,j:integer;
  3.     input,output:text;
  4. begin
  5. assign(input,'input.txt');
  6. assign(output,'output.txt');
  7. reset(input);
  8. rewrite(output);
  9. read(input,n,x,y);
  10. for i:=1 to n do
  11.  begin
  12.   for j:=1 to n do
  13.    begin
  14.     if(i=y)and(j=x)then a[i,j]:='X'
  15.     else if abs(i-y)=abs(j-x)then a[i,j]:='*'
  16.     else if (i+j)mod 2=0 then a[i,j]:='#'
  17.     else a[i,j]:='.';
  18.     write(output,a[i,j]);
  19.    end;
  20.   writeln(output);
  21.  end;
  22. close(input);
  23. close(output);
  24. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы