Смекни!
smekni.com

Лекции по информатике 2 (стр. 4 из 5)

Константа - это такой обьект программы, который сохраняет в ней постоянное значение. Тип и значение константы определяются ее записью. Различают два типа числовых констант:

целочисленные и вещественные. Запись чисел близка к естественной. При записи вещественных чисел для отделения целой части от дробной используется точка вместо запятой. Очень большие или очень маленькие числа можно записывать в форме с порядком, где вместо основания степени 10 употребляется буква E.

Примеры записи:

Число Запись на языке Бейсик
7-6.30.37106-5.4*10-8 7-6.30.37 или .371E6 или 0.1E7 и т.д.-5.4E-8 или -.54E-7 и т.д.

При записи целых чисел к числу нужно приписать %, например 40%.

Переменная-это такой обьект программы, который в процессе выполнения программы может иметь различные значения. Для обозначения переменных используются имена, образуемые из букв, цифр и точек. Первым символом имени должна быть буква. Тип переменной может быть задан либо явно, либо с помощью оператора DEF..., либо по умолчанию. Явное задание типа переменной определяется последним символом имени переменной: знак % определяет целый тип, знак $ - строковую переменную.

Массив представляет собой последовательность переменных. Каждый массив имеет имя и размерность. Имена массивов и их тип определяются аналогично простым переменным. Для явного задания массива используется оператор DIM . Например:

30 DIM A20$(6), A2%(2,3), где A20-одномерный массив с данными строкового типа и A2-двумерный массив целого типа.

Стандартные функции. Для вычисления часто употребляемых функций в памяти ЭВМ имеется набор стандартных программ:

Запись наБейсике Математическоеопределение Запись наБейсике Математическоеопределение
ABS(x)TAN(x)ATN(x)COS(x)SIN(x) |x|tn xarctn xcos xsin x EXP(x)LOG(x)SQR(x)SGN(x) ex ln xx1/21, x>00, x=0-1, x<0

В качестве аргумента (в круглых скобках ) можно употреблять любое арифметическое выражение.

Арифметические выражения соответствуют общепринятым алгебраическим выражениям, в которые входят числа, переменные, функции, соединенные знаками арифметических операций

3.3. Операторы языка Бейсик

Оператор присваивания служит для присваивания переменной значения арифметического выражения и имеет вид

LET V= арифметическое выражение (LET можно опустить).

Оператор безусловного перехода имеет вид

GOTO N, где N-номер строки.

Он используется при организации разветвлений.

Условные операторы служат для изменения порядка выполнения операторов в зависимости от какого-либо условия. Они используются для организации циклов и разветвлений и имеют вид

IF условие THEN N или

IF условие GOTO N

IF условие THEN оператор

где условие представляется как

(арифм. выражение) Q (арифм. выражение)

Q одно из отношений <, <=, >, >=, =, <>.

Если условие удовлетворяется, то осуществляется переход к строке с номером N. Если условие не удовлетворяется, то осуществляется переход к оператору, следующему за условным (см. пример 1).

Пример 3.1. Программа табулирования функции y=x2 ln x в интервале [2, 4] с шагом 0,2.

10 X=2

20 Y=X*X*LOG(X) : PRINT X,Y : X=X+0.2

30 IF X<=4 GOTO 20

Операторы цикла -это пара операторов FOR-NEXT. Общий вид операторов

FOR V=A0 TO An STEP H

........................................

NEXT V

где V - неиндексированная переменная - управляющая переменная цикла;

A0, An, H-начальное и конечное значения и шаг изменения переменной цикла.

Если H=1, то STEP 1 можно опустить.

Операторы между FOR и NEXT образуют тело цикла. Если при выполнении оператора FOR обнаружено, что условие завершения цикла выполнено, то управление передается оператору, следующему за оператором NEXT. Это происходит, например, при начальном значении управляющей переменной больше конечного, а приращение имеет положительное значение.

Пример 3.2. Программа вычисления суммы 200 элементов массива ALFA:

210 SUM=0

220 FOR I=1 TO 100

230 SUM=SUM+ ALFA(I)

240 NEXT I

Кроме операторов FOR-NEXT в Бейсике запускается организация цикла по условию с помощью операторов WHILE и WEND. Первым из них цикл начинается, а вторым - завершается. Работа цикла будет завершена тогда, когда логическое выражение в операторе WHILE будет “FALSE”. В этом случае после оператора WHILE управление будет передано оператору, следующему за оператором WEND.

Пример 3.3. Вычисление суммы ряда S=1+1/2+1/4+....+1/2n,пока член ряда не станет меньше 10-6.

10 SUM=1: N=1

20 WHILE 0.5^N>1E-6

30 SUM=SUM+0.5^N

40 N=N+1

50 WEND

Циклы могут быть вложенными друг в друга. Внутренние циклы должны целиком помещаться во внешних . Подряд идущие операторы NEXT могут быть заменены одним NEXT с управляющими переменными всех вложенных циклов, разделенными запятыми.

Пример 3.4. Программа формирования единичной матрицы.

20 DIM A(N,N)

30 FOR I=1 TO N : FOR J=1 TO N

40 IF I<>J THEN 60

50 LET A(I,J)=1 : GOTO 70

60 LET A(I,J)=0

70NEXT J : NEXT I

80 END

Операторы ввода-вывода. Операторы READ (переменные), DATA (числа) присутствуют в программе одновременно. Данные, подлежащие вводу, могут располагаться в одном или в нескольких операторах DATA, но в том порядке, в котором данные должны использоваться оператором READ. Оператор RESTORE обеспечивает возврат в начало списка данных, задаваемых DATA , для многократного считывания.

Пример 3.5.

10 READ A,B,C,D

20 DATA 3.4, 0.3, 10, 1.5

30 RESTORE : READ E,F

Будем иметь: A=3.4, B=0.3, C=10, D=1.5, E=3.4, F=0.3.

Оператор INPUT позволяет вводить данные с клавиатуры дисплея и имеет вид

INPUT(список переменных).

Оператор PRINT (список) выводит на экран или на принтер результаты вычисления. При выводе текста применяют кавычки или апострофы. Арифметическое выражение в списке перед выводом сначала вычисляется. Использование в качестве разделителя запятой, при выводе осуществляет последний в зонном формате - экран разделен на 5 зон по 14 позиций. Если разделитель “;”, то вывод осуществляется в плотном формате через пробел.

Символьные переменные задаются либо с помощью операторов INPUT,READ,DATA, либо оператором присваивания. Строка символов при этом заключается в кавычки. Задаются они буквой или буквой с цифрой с добавлением знака денежной единицы $, например A$=‘Волгоград’.

Пример 3.6. Вывод городов и их индексов.

10 PRINT “Город”; TAB(20); “Индекс”

20 READ A$

30 IF A$=“ ” THEN END

40 READ B$

50 PRINT A$; TAB(20); B$

60 GOTO 20

70 DATA Волгоград, 400 000, Воронеж, 394 000, “ ”

Здесь для установки позиций использована встроенная функция TAB(N), где N-целое число, номер позиции.

Подпрограммы (группа операторов) служат для выполнения одного и того же алгоритма в разных местах программы. Передача управления к подпрограмме осуществляется с помощью операторов GOSUB N, где N- номер строки и RETURN (обозначает возврат к программе).

Для прекращения выполнения программы служит оператор STOP, который в отличие от END не закрывает используемых в программе файлов и рекомендуется применять его при отладке программы.

Пример 3.7. Программа обращения матрицы методом Гаусса.

05 REM ‘ Обращение матрицы методом Гаусса

10 PRINT ‘Задайте размерность N=‘

15 INPUT N : DIM A(N,N), P(N,N)

20 DIM B(N), C(N,N), G(N), X(N)

25 FOR I=1 TO N : FOR J=1 TO N

30 PRINT ‘Введите A’ I’, ‘J’=‘ : INPUT A(I,J)

35 LET P(I,J)=A(I,J) : NEXT J : NEXT I

40 FOR J2=1 TO N : FOR I=1 TO N

