Изобразить звёздное небо, полную луну и медленно надвигающуюся на неё тень земли - QBasic

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

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

Здравствуйте!помогите , пожалуйста, решить задачу! графика в бэйсике! вот задача-затмение луны:изобразить на экране звёздное небо, полную луну и медленно надвигающуюся на неё тень земли.затем медленное открытие диска луны.(тень земли должна быть больше луны). очень нужно.помогииите

Решение задачи: «Изобразить звёздное небо, полную луну и медленно надвигающуюся на неё тень земли»

textual
Листинг программы
  1. DECLARE SUB FLIP ()
  2. DEFINT A-Z
  3. DIM SHARED Act%, Viz%
  4. Act% = 1: Viz% = 0
  5. SCREEN 9, , Act%, Viz%
  6. CONST Stars = 40, CoefTen = 2
  7. DIM S(Stars, 1)
  8.     CIRCLE (200, 100), 50, 15, , , .9
  9.     PAINT (200, 100), 15, 15
  10. x = 270 + 50 * CoefTen
  11. FOR i =  1 TO Stars
  12. a:  S(i, 0) = RND * 639
  13.      S(i, 1) = RND * 349
  14.      IF POINT(S(i, 0), S(i, 1)) GOTO a
  15. NEXT
  16. OUT &H3C8, 1: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 0
  17. DO: CLS 2
  18.     CIRCLE (200, 100), 50, 15, , , .9
  19.     PAINT (200, 100), 15, 15
  20.     CIRCLE (x, 100), 50 * CoefTen, 1, , , .9
  21.     PAINT (x, 100), 1, 1
  22.    FOR i =  1 TO Stars
  23.         CIRCLE (S(i, 0), S(i, 1)), 2, 15
  24.         PAINT (S(i, 0), S(i, 1)), 15, 15
  25.    NEXT
  26.     x = x - 1
  27.     FLIP
  28. LOOP UNTIL INKEY$ <> "" OR x < 130 - 50 * CoefTen
  29.  
  30. SUB FLIP
  31.   SWAP Act%, Viz%
  32.     SCREEN , , , Viz%
  33.     WAIT &H3DA, 8
  34.     SCREEN , , Act%, Viz%
  35. END SUB

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

  1. Объявлены подпрограмма FLIP и переменные A-Z.
  2. Заданы константы Stars (40) и CoefTen (2).
  3. Создается массив S размером Stars на 2.
  4. Выводится прямоугольник 200 на 100 пикселей с координатами (200,100) и заполняется цветом.
  5. Переменная x инициализируется значением 270 + 50*CoefTen.
  6. Запускается цикл, который будет выполняться для каждой звезды (i от 1 до Stars).
  7. Внутри цикла вычисляются координаты звезды (S(i,0),S(i,1)).
  8. Если полученные координаты совпадают с координатами какой-либо звезды, цикл повторяется с начала.
  9. После завершения цикла выводится полнолуние (координаты (200,100)).
  10. Запускается основной цикл, который будет выполняться до тех пор, пока не будет нажата клавиша или x не станет меньше 130 - 50*CoefTen.
  11. Внутри основного цикла выводится полумесяц (координаты (x,100)).
  12. Переменная x уменьшается на единицу.
  13. Выполняется подпрограмма FLIP, которая меняет местами значения переменных Act% и Viz%.
  14. Выводится экран с текущим изображением.
  15. Программа ожидает нажатия клавиши в течение 8 миллисекунд.
  16. Выводится экран с обновленными значениями Act% и Viz%.
  17. Программа продолжает выполняться до тех пор, пока не будет нажата клавиша или x не станет меньше 130 - 50*CoefTen.
  18. Код внутри основного цикла выполняется до тех пор, пока не будет нажата клавиша или x не станет меньше 130 - 50*CoefTen.
  19. Если была нажата клавиша, программа завершается.
  20. Если x стало меньше 130 - 50*CoefTen, программа завершается.

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


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

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

13   голосов , оценка 3.615 из 5

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

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

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