Определить на какие поля шахматной доски может пойти конь с заданными координатами - Pascal
Формулировка задачи:
Доброго времени суток!
Вот,сделал программу(ну как сделал,собрал по кускам,как франкинштейна).
И вот что выдает паскаль:
Введите координаты по горизонтали
d
Введите координаты по вертикали
2
A B C D E F G H
8
7
6
5
4
3
2
1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 X 0 X 0 0 0
0 X 0 0 0 X 0 0
0 0 0 K 0 0 0 0
0 X 0 0 0 X 0 0
Вот как сделать так,чтобы обозначения по вертикали и горизонтали,были на одном уровне с импровезированной шахматной доской?
Заранее большое спасибо!
var y,x,i:integer; j,x1:char; a:array[1..8,'a'..'h'] of char; begin writeln('Введите координаты по горизонтали'); readln(x1); writeln( 'Введите координаты по вертикали'); readln(y); case x1 of 'a': x:=1; 'b': x:=2; 'c': x:=3; 'd': x:=4; 'e': x:=5; 'f': x:=6; 'g': x:=7; 'h': x:=8; end; writeln(' A B C D E F G H'); for i:=8 downto 1 do writeln(i); for i:=1 to 8 do for j:='a' to 'h' do if abs(i-y)*abs(ord(j)-ord(x1))=2 then a[i,j]:='X' else a[i,j]:='0'; a[y,x1]:='K'; for i:=8 downto 1 do begin for j:='a' to 'h' do write('', a[i,j]:2); writeln; end; end.
Решение задачи: «Определить на какие поля шахматной доски может пойти конь с заданными координатами»
textual
Листинг программы
var y, i: Integer; j, x: char; a: array[1..8, 'a'..'h'] of Char; begin Writeln('Введите координаты по горизонтали'); Readln(x); Writeln('Введите координаты по вертикали'); Readln(y); Write(' '); for j := 'A' to 'H' do Write(j, ' '); Writeln; for i := 1 to 8 do for j := 'a' to 'h' do if abs(i-y) * abs(ord(j)-ord(x)) = 2 then a[i, j] := 'X' else a[i, j] := '0'; a[y, x] := 'K'; for i := 8 downto 1 do begin Write(i, ' '); for j := 'a' to 'h' do Write(a[i, j]:2); Writeln; end; end.
Объяснение кода листинга программы
- Объявляются переменные:
y
иi
типа Integer для хранения координат по вертикали и для использования в циклах;j
иx
типа char для хранения координат по горизонтали и для использования в циклах;a
- двумерный массив размером 8x8, где каждый элемент массива может содержать символы от 'a' до 'h'.
- Выводится сообщение
Введите координаты по горизонтали
. - Вводится значение переменной
x
. - Выводится сообщение
Введите координаты по вертикали
. - Вводится значение переменной
y
. - Выводится строка с буквами от 'A' до 'H'.
- Для каждого
i
от 1 до 8 и для каждогоj
от 'a' до 'h' проверяется условие:- Если разница между значениями
i-y
умноженной на разницу междуord(j)-ord(x)
равна 2, то значение в массивеa
по координатамi
иj
устанавливается как 'X', в противном случае устанавливается как '0'.
- Если разница между значениями
- В массиве
a
по координатамy
иx
устанавливается символ 'K'. - Для
i
от 8 до 1 выполняется цикл:- Выводится значение
i
. - Для
j
от 'a' до 'h' выводится значение элементов массиваa[i, j]
с отступами.
- Выводится значение
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д