Определить, совпали ли по координатам все три точки - QBasic

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

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

В QBasic нет логических переменных. И я как-то не задумывался над тем, как можно их ввести или работать с ними. Но вчера на Форуме я встретил необычное решение и решил составить очень простую задачу, решив ее нестандартным способом. Задача: На плоскости задаются три точки с целыми координатами. Определить: совпали все три точки в одну или нет. Вот код, решающий эту задачу.
Листинг программы
  1. DEFINT I-J, X-Z
  2. OPTION BASE 1
  3. DIM x(3)
  4. DIM y(3)
  5. RANDOMIZE TIMER
  6. CLS
  7. FOR i = 1 TO 3
  8. x(i) = FIX(2 * RND)
  9. y(i) = FIX(2 * RND)
  10. NEXT i
  11. FOR i = 1 TO 3
  12. PRINT "x("; i; ")="; x(i); "y("; i; ")="; y(i)
  13. NEXT i
  14. zx = 1
  15. zy = 1
  16. FOR i = 1 TO 3
  17. FOR j = i TO 3
  18. zx = zx AND (x(i) = x(j))
  19. zy = zy AND (y(i) = y(j))
  20. NEXT j
  21. NEXT i
  22. zz = zx * zy
  23. IF zz THEN PRINT "Точки совпали" ELSE "НЕТ"
  24. END
Желают всем Успехов в освоении QBasic!!

Решение задачи: «Определить, совпали ли по координатам все три точки»

textual
Листинг программы
  1. CONST True = -1, False = NOT True
  2. DIM Bool(-1 TO 0) AS STRING
  3. Bool(-1) = "True": Bool(0) = "False"
  4.  
  5.   DEFINT A-Z
  6.     A = True
  7.     B = True
  8.  
  9. 5 CLS : PRINT
  10.   PRINT "    Set A to True press [1]   to False press [2]"
  11.   PRINT "    Set B to True press [3]   to False press [4]": PRINT
  12.   PRINT "  A = "; Bool(A)
  13.   PRINT "  B = "; Bool(B)
  14.   PRINT "  A AND B :  "; Bool(A AND B)
  15.   PRINT "  A OR B  :  "; Bool(A OR B)
  16.   PRINT "  A XOR B :  "; Bool(A XOR B)
  17.   PRINT "  A EQV B :  "; Bool(A EQV B)
  18.   PRINT "  A IMP B :  "; Bool(A IMP B)
  19.   PRINT "  NOT A, B:  "; Bool(NOT A); ", "; Bool(NOT B)
  20.  
  21. DO: Kb$ = INKEY$
  22.    SELECT CASE Kb$
  23.      CASE "1": A = True: GOTO 5
  24.      CASE "2": A = False: GOTO 5
  25.      CASE "3": B = True: GOTO 5
  26.      CASE "4": B = False: GOTO 5
  27.      CASE ELSE
  28.    END SELECT
  29. LOOP UNTIL Kb$ = CHR$(27)

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

  1. В первой строке кода объявляются константы True и False, а также переменная Bool с типом данных STRING и размером массива -1 TO 0.
  2. Затем в переменные A и B записываются значения True и True соответственно.
  3. Далее выводится приглашение для пользователя нажать клавишу 1 или 2 для установки значения переменной A, и нажать клавишу 3 или 4 для установки значения переменной B.
  4. После этого выводятся значения переменных A и B, а также результаты операций AND, OR, XOR, EQV и IMP между ними.
  5. Затем пользователю предлагается ввести с клавиатуры любое значение, и в зависимости от введенного значения выполняется соответствующий блок кода (если введено значение 1, то A устанавливается в True, если введено значение 2, то A устанавливается в False, и аналогично для переменной B).
  6. В конце пользователю предлагается нажать клавишу 1 или 2 для выхода из программы.
  7. Цикл LOOP UNTIL Kb$ = CHR$(27) повторяет выполнение предыдущего блока кода до тех пор, пока пользователь не нажмет клавишу 27 (или Esc).

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


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

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

9   голосов , оценка 4.111 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы