Нарисовать синусоиду в виде бесконечности - QBasic
Формулировка задачи:
Ребята помогите пожалуйста нарисовать синусоиду, рисунок должен быть похожим на бесконечность.
1 рис (на бел фоне) то, что дано.
2 рис (должно получиться, примерно так)
Решение задачи: «Нарисовать синусоиду в виде бесконечности»
textual
Листинг программы
' Построение изображения CLS 'Очистить экран SCREEN 12 'Установить графический режим WIDTH 80, 60 'Высота экрана 60 строк pi = 3.14 'Значение pi r = 20 'Значение коэффициента ' 'Организация графического окна 1 VIEW (40, 40)-(260, 160), 8, 8 switch = 0: GOSUB 10 'Уст. ключа и переход в подпр. LOCATE 3, 8: PRINT 'График функции y = sin x' LOCATE 22, 4: PRINT '-2pi' LOCATE 22, 11: PRINT '-pi' LOCATE 22, 20: PRINT '0' LOCATE 22, 26: PRINT 'pi' LOCATE 22, 33: PRINT '2pi' ' ' LOCATE 55, 16 PRINT DO 'Ожидание нажатия любой клавиши для выхода LOOP WHILE INKEY$ = "" 'на сообщение QBASIC END 'Конец программы ' 'Подпрограмма построения изображений функций 10: WINDOW (-360, 40)-(360, -40) 'Система координат FOR i = -20 TO 20 'Цикл формирования коор. сетки LINE (-360, 10 * i)-(360, 10 * i), 0 'Горизонт. линии LINE (-8, 10 * i)-(8, 10 * i), 15 'Шкала оси абсцисс LINE (45 * i, -40)-(45 * i, 40), 0 'Верт. линии LINE (45 * i, -2)-(45 * i, 2), 15 'Шкала оси ординат NEXT i 'Следующий LINE (-360, 0)-(360, 0), 7 'Ось абсцисс LINE (0, -40)-(0, 40), 7 'Ось ординат ' FOR g = -180 TO 180 STEP 1.1 'Цикл построения графика rn = g * pi / 180 'Пересчет угла в радианную меру x = g y = r * SIN(rn) 'Расчет y = sin x y1 = r * SIN(rn) * -1 PSET (x, y), 15 'Изображение точки кривой PSET (x, y1), 15 'Изображение точки кривой NEXT g 'Следующий RETURN 'Возврат в программу
Объяснение кода листинга программы
- Сначала объявляются переменные:
- pi = 3.14 (значение числа π)
- r = 20 (значение коэффициента)
- Затем устанавливается графический режим и размеры экрана:
- SCREEN 12 (установка графического режима)
- WIDTH 80, 60 (установка размеров экрана: 80 символов в строке, 60 строк)
- Далее организуется графическое окно и осуществляется переход в подпрограмму:
- VIEW (40, 40)-(260, 160), 8, 8 (установка системы координат и размеров окна)
- switch = 0: GOSUB 10 (переход в подпрограмму с установленным ключом)
- В основной программе выводятся метки осей и заголовок графика:
- LOCATE 3, 8: PRINT 'График функции y = sin x'
- LOCATE 22, 4: PRINT '-2pi'
- LOCATE 22, 11: PRINT '-pi'
- LOCATE 22, 20: PRINT '0'
- LOCATE 22, 26: PRINT 'pi'
- LOCATE 22, 33: PRINT '2pi'
- В подпрограмме строятся горизонтальные и вертикальные линии координатной сетки, а также линии осей:
- WINDOW (-360, 40)-(360, -40) (установка системы координат)
- FOR i = -20 TO 20 (цикл формирования координатной сетки)
- LINE (-360, 10 i)-(360, 10 i), 0 (горизонтальная линия)
- LINE (-8, 10 i)-(8, 10 i), 15 (вертикальная линия оси абсцисс)
- LINE (45 i, -40)-(45 i, 40), 0 (вертикальная линия)
- LINE (45 i, -2)-(45 i, 2), 15 (вертикальная линия оси ординат)
- NEXT i (следующий цикл)
- LINE (-360, 0)-(360, 0), 7 (ось абсцисс)
- LINE (0, -40)-(0, 40), 7 (ось ординат)
- Затем в основной программе начинается цикл построения графика:
- FOR g = -180 TO 180 STEP 1.1 (цикл построения графика)
- rn = g * pi / 180 (пересчет угла в радианную меру)
- x = g (расчет значения переменной x)
- y = r * SIN(rn) (расчет значения переменной y)
- y1 = r SIN(rn) -1 (расчет значения переменной y1)
- PSET (x, y), 15 (изображение точки кривой)
- PSET (x, y1), 15 (изображение точки кривой)
- NEXT g (следующий цикл)
- FOR g = -180 TO 180 STEP 1.1 (цикл построения графика)
- В конце программы ожидается нажатие любой клавиши для выхода:
- DO 'Ожидание нажатия любой клавиши для выхода
- LOOP WHILE INKEY$ = `` (цикл ожидания нажатия клавиши)
- В конце подпрограммы возвращается управление в основную программу:
- RETURN (возврат в программу)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д