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

Формат записи вложенных условных операторов

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

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

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

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

……………………..

[ELSE

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

END IF

Пример3

Составить программу вычисления функции:

1 вариант

IF Z<0 THEN

F=Z-5/Z^2

ELSEIF Z<=1 THEN

F=Z^2-1

ELSE

F=1/(1-Z)

ENDIF

PRINT "F=";F

END

2 вариант

IF Z<0 THEN F=Z-5/Z^2

IF Z<=1 AND Z>=0 THEN F=Z^2-1

IF Z>1 THEN F=1/(1-Z)

PRINT "F=";F

END

Для самостоятельного решения:

Составить программу определения кислотности раствора с помощью лакмусовой бумажки. Напомним, что, если бумажка окрашивается в красный цвет - раствор кислотный; синий - раствор щелочной; не меняет цвет - раствор нейтральный.

Множественный выбор (select case)

Формат

SELECT CASE арифм_выражение или симв_выражение

CASE условие 1

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

CASE условие 2

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

……………….

[CASE ELSE

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

END SELECT

Условие оператора CASE можно указать в одном из трех форматов:

  1. CASE константа 1, константа 2, …

  2. CASE IS знак_отношения константа

  3. CASE константа 1 TO константа 2

Константы в условии должны быть того же типа, что и выражение в SELECT CASE.

Алгоритм множественного выбора заключается в следующем:

  • вычисляется значение выражения, записанного в SELECT CASE.

  • проверяется, удовлетворяет ли это значение одному из указанных в CASE условий

  • если значение удовлетворяет какому-то условию, выполняется блок команд, следующий за данным CASE.

Пример

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

SELECT CASE A

CASE 1,5

PRINT "А равно 1 или 5"

CASE IS >5

PRINT "А больше 5"

CASE -8 TO 2.5

PRINT "А не меньше -8, но не больше 2.5"

CASE else

PRINT "Ни одно условие не выполняется"

END SELECT

После выполнения того или иного блока команд управление передается команде, следующей за ENDSELECT.

Работа с датой и временем

Функция DATE$

Выдается текущая дата, зарегистрированная в компьютере. Формат даты: ММ-ДД-ГГГГ.

Например

PRINT DATE$

Выведется текущая дата: 15-09-2000

Функция TIME$

Выдается текущее системное время, зарегистрированное в компьютере. Формат времени: ЧЧ:ММ:СС (часы, минуты, секунды).

Например

PRINT TIME$ , на экране выдается текущее время.

Циклы

В языке BASIC предусмотрено два основных способа организации циклов:

  • повторение блока команд заданное количество (число) раз (цикл со счетчиком);

  • циклическое повторение блока команд, пока выполняется (или не выполняется) некоторое условие.

Цикл со счетчиком (for…next)

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

Формат

FOR счетчик=E1 TO E2 [STEP E3]

Блок команд

NEXT счетчик

счетчик (параметр)- числовая переменная;

E1 - начальное значение счетчика;

E2 - конечное значение счетчика;

E3 - шаг изменения счетчика. По умолчанию этот шаг равен 1;

Блок команд - набор операторов, предназначенных для повторения.

Выполнение. Если E3 >0, то цикл продолжается все время, пока счетчик < или = E2. Если E3 <0, то цикл продолжается все время, пока счетчик > или = E2.

Примеры

  1. FOR I=1 TO 5

PRINT I;

NEXT I

Результат: 1 2 3 4 5

Тело цикла будет выполняться 5 раз. Шаг изменения счетчика по умолчанию равен 1.

  1. FOR I=1 TO 5 STEP 2

PRINT I;

NEXT I

Результат: 1 3 5

  1. Обратный цикл

FOR I=5 TO 1 STEP -1

PRINT I;

NEXT I

Результат: 5 4 3 2 1

  1. FOR I=5 TO 1

PRINT I;

NEXT I

Проверка выхода из цикла производится в начале цикла, поэтому цикл не выполнится ни разу.

Ограничения при использовании оператора цикла FOR…NEXT:

  1. Не изменяйте значение параметра цикла внутри цикла

FOR I=1 TO 5

I=I+1 ' НЕЛЬЗЯ!

NEXT I

  1. Никогда не передавайте управление внутрь цикла, это может привести к непредсказуемым результатам.

GOTO 10 ' НЕЛЬЗЯ!

FOR I=1 TO 5

10 INPUT A

S=S+A

NEXT I

Досрочный выход из цикла

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

Формат команды выхода:

EXIT FOR

Например

FOR I=1 TO 10

INPUT "Введите значение параметра";F

IF F=100 THEN EXIT FOR

S=S+F

NEXT I

PRINT "Значения "

Подсчет:

Сумма

Количество

Произведение

S=0

K=0

P=1

S=S+A

K=K+1

P=P*A

Пример1. Подсчитать сумму 10 значений переменной A.

S=0

FOR I=1 TO 10

INPUT "Введите значение переменной";A

S=S+A 'Подсчет суммы значений переменной A

NEXT I

PRINT "Сумма ="; S

Пример 2. Подсчитать количество положительных чисел и произведение отрицательных чисел из N введенных.

INPUT “Введите количество значений”;N

К=0

P=1

FOR I=1 TO N

INPUT "Введите значение переменной";A

IF A>0 THEN K=K+1

IF A<0 THEN P=P*A

NEXT I

PRINT"Количество положительных чисел =";K

PRINT"Произведение отрицательных чисел =";P

Домашнее задание:

  1. Подсчитать сумму положительных элементов, не превышающих значения 10 из N введенных.

  2. Подсчитать количество мальчиков, рост которых превышает 165 см и количество девочек, рост которых не превышает 165.

Практическое занятие

Пример 1. Рассчитать и вывести на печать значения функции Y=5/X при изменении аргумента X от -5 до 5 с шагом 2.

FOR X=-5 TO 5 STEP 2

Y= 5/X

PRINT "X=";X, "Y=";Y

NEXT X

Пример 2. Дан ряд чисел 100, 55, -1000, 20, 5, 8, 33, 48. Найти количество пар чисел квадрат разности которых <100.

DATA 100, 55, -1000, 20, 5, 8, 33, 48

K=0

FOR I=1 TO 8 STEP 2

READ A,B

IF (A-B)^2 < 100 THEN K=K+1

NEXT I

PRINT "Количество пар чисел квадрат разности которых <100 =";K

Пример 3. Найти максимальное значение из N введенных. Вывести максимальное значение и его индекс.

INPUT "Введите количество значений";N

INPUT "Введите первое значение";A

MAX=A : IN=1

FOR I=2 TO N

PRINT "Введите "; I; "-ое значение"

INPUT A

IF A>MAX THEN MAX=A : IN=I

NEXT I

PRINT "Максимальное значение =";MAX

PRINT “Индекс максимального значения =”; IN

Домашнее задание:

  1. Определить максимальное значение среди положительных элементов изN введенных.

  2. Подсчитать значения функции f(x)=1-х2 на заданном интервале [-0,5; 0,5] с шагом 0,1.