Файл: regeda_v_v_regeda_o_n_osnovy_programmirovaniya_na_vba.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 02.12.2019

Просмотров: 3118

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

то

 

операторы

 

за

 

THEN

 

пропускаются

 

и

 

выполняются

 

операторы

 

за

 

ELSE

если

 

они

 

есть

затем

 

программа

 

переходит

 

к

 

следующему

 

оператору

Оператор

 

IF

 

и

 

все

 

связанные

 

с

 

ним

 

операторы

включая

 

следующие

 

за

 

ELSE

должны

 

быть

 

в

 

одной

 

программной

 

строке

Если

 

же

 

целесообраз

-

но

 

разместить

 

этот

 

оператор

 

в

 

нескольких

 

экранных

 

строках

то

 

в

 

конце

 

каждой

 

экранной

 

строки

 

нужно

 

поместить

 

символ

 

подчеркивания

 (

 _ 

). 

В

 

этом

 

случае

 

следующая

 

строка

 

будет

 

рассматриваться

 

как

 

продолжение

 

предыдущей

Допускается

 

вложенность

 

операторов

 

IF

ограниченная

 

только

 

од

-

ной

 

строкой

при

 

этом

 

ELSE

 

соответствует

 

последнему

 

не

 

закрытому

 

опе

-

ратору

 

THEN

Оператор

 

 

IF a=b THEN IF b=c THEN PRINT "A=C" ELSE PRINT "A< > C" 

будет

 

печатать

 

"A < > C"

 

при

 A= B 

и

 B< >C.

 

Например

программа

реализующая

 

алгоритм

приведенный

 

на

 

рис

. 2.2., 

с

 

помощью

 

строчного

 

оператора

 

IF

 

будет

 

иметь

 

следующий

 

вид

INPUT "

Введите

 

значения

 X, a, b "; X,a,b 

IF x<=a THEN z=0.5*x^2+1 ELSE IF x>=b THEN_ 

z=(tan(x))^2  ELSE  z= cos(x) 
  LPRINT 

 END 

2.6.2.

 

Блочный

 

оператор

 

IF

 

располагается

 

в

 

нескольких

 

строках

 

и

 

имеет

 

следующий

 

формат

IF x [ , ] THEN  
 

. . . 

операторы

 

 

[ELSEIF x [ , ] THEN 

 

. . . 

операторы

 ] 

       . . . 
 [ELSE 
 

. . . 

операторы

 ] 

END  IF 

где

 

x

 

 

целое

 

выражение

При

 

выполнении

 

этого

 

блока

 

сначала

 

проверяется

 

истинность

 

выра

-

жения

 

в

 

операторе

 

IF

Если

 

оно

 

ложно

то

 

по

 

порядку

 

проверяется

 

выра

-

жения

 

в

 

каждом

 

из

 

следующих

 

за

 

ним

 

операторов

 

ELSEIF

 (

их

 

может

 

быть

 

сколько

 

угодно

). 

Как

 

только

 

находится

 

истинное

 

выражение

выполняются

 


background image

операторы

следующие

 

за

 

соответствующим

 

оператором

 

THEN

после

 

чего

 

выполнение

 

блока

 

IF

 

прекращается

 

и

 

управление

 

передается

 

на

 

оператор

следующий

 

непосредственно

 

за

 

завершающим

 

END IF

Если

 

никакое

 

из

 

проверенных

 

условий

 

ELSEIF

 

не

 

справедливо

то

 

выполняются

 

операторы

 

за

 

ELSE

если

 

они

 

есть

После

 

чего

 

выполнение

 

блока

 

IF

 

прекращается

В

 

первой

 

строке

 

после

 

ключевого

 

слова

 

THEN

 

не

 

должно

 

быть

 

боль

-

ше

 

ничего

  (

так

 

компилятор

 

отличает

 

IF

-

блок

 

от

 

сточного

 

оператора

 

IF

). 

Кроме

 

того

ничего

 

не

 

должно

 

быть

 

в

 

строке

 

вслед

 

за

 

словом

 

ELSE

IF

-

блок

 

может

 

быть

 

вложенным

т

.

е

любой

 

из

 

операторов

следую

-

щий

 

за

 

всяким

 

THEN

 

или

 

ELSE

может

 

содержать

 

другой

 

IF

-

блок

IF

-

блок

 

должен

 

завершаться

 

ключевым

 

словом

 

END IF

с

 

пробе

-

лом

Программа

реализующая

 

алгоритм

приведенный

 

на

 

Рис

. 2.2, 

с

 

по

-

мощью

  

IF

-

блока

будет

 

иметь

 

следующий

 

вид

  INPUT 

"

Введите

 

значение

 a,b,X "; a,b,x 

IF x<=a THEN 
  Z=0.5*X^2+1 
 ELSEIF 

x>a 

AND x<b THEN 

  Z=COS(X) 
 ELSE 
  Z=(TAN(X))^2 
END IF 
  LPRINT 

"Z=";Z 

  END 

