Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 1
Регистрация: 26.01.2018
Сообщений: 35
1

Ферзь, ладья и конь

27.11.2018, 19:08. Показов 2968. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На шахматной доске 8х8 расположены три фигуры:
ферзь, ладья и конь. Требуется определить количество
пустых полей доски, которые находятся под боем. Для
простоты будем полагать, что фигуры могут «бить» через
другие фигуры. Например, в рассмотренной справа ситуа-
ции будем считать, что ферзь бьет D5 через ладью.

Входные данные

В единственной строке входного файла INPUT.TXT
записаны через пробел координаты расположения трех фи-
гур: ферзя, ладьи и коня соответственно. Каждая коорди-
ната состоит из одного латинского символа (от A до H) и
одной цифры (от 1 до 8).

Выходные данные

В выходной файл OUTPUT.TXT нужно вывести количество пустых полей, которые
бьют указанные во входных данных фигуры.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2018, 19:08
Ответы с готовыми решениями:

Решение ребуса "ладья+ладья=ферзь" с помощью множеств
Помогите, пожалуйста, решить ребус ЛАДЬЯ+ЛАДЬЯ=ФЕРЗЬ с помощью множеств. В качетве примера...

Ладья и конь в шахматах
На шахматном поле есть 2 фигуры: белый конь и черная ладья. Известны их координаты (в виде двух...

Определить, бьет ферзь коня, конь — Ферзя, или фигуры не угрожают друг другу
Координаты двух полей шахматной доски заданы в виде двух пар чисел x1 , у1 и х2 , у2. На первом...

Шахматы: определить, бьёт ли ферзь коня, конь ферзя или фигуры не угрожают друг другу
Доброго времени суток. Помогите с задачей. Надо написать программу, которая будет определять бьёт...

1
6171 / 936 / 310
Регистрация: 25.02.2011
Сообщений: 1,367
Записей в блоге: 1
28.11.2018, 14:31 2
решал данную задачу на a_c_m_p на VB6 много лет назад (сейчас VB6 там не проходит)
Задача была принята и выдавала корректный результат
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub Main()
    Open "input.txt" For Input As 1
    Open "output.txt" For Output As 2
    Input #1, s
    Dim x(2), y&(2)
    t = Split(s)
    For i = 65 To 72
        For j = 1 To 8
            q = 0
            For k = 0 To 2
                x(k) = Asc(t(k))
                y(k) = Mid(t(k), 2)
                q = q + (i = x(k)) * (j = y(k))
            Next
            If q = 0 And (Abs((i - x(2)) * (j - y(2))) = 2 Or i = x(0) Or j = y(0) Or i = x(1) Or j = y(1) Or (i - x(0)) ^ 2 = (j - y(0)) ^ 2) Then p = p + 1
    Next j, i
    ? #2, p
End Sub
Синтаксис похож на QBASIC, но нужно немного переписывать ввод данных, т.к. нет в нем Split

Добавлено через 4 часа 7 минут
на QBASIC
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
DIM i AS INTEGER, j AS INTEGER, k AS INTEGER, s AS STRING
DIM x1 AS INTEGER, x2 AS INTEGER, x3 AS INTEGER, y1 AS INTEGER, y2 AS INTEGER, y3 AS INTEGER
 
'OPEN "input.txt" FOR INPUT AS #1
'OPEN "output.txt" FOR OUTPUT AS #2
'INPUT #1, s
s = "D1 D3 E5"
x1 = ASC(MID$(s, 1, 1)) - 64
y1 = ASC(MID$(s, 2, 1)) - 48
x2 = ASC(MID$(s, 4, 1)) - 64
y2 = ASC(MID$(s, 5, 1)) - 48
x3 = ASC(MID$(s, 7, 1)) - 64
y3 = ASC(MID$(s, 8, 1)) - 48
 
FOR i = 1 TO 8
FOR j = 1 TO 8
  IF (i <> x1 OR j <> y1) AND (i <> x2 OR j <> y2) AND (i <> x3 OR j <> y3) THEN
    IF ABS((i - x3) * (j - y3)) = 2 OR i = x1 OR j = y1 OR i = x2 OR j = y2 OR ABS(i - x1) = ABS(j - y1) THEN k = k + 1
  END IF
NEXT j, i
PRINT k
'PRINT #2, k
'CLOSE
1
28.11.2018, 14:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2018, 14:31
Помогаю со студенческими работами здесь

На шахматной доске стоят черный король и белые ладья и слон (ладья бьет по горизонтали и вертикали, слон – по
Помогите решить проблему error C2668: fabs: неоднозначный вызов перегруженной функции На...

Ладья
Требуется определить, бьёт ли ладья, стоящая на клетке с указанными координатами (номер строки и...

Ладья в лабиринте
Ладья – это шахматная фигура, которая за один ход может переместиться на любое количество клеток по...

Бьет ли ладья пешку
Помогите пожалуйста написать программу, тем самым решив задачу. Буду очень благодарен. Желательно...

Угрожает ли ладья заданному полю
Выполнить задание, используя условные операторы Поле шахматной доски определяется парой...

Бъет ли ладья произвольную фигуру
Форумчане пожалуйста кому не лень помогите решить задачу. Решить задачу по обработке записей :...


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

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