Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lec_Inf_1k.doc
Скачиваний:
31
Добавлен:
23.04.2019
Размер:
386 Кб
Скачать
☆

Тема 3. Основные приемы программирования

НА ЯЗЫКЕ BASIC

3.1. ОПИСАНИЕ ДАННЫХ

3.1.1. Алфавит

Любой язык, будь то язык разговорный или язык програм-мирования, имеет свой алфавит для записи слов и предложений. Алфавит BASICа включает следующие составляющие:

  1. Заглавные и строчные буквы латинского алфавита

  2. Цифры от 0 до 9

  3. Заглавные и строчные буквы русского алфавита для использования лишь в комментариях

  4. Специальные знаки: разделители (. , : …), знаки арифметических операций (+,-,*,/,^ ), знаки отношений ( =,<,> ), символы объявления типа данных ( %,&,!,#,$ ).

3.1.2. Переменные

Л юбая программа обязательно использует некоторые данные. Эти данные могут либо изменяться в процессе выполнения программы, и тогда они называются переменными, либо не изменяются и тогда они называются константами. Каждая переменная обозначается именем, которое обязательно начинается с буквы, например, name, A1. Приведем классификацию данных с точки зрения языка BASIC:

Из приведенной классификации видно, что все переменные в BASICе подразделяются на 4 группы. Кроме того в 1-й и 3-й группах дополнительно различают 4 типа переменных (целые, длинные целые, вещественные обычной точности, вещественные двойной точности). Переменные из 2-й группы образуют отдельный символьный или строковый тип. Для переменных 4-й группы типы определяются пользователем и поэтому их число не ограничено. Переменные различных типов по-разному представляются в машине, например, для их хранения отводится разное количество ячеек ОЗУ (объемы памяти) и по-разному обрабатываются.

Пример: операция сложения z = x + y

  1. x, y, z – числовые переменные, если х = 2, y = 3, то z = 5

  2. x, y, z – символьные переменные, то z = 23

В связи с этим в программе тип переменных должен быть объявлен.

№

Операторы объявления

Суф-фикс

Объем памяти

Тип

1

DEFINT A

A%

2 байта

Целые

2

DEFLNG A

A&

4 байту

Длинные целые

3

DEFSNG A

A!

4 байта

Вещественные обычной точности

4

DEFDBL A

A#

8 байт

Вещественные двойной точности

5

DEFSTR A

A$

Зависит от числа символов в пере- менной

Символьные строковые

Возможны два приема объявления:

  1. с помощью оператора объявления

2) с помощью суффикса.

Оператор объявления размещается в начале программы, а суффикс добавляется к имени переменной в качестве последнего символа.

3.1.3. Переменные массивы

Переменная массив – это группа однотипных переменных, имеющая регулярную структуру. Отдельные переменные в массиве называются его элементами. Массивы бывают одномерными, двумерными и т.д. Одномерный массив – это строка из его элементов. Каждый элемент имеет номер (индекс). Так, например, если массив имеет имя V, то его i-й элемент обозначается V(i). Объявляется массив с одновременным использованием оператора DIM и суффикса, определяющего тип.

Пример. Одномерный целочисленный массив из 4-х элементов (2,1,3,5) объявляется следующим образом: DIM V%(4) – в скобках число элементов.

Д вумерный массив – это таблица (матрица) из его элементов. Каждый элемент имеет 2 номера (индекса) – номер строки и столбца, на пересечении которых он размещается.

Пример. Двумерный массив W из 9-ти вещественных элементов обычной точности объявляется следующим образом: DIM W!(3,3) – в скобках числа строк и столбцов. Элемент, находящийся в i-й строке и j-м столбце обозначается как W!(i,j).

3.2. ОПЕРАЦИИ И ВЫРАЖЕНИЯ

Операции служат для записи выражений.

Выражение – это запись последовательности операций над данными. В BASICе существуют 5 групп операций:

  1. Арифметические операции: +, -, *, /, ^

  2. Операции отношений: =, <, >, <>. Они применяются для записи проверяемых условий, например, x = 0, y > 1.

  3. Логические операции: NOT (не), AND (и), OR (или) и т.д. Они применяются для записи сложных проверяемых условий, например,

X = 0 AND Y > 1.

  1. Функциональные операции. Они подразделяются на встроенные и определяемые пользователем. Примеры встроенных функциональных операций (функций): тригонометрические и алгебраические функции

Правило обращения к функции: имя-функции (числовое выражение).

Пример. SIN(1) – синус, SQR(числовое выражение) – корень квадратный

  1. Строковые операции.

Пример. Сравнение строк (сравнение кодов символов) "АА" < "ББ". Примечание: значения строковых (символьных) переменных заключаются в кавычки.

3.3. ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ

Текст в любом языке складывается из предложений. Этими предложениями в языках программирования являются операторы. Главными элементами оператора являются ключевые слова и аргументы. Называют операторы по основным ключевым словам. Правила записи оператора называется его форматом. В свою очередь формат оператора записывается по определенным правилам. Они состоят в следующем:

  1. Ключевые слова записываются прописными буквами.

  2. В угловые скобки заключаются аргументы оператора.

  3. В квадратные скобки заключаются необязательные элементы оператора.

Рассмотрим последовательно основные операторы BASICа. Сначала те, что необходимы при программировании линейных алгоритмов.

3.3.1. Операторы присваивания

Данный оператор присваивает переменной некоторое значение. Возможны два варианта оператора. В простейшем случае он имеет следующий формат:

<переменная> = <выражение> y = a * x + b.

Во втором варианте оператора присваиваются значения сразу нескольким переменным. При этом фактически используются 2 оператора READ и DATA. Формат оператора имеет вид:

READ <переменная> [,<переменная>]…

DATA <константа> [,<константа>]…

Пример. READ x, y

DATA 2,3.5

При исполнении оператора первой переменной после READ присваивается значение первой константы после DATA, второй переменой – значение второй константы и т.д.

3.3.2. Операторы ввода – вывода

Операторы ввода-вывода обеспечивают обмен информацией между памятью и внешними устройствами.

Ввод данных с клавиатуры осуществляется с помощью оператора INPUT его формат имеет вид:

INPUT [<"приглашение"> {; или ,}] <переменные>

печатает знак "?" без знака "?"

Оператор приостанавливает исполнение программы, выводит на экран "приглашение", поясняющее обычно, какие данные и в каком порядке надо вводить, и ждет ввода значений переменных. После нажатия ENTER при вводе программа переходит к исполнению следующего оператора.

Пример. В программе: INPUT "Введите значение х = ", х

На экране: Введите значение х = _

Вывод данных на экран дисплея осуществляется с помощью оператора PRINT. Его формат имеет вид:

PRINT [<список выражений>]

Пример. В программе: INPUT "Введите значение х =", х

PRINT "х в квадрате равно"; x^2

На экране: Введите значение х =

х в квадрате равно 25

Рекомендации по оформлению программы:

  1. Размещать в каждой строке по одному оператору. Это облегчает отладку. Если в строке больше одного оператора, то они разделяются двоеточием.

  2. Сопровождать программу комментарием, что облегчает ее понимание. Комментарием считается весь текст до конца строки после ключевого слова REM или апострофа '.

  3. Начинать программу с оператора CLS очистки экрана.

  4. Заканчивать программу оператором END останова программы.

Пример линейной программы. Вычислить

y = [2 (x2 + 10) + 3 (x3 + 5)] / [ 4 (x2 + 10) + 5 (x3 + 5)]

Алгоритм Программа

CLS

REM

DEFSNG x, A, B, y

INPUT ""

A = x ^ 2 + 10

B = x ^ 3 + 5

y = (2 * A + 3 * B) / (4 * A + 5 * B)

PRINT "y = "; y

END

3.4. ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ

"Ветвление" программы позволяет осуществить условные операторы, основным из которых является оператор IF. Этот оператор может быть записан двояким образом – в виде линейной и блочной форм. Линейная форма записывается в виде строки, блочная – в виде столбца. Формат линейной формы имеет вид:

IF <логическое выражение> THEN <операторы 1> [ELSE <операторы 2>]

Здесь "операторы 1" выполняются, когда логическое выражение истинно, а "операторы 2" – когда ложно. Заметим, что как среди "операторов 1", так и среди "операторов 2" могут быть условные операторы. Пример разветвляющейся программы. Вычислить ф ункцию

C LS

REM С разветвлением

DEFSNG a,b,c,x,y,

INPUT "Введите значения

a, b, c, x", a, b, c, x

IF x >= 0 THEN y = a*x+ b ELSE y = a*x^2 + c

PRINT " y = "; y

END

3.5.ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ

Для организации в программе циклов используются операторы цикла, одним из которых является оператор FOR … NEXT. Этот оператор используется для организации циклов с заранее известных числом повторений. Формат оператора имеет вид:

FOR <счетчик>=<начало> TO <конец> [STEP <шаг>]

<операторы цикла>

NEXT <счетчик>

З десь "счетчик" – это переменная, которая при выполнении цикла пробе-гает интервал значений ["начало","конец"] с шагом "шаг". Если шаг = 1, то блок STEP может быть опущен, а "счетчик" в этом случае отсчитывает число повторений операторов цикла. Логика работы оператора FOR … NEXT может быть представлена блок-схемой.

Первое исполнение опера-торов цикла происходит при значении счетчика "начало". После каждого очередного исполнения операторов цикла значение счетчика увеличивается на величину шага. После превышения счетчиком значения "конец" исполнение цикла прекращается.

Пример. Вычислить сумму из слагаемых вида: ui (x) = (x + i) / (i + 1)

CLS

REM

DEFSNG x, y, u

INPUT "x n", x, n

y = 0

FOR i = 1 TO n

u = (x + i) / (i + 1)

y = y + u

NEXT i

PRINT y

END

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]