2.6.3.

 

Оператор

 

SELECT

 

имеет

 

следующий

 

формат

 SELECT 

CASE 

  CASE 

список

 

сравнений

 

 

 

 

операторы

 

  [CASE 

список

 

сравнений

 

 

 

 

операторы

 

 

[CASE ELSE  . . . 

 

 

 

операторы

 END 

SELECT 

где

 

x

 

 

или

 

числовое

 

или

 

символьное

 

выражение

список

 

срав

-

нений

 –

 

это

 

одно

 

или

 

несколько

 

сравнений

в

 

которых

 

неявно

 

участвует

 

x

 

и

 

явно

 

элементы

 

такого

 

же

 

типа

Сравнения

 

могут

 

включать

 

равенство

 


background image

(

знак

 

равенства

 

при

 

этом

 

может

 

быть

 

упущен

), 

неравенство

соотношение

 

"

больше

 

чем

и

  "

меньше

 

чем

", 

принадлежность

 

диапазону

 ("

от

 ... 

до

 ..."). 

Несколько

 

сравнений

 

в

 

одном

 

CASE

  (

список

 

сравнений

связаны

 

между

 

собой

 

операцией

 

логического

 "

ИЛИ

". 

Например

CASE  <a  

 

'  

неравенство

 

CASE  83  

 

'  

равенство

 

CASE  a TO 88  

'

  

диапазон

 

CASE  10,a     

'

два

 

сравнения

 

на

 

равенство

'

связанных

 

неявно

 

операцией

 

ИЛИ

 

CASE  a TO 17,23

  

'

комбинация

 

сравнений

связанных

 

'

неявно

 

операцией

 

ИЛИ

 

Если

 

хотя

 

бы

 

одно

 

сравнение

 

в

 

некотором

 

CASE

 

оказывается

 

спра

-

ведливым

то

 

выполняются

 

все

 

операторы

 

вплоть

 

до

 

следующего

 

CASE

после

 

чего

 

управление

 

передается

 

на

 

оператор

следующий

 

за

 

END  

SELECT.

  

Если

 

ни

 

в

 

одном

 

CASE

 

нет

 

сравнения

являющегося

 

истинным

то

 

выполняются

 

операторы

следующие

 

за

 

CASE ELSE

ели

 

они

 

есть

Программа

реализующая

 

алгоритм

приведенный

 

на

 

Рис

. 2.2, 

с

 

по

-

мощью

 

оператора

 

SELECT

 , 

будет

 

иметь

 

следующий

 

вид

  INPUT 

"

Введите

 

значение

 a,b,X "; a,b,x 

 SELECT 

CASE 

 

 

CASE   <=a  

   Z=0.5*X^2+1 
  CASE 

>=b 

   Z=(TAN(X))^2 
  CASE 

ELSE 

   Z=COS(X) 
 END 

SELECT 

  LPRINT 

"Z=";Z 

 

:    END 

2.6.4.

 

Составить

 

три

 

варианта

 

программы

  (

с

 

использованием

 

строч

-

ного

 

IF

блочного

 

IF

 

и

 

оператора

 

SELECT

для

 

определения

 

среднего

 

бала

 

C

 

при

 

сдаче

 

вступительных

 

экзаменов

 

в

 

ВУЗ

 

по

 

результатам

 

трех

 

экзаме

-

нов

В

 

зависимости

 

от

 

полученного

 

значения

 

C

приведенного

 

в

 

табл

. 2.3, 

вывести

 

на

 

монитор

 

соответствующую

 

выписку

 

из

 

протокола

 

приемной

 

комиссии


background image

Таблица

 2.3. 

Выписка

 

из

 

протокола

 

приёмной

 

комиссии

 

Значение

 

С

 

Вы

 

набрали

  ... 

баллов

 

  

неудовлетворительно

 

если

 

С

<9 

Вы

 

набрали

  ... 

баллов

 

  

удовлетворительно

 

если

 9<= C <12 

Вы

 

набрали

  ... 

баллов

 

  

хорошо

 

если

 11< C=14 

Вы

 

набрали

  ... 

баллов

  

  

отлично

 

если

 C=15 

2.6.5.

 

Составить

 

программу

 

для

 

заданного

 

преподавателем

 

варианта

 

задания

приведенного

 

в

 

Табл

. 2.4. 

В

 

программе

 

предусмотреть

 

ввод

 

с

 

кла

-

виатуры

 

трех

 

чисел

а

 

также

 

вывод

 

на

 

экран

 

монитора

 

и

 

на

 

принтер

 

вве

-

денных

 

значений

 

и

 

результата

 

работы

 

программы

 

с

 

точностью

 2 

знака

 

по

-

сле

 

запятой

 

с

 

пояснительным

 

текстом

 (

например

 “

Наименьшее

 

из

 

трех

 

чисел

 

равно

 6.93

”). 

Таблица

 2.4. 

Программа

 

должна

 

вывести

 

В

 

программе

 

использовать

  

оператор

 

на

 

экран

 

монитора

 

и

 

на

 

принтер

 

IF

 

строчный

IF

 

блочный

 

SELECT 

наименьшее

 

из

 

трех

 

чисел

 

наибольшее

 

из

 

трех

 

чисел

 

числа

 

в

 

порядке

 

возрастания

 

числа

 

в

 

порядке

 

убывания

 

10 

11 

12 

2.7.

 

Циклические

 

программы

 

в

 TURBO BASIC. 

Часто

 

при

 

составлении

 

программ

 

приходится

 

повторять

 

некоторую

 

часть

 

программы

 

несколько

 

раз

Например

вычислить

 

и

 

вывести

 

на

 

экран

 

значения

 

функции

 

у

=X

2

 

для

 

значения

 

аргумента

 X

изменяющегося

 

в

 

ин

-

тервале

 

от

 0 

до

 20 

с

 

шагом

 2. 

Схема

 

алгоритма

 

такой

 

программы

 

в

 

общем

 

случае

 

приведена

 

на

 

рис

. 2.3. 

Первый

 

и

 

последний

 

элементы

 

схемы

 

алгоритма

 

обозначают

 

начало

 

и

 

конец

 

цикла

В

 

элементе

 1 

задаются

 

пределы

 

изменения

 

значений

 

пере

-

менной

 

цикла

 (0, 20) 

и

 

шаг

с

 

которым

 

она

 

изменяется

 (2). 

Тело

 

цикла

в

 

данном

 

случае

составляют

 

элементы

 2 

и

 3, 

где

 

вычисляются

 

текущие

 

зна

-

чения

 

Y

а

 

затем

 

выводятся

 

на

 

экран

 

монитора

В

 

элементе

 4 

к

 

текущему

 

значению

 

переменной

 

цикла

 

прибавляется

 

шаг

равный

 2, 

и

 

если

 

получен

-

ное

 

значение

 

меньше

 

или

 

равно

 

конечного

 

значения

 

переменной

 

цикла

 

(20), 

то

 

цикл

 

повторяется

 

еще

 

раз

 

для

 

второго

 

значения

  

X

то

 

есть

  

выпол

 


background image

 

Рис

. 2.3 

няется

 

тело

 

цикла

Цикл

 

повторяется

 

до

 

тех

 

пор

пока

 

текущее

 

значение

 

перемен

-

ной

 

цикла

 

не

 

станет

 

больше

 20.  

Обратите

 

внимание

 

на

 

то

что

 

при

 

выходе

 

из

 

цикла

 

значение

 

X=22

 

и

 

при

 

необходимости

 

это

 

значение

 

может

 

быть

 

использовано

 

в

 

дальнейшей

 

программе

Иногда

 

внутри

 

одного

 

цикла

 

могут

 

рас

-

полагаться

 

другие

 

циклы

так

 

называе

-

мые

 

вложенные

 

циклы

Однако

 

циклы

 

не

 

могут

 

пересекаться

т

.

е

все

 

внутренние

 

циклы

 

должны

 

быть

 

закончены

 

до

 

того

как

 

закончатся

 

внешние

2.7.1.

 

Оператор

 

FOR/NEXT

 

используется

 

в

 

программе

 

с

 

заданным

 

числом

 

повторений

 

и

 

имеет

 

следующий

 

формат

FOR 

переменная

 = x TO y [STEP z] 

. . . 

операторы

 

NEXT [

переменная

 [ ,

переменная

] . . . ] 

где

 

переменная

 

 

числовая

 

переменная

используемая

 

как

 

счетчик

 

повторов

x, y, z

 

 

числовые

 

выражения

определяющие

 

соответствен

-

но

 

начальное

конечное

 

значение

 

и

 

приращение

 

счетчика

Конструкция

 

выполняет

 

операторы

следующие

 

за

 

FOR

пока

 

в

 

про

-

грамме

 

не

 

встретится

 

оператор

 

NEXT

Тогда

 

к

 

текущему

 

значению

 

пере

-

менной

 

цикла

 

х

 

прибавляется

 

значение

 

шага

 

z

 (

по

 

умолчанию

 1) 

и

 

полу

-

ченное

 

значение

 

сравнивается

 

с

 

конечным

 

значением

 

y

Если

 

значение

 

пе

-

ременной

 

больше

 

y

выполняется

 

оператор

следующий

 

за

 

NEXT

иначе

 

управление

 

снова

 

передается

 

к

 

оператору

находящемуся

 

за

 

FOR

Напри

-

мер

программа

реализующая

 

алгоритм

приведенный

 

на

 

рис

.2.3, 

с

 

помо

-

щью

 

оператора

 

FOR/NEXT

 

имеет

 

вид

FOR x=0 TO 20 STEP 2 
 Y=SIN(X) 

PRINT Y 

NEXT X 

Допускается

 

использование

 

вложенных

 

циклов

Рассмотрим

 

пример

 

программы

вычисляющей

 

и

 

выводящей

 

на

 

экран

 

монитора

 

значения