50 LET B(I)=0 : NEXT I

60 LET B(J2)=1

70 FOR J3=1 TO N : FOR J4=1 TO N

80 LET A(J3,J4)=P(J3,J4) : NEXT J4 : NEXT J3

85 GOSUB 100 : FOR I=1 TO N

90 PRINT ‘X’I’, ‘J2’=‘ X(I)

95 NEXT I : NEXT J2 : STOP

100 LET N1=N-1 : FOR K=1 TO N1

110 IF ABS (A(K,K))>0 GOTO 200

120 LET K1=K+1 : FOR M=K1 TO N

130 IF ABS (A(M,K))>0 GOTO 150

140 GOTO 210

150 FOR L=1 TO N : LET V=A(K,L) :

LET A(K,L)=A(M,L)

160 LET A(M,L)=V : NEXT L : NEXT M

170 LET V=B(K) : LET B(K)=B(M) :

LET B(M)=V

200 LET G(K)=B(K)/A(K,K) : LET K1=K+1

210 FOR I=K1 TO N : LET B(I)=B(I)-A(I,K)*G(K)

220 FOR J1=K TO N : LET J=N-J1+K :

LET C(K,J)=A(K,J)/A(K,K)

225 LET A(I,J)=A(I,J)-A(I,K)*C(K,J)

230 NEXT J : NEXT I : NEXT K

240 LET M=N : LET X(M)=B(M)/A(M,M)

250 LET M=M-1 : LET S=0 : FOR L=M TO N1

260 LET S=S+C(M,L+1)*X(L+1) : NEXT L

270 LET X(M)=G(M)-S : IF M>1 GOTO 250

280 RETURN : END

3.4. Некоторые общие и системные команды языка Бейсик

Запись на Бейсике Обозначение
CATALOG Чтение каталога с ГМД. По этойдирективе на экран дисплея выводится каталог ГМД.
SAVE имя файла Записывает программу из памяти на ГМД; если на ГМД уже есть файл с таким именем, он теряется и заменяется на новый.
RENAME файл1, файл 2 Переименование файлов. Здесь файл 1 - старое имя файла, файл 2 - новое имя файла.
DELETE имя файла Уничтожение файлов.
LOCK имя файла Защита файла на запись. Файл, защищенный от записи, в каталоге помечается (*).
UNLOCK имя файла Отменяет защиту от записи в файл.
LOAD имя файла Загружает программу в памятьс ГМД. Программа и данные, ранее находящиеся в памяти,теряются.
RUN имя файла Загружает и запускает программу с ГМД. Программа и данные, находящиеся в памяти ранее, теряются.
RUN Запускает програмы со строки с наименьшим номером; для запуска с промежуточной точки можно указать № строки (н-р, RUN200).
NEW Устанавливает начальное состояние памяти, стирает программу и данные.
STOP Останавливает программу с выдачей текста строки, в которой произошел останов.
END Завершает программу.

3.5.Некоторые команды редактирования языка Бейсик

Запись на Бейсике Обозначение
LIST Выдача текста программы; выдает весь текст
LIST 100, 200 Выдает строки с номерами 100 и 200
LIST 100, Выдает строки с номерами не меньше 100
LIST , 200 Выдает строки с номерамине больше 200
LIST 150 Выдает строку 150
REM

Комментарий до конща строки, при выполнении

игнорируется

VTAB Y Установливает курсор на строку экрана с номером Y (0£Y£31)
HTAB X

Перемещает курсор на X-ю позицию текущей экранной строки (нумерация строк и позиций на экране сверху вниз

и слева направо)

TAB (X)

Применяется в оператоне PRINT, перемещает курсор на

X-ю позицию

HOME Очищается экран, курсор перемещается в верхний левый угол экрана
FLASH Включает мерцающий режим вывода текста
INVERSE Включает инверсный (черный по светлому фону) режим вывода текста
NORMAL Включает прямой(светлый по черному) режим вывода текста
SPEED=X Задает скорость вывода мекста на экран (0£X£255)

3.6.Некоторые команды графики языка Бейсик