Общая характеристика алгоритмического языка QuickBASIC
НАЧАЛЬНЫЕ СВЕДЕНИЯ
Назначение и применение ЭВМ
ЭВМ предназначена для автоматической обработки цифровой, алфавитно-цифровой информации. Можно условно выделить три крупные области применения ЭВМ:
1. Информационные системы и средства коммуникации - поиск, обработка, хранение, передача информации, создание банка данных, расширение доступа к образованию, облегчению быта и т. д.
2. Автоматизация и управление различными видами работ человека - автоматизированные системы научных исследований (АСНИ), система автоматизации проектных работ (САПР), автоматизированные системы управления производством (АСУП), гибкие автоматизированные производства (ГАП) и др.
3. Математическое моделирование объектов и процессов разнообразной природы, вычислительный эксперимент.
Этапы решения задач на ЭВМ
Основными этапами решения задач с применением ЭВМ являются:
1. Постановка задачи и ее математическое описание.
2. Выбор численных методов решения (построение методики решения).
3. Алгоритмизация.
4. Программирование.
5. Отладка программы.
6. Непосредственное решение задачи на ЭВМ.
7. Обработка результатов расчета и их применение.
Разработка алгоритма - необходимый этап в процессе решения задачи на ЭВМ. Алгоритм – конечная последовательность точно определенных действий, приводящих к решению поставленной задачи.
Алгоритмы представляются в виде блок - схемы и в виде операторной записи при помощи символов - операторов или в виде перечисления этапов решения обычным текстом.
Блок - схема - графическое изображение алгоритма в виде последовательности блоков с помощью геометрических фигур. При составлении блок – схем используются следующие геометрические фигуры:
- начало и конец блок - схемы;
- блок ввода и вывода информации;
- блок вычисления арифметических выражений;
- блок проверки условий;
- блок вызова подпрограммы;
- ссылка (перенос блок - схемы на другую страницу).
Примеры алгоритмов смотрите на рисунках 2.1 - 2.7.
ОПИСАНИЕ ЯЗЫКА QuickBASIC
Общая характеристика алгоритмического языка QuickBASIC
Алгоритмический язык QuickBASIC используется преимущественно в режиме диалога человека и ЭВМ.
Программа на QuickBASICе состоит из последовательности строк. В одной строке может содержаться один или несколько операторов, разделенных символом “ : ” двоеточие.
Символы языка QuickBASIC
В QuickBASICе используются следующие символы:
1) двадцать шесть заглавных латинских букв A, B, C, D, ...., Z;
2) десять арабских цифр 0, 1, 2, ...., 8, 9;
3) знаки: “ . “ точка, “ , “ запятая, “ : “ двоеточие, “ ; “ точка с запятой,
“ " “ кавычки, “ ‘ “ апостроф;
4) знаки арифметических операций: “ + “ сложение, “ – “ вычитание,
“ * “ умножение, “ / “ деление, “ ^ “ возведение в степень;
5) круглые скобки: “ ( “ открывающая скобка, “ ) “ закрывающая скобка;
6) “└┘” пробел;
7) знаки операций отношения: “ < “ меньше, “ > “ больше, “ >= “ больше или равно, “ < > “ или “ > < “ не равно, “ <= ” меньше или равно, “ = “ равно;
8) знаки: “ $ “ знак доллара, “ & “ коммерческое “ и “, “ @ “ коммерческое “ эт “, “ \ “ косая черта слева направо, “ % “ процент, “ # “ номер, “ ? “ вопросительный знак, “ ! “ восклицательный знак;
9) буквы русского алфавита “ А, Б, В, ...., Я “.
Таблица 2.1
Примеры записи чисел на QuickBASICе
Число | Запись на QuickBASICе | Тип | Кол-во занимаемой памяти | Диапазон |
3,46 | 3.46 | Фиксированная запятая | 4 байта | от 10 до 10 |
0,0058 | 58Е-4 | Плавающая запятая | 4 байта | от 10 до 10 |
15Е 4 | Плавающая запятая | 4 байта | от 10 до 10 | |
75 % | Целый | 2 байта | от -32768 до 32767 |
Переменные. Для обозначения переменных в QuicBASICе используются имена, состоящие из буквы и цифр. Первым символом всегда является буква.
Например, A, A2, C. В качестве букв используются буквы латинского алфавита. Для целочисленных переменных, значениями которых являются целые числа, к имени добавляется знак % или &, для вещественных переменных обычной точности !, для вещественных переменных двойной точности #, для символьных переменных $.
Например, A%, A2%, C%.
Стандартные функции. Стандартные функции (см. таблицу 2.2) имеют аргумент, заключенный в круглые скобки. В качестве аргумента можно употреблять любое арифметическое выражение.
Таблица 2.2
Стандартные функции
№ | Название функции | Математическое определение | Запись на QuickBASICе |
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. | Синус Косинус Тангенс Арктангенс Показательная функция Натуральный логарифм Десятичный логарифм Знак сигнатуры Абсолютная величина Квадратный корень Целая часть числа Датчик случайных чисел Число π | sin x cos x tg x arctg x e ln x lg x |x| [x] π | SIN(X) COS(X) TAN(X) ATN(X) EXP(X) LOG(X) LOG(X)/LOG(10) SGN(X) ABS(X) SQR(X) INT(X) RND(X) 4*ATN(1) |
Замечание. Аргумент функции RND можно опустить. Аргумент тригонометрической функции задается в радианах. Для перевода значения, заданного в градусах, в радианы можно использовать формулу:
<значение в радианах> = <значение в градусах> * π/180.
Для арктангенса значение угла находится в интервале (-π/2; π/2).
Для получения других обратных тригонометрических функций можно использовать формулы
arcsin(x)=arctg(x/ ),
arccos(x)=arctg( )/x),
arcctg(x)=arctg(1/x).
Арифметические выражения
Для обозначения арифметических операций используются знаки:
“ + ” сложение, “ - “ вычитание, “ * ” умножение, “ / ” деление,
“ ^ ” возведение в степень, “ \ ” деление нацело, MOD остаток от деления.
Если в арифметическом выражении имеется несколько различных арифметических операций, то порядок их выполнения задается правилами приоритета:
1. возведение в степень.
2. умножение, деление.
3. сложение, вычитание.
Примеры записи арифметических выражений
sin x SIN(X^3)^2
X^(4/3)
(A^3+EXP(2*COS(X)))/(X^2-Y^3)^(1/3)
Программы линейной
INPUT a, b, c1
Операторы DATA, READ. Оператор READ имеет вид
READ <список переменных>
Например.
READ a, b, c1
Оператор DATA имеет вид
DATA <список констант>.
Например.
DATA 1.6, -8, 1Е-3
Оператор DATA содержит данные, которые при выполнении операторов READ будут вводиться в переменные, перечисленные в списке ввода операторов READ.
Оператор RESTORE. Данные из области DATA можно считывать, повторно используя, оператор RESTORE.
Общий вид оператора
RESTORE <арифметическое выражение>.
Значение целой части арифметического выражения определяет номер данного, с которого начнется повторное считывание. Если арифметическое выражение отсутствует, осуществляется возврат к началу списка.
Пример.
DATA 10.6, 0.1, 15, 1.2
READ A, B, C, D
RESTORE
READ E, F
. . . . . . .
Оператор PRINT. Используется для вывода на экран дисплея результатов вычислений. Общий вид оператора
PRINT <список>
Список вывода может содержать имена переменных, числа, арифметические выражения и тексты. Если в списке вывода содержатся арифметические выражения, то они сначала вычисляются, а затем выводятся вычисленные значения.
Для удобства восприятия выводимых результатов экран условно разделен на 5 зон, по 14 позиций каждая, и вывод каждого следующего данного осуществляется в следующую зону. Такая форма вывода обеспечивается использованием “ , “ (запятой) в качестве разделителя в списке вывода. Такой способ вывода с использованием в качестве разделителя запятой называется выводом в зонном формате.
Если в качестве разделителя используется “ ; “, то вывод осуществляется в так называемом плотном формате, т.е. каждое следующее данное выводится после предыдущего через пробел.
Оператор присваивания. Оператор присваивания служит для присваивания переменной значения арифметического выражения и имеет вид
LET V = <арифметическое выражение>
(LET можно опустить), где V - переменная, которой присваивается значение.
При выполнении оператора присваивания вычисляется выражение в правой части и присваивается переменной в левой части V.
Оператор END. Оператор END указывает на физический конец программы. При выполнении оператора END закрываются все открытые файлы и останавливается выполнение программы.
Пример 1. Вычислить значение функции
,
где , , m - номер варианта, n - номер группы.
Рис. 2.1. Блок - схема линейного вычислительного процесса
QuickBASIC - программа для примера 1 (см. блок – схему линейного вычислительного процесса на рис. 2.1.):
REM LR-1-1, m=13, n=5
INPUT "M,N"; M,N
X=EXP(-(N/M)^(1/2))
T=LOG(M/SQR(N))+7.21
Y=(COS(X^2-SQR(T))+SIN(X-T^(1/3)))/(SIN(T-X^(1/4))^2)+1.731)
PRINT X, T, Y
END
После ввода текста программы в память ЭВМ для ее запуска нужно выбрать меню RUN и в нем команду START или Shift+F5. На экране появится текст M,N? - после чего нужно ввести значения M,N и нажать "Enter". После этого ЭВМ напечатает на экране значения X, T, Y.
На языке QuickBASIC.
Для составления разветвляющихся программ используются операторы безусловной и условной передачи управления (см. рис. 2.2). В разветвляющихся вычислительных процессах последовательность выполнения операций заранее не определена и ставится в зависимость от результатов проверки заданных условий.
Оператор безусловного перехода. Общий вид оператора
GO TO N,
где N метка. Этот оператор передает управление первому оператору в строке с меткой N.
Условные операторы. Условные операторы служат для изменения порядка выполнения операторов в зависимости от какого - либо условия.
Условные операторы могут использоваться для организации циклов и разветвлений.
Общий вид условных операторов
1) IF «условие» THEN (или GO TO) N;
2) IF «условие» THEN «действие»;
3) IF «условие» THEN «действие 1» ELSE «действие 2»;
IF «условие 1» THEN
«Блок 1»
ELSEIF «условие 2» THEN
«Блок 2»
. . .
ELSE
«Блок K»
ENDIF
где условие имеет вид
(арифметическое выражение 1) θ (арифметическое выражение 2)
θ - одна из операций отношения <, <=, >, >=, =, <>;
N - метка; действие - любой оператор QuickBASICа, в том числе это может быть другой условный оператор.
Сочетание THEN IF позволяет "вкладывать" условия друг в друга. Например,
IF Q >= 3.5 THEN IF Q < 7.4 THEN 20
Действие условного оператора заключается в следующем:
если условие удовлетворяется, то в первом случае осуществляется переход к строке с меткой N=20, во втором и в третьем случаях выполняется оператор, следующий за THEN.
Если условие не удовлетворяется, то в первом случае осуществляется переход к оператору, следующему за условным. Во втором случае осуществляется переход к первому оператору следующей строки,
т. е. все операторы в строке, следующие за условным оператором, при этом игнорируются. В третьем случае выполняется действие, записанное после ключевого слова ELSE.
Возможна одновременная проверка нескольких условий, соединенных словами:
OR - условие считается выполненным, если выполняется хотя бы одно из проверяемых условий;
AND - условие выполнено, если выполняются все проверяемые условия одновременно;
XOR - условие выполнено, если выполняется ровно одно из двух проверяемых условий.
Пример 3. Вычислить
где .
Рис. 2.2. Блок - схема разветвляющегося вычислительного процесса
QuickBASIC - программа для примера 3 (см. блок – схему разветвляющегося вычислительного процесса на рис. 2.2.):
REM LR-2-1, m=13, n=5
INPUT "m,n="; m,n
X=3*COS(m/n)
IF X<0 THEN
Y=X^2+3*X-7
ELSEIF X>=0 AND X<1 THEN
Y=2*X-1
ELSE
Y=EXP(X)
ENDIF
PRINT "X="; X, "Y="; Y
END
На языке QuickBASIC.
Циклическим называется вычислительный процесс, в котором отдельные этапы решения задачи многократно повторяются за счет передачи управления на начало этой группы этапов. Управление количеством повторений этих этапов происходит за счет использования параметра цикла (управляющей переменной).
Циклические алгоритмы применяются при решении задач на табулирование функций (составление таблицы значений функции), на вычисление суммы и произведений, по обработке массивов.
Операторы цикла. Для организации циклов в QuickBASICе применяются операторы FOR и NEXT. Общий вид операторов
FOR V = TO STEP
. . . . . . . . . .
NEXT V
где v - любая неиндексированная переменная - управляющая переменная цикла; , , - начальное и конечное значения и шаг изменения управляющей переменной цикла - любые арифметические выражения. Если =1, то конструкцию STEP можно опустить. Операторы, расположенные между операторами FOR и NEXT, образуют тело цикла и выполняются многократно.
Выполнение цикла, образованного операторами FOR и NEXT, заключается в следующем: - переменной V присваивается начальное значение и она сравнивается с конечным значением . Если при положительном шаге удовлетворяется условие ≤ , или при отрицательном шаге удовлетворяется условие ≥ , то выполняются операторы, расположенные между операторами FOR и NEXT, и по оператору NEXT осуществляется возврат к началу цикла. Значение V изменяется на , т.е. V=V+ , и снова проверяется условие. Если условие удовлетворяется, то тело цикла выполняется повторно. В противном случае происходит выход из цикла и переход к оператору, следующему за NEXT.
Пример.
FOR I = 4 TO 20 STEP 2
PRINT I, I^2
NEXT I
END
Оператор PRINT USING. Дает возможность задать точный образ вывода отдельных элементов списка.
Оператор PRINT USING имеет вид
PRINT USING "формат"; <список>
где формат задает образ распечатки.
При выводе числовых значений предусматривается символ # для каждой выводимой цифры, а также знака числа. Если предполагается вывод с порядком, то для порядка предусматриваются символы ^ ^ ^ ^. Все остальные символы, включая пробелы, обозначают сами себя и выводятся без изменений. Для вывода числа, содержащего дробную часть, в формате задается столько символов #, сколько всего цифра требуется вывести, и точка для отделения цифр целой части от дробной. То есть использование формата позволяет отсечь при печати ненужные цифры. Результат при этом округляется.
Пример.
PRINT USING "#.## ##.#"; 5.629, -1.1
RUN
5.63 -1.1
Если в формате задан только один образ, то он может использоваться многократно для каждого элемента в списке вывода. При этом вывод каждого следующего элемента будет осуществляться в новую строку.
Использование оператора PRINT USING при выводе массивов позволяет выводить массивы в удобной для восприятия форме.
Пример.
DIM F2(4,4)
P = .5
FOR I=1 TO 4
FOR J=1 TO 4
P=P+1: F2(I,J) = P
PRINT USING "##.##"; F2(I,J);
NEXT J : PRINT
NEXT I : PRINT
END
RUN
1.50 2.50 3.50 4.50
5.50 6.50 7.50 8.50
9.50 10.50 11.50 12.50
13.50 14.50 15.50 16.50
Оператор PRINT осуществляет только возврат каретки перед выводом новой строки.
Пример 4. Составить таблицу значений функции y при изменении значений переменной x на отрезке [-2,2] с шагом h=0,5:
Рис. 2.3. Блок - схема циклического вычислительного процесса
QuickBASIC - программа для примера 4 (см. блок – схему циклического вычислительного процесса на рис. 2.3.):
REM LR-3-1, m=13, n=5
INPUT "M,N"; M,N
FOR X=-2 TO 2 STEP 0.5
Y=(EXP(-X)+5*M)/(X+N)
PRINT "X="; X, "Y="; Y
NEXT X
END
Пример 5. Составить таблицу значений функции z=f(x;y) при изменении значений переменной xна отрезке [a,b] с шагом h , переменной y на отрезке [c,d] с шагом l: , где a=1, b=2, h=0,2; c=2, d=4, l=0,2.
QuickBASIC - программа для примера 5 (см. блок – схему циклического вычислительного процесса на рис. 2.4.):
Рис. 2.4. Блок - схема циклического вычислительного процесса
REM LR-3-2, m=13, n=5
INPUT "M,N"; M,N
PRINT " X/Y ";
FOR Y=2 TO 4 STEP 0.2
PRINT USING "##.##"; Y;
NEXT Y: PRINT
FOR X=1 TO 2 STEP 0.2
PRINT USING "##.##"; X;
FOR Y=2 TO 4 STEP 0.2
Z=(X^2-Y^2+M)/(X^2+Y^2)/N
PRINT USING "##.##"; Z;
NEXT Y : PRINT
NEXT X : PRINT
END
Пример 6. Определить произведение .
QuickBASIC - программа для примера 6 (см. блок – схему циклического вычислительного процесса на рис. 2.5.):
REM LR-3-3, m=13, n=5
INPUT "M,N"; M,N
P=1
FOR K=1 TO 15
P=P*N^2/SQR(M*k^2+1)
NEXT K
PRINT "P="; P
END
Обработка массивов данных
Массивом называется упорядоченная последовательность величин, обозначаемая одним именем. Упорядоченность заключается в том, что элементы массива располагаются в последовательных ячейках памяти.
1 |
| |||
Рис. 2.5. Блок - схема циклического вычислительного процесса
Чтобы получить доступ к нужной ячейки, нужно указать имя массива и его индекс. Индекс записывается в круглых скобках после имени массива.
Если нужно присвоить, например, значение 5 третьему элементу массива A, нужно написать
A(3) = 5
При выполнении этого оператора будет найден массив A, отсчитана третья ячейка памяти и в нее присвоено значение 5.
Индекс может быть переменной. Если нужно всем пяти элементам массива A присвоить значение 5, можно написать
FOR I = 1 TO 5
A(I) = 5
NEXT I
Имя массива образуется так же как имя переменной. В QuickBASICе массивы могут быть одномерные и двумерные и т.д. В двумерном массиве каждый элемент идентифицируется номером строки и номером столбца, на пересечении которых он расположен. При записи элемента массива индекс (индексы) записывается в круглых скобках после имени массива. Если индексов несколько, то они разделяются запятой. Массивы определяются в операторе описания массивов DIM. В операторе DIM указываются имя массива и в круглых скобках верхние границы изменения индексов, которые должны быть целыми положительными числами.
Например, оператор
DIM A(3), B(4,5)
описывает два числовых массива: A состоящий из трех элементов и B содержащий 4 строки и 5 столбцов.
В соответствии с оператором DIM в памяти ЭВМ выделяется место для размещения этих массивов. Так, для массива A будут выделены три ячейки памяти, для массива B - двадцать ячеек. Под двумерный массив выделяется линейный участок памяти, в котором массив располагается по строкам.
В QuickBASICе обработка массивов, а также ввод – вывод массивов осуществляется поэлементно.
Например, ввод одномерного массива A, содержащего 10 элементов, можно осуществить при помощи операторов
DIM A(10)
FOR I = 1 TO 10
INPUT A(I)
NEXT I
Ввод двумерного массива B(4,5) можно осуществить при помощи операторов
DIM B(4,5)
FOR I = 1 TO 4
FOR J = 1 TO 5
INPUT B(I,J)
NEXT J
NEXT I
Ввод двумерного массива в приведенной программе осуществляется по строкам.
Вывод двумерных массивов для повышения наглядности рекомендуется осуществлять по строкам, начиная вывод каждой новой строки массива в новую строку экрана. Например, вывод массива B(4,5) можно осуществить при помощи операторов
DIM B(4,5)
. . . . . . . .
FOR I = 1 TO 4
FOR J = 1 TO 5
PRINT B(I,J);
NEXT J : PRINT
NEXT I : PRINT
. . . . . . . .
Пример 7. Даны два массива xi и yi (i=1,10). Составить программу для вычисления
QuickBASIC - программа для примера 7 (блок – схему программы на обработку массивов см. на рис. 2.6):
REM LR-4-1, m=13, n=5
DIM X(10), Y(10)
INPUT "M,N"; M,N
DATA 8.12, -3.54, 7.73, -0.37, -76.8, 99, 54.87, 1.61, 58.3, 9.74
DATA 7.46, 63.74, -5.83, 7.66, -33.8, 3.99, 154.7, 31.22, -9.33, 21.12
FOR I=1 TO 10
READ X(I)
NEXT I
FOR I=1 TO 10
READ Y(I)
NEXT I
S=0
FOR I=1 TO 10
S=S+X(I)^2-N*Y(I)
NEXT I
T=M*S
PRINT " T= "; T
END
Рис. 2.6. Блок - схема программы на обработку массивов
Пример 8. Найти сумму элементов каждой строки массива C(4,5).
QuickBASIC - программа для примера 8 (см. блок – схему циклического вычислительного процесса с применением двумерного массива на рис. 2.7.):
REM LR-4-2, m=13, n=5
DIM C(4,5), S(4)
DATA 2, 4, 6, 8, 10
DATA -1, -3.4, -6, 7, 9
DATA -2, -4, 6, -8, -10
DATA 1, 3, 5.1, 12, 15
FOR I = 1 TO 4
FOR J = 1 TO 5
READ C(I,J)
NEXT J, I
FOR I = 1 TO 4
S(I)=0
FOR J = 1 TO 5
S(I) = S(I)+C(I,J)
NEXT J
PRINT S(I);
NEXT I : PRINT
END
Рис. 2.7. Блок - схема циклического вычислительного процесса с применением двумерного массива
OUTPUT - перезапись в файл;
INPUT - чтение файла;
BINARY - режим ввода/вывода.
Если вы открыли файл для дополнения, то это делается следующим образом:
OPEN "FILE.TXT" APPEND AS #1
a$="your text here"
w=344,9
PRINT #1, a$
PRINT #1, w
CLOSE #1
В результате программа допишет в файл FILE.TXT две строки, в первой - значение переменной a$, во второй - значение переменной w. Рекомендуется в конце программы ставить CLOSE, тогда она автоматически закрывает все файлы. Если не закрыть файл, то у вас не будет к нему доступа, в нем ничего не изменится и т.д., команда CLOSE закрывает все файлы и проблем не возникнет.
Для чтения из файла используется оператор INPUT #:
OPEN "FILE.TXT" FOR INPUT AS #1
INPUT #1, D$
INPUT #1, R
CLOSE #1
PRINT D$
PRINT R
CLOSE
Еще одно хорошее свойство - команда FREEFILE - указывает следующий свободный номер для файлов, когда у вас открыто несколько файлов и вы думаете какой еще придумать номер - не мучайтесь, пишите:
n=FREEFILE
open "name" for append as #n
...
close #n
Пример. Найти все массива C(5,5)., большие по модулю 2.
Сформируем файл “data” содержащий элементы массива с помощью оператора PRINT #:
DIM C(5,5)
open “data” for output as #1
FOR I = 1 TO 4
FOR J = 1 TO 5
INPUT X
PRINT #1,X
NEXT J, I
close #1
Для решения нашей задачи элементы массива считываем с файла “data” с помощью оператора INPUT #.
Результаты запишем в файл “rez”.
open “data” for input as #2
open “rez” for output as #3
FOR I = 1 TO 5
FOR J = 1 TO 5
INPUT #2, C(I,J)
IF ABS(C(I,J))>2 THEN PRINT #3 C(I,J)
NEXT J, I
CLOSE
END
Подпрограммы.
Обособленную группу операторов, которую можно выполнять многократно, обращаясь к ней из различных мест программы, называют подпрограммой. Чтобы подпрограмма при обращении к ней выполнялась каждый раз с новыми данными, ее нужно составить в общем виде, а исходные данные для работы передавать в переменные подпрограммы перед обращением к ней.
Подпрограмма-функция.
FUNCTION имя [(список параметров) STATIC]
[Операторы подпрограммы]
имя = выражение
END FUNCTION
QuickBASIC - программа для примера 2:
FUNCTION f(x,y)
REM LR-5-2, m=13, n=5
f = cos(x^2+y^2)
END FUNCTION
DECLARE FUNCTION f(x,y)
REM Подпрограмма-функция
INPUT m, n
x=m/n: y=-2*n: f1=f(x,y)
x=3*(m+n): y=-5.5*m: f2=f(x,y)
z=(f1+f2)/2/(m+n)
PRINT “z=”; z
END
Подпрограмма общего вида.
SUB имя [(список параметров)] [STATIC]
Операторы подпрограммы
END SUB
[CALL] имя подпрограммы [(список аргументов)]
QuickBASIC - программа для примера 2:
SUB c(x,y,f)
REM LR-5-3, m=13, n=5
f = cos(x^2+y^2)
END SUB
DECLARE SUB c(x,y,f)
REM Подпрограммаобщего вида
INPUT m, n
x=m/n: y=-2*n: CALL c(x,y,f1)
x=3*(m+n): y=-5.5*m: CALL c(x,y,f2)
z=(f1+f2)/2/(m+n)
PRINT “z=”; z
END
Подпрограмма GO SUB.
Обращение к подпрограмме осуществляется оператором
GOSUB N
где N - номер строки, с которой начинается подпрограмма.
Подпрограмма размещается в последовательных строках, начиная с N - й. Последним оператором, выполняемым в подпрограмме, должен быть оператор RETURN. По оператору RETURN осуществляется возврат в то место программы, из которого произошло обращение к подпрограмме, а именно к оператору, следующему за GOSUB N. Подпрограмма может содержать обращения к другим подпрограммам.
QuickBASIC - программа для примера 2:
REM LR-5-4, m=13, n=5
INPUT m, n
x=m/n: y=-2*n: GOSUB 1: f1=f
x=3*(m+n): y=-5.5*m: GOSUB 1: f2=f
z=(f1+f2)/2/(m+n)
PRINT “z=”; z
END
1 REM ПодпрограммаGOSUB
f = cos(x^2+y^2)
RETURN
END
РЕЦЕНЗИЯ
на методические указания по курсу "Информатика" для самостоятельной работы студентов всех специальностей. Основы программирования Габбасова Ф.Г., Гатауллина И.Н.
Данные методические указания предназначены для самостоятельной работы студентов всех специальностей и используются при выполнении лабораторных и контрольных работ по курсу "Информатика" на языке QuickBASIC.
Методические указания позволяют выполнять студентам всех специальностей лабораторные и контрольные работы самостоятельно.
Считаю, что данные методические указания могут быть опубликованы.
Доктор физ.-мат. наук,
Профессор, зав. кафедрой ВМ ______________Р.Б.Салимов
НАЧАЛЬНЫЕ СВЕДЕНИЯ
Назначение и применение ЭВМ
ЭВМ предназначена для автоматической обработки цифровой, алфавитно-цифровой информации. Можно условно выделить три крупные области применения ЭВМ:
1. Информационные системы и средства коммуникации - поиск, обработка, хранение, передача информации, создание банка данных, расширение доступа к образованию, облегчению быта и т. д.
2. Автоматизация и управление различными видами работ человека - автоматизированные системы научных исследований (АСНИ), система автоматизации проектных работ (САПР), автоматизированные системы управления производством (АСУП), гибкие автоматизированные производства (ГАП) и др.
3. Математическое моделирование объектов и процессов разнообразной природы, вычислительный эксперимент.
Этапы решения задач на ЭВМ
Основными этапами решения задач с применением ЭВМ являются:
1. Постановка задачи и ее математическое описание.
2. Выбор численных методов решения (построение методики решения).
3. Алгоритмизация.
4. Программирование.
5. Отладка программы.
6. Непосредственное решение задачи на ЭВМ.
7. Обработка результатов расчета и их применение.
Разработка алгоритма - необходимый этап в процессе решения задачи на ЭВМ. Алгоритм – конечная последовательность точно определенных действий, приводящих к решению поставленной задачи.
Алгоритмы представляются в виде блок - схемы и в виде операторной записи при помощи символов - операторов или в виде перечисления этапов решения обычным текстом.
Блок - схема - графическое изображение алгоритма в виде последовательности блоков с помощью геометрических фигур. При составлении блок – схем используются следующие геометрические фигуры:
- начало и конец блок - схемы;
- блок ввода и вывода информации;
- блок вычисления арифметических выражений;
- блок проверки условий;
- блок вызова подпрограммы;
- ссылка (перенос блок - схемы на другую страницу).
Примеры алгоритмов смотрите на рисунках 2.1 - 2.7.
ОПИСАНИЕ ЯЗЫКА QuickBASIC
Общая характеристика алгоритмического языка QuickBASIC
Алгоритмический язык QuickBASIC используется преимущественно в режиме диалога человека и ЭВМ.
Программа на QuickBASICе состоит из последовательности строк. В одной строке может содержаться один или несколько операторов, разделенных символом “ : ” двоеточие.
Символы языка QuickBASIC
В QuickBASICе используются следующие символы:
1) двадцать шесть заглавных латинских букв A, B, C, D, ...., Z;
2) десять арабских цифр 0, 1, 2, ...., 8, 9;
3) знаки: “ . “ точка, “ , “ запятая, “ : “ двоеточие, “ ; “ точка с запятой,
“ " “ кавычки, “ ‘ “ апостроф;
4) знаки арифметических операций: “ + “ сложение, “ – “ вычитание,
“ * “ умножение, “ / “ деление, “ ^ “ возведение в степень;
5) круглые скобки: “ ( “ открывающая скобка, “ ) “ закрывающая скобка;
6) “└┘” пробел;
7) знаки операций отношения: “ < “ меньше, “ > “ больше, “ >= “ больше или равно, “ < > “ или “ > < “ не равно, “ <= ” меньше или равно, “ = “ равно;
8) знаки: “ $ “ знак доллара, “ & “ коммерческое “ и “, “ @ “ коммерческое “ эт “, “ \ “ косая черта слева направо, “ % “ процент, “ # “ номер, “ ? “ вопросительный знак, “ ! “ восклицательный знак;
9) буквы русского алфавита “ А, Б, В, ...., Я “.