- •Раздел 2 Программирование на языке
- •Лабораторная работа № 1
- •1 Порядок решения задач на компьютере
- •2 Разработка линейных программ
- •Input "Ввести d, k,n"; d, k,n
- •3 Операторы read, datа, restore
- •3 Запуск qbasic, ввод и редактирование программ
- •Лабораторная работа № 2
- •2 Программы ветвления
- •Input X
- •Лабораторная работа № 3
- •1 Операторы цикла qb
- •2 Примеры программ с циклами
- •3 Контрольные вопросы
- •4 Задание
- •Лабораторная работа № 4
- •1 Программа вычисления арифметического ряда
- •2 Программы вычисления факториалов
- •3 Алгоритм итерационного цикла
- •4 Контрольные вопросы
- •5 Задания
- •Лабораторная работа № 5
- •1 Программа "цикл в цикле"
- •2 Программа "цикл и ветвление"
- •3 Программа "цикл в цикле и ветвление"
- •4 Контрольные вопросы
- •5 Задания
- •Лабораторная работа № 6
- •1 Одномерные массивы - векторы
- •2 Двумерные массивы – матрицы. Обработка массивов
- •3 Контрольные вопросы
- •4 Задания
- •Лабораторная работа № 7
- •1 Функции пользователя
- •3 Процедуры. Операторы sub и end sub
- •Лабораторная работа № 8
- •1 Графические операторы qbasic
- •2 Программа рисования графических объектов
- •3 Построение графиков функций
- •4 Контрольные вопросы
- •5 Задание
2 Разработка линейных программ
Структура программы
Программа на языке QBASIC состоит из строк, формат строки:
[№ строки/метка] оператор[:оператор]…[ ' комментарий]
Примечание: Элементы в квадратных скобках могут отсутствовать.
Таким образом, в каждой строке может быть № строки или метка оператора, должен быть один оператор (или несколько операторов, записанных через двоеточие) и после знака "Апостроф" ( ' ) возможен комментарий - текстовая часть строки с пояснениями, которая не
выполняется программой. Комментарий содержит пояснения для программиста. Количество строк в программе от 0 до 65533 (216).
Ввод каждой строки должен заканчиваться нажатием клавиши
[Enter], при этом выполняется перевод строки в программе, её ввод с экрана в оперативную память. Если формула введена правильно, то её запись расширяется в строке, а маленькие буквы превращаются в заглавные.
Метка может содержать буквы и цифры, должна начинаться с буквы и заканчиваться двоеточием ( например, М1:, Вариант14:).
Каждый оператор записывается в своём формате, например, операторы присваивания t = 54, x = - .356, z = 2E-09, оператор ввода INPUT x, оператор вывода PRINT alpha,у.
Запись выражений
Выражения (формулы) записываются только линейно, в одну строку, без дробей, индексов, показателей степени, пределов изменения, например:
x1-4 + e-3x → x1^ (-4) + exp(-3*x);
→sin(2*x)/((-TAN(z))^2;
→SQR (a^2 – b^2);
lgD + ln5 → LOG10(D) + log(5) и т.д.
Стандартные функции языка QB содержатся в его программе, поэтому их можно писать маленькими (строчными) буквами, после нажатия клавиши [Enter] они станут большими.
Аргумент функции обязательно берётся в скобки.
Типичные ошибки при записи выражений:
Выражение cos3x, запись cos^3(x) неверна, в этом случае в третью степень возводится буква s, а не весь косинус. Правильная запись: (cos(x))^3.
Выражение +ab, запись x + y / -t*z + ab неверна, т.к.:
на знаменатель делится только у, а не весь числитель,
два знака операций ("/" и "–") не могут стоять рядом,
пропущен знак "*" между а и b.
Правильная запись: (x + y) / (-t*z) + a*b.
Выражение е2х, запись ЕХР^(2*х) неверна, т.к. возводится в степень не экспонента е, а буква Р. Правильная запись: ЕХР(2*х).
Выражение |x|, запись abc(x) неверна, т.к. функция названа по слову "absolute", правильная запись: abs(x).
Корень n-й степени, например, вычисляется как а^(3/8), функции ctg в языке нет, поэтому его нужно определять, как 1/tg(…) или как cos(…)/sin(…) .
Приоритет выполнения арифметических операций в выражениях – cодержимое скобок, *, /, +, -, логические И, ИЛИ, НЕ.
Скобки (,) изменяют порядок вычислений.
Стандартные функции QBASIC
Наиболее часто в программах используются следующие основные функции (табл. 1)
Таблица 1
Функция |
Запись или значение |
SGN (X)
|
Функция знака. Результат функции: если Х – положительный аргумент, то (+1); если Х - отрицательный аргумент, то (-1); если Х - нулевой аргумент, то 0. |
ABS (X) |
|x| |
INT (X) |
Определяет целую часть аргумента X |
SIN (X)
|
sin X |
COS(X) |
cos X |
TAN(X) |
tgX |
ATN(X) |
arctgX |
SQR(X) |
Квадратный корень положительного аргумента Х |
LOG(X) |
ln X |
LOG10(X) |
lg X |
RND(X) |
Генерирует псевдослучайное число или совокупность чисел в интервале (0 - 1). |
EXP(X) |
еX, экспонента аргумента Х |
CINT(a) |
Округление числа а. |
a MOD b
|
Определяет остаток от деления а на b. Пример: Y=A MOD (B+2) |
FIX(a) |
Отбрасывание дробной части числа а. |
Аргументы тригонометрических функций должны быть заданы в радианах, градусную меру нужно перевести в радианы (π радиан составляют 1800, 10=π/180 [рад]). Это можно сделать прямо под знаком функции, буква π в языке обозначена как PI.
Пример: cos 340 → cos(34*PI/180)
Стандартные функции могут быть вложены друг в друга, количество (глубина) вложений не ограничена.
Пример: → SQR(ABS(EXP(SIN(2*X))));
Количество открывающихся и закрываюшихся скобок должно быть одинаково.
Операторы ввода
В языке QB используются для ввода следующие операторы:
1 Оператор присваивания – присваивает значение числовой или символьной переменной, например:
а) Х = 2.14;
б) T$ = "SUMMA";
в) L = x^4 + ABS(x).
Оператор служит для присваивания переменным числовых , символьных или смешанных значений - примеры а) и б), а также для записи выражений – пример в).
2 Оператор INPUT служит для ввода данных , имеет формат
INPUT <список>
где <список> – последовательность переменных через запятую.
Пример: INPUT A,B,N,J