Автор работы: Пользователь скрыл имя, 21 Марта 2013 в 15:13, курс лекций
Система счисления — это совокупность приемов и правил, по которым числа записываются и читаются.
Существуют позиционные и непозиционные системы счисления.
В непозиционных системах счисления вес цифры (т. е. тот вклад, который она вносит в значение числа) не зависит от ее позиции в записи числа.
Пример 10 INPUT “A=”,A
20 PRINT “КВАДРАТ ЧИСЛА”,:A;”РАВЕН”;A^2
Для вывода информации на
печатающее устройство надо
Пример 10 INPUT “ЗНАЧЕНИЕ A,B”,A,B
20 C=(A+B)^2: D=A/B
30 PRINT/0C “C=”;C, “D=”;D, “C+D=”;C+D
5. Оператор ввода информации с клавиатуры. Получить решение задачи на компьютере возможно только тогда, когда в его оперативную память будут введены исходные данные. Сделать это можно с помощью оператора БЕЙСИКа INPUT. Как только в программе встретится оператор INPUT, компьютер приостановит вычисления и на экране дисплея появится знак ? т.е. приглашение оператору для ввода данных с клавиатуры. Работа будет продолжена, если пользователь наберет на клавиатуре значение переменной и нажмет клавишу ENTER.
Правило записи оператора INPUT.
INPUT символьная константа, одна или несколько
пояснительный текст переменных
Пример 10 INPUT “ЗНАЧЕНИЕ =”,X
20 INPUT “СУММА =”,S
6. Операторы передачи управления. Часто в задаче возникает ситуация, когда необходимо перейти к выполнению иной последовательности действий, записанных в другом месте программы. Позволяет это сделать оператор безусловного перехода GOTO и оператор условного перехода IF… THEN…. Правило записи оператора безусловного перехода
GOTO номер Пример GOTO 230
строки
Оператор условного перехода IF… THEN… служит для передачи управления из одного места программы в другое по условию. Этому оператору в блок-схеме соответствует логический блок. Правило записи условного оператора.
IF условие THEN номер строки
В качестве условия используются два арифметических выражения или две переменные, соединенные знаком отношения. Правило записи условия.
переменная или знак переменная или
арифметическое отношения арифметическое
выражение выражение
Знаком отношения может служить любой из перечисленных символов:
< - меньше
> - больше
<= - не больше
>= - не меньше
= - равно
<> - не равно
Пример. Надо составить программу для вычисления формулы в зависимости от условия:
Если A больше или равно B, то C=A-B;
Если A меньше B, то C=A+B.
Закодируем программу на БЕЙСИКе.
10 REM “ВЫЧИСЛЕНИЕ ПО УСЛОВИЮ”
20 INPUT “ПЕРЕМЕННАЯ A=”,A : “ПЕРЕМЕННАЯ B=”,B
30 IF A >= B THEN 50
40 C=A+B : GOTO 60
50 C=A-B
60 PRINT “ПЕРЕМЕННАЯ C=”;C
70 END
7. Оператор цикла. Оператор цикла позволяет организовать цикл, о структуре которого мы подробно говорили выше. В блок-схеме алгоритма этому оператору соответствует несколько блоков. Условное изображение оператора цикла приведено на рисунке. От предыдущих
Блоков
На продолжение
вычислений
Рис. Условное изображение оператора цикла.
Оператор цикла состоит из двух частей – заголовка цикла и конца цикла. Правило записи оператора цикла.
Заголовок FOR параметр = арифмет. TO арифмет. STEP арифмет.
цикла цикла выражение1 выражение2 выражение3
Т Е Л О Ц И К Л А
Конец NEXT параметр
Цикла цикла
Арифметическое выражение1 позволяет задать параметру цикла начальные условия. Арифметическое выражение2 определяет его конечное значение. Арифметическое выражение3 задаёт шаг изменения параметра цикла.
Пример. Надо вычислить формулу A=B2. Закодируем программу на БЕЙСИКе.
10 REM “ВЫЧИСЛЕНИЕ A=B2”
20 INPUT “ЧИСЛО ПОВТОРЕНИЙ N=”,N
30 FOR I=1 TO N STEP 1
40 INPUT “ПЕРЕМЕННАЯ B=”,B
50 A=B^2
60 PRINT “РЕЗУЛЬТАТ A=”;A
70 NEXT I
80 END
Приведем некоторые разъяснения относительно правила записи оператора цикла. В том случае, когда значение шага STEP равно 1, можно пользоваться сокращенной формой записи заголовка цикла, т.е. шаг цикла можно опускать.
Пример. Вместо FOR S=2 TO 10 STEP 1 можно записывать
FOR S=2 TO 10
В качестве параметра цикла может служить только идентификатор числовой переменной. Недопустимо использовать символьную переменную или переменную с индексом, т.е. элемент массива.
Рассмотрим, как организуется цикл при обработке элементов одномерного массива.
Пример. Надо умножить каждый элемент массива A на число B. Полученные значения записать в тот же массив A. Новый массив A вывести на печать.
Составим блок-схему алгоритма.
Программа на БЕЙСИКе этого алгоритма имеет вид.
10 REM “ПЕЧАТЬ МАССИВА A”
20 INPUT “ЧИСЛО B=”,B
30 DIM A(3): N=3
40 PRINT “РАЗМЕРНОСТЬ МАССИВА =”;N
50 FOR J=1 TO N
60 INPUT A(J)
70 PRINT A(J)
80 A(J) = A(J)*B
90 PRINT A(J)
100 NEXT J
110 END
8 Стандартные функции
Стандартные функции – это программы, которые постоянно хранятся в библиотеке стандартных программ компьютера и входят в состав алгоритмического языка.
Стандартные функции можно разделить на два вида:
функция символьной переменной;
математические функции, где аргумент и значение функции являются числами.
Библиотеку стандартных математических программ образуют следующие функции:
SIN(X) - синус ARCSIN(X) – арксинус
COS(X) – косинус ARCCOS(X) –арккосинус
TAN(X) – тангенс ARCTAN(X) –арктангенс
Если аргумент тригонометрической функции надо задать в градусах, то перед выполнением расчетов необходимо задать, а программе оператор SELECT D. Для обратного перевода аргумента в радианы надо записать оператор SELECT R.
SGR(X) – квадратный корень ABS(X) - модуль числа
LOG(X) – логарифм натуральный EXP(X) - экспонента.
Библиотеку стандартных функций символьной переменной образуют следующие функции.
STR(X,N,K) – выделяет часть символьной переменной, где x,N номер с которого начинается выборка из символьной переменной. K – количество выбираемых символов.
LEN(X) - определяет количество символов в символьной переменной X.
NUM(X) - определяет количество символов числа в символьной переменой X.
VAL(X) - преобразует двоичный код первого символа символьной переменой или константы в десятичное число.
9. Модульное
программирование средствами
Ранее рассмотренные конструкции операторов языка БЕЙСИКа являются традиционными для большинства алгоритмических языков. Практически любую программу можно написать на основе тех знаний, которые Вы получили в предыдущих разделах лекции №11. Однако если перед Вами стоит сложная задача с множеством условий и циклов или Вы хотите освоить современный подход к программированию на основе нисходящего проектирования, Вам надо уметь писать программы, состоящие из отдельных модулей, где используются только операторы обращения к этим модулям в соответствии с заданной здесь же логикой.
В чем суть модульного программирования на БЕЙСИКе? А суть состоит в том, что чтобы использовать специальные конструкции, называемыми подпрограммами, которые можно использовать достаточно эффективно. Вся программа делится на две части основную и вспомогательную. Основная часть располагается в начале программы и заканчивается оператором конца END. В основной части производится простейшая обработка информации, организуется обращение к различным модулям с помощью оператора GOSUB. В основной части программы вводятся исходные данные задачи и выводятся результаты решения.
Вспомогательная часть программы состоит из модулей. Каждый модуль начинается оператором DEFFN или номера строки и заканчивается оператором возврата из подпрограммы RETURN. К модулям можно организовать обращение из других модулей, а не только из основной программы.
Структуру программы по модульному принципу можно представить следующим образом:
10 REM ГЛАВНАЯ ПРОГРАММЫ
20 …
30 …
… операторы программы
250 END
260 DEFFN с параметрами
… операторы подпрограммы
320 RETURN
330 … без параметров
… операторы подпрограммы
400 RETURN
…
1500 DEFFN с параметрами
… операторы подпрограммы
1600 RETURN
Подпрограммы на БЕЙСИКе могут быть двух видов: подпрограммы без параметров и подпрограммы с параметрами.
Подпрограммы без параметров позволяют записать многократно повторяющиеся действия с одними и теми исходными данными один раз. Основной принцип здесь следующий: модуль занимает в программе место, начиная с определенного номера строки, и всегда заканчивается оператором возврата из подпрограммы RETURN. Из основной части программы можно перейти к выполнению модуля – подпрограммы с помощью оператора GOSUB, за которым следует номер первой строки, с которой начинается эта программа.
Правило записи оператора обращения к подпрограмме без параметров:
GOSUB номер строки
Возврат из подпрограммы будет произведён автоматически оператором RETURN к тому оператору, который записан за оператором GOSUB. Обращение к модулю может быть организовано из любого места основной программы сколько угодно раз.
Пример В программе надо вычислить несколько раз значение А по формуле A=(B+C)3 и напечатать результат.
Представим эту формулу в виде модуля (подпрограммы без параметров) и поместим её в конце программы. Предположим, что основная программа занимает строки с номера 10 до номера 120. Подпрограмму разместим в строках 130,140,150.
10 …
…
40 GOSUB 130
…
70 GOSUB 130
…
90 GOSUB 130
…
120 END
…
130 A=(B+C)^3
140 PRINT “A=”;A
150 RETURN
Подпрограмма с параметрами используется для записи многократно повторяющихся действий для разных исходных данных. Например, надо вычислить функцию Y=X lnC + кв. корень из C для разных значений X и C. В этом случае запись программы и обращение к ней будут отличаться от предыдущей формы.
Введем новое понятие –
При записи модуля в виде подпрограммы с параметрами надо соблюдать следующие правила.
Каждый модуль имеет своё особое имя в виде целого числа из диапазона 0-255.
Начинаются модули с оператора DEFFN, а затем идет номер, а далее в круглых скобках через запятую перечисляются формальные параметры, например DEFFN целое число (формальные параметры), где в качестве формального параметра используются переменная, константа или арифметическое выражение. Формальными параметрами задают исходные данные подпрограммы.
Оканчиваются модули оператором возврата из подпрограммы RETURN.
Обращение к подпрограмме с параметрами образуется из любого места программы любое количество раз с помощью оператора GOSUB. Возврат из модуля осуществляется автоматически к следующему за GOSUB оператору. Следует помнить, что тип и порядок записи фактических параметров должен быть таким же, как и формальных параметров.
Пример В программе надо вычислить несколько раз значение функции Y=X lnC +C корень кв. из X, для разных значений X,C.
10 INPUT A,B
20 GOSUB 25(A,B): D=Y
…
115 GOSUB 25(2*A,A+B)
116 M=Y