Определить, совпали ли по координатам все три точки - QBasic
Формулировка задачи:
В QBasic нет логических переменных. И я как-то не задумывался
над тем, как можно их ввести или работать с ними. Но вчера на
Форуме я встретил необычное решение и решил составить очень
простую задачу, решив ее нестандартным способом.
Задача:
На плоскости задаются три точки с целыми координатами.
Определить: совпали все три точки в одну или нет.
Вот код, решающий эту задачу.
Желают всем Успехов в освоении QBasic!!
Листинг программы
- DEFINT I-J, X-Z
- OPTION BASE 1
- DIM x(3)
- DIM y(3)
- RANDOMIZE TIMER
- CLS
- FOR i = 1 TO 3
- x(i) = FIX(2 * RND)
- y(i) = FIX(2 * RND)
- NEXT i
- FOR i = 1 TO 3
- PRINT "x("; i; ")="; x(i); "y("; i; ")="; y(i)
- NEXT i
- zx = 1
- zy = 1
- FOR i = 1 TO 3
- FOR j = i TO 3
- zx = zx AND (x(i) = x(j))
- zy = zy AND (y(i) = y(j))
- NEXT j
- NEXT i
- zz = zx * zy
- IF zz THEN PRINT "Точки совпали" ELSE "НЕТ"
- END
Решение задачи: «Определить, совпали ли по координатам все три точки»
textual
Листинг программы
- CONST True = -1, False = NOT True
- DIM Bool(-1 TO 0) AS STRING
- Bool(-1) = "True": Bool(0) = "False"
- DEFINT A-Z
- A = True
- B = True
- 5 CLS : PRINT
- PRINT " Set A to True press [1] to False press [2]"
- PRINT " Set B to True press [3] to False press [4]": PRINT
- PRINT " A = "; Bool(A)
- PRINT " B = "; Bool(B)
- PRINT " A AND B : "; Bool(A AND B)
- PRINT " A OR B : "; Bool(A OR B)
- PRINT " A XOR B : "; Bool(A XOR B)
- PRINT " A EQV B : "; Bool(A EQV B)
- PRINT " A IMP B : "; Bool(A IMP B)
- PRINT " NOT A, B: "; Bool(NOT A); ", "; Bool(NOT B)
- DO: Kb$ = INKEY$
- SELECT CASE Kb$
- CASE "1": A = True: GOTO 5
- CASE "2": A = False: GOTO 5
- CASE "3": B = True: GOTO 5
- CASE "4": B = False: GOTO 5
- CASE ELSE
- END SELECT
- LOOP UNTIL Kb$ = CHR$(27)
Объяснение кода листинга программы
- В первой строке кода объявляются константы True и False, а также переменная Bool с типом данных STRING и размером массива -1 TO 0.
- Затем в переменные A и B записываются значения True и True соответственно.
- Далее выводится приглашение для пользователя нажать клавишу 1 или 2 для установки значения переменной A, и нажать клавишу 3 или 4 для установки значения переменной B.
- После этого выводятся значения переменных A и B, а также результаты операций AND, OR, XOR, EQV и IMP между ними.
- Затем пользователю предлагается ввести с клавиатуры любое значение, и в зависимости от введенного значения выполняется соответствующий блок кода (если введено значение 1, то A устанавливается в True, если введено значение 2, то A устанавливается в False, и аналогично для переменной B).
- В конце пользователю предлагается нажать клавишу 1 или 2 для выхода из программы.
- Цикл LOOP UNTIL Kb$ = CHR$(27) повторяет выполнение предыдущего блока кода до тех пор, пока пользователь не нажмет клавишу 27 (или Esc).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д