Автор: Пользователь скрыл имя, 23 Марта 2012 в 21:24, курс лекций
Этапы решения задач на ЭВМ. Алгоритм и его свойства. Способы записи алгоритма: словесный способ; структурно-стилизованный способ; блочно-схематический способ; структурограммы Насси-Шнейдермана; программный способ.
Например, X, X12, XX, alfa, risunok_1.
Так же как и константы, переменные могут быть вещественными, целыми, строковыми.
Типы данных. Задание типа данных
Данные в QBasic подразделяются на числовые и текстовые. Тип данных определяет способ размещения соответствующих значений в памяти компьютера. Правильное определение типа данных обеспечивает экономное использование ОП, повышает быстродействие программ и позволяет избежать некоторых специфических ошибок.
Тип данных | Суффикс (представление) | Количество памяти | Диапазон |
Целые (Integer) | % | 2 байта | -32768 32767 |
Длинные целые (Long Integer) | & | 4 байта | -2147483648 2147483647 |
Действительные с одинарной точностью | ! | 4 байта | -3.4Е+38 3.4Е+38 |
Действительные с двойной точностью (Double Precision) | # | 8 байт | -1.8Е+308 1.8Е+308 |
Текстовые (String) | $ | 1 байт для 1 символа | До 32767 символов |
Различные типы данных требуют различного количества памяти. Каждый бит памяти может хранить только одно из двух значений 0 или 1, поэтому все типы данных хранятся в памяти в универсальной двоичной форме.
Тип переменных может быть задан либо явно, либо с помощью оператора DEF, либо по умолчанию.
При явном задании используются суффиксы %, &, !, #, $.
Оператор DEF указывает, что тип переменной будет определяться по первой букве имени переменной
DEFINT
DEFSNG
DEFDBL
DEFSTR
Например, A% B! DEFINT A, P–S, Z.
По умолчанию переменная относится к вещественному типу с обычной точностью. Например, x, a.
Выражения и операции
Выражения состоят из операндов, знаков операций и круглых скобок. Операндом может быть константа, переменная, функция. Последовательность операций, которые необходимо произвести над данными, чтобы получить требуемое значение называется выражением
Осуществляют пять категорий операций:
1. арифметические операции;
2. функциональные операции;
3. операции отношения;
4. логические операции;
5. строковые операции.
1. Арифметические операции в порядке убывания приоритета выполнения:
^ – возведение в степень;
+, - – присваивание знака числу;
*, / – умножение, деление;
\ – целочисленное деление;
MOD – остаток целочисленного деления;
+, - – сложение, вычитание.
2. Функциональные операции. При программировании различных задач часто бывает необходимо вычислить корень квадратный, логарифм и т.д. Вычисление этих и других величин осуществляется посредством подпрограмм, называемых функциями, которые заранее запрограммированы и встроены в транслятор языка. Такие функции называются встроенными функциями или стандартными функциями.
Математическая запись | Запись функции на языке QBasic |
SIN(X) | |
COS(X) | |
TAN(X) | |
ATN(X) | |
LOG(X) | |
LOG10(X) | |
LOG(A) /LOG(B) | |
SQR(X) | |
A^X | |
X^(N/M) | |
ABS(X) | |
EXP(X) | |
COS(X^N)^M | |
Целая часть х | INT(X) |
Выдает случайное число из интервала (0,1) | RND[(X)] |
Знак числа | SGN(X) |
Возвращает число равное целой части (округляет по правилам арифметики тип LONGINT) | CINT(X) |
Дробная часть числа | X-INT(X) |
Округляет число, отбрасывая дробную часть числа тип LONGINT) | FIX(X) |
Увеличивает X на величину Y | X=X+Y |
Уменьшает X на величину Y | X=X-Y |
Функция задается с помощью указателя функции, который записывается в виде имени и аргументов, заключенных в круглые скобки. Если аргумент функции задан в градусной мере, то его нужно перевести в радианную меру .
3. Операции отношения используются для сравнения арифметических выражений. В QBasic существуют шесть операций отношения: . Результатом операции отношения является либо «TRUE» – 1, либо «FALSE» – 0.
4. Логические операции.
NOT – отрицание. NOT A истинно тогда и только тогда, когда A ложно.
AND – логическое умножение. A AND B истинно тогда и только тогда, когда истинно A и истинно B.
OR – логическое сложение. A OR B истинно тогда, когда истинно A или истинно B.
XOR – исключающее или. A XOR B истинно тогда и только тогда, когда значения A и B не совпадают.
EQV – эквивалентность. A EQV B истинно тогда и только тогда, когда A и B одновременно истинны или одновременно ложны.
IMP – импликация. A IMP B принимает значение «ложь», если A истинно, а B ложно, и значение «истина» в других случаях.
A | B | NOT | AND | OR | XOR | EQV | IMP |
1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
Порядок выполнения логических операций задается круглыми скобками и приоритетом логических операций. Приоритет логических операций установлен следующий: сначала выполняются операции отношений, затем логические операции в порядке старшинства: NOT, AND, OR, XOR, EQV, IMP.
1. (-4<=x) AND (x<=4) x=5 (FALSE)
2. x>0 AND y>0 x=2 y=3 (TRUE)
3. x=0 OR x=1 x=5 (FALSE)
4. Строковые операции. Над строками можно осуществлять следующие действия – конкатенация, сравнение строк.
Тексты можно «склеивать» с помощью операции, которая называется конкатенация и обозначается знаком «+» (конкатенация – объединение двух последовательностей в одну).
A$=″FILE″ X$=″34″
B$=″NAME″ Y$=″0″
C$=A$+B$ Z$=X$+Y$
C$=″FILE NAME″ Z$=″340″
Сравнение строк производится при помощи операций сравнения в соответствии с ASCII кодами каждого символа в сравниваемых строках. Если ASCII коды равны, то строки считаются равными. Строка, символы которой имеют большие ASCII коды, считается большей. Если одна из строк короче другой, то она считается меньшей (если до этого места строки были равными). При сравнении учитываются начальные и конечные пробелы. Например, ″дом″<″ком″.
Арифметические выражения
Существует ряд условий для правильной записи арифметических выражений. При составлении сложного выражения, состоящего из нескольких операций необходимо помнить следующие правила:
1. В программировании выражение должно быть записано в одну строку.
2. Операции высокого приоритета выполняются в выражениях раньше операций с низким приоритетом. Операции одного приоритета выполняются последовательно слева направо.
3. Если выражение является дробью и его части (делитель и делимое) содержат несколько операций, необходимо использовать скобки. Скобки меняют порядок выполнения операций.
Запись арифметического выражения | |
в математике | на языке QBasic |
A*B/C | |
(X+2)/(C+D) | |
| 3*A^2+B/4+7.5/(1-A) |
SQR(ABS(A^(2+N))) | |
A^((X+Y)/3) | |
COS(X^4)^3+EXP(X+4*Y) |
Тема 13. Программирование алгоритмов линейной структуры
Структура программы QBasic. Оператор присваивания. Отличия оператора присваивания в математике и информатике. Операторы ввода данных. Оператор вывода данных. Операторы конца. Оператор-комментарий.
Структура программы QBasic
Любую программу на QBasic можно начать с комментария, который будет служить заголовком. Если программы короткие и полностью помещаются на экране, заботиться об экономии места не имеет смысла.
На одной строке можно размещать несколько коротких операторов. Эти операторы необходимо разделять знаком двоеточия (:). Помещать в одной строке целесообразно только группы коротких и логически связанных между собой операторов.
Прежние версии языка Basic (GV- Basic) требуют, чтобы каждая строка программы начиналась с номера. В QBasic это вовсе необязательно. Заканчивают программу оператором конца.
Оператор присваивания
Оператор C=A называется оператором присваивания. Ключевым словом оператора присваивания является слово LET. Его можно опускать, т.к. транслятор идентифицирует его по совокупности идентификатора переменной в левой части и знака присваивания (=).
Формат оператора присваивания:
[LET] C=A,
где С – имя переменной, принимающей новое значение;
А – выражение.
Примеры операторов присваивания:
PAGE=10
X=X+1
C=B
B=(–A+SIN(C)–4*B*X)/(2*C)
AGE$=″20 ЛЕТ″
Во всех случаях вначале вычисляется значение выражения, расположенного справа от знака равенства, а затем числовое или текстовое значение присваивания переменной, имя которой указано слева. Для того, чтобы оператор присваивания выполнялся правильно, необходимо, чтобы значения всех переменных, входящих в выражение, были определены.
Отличия оператора присваивания в математике и информатике
1. В математике выражение A=B означает, что вычисленные значения для A и B должны быть равны и, соответственно, B=A. В QBASIC A=B понимается так, что значение, хранимое в области памяти с именем B, помещается в область памяти с именем А. Поэтому обратное выражение В=А дает совершенно другой результат. Например, после выполнения действий
А=5
В=9
А=В
переменной А будет присвоено значение 9.
2. В математике выражение А=А+1 бессмысленно, поскольку тождество ложно. В программировании это означает, что к значению, хранимому в ячейке А, прибавляется 1, и вновь полученное значение заменяет старое в ячейке А. Например, после выполнения действий