Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
205
Добавлен:
10.02.2015
Размер:
361.47 Кб
Скачать

Статический ввод данных

Если программа постоянно работает с некоторым набором числовых или символьных констант, то можно объявить такой набор блоком данных:

DATA список констант

В списке констант через запятую указываются значения констант, например:

10 DATA 5,25,19.6,30,12,"ABC"

20 DATA "BASIC","Pascal",25.9

В программе можно записать произвольное число операторов DATA. В блок данных по порядку включаются все константы и в памяти создаётся специальный указатель блока данных. Во время работы программы этот указатель содержит порядковый номер константы в блоке данных. При запуске программы указатель показывает на первую константу из блока данных.

Для присвоения значений констант из блока данных переменным используется оператор READ:

READ список переменных

В списке переменных через запятую указываются имена переменных, которым присваиваются значения констант из блока данных. Типы переменных в списке READ должны соответствовать типам констант из блока данных. Например:

READ a%, m%, t

Переменным a%, m%, t присвоятся значения 5, 25 и 19.6. Указатель перемещается на 4-ую константу. Оператор

READ c, sc%, a$

Присвоит переменным c, sc%, a$ значения 30, 12, "ABC" и указатель переместится на "BASIC" и т.д.

Как несколько раз прочитать одни и те же данные из блока данных? Для восстановления указателя блока данных используется оператор RESTORE:

RESTORE номер строки или метка

где номер строки должен указывать на оператор DATA.

Если не указан номер строки, следующий после RESTORE, READ начнет чтение с первой константы блока данных. Например:

RESTORE

READ vk%, s%

RESTORE 20

READ z1$, z2$

vk%, s% присвоятся значения 5 и 25, а переменным z1$, z2$ - значения "BASIC" и "Pascal".

Блок данных удобен в тех случаях, когда несколько раз используется одна и та же последовательность констант.

Пример.Составить программу нахождения высоты равнобедренной трапеции, у которой основания 5м и 11м, а боковая сторона 4м. Данные ввести статически.

DATA 5,11,4

READ BC,AD,AB

AE=(AD-BC)/2 'Основание треугольника

HT=SQR(AB^2-AE^2)

PRINT"Высота трапеции =";HT

END

Команды управления ходом выполнения программы

Очень часто, в зависимости от некоторых условий, приходится изменять последовательность выполнения команд действия.

Команды управления ходом выполнения программы делятся на три группы:

  1. Команды безусловного перехода;

  2. Команды условного перехода;

  3. Команды организации циклов.

Безусловная передача управления

Формат:

GOTO номер строки или метка

Управление передается команде, помеченной номером строки или меткой.

Например:

GOTO W

W: PRINT"Решение получено"

Примечание.В среде программистов употребление GOTO принято считать дурным тоном. Чрезмерное пристрастие к GOTO запутывает программу.

Условная передача управления

Конструкцию условной передачи управления можно записать в одном из двух форматов - блочном (в несколько строк) или линейном (в одной строке).

Линейный формат:

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

Блочный формат:

IF логическое выражение THEN

<блок команд 1>

[ELSE

<блок команд 2>]

END IF

Выполнение. Если логическое выражение принимает значение "Истина", выполняется блок команд 1, если логическое выражение - "Ложь", выполняется блок команд 2. Если ELSE отсутствует, то выполняется команда, стоящая за END IF.

Пример1

INPUT "Сколько будет 2x2 ",X

IF X=4 THEN PRINT "Правильно" ELSE PRINT "Не правильно"

END

Пример2

Вычислить значение функции Y

Линейный формат:

INPUT "Введите значение аргумента Х ",X

IF X<=1 THEN Y=X-1/2*X^2+3 ELSE Y=1.05*(X-1)^2

PRINT "При значении Х=";X;" функция Y=";Y

END

Блочный формат:

INPUT "Введите значение аргумента Х ",X

IF X<=1 THEN

Y=X-1/2*X^2+3

ELSE

Y=1.05*(X-1)^2

END IF

PRINT "При значении Х=";X;" функция Y=";Y

END

Возможна вложенность одного условного оператора в другой.