Нарисовать прямоугольник, стороны которого состоят из разноцветных квадратиков - QBasic

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

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

Требуется нарисовать прямоугольник размером во весь экран, стороны которого состоят из квадратиков разного цвета. Квадратиков должно быть от 10 до 15 (как получится). Используется цикл.

Решение задачи: «Нарисовать прямоугольник, стороны которого состоят из разноцветных квадратиков»

textual
Листинг программы
  DEFINT A-Z
PRINT "Select screen mode"
PRINT
PRINT "    1    :  320 x 200 x 4 bit  [ EGA / VGA ]"
PRINT "    2    :  640 x 200 x 4 bit  [ EGA / VGA ]"
PRINT "    3    :  640 x 350 x 4 bit  [ EGA / VGA ]"
PRINT "    4    :  640 x 480 x 4 bit  [ VGA ]"
PRINT "    5    :  320 x 200 x 8 bit  [ VGA ]"
PRINT " Another :  Exit"
PRINT
  INPUT "Your choise [1-5] : ", Scrn
  cvt = 1
  SELECT CASE Scrn
    CASE 1: SCREEN 7: xr = 320: yr = 200: cv = 16
    CASE 2: SCREEN 8: xr = 640: yr = 200: cv = 16
    CASE 3: SCREEN 9: xr = 640: yr = 350: cv = 16
    CASE 4: SCREEN 12: xr = 640: yr = 480: cv = 16
    CASE 5: SCREEN 13: xr = 320: yr = 200: cv = 256: cvt = 32
    CASE ELSE: END
  END SELECT
  LOCATE 3, 5: PRINT "Resolution  X:"; STR$(xr); "  Y:"; STR$(yr)
  Kv = 10       ' Отношение разрешения к стороне квадрата
  kx = xr \ Kv  ' Кол-во квадратов по X
  ky = yr \ Kv  ' Кол-во квадратов по Y
  xs = xr \ kx  ' Сторона квадрата по X
  ys = yr \ ky  ' Сторона квадрата по Y
 
  FOR ix = 0 TO kx - 1
     cvt = cvt + 1
     LINE (ix * xs, 0)-(ix * xs + xs - 1, ys - 1), cvt MOD cv, BF
     LINE ((kx - ix - 1) * xs, yr)-((kx - ix - 1) * xs + xs - 1, yr - ys), (cvt + ky + kx - 2) MOD cv, BF
  NEXT
 
  FOR iy = 1 TO ky - 2
     cvt = cvt + 1
     LINE (0, (ky - iy - 1) * ys)-(xs - 1, (ky - iy - 1) * ys + ys - 1), (cvt + kx + ky - 2) MOD cv, BF
     LINE (xr - xs, iy * ys)-(xr, iy * ys + ys - 1), cvt MOD cv, BF
  NEXT
 
WHILE INKEY$ = "": WEND

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

  1. Начало программы
  2. Вывод списка доступных разрешений экрана
  3. Ввод выбранного разрешения экрана
  4. Определение выбранного разрешения экрана
  5. Вывод выбранного разрешения экрана
  6. Определение отношения разрешения к стороне квадрата
  7. Определение количества квадратов по X и Y
  8. Определение стороны квадрата по X и Y
  9. Цикл по всем квадратам по X
  10. Рисование горизонтальной линии для текущего квадрата по X
  11. Цикл по всем квадратам по Y
  12. Рисование вертикальной линии для текущего квадрата по Y
  13. Цикл по всем квадратам от 1 до ky-2 (для ky>2)
  14. Рисование диагонали для текущего квадрата по Y (для ky>2)
  15. Цикл по всем квадратам от 1 до kx-2 (для kx>2)
  16. Рисование диагонали для текущего квадрата по X (для kx>2)
  17. Конец основного цикла программы
  18. Ожидание нажатия клавиши для выхода из программы

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


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

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

6   голосов , оценка 3.833 из 5
Похожие ответы