0 / 0 / 0
Регистрация: 19.12.2022
Сообщений: 12
1

Определить поля шахматной доски, которые бьёт ферзь

20.03.2023, 17:09. Показов 404. Ответов 1

Author24 — интернет-сервис помощи студентам
Реализовать программу, решающую следующую задачу:

Даны два символа - латинская буква от «а» до «h» и цифра от 1 до 8 (например: а5 или g2). Рассматривая их как координаты поля шахматной доски, на котором находится ферзь, схематически нарисовать шахматную доску, пометив крестиками все поля, которые «бьет» ферзь, и ноликами все остальные поля.

* Замечание:
Положение шахматной фигуры задается пользователем с клавиатуры. Целесообразно выдавать пользователю на экран «координатную сетку» шахматного поля для помощи в выборе координаты.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2023, 17:09
Ответы с готовыми решениями:

Реализовать программу, решающую следующую задачу, используя подпрограммы
Реализовать программу, решающую следующую задачу, используя подпрограммы Пусть ...

Реализовать программу, решающую следующую задачу, используя подпрограммы
Реализовать программу, решающую следующую задачу, используя подпрограммы

Создайте подпрограмму решающую задачу проверки целого числа A на кратность числу B
2. Создайте подпрограмму решающую задачу проверки целого числа A на кратность числу B....

Создайте, используя оператор цикла for программу, решающую следующую задачу
В матрице размером 4×8 поменяйте местами строку, содержащую минимальный элемент, с первой строкой,...

1
Модератор
9968 / 5332 / 3329
Регистрация: 17.08.2012
Сообщений: 16,261
20.03.2023, 22:31 2
JACKFAF, я же Вас просил: соблюдайте правила форума. Темы называйте осмысленно: название темы должно кратко отражать суть вопроса темы.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
var
  x, y, xf, yf: integer;
  f: array[1..8, 1..8] of char;
  c: string;
  i: char;
begin
  writeln('Координатная сетка шахматного поля:');
  for y := 8 downto 1 do
    begin
      write(y:2);
      for x := 1 to 8 do
        begin
          f[y,x] := '0';
          write(f[y,x]:2)
        end;
      writeln
    end;
  write('':2);
  for i := 'a' to 'h' do write(i:2);
  writeln;
  write('Введите координаты ферзя, например, g2: ');
  readln(c);
  xf := ord(c[1]) - ord('a') + 1;
  yf := ord(c[2]) - ord('0');
  for y := 1 to 8 do
    for x := 1 to 8 do
      if (x = xf) or (y = yf) or (abs(x - xf) = abs(y - yf)) then f[y,x] := 'X';
  writeln('Поля, которые бьёт ферзь:');
  for y := 8 downto 1 do
    begin
      write(y:2);
      for x := 1 to 8 do write(f[y,x]:2);
      writeln
    end;
  write('':2);
  for i := 'a' to 'h' do write(i:2);
  readln
end.
На всякий случай, с подпрограммой для печати поля:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
type
  p = array[1..8, 1..8] of char;
 
procedure prn(m: string; var ff: p);
var
  x, y: integer;
  i: char;
begin
  writeln(m);
  for y := 8 downto 1 do
    begin
      write(y:2);
      for x := 1 to 8 do write(ff[y,x]:2);
      writeln
    end;
  write('':2);
  for i := 'a' to 'h' do write(i:2);
  writeln
end;
 
var
  x, y, xf, yf: integer;
  f: array[1..8, 1..8] of char;
  c: string;
begin
  for y := 1 to 8 do
    for x := 1 to 8 do
      f[y,x] := '0';
  prn('Координатная сетка шахматного поля:', f);
  write('Введите координаты ферзя, например, g2: ');
  readln(c);
  xf := ord(c[1]) - ord('a') + 1;
  yf := ord(c[2]) - ord('0');
  for y := 1 to 8 do
    for x := 1 to 8 do
      if (x = xf) or (y = yf) or (abs(x - xf) = abs(y - yf)) then f[y,x] := 'X';
  prn('Поля, которые бьёт ферзь:', f);
  readln
end.
0
20.03.2023, 22:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2023, 22:31
Помогаю со студенческими работами здесь

Напишите программу, эффективную по времени работы, решающую следующую задачу
У одного из преподавателей экономики есть хобби: по вечерам он любит рисовать фракталы. Сегодня он...

Отладить программу, решающую логическую задачу
6. Отладить программу, решающую логическую задачу «В велосипедных гонках три первых места заняли...

Написать программу, решающую задачу о скважинах
Скриншот рисунка прилагается. Город состоит из N районов (1 ≤ N ≤ 100). Каждый...

Написать программу обработки кольцевого списка, решающую задачу Джозефуса
Написать программу обработки кольцевого списка, решающую задачу Джозефуса. Задача Джозефуса...

Написать программу, решающую транспортную задачу открытого типа методом потенциалов
Здравствуйте, буду очень благодарен за помощь в написании программы. Требуется написать прогу...

Написать программу, решающую задачу линейного поиска элемента вещественном массиве
Написать программу, решающую задачу линейного поиска элемента вещественном массиве вот... ...

Реализовать параллельным способом следующую задачу
В результате умножения матрицы А размерности m x n и вектора b, состоящего из n элементов,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru