Как сделать треугольник в бейсике
Методы System.Math класса предоставляют тригонометрические, Логарифмические и другие общие математические функции.
Комментарии
В следующей таблице перечислены методы System.Math класса. их можно использовать в программе Visual Basic:
Чтобы использовать эти функции без уточнения, импортируйте System.Math пространство имен в проект, добавив следующий код в начало исходного файла:
Пример-ABS
В этом примере используется Abs метод Math класса для расчета абсолютного значения числа.
Пример — Atan
В этом примере используется Atan метод Math класса для вычисления значения PI.
По-моему все будет просто: надо нарисовать на бумажке чертежик, решить эту геометрическую задачу и написать программу, которая будет считать по полученным формулам.
\u041f\u0443\u0441\u0442\u044c \u0394ABC - \u0440\u0430\u0432\u043d\u043e\u0431\u0435\u0434\u0440\u0435\u043d\u043d\u044b\u0439, \u0410\u0412 = \u0441 - \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0435, \u0410\u0421 = \u0412\u0421 = b - \u0431\u043e\u043a\u043e\u0432\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u041f\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u043d \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0441\u0438, \u0442\u0430\u043a \u0447\u0442\u043e \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0410\u0412 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u043f\u0435\u043d\u0434\u0438\u043a\u0443\u043b\u044f\u0440\u043d\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0441\u0438 \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0410\u041e = \u041e\u0412, \u0430 \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u0421 \u043f\u043e\u043f\u0430\u0434\u0435\u0442 \u043d\u0430 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0443\u044e \u043e\u0441\u044c. \u0420\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u043c \u0394ABC \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043f\u0430\u043b\u043e \u043d\u0430 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043e\u0441\u044c.
\u041e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u0432\u043e\u043a\u0440\u0443\u0433 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u043f\u0440\u043e\u0439\u0434\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u0432\u0441\u0435 \u0442\u0440\u0438 \u0435\u0433\u043e \u0432\u0435\u0440\u0448\u0438\u043d\u044b. \u0422\u043e\u0447\u043a\u0430 \u041c - \u0446\u0435\u043d\u0442\u0440 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438, - \u043b\u0435\u0436\u0438\u0442 \u043d\u0430 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0438 \u043f\u0435\u0440\u043f\u0435\u043d\u0434\u0438\u043a\u0443\u043b\u044f\u0440\u043e\u0432, \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u0438\u0437 \u0441\u0435\u0440\u0435\u0434\u0438\u043d \u0441\u0442\u043e\u0440\u043e\u043d \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0394ABC \u0440\u0430\u0432\u043d\u043e\u0431\u0435\u0434\u0440\u0435\u043d\u043d\u044b\u0439, \u0442\u043e \u041e\u0421 - \u0435\u0433\u043e \u0432\u044b\u0441\u043e\u0442\u0430 \u0438 \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u041c\u0421, \u0440\u0430\u0432\u043d\u044b\u0439 \u0440\u0430\u0434\u0438\u0443\u0441\u0443 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 R, \u0442\u0430\u043a\u0436\u0435 \u043b\u0435\u0436\u0438\u0442 \u043d\u0430 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0441\u0438.
\u041d\u0430\u0439\u0434\u0435\u043c \u0432\u044b\u0441\u043e\u0442\u0443 \u041e\u0421, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u0432 \u0435\u0451 \u0447\u0435\u0440\u0435\u0437 h, \u043f\u043e \u0442\u0435\u043e\u0440\u0435\u043c\u0435 \u041f\u0438\u0444\u0430\u0433\u043e\u0440\u0430.
\u041e\u0421 - \u044d\u0442\u043e \u043a\u0430\u0442\u0435\u0442 \u0394AOC, AO \u22a5 OC.
[tex]\\displaystyle h= \\sqrt= \\sqrt\\right)^2>[\/tex]
\u041f\u043b\u043e\u0449\u0430\u0434\u044c \u0394ABC \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435
[tex]\\displaystyle S= \\frac\\cdot AB \\cdot OC = \\frachc [\/tex]
\u0414\u043b\u044f \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0440\u0430\u0434\u0438\u0443\u0441\u0430 R = MC \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0435 \u0394AOC \u0438 \u0394MDC, \u0438\u043c\u0435\u044e\u0449\u0438\u0435 \u043e\u0431\u0449\u0438\u0439 \u0443\u0433\u043e\u043b \u0410\u0421\u041e = \u03b1
[tex]\\displaystyle \\cos \\alpha= \\frac= \\frac \\to MC= \\frac; \\\\ R= \\frac> = \\frac; \\qquad OM=h-R[\/tex]
\u0422\u0435\u043f\u0435\u0440\u044c \u043b\u0435\u0433\u043a\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435.
\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u0442\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0441\u0438 \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u041e\u041c \u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043c \u0438\u0437 \u043d\u0435\u0433\u043e, \u043a\u0430\u043a \u0438\u0437 \u0446\u0435\u043d\u0442\u0440\u0430, \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0434\u0438\u0443\u0441\u0430 R. \u0421\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0442\u0440\u0438 \u0442\u043e\u0447\u043a\u0438 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0441\u0435\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0441 \u0434\u043b\u0438\u043d\u0430\u043c\u0438 \u0441\u0442\u043e\u0440\u043e\u043d, \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c.
\u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Microsoft QBasic, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u043b\u0438\u043d\u0443 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u041e\u041c (Mx - \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0443 \u0445 \u0442\u043e\u0447\u043a\u0438 \u041c) \u0438 \u0440\u0430\u0434\u0438\u0443\u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 R \u043f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u0435 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u0438 \u0434\u043b\u0438\u043d\u0435 \u0431\u043e\u043a\u043e\u0432\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b b.
INPUT \"\u041e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0435: \", c
INPUT \"\u0411\u043e\u043a\u043e\u0432\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430: \", b
h = SQR(b ^ 2 - (c \/ 2) ^ 2)
R = b ^ 2 \/ (2 * h)
Mx = h - R
PRINT \"\u0420\u0430\u0434\u0438\u0443\u0441 \u0440\u0430\u0432\u0435\u043d \"; R, \"\u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430 \u0446\u0435\u043d\u0442\u0440\u0430 \u0440\u0430\u0432\u043d\u0430 \"; Mx
\u0422\u0435\u0441\u0442\u043e\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435:
Y:\\qbasic>QBASIC.EXE
\u041e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0435: 6
\u0411\u043e\u043a\u043e\u0432\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430: 5
\u0420\u0430\u0434\u0438\u0443\u0441 \u0440\u0430\u0432\u0435\u043d\u00a0 3.125\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430 \u0446\u0435\u043d\u0442\u0440\u0430 \u0440\u0430\u0432\u043d\u0430\u00a0 .875
\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c, \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u043b\u044e\u0431\u0443\u044e \u043a\u043b\u0430\u0432\u0438\u0448\u0443
Чертёж дан во вложении.
Пусть ΔABC - равнобедренный, АВ = с - его основание, АС = ВС = b - боковые стороны. По условию треугольник симметричен относительно горизонтальной оси, так что его основание АВ должно быть перпендикулярно горизонтальной оси и при этом АО = ОВ, а вершина С попадет на горизонтальную ось. Разместим ΔABC так, чтобы основание попало на вертикальную ось.
Окружность, описанная вокруг треугольника, пройдет через все три его вершины. Точка М - центр описанной окружности, - лежит на пересечении перпендикуляров, проведенных из середин сторон треугольника. Поскольку ΔABC равнобедренный, то ОС - его высота и отрезок МС, равный радиусу окружности R, также лежит на горизонтальной оси.
Найдем высоту ОС, обозначив её через h, по теореме Пифагора.
ОС - это катет ΔAOC, AO ⊥ OC.
Площадь ΔABC находим по формуле
Для нахождения радиуса R = MC рассмотрим прямоугольные ΔAOC и ΔMDC, имеющие общий угол АСО = α
Теперь легко сделать необходимое построение.
Для этого откладываем от начала координат по горизонтальной оси отрезок ОМ и проводим из него, как из центра, окружность радиуса R. Соединяем между собой три точки пересечения окружностью осей координат и получаем треугольник с длинами сторон, равными заданным.
Ниже приводится программа на языке Microsoft QBasic, позволяющая рассчитать длину отрезка ОМ (Mx - координату х точки М) и радиус описанной окружности R по заданной длине основания с и длине боковой стороны b.
INPUT "Основание: ", c
INPUT "Боковая сторона: ", b
h = SQR(b ^ 2 - (c / 2) ^ 2)
R = b ^ 2 / (2 * h)
Mx = h - R
PRINT "Радиус равен "; R, "Координата центра равна "; Mx
Цель: изучить графические процедуры в Бейсике и применить их для вывода анимационной картинки по типу экранной заставки.
- обобщить знания о графическом представлении информации на компьютере на примере экранной заставки;
- получить новые знания о выводе графической информации с помощью процедур языка программирования Бейсик;
- применить знания о циклических алгоритмах и командах в практической работе;
- освоить исследовательскую, самостоятельную работу за компьютером для получения новых знаний с использованием справочной системы Бейсик;
- развить творческие возможности и эстетические вкусы учеников при работе над своей программой.
Тип урока: комбинированный.
Методы обучения: лекция, самостоятельная работа на компьютере.
ТСО: компьютер, программа QBasic со справочной системой Qbasic.hlp.
План урока
- Организационный момент – 2 мин.
- Объяснение нового материала совместно с работой на компьютере – 34мин.
- Подведение итогов и выставление оценок – 2 мин.
- Домашнее задание – 2 мин.
1. Организационный момент: опрос присутствующих, объявление темы, целей и задач на урок.
2. Объяснение нового материала совместно с работой на компьютере:
1. Для смены режима с текстового на графический используют процедуру SCREEN. Откройте предметный указатель, найдите справку о процедуре SCREEN и о режимах экрана (см. Приложение 1).
Задание для самостоятельной работы:
- максимальное (минимальное) количество точек (пикселей);
- наибольшее количество видеостраниц;
- наибольшее количество цветов.
- Нарисуйте линию, которая в заданном графическом режиме проведет диагональ на экране. ( SCREEN 12: LINE (0,0)– (640,480) )
- Как построить прямоугольник? (LINE (X1,Y1)– (X2– Y2), C, B)
- Как записать процедуру LINE для отображения закрашиваемого прямоугольника? (LINE (X1,Y1)– (X2– Y2), C, BF)
- Напишите процедуры LINE так, чтобы прямоугольники отображались разным цветом (от 15 до 0) и размеры каждого следующего прямоугольника уменьшались, равномерно отдаляясь от краев предыдущего прямоугольника (первый прямоугольник – от краев экрана).
- Как оптимизировать программу, чтобы записать наименьшее количество операторов? (с помощью оператора цикла).
- Вставьте этот оператор в программу после процедуры рисования прямоугольника.
- Добавьте в вашу программу процедуру вывода окружности вместо вывода прямоугольника.
- Как нарисовать эллипс? (используя коэффициент сжатия, если 1, то по оси У)
- Почему сделать заливку внутри окружности с помощью процедуры CIRCLE не возможно? (т.к. процедура рисования окружности не имеет четких данных о своей границе)
- Добавьте в вашу программу процедуру вывода цветного круга.
- Какой параметр в процедуре PAINT отвечает за цвет заливки, а какой за цвет границы? (первым после координаты – цвет заливки, вторым – цвет границы)
- Что означает координата точки в процедуре PAINT? (точку, от которой будет вестись поиск цвета границы, и пока такая точка не будет найдена, все точки будут изменять цвет на цвет заливки)
2. Для отображения пикселя на экране с заданным цветом используют процедуру PSET. Найдите справку об этой функции в предметном указателе (см. Приложение 1).
Задание для самостоятельной работы:
Определите такой режим графического экрана, при котором достаточно четко видна точка, которая может отображаться различным цветом. Дайте названия цветам под номерами от 0 до 15. Найдите в справке атрибуты и значения цвета. Сравните с вашими значениями.
3. Для отображения прямой линии используют процедуру LINE. Найдите справку об этой функции в предметном указателе (см. Приложение 1).
SCREEN 12
X1=0: Y1=0: X2=640: Y2=480
FOR I=15 TO 0 STEP –1
X1=X1+10 : Y1=Y1+10
X2=X2– 10 : Y2=Y2– 10
LINE (X1,Y1)– (X2,Y2), I, BF
NEXT I
4. Для вставки паузы используют процедуру SLEEP. Найдите справку об этой функции в предметном указателе (см. Приложение 1).
SCREEN 12
X1=0: Y1=0: X2=640: Y2=480
FOR I=15 TO 0 STEP –1
X1=X1+10 : Y1=Y1+10
X2=X2– 10 : Y2=Y2– 10
LINE (X1,Y1)– (X2,Y2), I, BF
SLEEP 1
NEXT I
5. Для отображения окружности используют процедуру CIRCLE. Найдите справку об этой функции в предметном указателе (см. Приложение 1).
SCREEN 12
X0=320: Y0=240
X1=0: X2=640
FOR I=15 TO 0 STEP –1
X1=X1+10 : X2=X2– 10
R=(X2– X1)\2
CIRCLE (X0,Y0), R, I, , , 0.8
SLEEP 1
NEXT I
6. Для заливки выделенной области используют процедуру PAINT. Найдите справку об этой функции в предметном указателе (см. Приложение 1).
SCREEN 12
X0=320: Y0=240
X1=0: X2=640
FOR I=15 TO 0 STEP –1
X1=X1+10 : X2=X2– 10
R=(X2– X1)\2
CIRCLE (X0,Y0), R, I, , , 0.7
PAINT (X0,Y0), I, I
SLEEP 1
NEXT I
4. Домашнее задание: придумать и реализовать программу рисования геометрических фигур, используя операторы графики и оператор SLEEP.
Данная линейка статей будет посвящена программированию в QBasic, а точнее — рисованию. Сначала мы рассмотрим то, что необходимо знать детям перед тем, как программировать изображения на компьютере — прямоугольная система координат, координаты точки.
Представим, что на экран монитора наложена прямоугольная система координат с центром О в левом верхнем углу. Точка О имеет координаты (0,0). Теперь любую точку экрана мы сможем закодировать парой чисел (х,у) — координаты точки.
В обозначении А(30, 20) — на первом месте стоит координата Х, на втором — координата У ( на это сделать акцент, очень часто дети путают местами Х и У )
Для закрепления умения находить точку на координатной плоскости по заданным координатам могу предложить рад заданий:
1. Первая команда, с которой мы познакомимся — команда SCREEN 12 — команда, задающая на экране область размером 639 единиц по горизонтали на 463 единицы по вертикали, в которой можно строить различные фигуры и окрашивать их в любой из 16 цветов (0-15). Т.е. максимальное значение координаты Х равно 639, У — 463.
Стандартные Visual Basic (QBasic) цвета:
Номер | Цвет | Номер | Цвет |
---|---|---|---|
Черный | 8 | Светло-серый | |
1 | Темно-синий | 9 | Синий |
2 | Темно-зеленый | 10 | Зеленый |
3 | Бирюзовый | 11 | Голубой |
4 | Малиновый | 12 | Красный |
5 | Сиреневый | 13 | Розовый |
6 | Оливковый | 14 | Желтый |
7 | Темно-серый | 15 | Белый |
Примечание : есть и другие режимы работы команды SCREEN, но мы будем использовать именно этот, дающий наибольшее разрешение (большее количество пикселей)
2. Точка
Первый из графических примитивов — точка. Для изображения точки используется оператор pset со следующим синтаксисом:
где х и y — координаты точки на экране, а с — ее цвет.
Рассмотрим пример.
На черном экране в этом случае появится желтая точка.
Данный оператор будет нами использоваться редко.
2. Отрезок
LINE (X1, Y1)-(X2, Y2), С
Х1, Y1 — координаты начала отреза,
Х2, Y2 — координаты конца отрезка
С — цвет линии
3. Прямоугольник
Для того, чтобы нарисовать прямоугольник, нужно воспользоваться тем же оператором LINE. Только теперь мы берем координаты любой из диагоналей прямоугольника.
LINE (X1, Y1)-(X2, Y2), С, В
Х1, Y1 — координаты начала диагонали
Х2, Y2 — координаты конца диагонали
С — цвет линии
В — обязательно указать эту букву, иначе получим прямую, а не прямоугольник
Возьмем предыдущий код и добавим к нему — В
Получили прямоугольник, а отрезок из предыдущего примера служит ему диагональю.
4. Окружность
где X, Y — координаты центра, R — радиус (в экранных точках),
C — цвет.
Другие графические примитивы QBASIC, а также упражнения и задачи рассмотрим в следующем выпуске.
Программирование на алгометрическом языке QBASIC
Темы для изучения: Линейный алгоритм. Разветвляющийся алгоритм. Циклический алгоритм. Цикл с известным числом повторений. Цикл с предусловием. Цикл с постусловием. Массивы. Процедуры и функции. Графические возможности QB.
Введение в язык программирования Basic.
Для представления алгоритма в виде, понятном компьютеру, служат языки программирования. Сначала разрабатывается алгоритм действий, а потом он записывается на одном из таких языков. В итоге получается текст программы – полное, законченное и детальное описание алгоритма на языке программирования. Затем этот текст программы специальными служебными приложениями, которые называются трансляторами, либо переводится в машинный код (язык нулей и единиц), либо исполняется.
Basic (Бейсик) создавался в 60-х годах в качестве учебного языка и очень прост в изучении. По популярности занимает первое место в мире.
Некоторые операторы языка Basic.
REM – оператор комментария.
CLS – очистить экран.
PRINT (вывод, печать) – оператор вывода.
INPUT (ввод) – оператор ввода.
Для задания значения переменной служит оператор присваивания. Он записывается так:
LET переменная = значение (или просто: переменная = значение)
END – оператор конца программы
Арифметические операции на языке Basic.
Математические функции на языке Basic.
Линейная структура программы.
Программа имеет линейную структуру, если все операторы (команды) выполняются последовательно друг за другом.
Пример: Вычислите площадь прямоугольника по его сторонам.
Пример: Вычислите длину окружности и площадь круга по данному радиусу.
REM Вычисление длины окружности и площади круга
INPUT «Введите радиус «, r
PI = 3.14
l = 2 * PI * r
s= PI * r * r
PRINT «Длина окружности равна: «, l
PRINT «Площадь равна: «, s
END
Ветвление в алгоритмах и программах.
Разветвляющий алгоритм – это алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий.
Рассмотрим запись условного оператора на языке Basic.
Условия – еще один тип логических выражений. В них используются следующие операторы сравнения:
Предыдущие конструкции позволяли обойти или выполнить серию оператор в зависимости от справедливости условия. Это еще не было ветвлением. Чтобы вычисления могли разветвляться по нескольким направлениям, служит конструкция
Пример: Определить большее из двух чисел, вывести его на экран, затем – увеличить его в двое и вывести результат на экран.
Пример: Решение квадратного уравнения.
Решение квадратного уравнения зависит от значения дискриминанта.
REM Решение квадратного уравнения
INPUT «Введите коэффициент a: «, а
INPUT «Введите коэффициент b: «, b
INPUT «Введите коэффициент c: «, c
d=b*b-4*a*c
IF d
CASECASE
.
CASE ELSEEND SELECT
Выражение, заданное после ключевых слов SELECT CASE, сравнивается с определенными значениями – условиями и если они истинны, то выполняется соответствующая серия команд. Если не одно условие не истинно, то выполняется серия команд между CASE ELSE и END SELECT.
Пример: Выдать словесное значение числа
Циклы а алгоритмах и программах
Циклический алгоритм – описание действий, которые должны повторяться указанное число раз или пока не выполнено заданное условие. Перечень повторяющихся действий называют телом цикла.
Например, на уроке физкультуры вы должны пробежать некоторое количество кругов вокруг стадиона.
Такие циклы называются – циклы со счетчиком.
На языке Basic они записываются следующим образом:
FOR Счетчик=НачЗнач TO КонЗнач [STEP шаг]
тело цикла
NEXT [Счетчик]
Параметры указанные в квадратных скобках являются не обязательными (их можно не записывать). По умолчанию шаг цикла равен одному, т.е. каждый раз после прохождения тела цикла счетчик увеличивается на единицу.
Пример: Вывести на экран все числа от 1 до 100.
REM Вывод чисел от 1 до 100
FOR I=1 TO 100
PRINT I
NEXT
END
Пример: Вычислить сумму двухзначных натуральных чисел.
REM Вычислить сумму двухзначных натуральных чисел
FOR I=10 TO 99
s=s+I
NEXT
PRINT «Результат = «,s
END
Пример: вычислить факториал числа а (записывается так: а!). Факториал – это произведение чисел от 1 до а. Например, 5! (факториал пяти) – это 5!=1*2*3*4*5
REM Вычислить факториал числа
a=5
f=1
FOR I=1 TO a
f=f*I
NEXT
PRINT f
END
В субботу вечером вы смотрите телевизор. Время от времени поглядываете на часы и если время меньше полуночи, то продолжаете смотреть телевизор, если это не так, то вы прекращаете просмотр телепередач.
Циклы такого вида называют – циклы с предусловием.
На языке Basic они записываются следующим образом:
DO WHILE условие
Тело цикла
LOOP
DO UNTIL условие
Тело цикла
LOOP
Этот цикл отличается от предыдущего только тем, что он выполняется до тех пор пока условие не истинно (т.е. совсем наоборот).
Пример: Вывести все натуральные числа меньше данного.
Пример: составить программу сортировки массива по возрастанию.
Пример: ввод массива с использование оператора DATA.
Массивы. Двумерные массивы.
Двумерные массивы можно представить себе как таблицы, в ячейках которых хранятся значения элементов массива, а индексы элементов массива являются номерами строк и столбцов.
Объявляются двумерные массивы так же, как переменные и одномерные массивы. Например, целочисленный числовой массив, содержащий 3 строк и 4 столбца объявляется следующим образом:
REM Таблица умножения
DIM tabum (1 TO 9, 1 TO 9) AS INTEGER
REM Заполнение массива – создание таблицы умножения
FOR I=1 TO 9
FOR J=1 TO 9
tabum(I, J)=I*J
NEXT J
NEXT I
REM Вывод массива на экран в виде таблицы
FOR I=1 TO 9
FOR J=1 TO 9
PRINT tabum(I,J);
NEXT J
NEXT I
END
Пример: В таблице 3х4 вычислить количество отрицательных элементов, сумму четных элементов, произведение элементов второй строки.
Пример: Получить предложение в обратном порядке следования символов.
Дополнительные возможности Basic: Приложение1 в окне правка / правка слайдов возможно доработать презентацию.
Презентация к уроку
Загрузить презентацию (523,8 кБ)
Ход занятия
1. Организационный момент.
Вот уже несколько занятий мы с Вами посвятили программированию, постепенно мы осваиваем все его структуры.
Т. е. мы с вами становимся программистами. Как сказал Джозеф Вейценбаум– создатель языка программирования ЭЛИЗА: “Программист вычислительных машин – творец миров, в которых он сам является единственным законодателем”.
Если говорить словами Вейценбаума, то сегодня на уроке мы с вами будем творить, создавать программы для изображения объектов, в языке программирования Бейсик. Познакомимся со счётчиком случайных чисел, научимся изображать объекты в динамике (т.е. с изменяющимися параметрами).
Применив новые и полученные ранее знания, составим ряд программ для различных заданий. В конце урока вам будут предложены варианты с тестами и небольшая практическая работа.
Итак, запишите тему урока:
Графическое изображение объектов на языке программирования QBasic.
3. Актуализация (вопросы по пройденному материалу)
4. Изложение новой темы.
Мы сегодня будем продолжать говорить о графике и вначале урока я вам расскажу об использовании в Бейсике случайных чисел. Очень часто счётчик случайных чисел используется именно в графике.
Давайте запишем каким оператором для включения счётчика необходимо воспользоваться:
Этот оператор мы с вами будем записывать в начале программы.
Образно его можно представить так: включили некий прибор, на нём есть табло с перебирающимися числами, и вот эти числа поочереди отображаются на этом табло, как только нам необходимо случайное число мы обращаемся к этому счётчику, и то число которое в данный момент отобразилось, его программа и взяла для дальнейшей обработки. А счётчик сам по себе продолжает без остановки работать.
А для того, чтобы воспользоваться в самой программе случайным числом нужно записать функцию:
где rnd– функция, которая возвращает случайное число одинарной точности между 0 и 1
Но дело в том, что числа между 0 и 1 очень малы и их не всегда удобно использовать, поэтому программисты изменяют интервал. Т.е., если нам в программе нужно использовать целые числа, находящиеся в интервале от 0 до 10,
Функция RND записывается следующим образом:
INT(RND*11) или INT(RND*10+1), поставьте тире и напишите: целые случайные числа от 0 до 10.
(INT пишем для того чтобы выделить целую часть, а *11 или *10+1, потому что крайний правый интервал не входит в область значений, поэтому мы должны добавить 1.)
Так вот, если нам нужно задать случайно координату х, то следует записать
INT(RND*640), поставьте тире и запишите: целые случайные числа от 0 до 640 (и не зависимо от нашего сознания произвольно из счётчика случайных чисел возьмётся любое число от 0 до 639.)
А как вы думаете, если нам случайно нужно задать координату у, какую команду мы для этого запишем?
INT(RND*350), ставим тире и пишем целые случайные числа от 0 до 350.
Как вы думаете, какие случайные числа будут обрабатываться, если функция задана следующим образом:
Нам дана программа, что отобразится на экране в результате её запуска:
А сейчас в тетради запишем задание:
Составить программу изображения звёздного неба, где координаты и цвет звёзд случаен.
(т.е. изобразим на чёрном, ночном небе импровизированные разноцветные звёзды, нарисуем их в виде точек.)
INPUT “ Введи количество звёзд на небе”; N
В программировании существует интересный приём, который позволяет на время задержать картинку на экране перед следующим изменением.
SLEEP 1 ‘ задержка изображения на экране’, т. е. благодаря этой команде мы можем увидеть прорисовку каждой звёздочки.
Итак у нас получилась вот такая программа СЛАЙД 6. Вопросы есть?
Давайте с вами проанализируем вот такую программу: СЛАЙД 7
SCREEN 9– куча окружностей
c = INT(RND* 16) CIRCLE (x, у), г, с
Используя операторы цикла, объекты можно изображать движущимися (т.е. в динамике) Это наглядно нам докажет следующая программа:
Я её назвала движение Солнца по горизонту:
Запишите пожалуйста Задание: изобразить движение окрашенной окружности вдоль оси х.
Объясняю, расписываю на доске
FOR x = 100 TO 600 STEP 10
CIRCLE (0 + x, 250), 80, 14
После сравниваю со слайдом 8!
Если есть время, то переписывают готовую программу со слайда, я её объясняю….
Если времени нет я её просто анализирую..
FOR x = 50 TO 250 STEP 5
LINE (50 + x, 150)-(300+x,150), 0
LINE (300 + x, 150)-(250+x, 130), 0
LINE (300+x, 150)-(250 + x, 170), 0
Ну что ж я надеюсь, что с новым материалом вы разобрались
5. Закрепление по вопросам.
FOR I=10 TO 100 STEP 10
CIRCLE (324, 175), I, 4
6. Определение уровня усвоенности темы учащимися по итогам теста (текст теста приведен в конце документа в 2-х вариантах).
Сейчас каждый возьмите листик который лежит у вас на парте, впишите свою фамилию и имя в свободную строку выделенную для ваших данных, это как вы видите тест.
Сам тест небольшой, но вопросы достаточно сложные поэтому внимательно читайте каждый вопрос и выбирайте тот вариант, который по вашему мнению является верным (я вас прошу обводить в кружок правильные ответы, и после ответа не исправлять, исправление считается ошибкой) На работу с тестом вам отводится 3 минуты. Время пошло.
( Теперь всё внимание на меня, вы сейчас сами поставите себе оценку, я надеюсь, что
честно. Всего 5 вопросов, если всё верно отвечено, то ставим оценку 5, если 4 правильных ответа, то– 4, если 3-то оценка 3, в остальных случаях 2.
…….Потом каждый диктует, поставленные самостоятельно, оценки.)
Ребята передайте пожалуйста листы с тестами, сейчас вы все присядите за компьютеры, а я тем временем скажу вам, что каждый из вас получил.
7. Практическая работа студентов за ПК
Около каждого компьютера лежат напечатанные для практической работы задания:
Набрать в языке программирования QBasic программу имитирующую движение математического маятника (давайте с вами вспомним из раздела физики, что математический маятник это система тел, состоящая из длиной нити-подвеса и тела размер которого пренебрежительно мал по сравнению с нитью.)
Программа изображающая движение маятника в одну сторону в пункте 1 у вас есть, вы её наберёте и Задание № 2 в этой работе
Допишите эту программу таким образом, чтобы маятник двигался обратно.
А сейчас возьмите последний листик, на столе. На них напечатаны отрывки из стихотворений великих русских писателей, домашнее задание заключается в следующем, вы дома прочитаете строки, в которых описаны времена года и та картина, которую вы себе представите средствами QBasic (используя графические функции), её и изобразите на экране. В электронном виде вы принесёте программы, я их просмотрю, оценю. Самые лучшие посмотрим все вместе.
1) Как весел грохот летних бурь,
Когда, взметая прах летучий,
Гроза, нахлынувшая тучей,
Смутит небесную лазурь..
2) Унылая пора, очей очарованье,
Приятна мне твоя прощальная краса.
Люблю я пышное природы увяданье,
В багрец и золото одетые леса.
3) Под голубыми небесами
Великолепными коврами,
Блестя на солнце, снег лежит;
Прозрачный лес один чернеет,
И ель сквозь иней зеленеет,
И речка подо льдом блестит.
4) Уж тает снег, бегут ручьи
В окно повеяло весною…
Засвищут скоро соловьи,
И лес оденется листвою!
Читайте также: