Определить на какие поля шахматной доски может пойти конь с заданными координатами - Pascal

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Вот,сделал программу(ну как сделал,собрал по кускам,как франкинштейна).
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.
И вот что выдает паскаль: Введите координаты по горизонтали 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 Вот как сделать так,чтобы обозначения по вертикали и горизонтали,были на одном уровне с импровезированной шахматной доской? Заранее большое спасибо!

Решение задачи: «Определить на какие поля шахматной доски может пойти конь с заданными координатами»

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.

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

  1. Объявляются переменные:
    • y и i типа Integer для хранения координат по вертикали и для использования в циклах;
    • j и x типа char для хранения координат по горизонтали и для использования в циклах;
    • a - двумерный массив размером 8x8, где каждый элемент массива может содержать символы от 'a' до 'h'.
  2. Выводится сообщение Введите координаты по горизонтали.
  3. Вводится значение переменной x.
  4. Выводится сообщение Введите координаты по вертикали.
  5. Вводится значение переменной y.
  6. Выводится строка с буквами от 'A' до 'H'.
  7. Для каждого i от 1 до 8 и для каждого j от 'a' до 'h' проверяется условие:
    • Если разница между значениями i-y умноженной на разницу между ord(j)-ord(x) равна 2, то значение в массиве a по координатам i и j устанавливается как 'X', в противном случае устанавливается как '0'.
  8. В массиве a по координатам y и x устанавливается символ 'K'.
  9. Для i от 8 до 1 выполняется цикл:
    • Выводится значение i.
    • Для j от 'a' до 'h' выводится значение элементов массива a[i, j] с отступами.
  10. Программа завершается.

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


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

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

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