Методические указания и задания. Алгоритмическая структура "ветвление" на языке Visual Basic Алгоритмы с ветвлением примеры в бейсике блок

Урок №31. Составление программ с использованием операторов ветвления. Два варианта решения задач.

Ранее мы рассматривали только те алгоритмы, в которых все действия совершаются одна за другим независимо ни от чего. Такие алгоритмы называются линейными. Для них характерна форма организации действий - последовательное выполнение.

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

Ветвление - это такая форма организации действий, при которой в зависимости от выполнения или невыполнения некоторого условия совершается либо одна, либо другая последовательность действий.

Простейшей командой, изменяющей естественный порядок выполнения программы, является команда GOTO (go to) (идти туда, перейти к…). Это команда имеет вид:

GOTO N, где N - номер строки программы

По этой команде компьютер переходит к выполнению команды с номером N.

Мы знакомы с двумя способами записи ветвлений – полной и неполной.

Ветвление в неполной форме

Вариант записи


Q – здесь условие, а P – последовательность действий, которую надо выполнять в случае, когда условие верно. Ветвление в неполной форме записывается так:

Если Q то:

Иначе - конец ветвления

Можно по разному перевести на язык BASIC эту форму записи. Если Р состоит из одного действия, то перевод такой:

(слово if означает "если", а слово then "то"). Например:

10 IF X > 0 THEN Y = LOG (X)

Если значение переменной х>0, то ЭВМ вычислит ln x и присвоит результат переменной Y, а затем будет выполняться команда с номером 20. Если же значение х не превосходит нуля, то сразу будет выполняться команда с номером 20.

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

Например: в Р содержатся 6 действий р1...р6, ветвление должно начинаться со 120 строки, а следующая после ветвления команда имеет номер 150. Это означает, что в случае невыполнения условия Q надо перейти к команде 150. в этой базовой структуре программа будет выглядеть так:

2 вариант записи:





120 IF NOT (Q) THEN GOTO 150

Здесь NOT (Q) означает отрицание условие (Q), например NOT (xy, а NOT (x=y) означает x<>y.

Отметим, что в строках вида: IF ... THEN GOTO N, где N номером строки, одно из слова GOTO или THEN можно не писать.

IF ...THEN GOTO N

Означает одно и тоже

Например, алгоритм нахождения максимума из двух чисел

2. Присвоить М, значение А

3. Если М<В, то

4. Присвоить М значение В

5. Конец ветвления

6. Сообщить М

Блок-схема



На языке BASIC:

30 IF M < B THEN M = B

Тот же алгоритм можно перевести на BASIC и иначе:

10 INPUT A, B
20 M = A

30 IF NOT M < B THEN 50

Покажите теперь, как записать на языке BASIC команду ветвления в полной форме:

Конец ветвления Да


Аналогично предыдущему, если Р и Т состоят из одного действия, то удобно переводить так:



IF Q THEN P ELSE T

Если же Р и Т из нескольких действий, то удобнее переводить следующим образом (для примера, пусть Р состоит из трех, Т - из четырех команд, ветвление начинается с 530 строки, следующая за ветвлением строка имеет номер 600).


530 IF Q THEN 536

Исполняя этот фрагмент ЭВМ выполнит команды Р1, Р2, Р3 если условие Q выполняется и команды Т1...Т4, если Q не имеет место. А затем, после выполнения соответствующей серии команд ЭВМ перейдет к выполнению команды записанной в строке 600.

Рассмотрим программы для вычисления значения функций по следующему правилу:

20 IF X>=2 THEN Y = SQR (X) ELSE Y = ABS (X)

30 PRINT "Y="; Y

можно записать эту программу и так:ё

20 IF X >= 2 THEN 50

Практическая работа №16

Тема: "Решение задач с использованием оператора IF THEN GOTO" (1 вариант)

Задание №1

Найти максимальное из двух чисел a и b

Составить алгоритм, блок-схему и программу на языке BASIC

Задание №2

Составить алгоритм, блок-схему и программу на языке BASIC. Сделать анализ показателей деятельности Кошкинского райпо за 1998г., путем сравнения суммы доходов за отчетный год So с суммой доходов за прошлый год Sn, сделать вывод. Используйте таблицу показателей.

Практическая работа №17

Тема: "Решение задач с использованием оператора IF THEN GOTO" (2вариант)

Задание №1

Составьте алгоритм, блок-схему и программу на языке BASIC, используя операторы REM, IF THEN GOTO. Для расчета уровня динамики, если уровень динамики рассчитывается по формуле: D = (So/Sn) * 100%

D – показатель уровня динамики

So – сумма дохода за отчетный год в тыс. руб.

Sn – сумма доходов за прошлый год в тыс. руб.

Найдите разницу: R = D-100%

Если R – величина положительная, т.е. R>0, то уровень доходов за отчетный год увеличился на R%

Если R – величина отрицательная, т.е. R <0, то уровень доходов снизился на R%

Практическая работа №18

Тема: "Решение задач с использованием оператора IF THEN ELSE" (1вариант)

Задание №1


Y = если х< 2, если х >2

Задание №2

Составить алгоритм, блок-схему и программу на языке BASIC для нахождения значений функции Y

Y = x 2 – если x <2

Y = 2x 2 – если x>2

Практическая работа №19

Тема: "Решение задач с использованием оператора IF THEN ELSE" (2вариант)

Задание №1

Составить алгоритм, блок-схему и программу на языке BASIC для решения уравнения.Используя правило математики «делить на ноль нельзя»

Y = (x+8) / (x-5), если х = 5

Задание №2

Составить алгоритм, блок-схему и программу на языке BASIC для решения уравнения. Используя правило математики «делить на ноль нельзя»

Y = (х 2 - 3х) / (х – 3) , если х = 3

Урок №36,Тема: Операторы цикла в языке BASIC. Составление программ с использованием операторов цикла

Ранее рассмотренные алгоритмы обладают общими свойствами при их выполнении каждое действие совершается один раз, но иногда необходимо один и тот же набор действий выполнять несколько раз.

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

Существуют циклы с заранее известным числом повторений (детермированный) и циклы, число повторений которое заранее не известно (итерационный).

Сформировать циклический процесс можно при помощи известных вам операторов IF и GOTO.

Цикл «Пока»

1. Итерационный цикл с заранее неизвестным числом вычислений

пока условие Q

повторять действие P

конец цикла

Цикл «Для каждого»

2. Детермированный цикл, когда заранее известно число повторений

Для каждого I от L до R

Для каждого I от L до R

конец цикла по I

(I – счетчик цикла, L – начальное значение счетчика, R – конечное значение, Р – тело цикла)

На языке BASIC цикл для каждого оформляется

10 FOR I = L TO R

Обычное начальное значение счетчика меньше конечного, тогда STEP >0, но бывают случаи, когда начальное значение больше конечного, тогда STEP <0

Если STEP отсутствует, то по умолчанию ЭВМ берет шаг = 1.

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

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

Тема: Решение задач с использованием оператора цикла FOR NEXT (детермированный) для нескольких райпо с использованием таблицы показателей деятельности

Задание №1

Используя таблицу показателей деятельности райпо за 1997 год рассчитайте выработку на одного рабочего в год для нескольких райпо: В = То / Q:

Т – товарооборот

Q – численность рабочих

Составьте циклическую программу, используя операторы цикла

Решение:

Итерационный цикл с заранее неизвестным числом вычислений.

Пусть требуются неоднократные вычисления В – выработки на одного рабочего в год. Для подсчета количества вычислений значений В используйте переменную целого типа N%. До начала вычислений ее значение должно быть равно нулю, N% = 0 Для хранения ответа пользователя «Да» или «Нет» на вопрос компьютера о необходимости продолжения вычислений используйте, например, переменную Т$.


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

Тема: Решение задач с использованием операторов цикла (итерационный) для нескольких райпо с использованием таблицы показателей деятельности

Задание №1

Используя таблицу показателей деятельности райпо за 1997 год рассчитайте среднюю заработную плату на одного рабочего в год:

Sc – средняя заработная плата

F – фонд заработной платы

Q – численность рабочих

Показатели численности рабочих, фонд заработной платы возьмите из таблицы.

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

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

Тема: Составление и решение задач цикл в цикле

Задание №1

Вычислите значение функции sin x в интервале от -3 до 3 с шагом 0.5

Задание №2

Вычислите N! N принять с экрана. Составить алгоритм, программу

N! = 1 * 2 * 3 …N (K=K * I)

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

Тема: «Составление и решение задач цикл в цикле с символьными переменными

Задание №1

Вычислите значение 2 в степени N, N принять с экрана

Задание №2

Вычислите функцию у на отрезке от -2 до 10 с шагом 1


Урок 42, 43. Тема: Графика в языке QBASIC

см. методическую разработку

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

Тема: «Составление линейных программ с использованием операторов графики LINE и PAINT (рисование флагов)

1. флаг Японии

20 LINE (10, 10) – (70, 50), 8, B

30 PAINT (20, 30), 7, 8

40 CIRCLE (40, 30), 10, 4

50 PAINT (40, 30), 4, 4

2. флаг Молдавии

10 LINE (10, 10) – (55, 40), 7, B

20 LINE (25, 10) – 25, 40), 7

30 LINE (40, 10) – (40, 40), 7

40 PAINT (20, 30), 9, 7

50 PAINT (30, 30), 14, 7

60 PAINT (50, 30), 4, 7

3. флаг Румынии

10 LINE (10, 50) – (55, 80), 7, B

20 LINE (25, 50,) – (25, 80), 7

30 LINE (40, 50) – (40, 80), 7

40 PAINT (20, 65), 1, 7

50 PAINT (30, 60), 14, 7

60 PAINT (50, 70), 4, 7

4. флаг Чехии

10 LINE (60, 10) – (100, 40), 7, B

20 LINE (60, 10) – (80, 25), 7

30 LINE (60, 40) – (80, 25), 7

40 LINE (80, 25) – (100, 25), 7

50 PAINT (65, 30), 1, 7

60 PAINT (80, 20), 15, 7

70 PAINT (90, 35), 4, 7

5. флаг России

10 LINE (60, 50) – (100, 80), 7, B

20 LINE (60, 50) – (100, 60), 7

30 LINE (60, 70) – (100, 70), 7

40 LINE (60, 80) – (100, 80), 7

50 PAINT (80, 55), 15, 7

60 PAINT (80, 65), 1, 7

70 PAINT (80, 75), 4, 7

6. флаг Бразилии

10 LINE (110, 10) – (150, 40), 7, B

20 LINE (115, 25) – (130, 35), 7

30 LINE (130, 15) – (115, 25), 7

40 LINE (130, 15) – (145, 25), 7

50 LINE (145, 25) – (130, 35), 7

60 CIRCLE (130, 25), 5, 7

70 PAINT (120, 15), 2, 7

80 PAINT (132, 19), 14, 7

90 PAINT (131, 26), 1, 7

7. флаг Швеции

10 LINE (10, 10) – (55, 45), 1, B

20 PAINT (30, 20), 1, 1

30 LINE (20, 10) – (25, 45), 14, B

40 PAINT (23, 20), 14

50 LINE (10, 25) – (55, 30), 14, B

60 PAINT (30, 27), 14

70 PAINT (15, 26), 14

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

Тема: «Составление циклических программ с использованием LINE и PAINT

Задание №1.

Используя операторы графики составьте линейную программу для рисунка

Алгоритм решения

20 LINE (80, 20) - (20, 80), 4

30 LINE (160, 20) - (240, 60), 5, BF

40 LINE (80, 80) - (200, 160), 4, B

50 LINE (80, 120) - (140, 80), 3

60 LINE (140, 80) - (200, 120), 3

70 LINE (200, 120) - (140, 160), 3

80 LINE (140, 160) - (80, 120), 3

Задание №2

Для предложенного рисунка составьте линейную программу с использованием операторов графики LINE, PAINT, SCREEN

Алгоритм решения задачи

20 LINE (100, 50) - (200, 80), 2, B

30 LINE (100, 80) - (200, 110), 2, B

40 LINE (100, 110) - (200, 140), 2, B

50 LINE (100, 50) - (200, 80), 2

60 LINE (100, 110) - (200, 80), 2

70 LINE (100, 110) - (200, 140), 2

80 PAINT (180, 70), 3, 2

90 PAINT (120, 70), 4, 2

100 PAINT (120, 100), 6, 2

110 PAINT (180, 100), 7, 2

120 PAINT (180, 120), 8, 2

130 PAINT (120, 130), 9, 2

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

Тема: Составление линейных программ с использованием операторов CIRCLE и PAINT (рисование дуг, овалов)

Алгоритм решения задачи

20 CIRCLE (70, 120), 10, 14

30 CIRCLE (70, 90), 20, 4, 4.71, 1.57, 2

40 CIRCLE (70, 90), 20, 4, 1.57, 4.71, 2

50 CIRCLE (70, 150), 20, 4, 4.71, 1.57, 2

60 CIRCLE (70, 150), 20, 4, 1.57, 4.71, 2

70 CIRCLE (40, 120), 20, 4, 3.14, 6.28, .5

80 CIRCLE (40, 120), 20, 4, 6.28, 3.14, .5

90 CIRCLE (100, 120), 20, 4, 3.14, 6.28, .5

100 CIRCLE (100, 120), 20, 4, 6.28, 3.14, .5

110 CIRCLE (70, 120), 80, 2, 6.28, 1.57, 4

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

Тема: Составление циклических программ с использованием операторов CIRCLE и PAINT

Для предложенного рисунка составьте линейную программу с использованием операторов графики CIRCLE, PAINT, SCREEN

Алгоритм решения задачи

20 CIRCLE (220, 140), 80, 1, 6.28, 3.14

30 CIRCLE (160, 140), 20, 1, 6.28, 3.14, .5

40 CIRCLE (200, 140), 20, 1, 6.28, 3.14, .5

50 CIRCLE (240, 140), 20, 1, 6.28, 3.14, .5

60 CIRCLE (280, 140), 20, 1, 6.28, 3.14, .5

70 CIRCLE (180, 100), 10, 5

80 CIRCLE (220, 90), 10, 7

90 CIRCLE (220, 120), 10, 6,

100 CIRCLE (270, 110), 10, 11

110 LINE (220, 140) - (220, 180), 1

120 CIRCLE (210, 180), 10, 1, 3.14, 6.28

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

Тема: Составление линейных программ с использованием операторов DRAW и PAINT

Для предложенных рисунков составьте линейные программы с использованием операторов графики DRAW, PAINT, SCREEN

Алгоритм решения задачи

20 DRAW "C5 BM 10,80 D70 R10 D10 R10 D10 R10 D10 R60 U10 R50 U10 R10 U10 R10 U50 L10 U20 L20 U20 R20 U10 R20 U10 L30 U10 L10 U10 L30 D10 L10 D10 L10 D20 R10 D10 R10 D20 L60 D10 L20 U10 L10 U10 L10"

30 DRAW "C14 BM 130,50 U10 R10 D10 L10"

20 DRAW "C12 BM 110,90 D60 R20 U30 R20 D70 L20 D20 R40 U70 R10 D70 R40 U20 L20 U70 R20 D30 R20 U60 L50 U20 R20 U40 L70 D40 R20 D20 L50"

30 DRAW "C12 BM 140,30 E10 R70 G10"

40 DRAW "C12 BM 220,30 D40 G10"

50 DRAW "C12 BM 110,90 E10 R40"

60 DRAW "C12 BM 200,70 D10 G10"

70 DRAW "C12 BM 200,80 R50 G10"

80 DRAW "C12 BM 250,80 D60, G10"

90 DRAW "C12 BM 210,120 D60 G10"

100 DRAW "C12 BM 210,180 R20 D20 G10"

110 DRAW "C12 BM 230,180 G10"

120 DRAW "C12 BM 140,120 D20, G10"

130 DRAW "C12 BM 130,190 E10 R10"

140 DRAW "C12 BM 170,210 E10"

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

Тема: Составление линейных программ с использованием операторов DRAW и PAINT, CIRCLE, LINE

Для предложенных рисунков составьте линейные программы с использованием операторов графики DRAW, PAINT, CIRCLE, LINE, SCREEN

Алгоритм решения задачи

"Крокодил"

20 DRAW "C2 BM 10,60 D5 F5 E5 F5 E5 F5 E5 F5 E5 R5 D10 H5 G5 H5 G5 H5 G5 H5 G5 D5 R40 G5 R10 E5 R30 G5 R10 E5 R30 E40 L15 G5 L5 D5 L5 G10 L20 H5 G5 H5 G5 H5 G5 L15 H10 D10 L40 H5 G5"

30 CIRCLE (65,60), 2,4

10 DRAW "C9 BM30,40 D40 R20 D70 R30 U20 L20 U20 R30 D40 R30 U20 L10 U40 R10 D10 R20 D10 R20 U10 R20 U10 R10 U60 L10 D10 L10 D10 L10 D10 L40 U10 L10 U10 L10 D50 L60 U50 R10 U10 R20 U10 L30 D10 L10 D10 L10 D10 L10"

20 CIRCLE (140, 70), 7, 5

30 CIRCLE (180, 70), 7, 5

40 CIRCLE (160, 80), 5, 15, 6.28, 3.14, .5

50 CIRCLE (160, 80), 5, 15, 3.14, 6.28, .5

60 CIRCLE (160, 100), 7, 4

70 PSET (160, 100)

Практическая работа №30

Тема: Составление циклических программ с использованием операторов графики (RND)

"Окружности"

10 PRINT "круги"

20 INPUT "введите количество окружностей"; n

30 CLS: SCREEN 7

50 X = RND * 300

60 Y = RND * 180

90 CIRCLE (x, y), r, c

100 PAINT (x, y), c, c

10 PRINT "точки"

20 INPUT "введите количество точек"; n

30 CLS: SCREEN 7

50 X = RND * 300

60 Y = RND * 180

80 PSET (x, y), C

10 PRINT "Линии"

20 INPUT "введите количество линий"; n

30 CLS: SCREEN 7

50 X = RND * 300

60 Y = RND * 180

"Прямоугольники"

10 PRINT "прямоугольники"

20 INPUT "введите количество прямоугольников"; n

30 CLS: SCREEN 7

50 X = RND * 300

60 Y = RND * 180

80 LINE (x1, y1) - (x2, y2), C

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

Тема: Составление программ с ветвлением и циклом для операторов графики (LINE, PAINT)

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

Тема: Составление программ с ветвлением и циклом для операторов графики (CIRCLE и PAINT)

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

Тема: Построение графиков функций квадратной и кубической парабол

"Квадратная парабола"

WINDOW (-10, 10)-(10, -10)

LINE (-10, 0)-(10, 0)

LINE (0, 10)-(0, -10)

FOR X = -10 TO 10 STEP .01

"Кубическая парабола"

WINDOW (-10, 10)-(10, -10)

LINE (-10, 0)-(10, 0)

LINE (0, 10)-(0, -10)

FOR X = -10 TO 10 STEP .01

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

Тема: Построение графиков тригонометрических функций

Задание №1

Построить графики тригонометрических функций

Алгоритм решения задачи:

20 WINDOW (-10, 10)-(10, -10)

30 LINE (-10, 0)-(10, 0)

40 LINE (0, 10)-(0, 10)

50 FOR X = -10 TO 10 STEP .01

70 PSET (X, Y), 4

90 FOR X = -10 TO 10 STEP .01

110 PSET (X, Y), 10

130 FOR X = -10 TO 10 STEP .01

150 PSET (X, Y), 6

Задание №2

Построить графики функций y = x^2, y = x ^3, при у = х, если х >=0

y = , если х <0

Алгоритм решения задачи:

20 WINDOW (-10, 10)-(10, -10)

30 LINE (-10, 0)-(10, 0)

40 LINE (0, 10)-(0, -10)

50 FOR x = -10 TO 10 STEP .01

70 PSET (x, y), 15

90 FOR x = -10 TO 10 STEP .01

100 y = x ^ 3140 IF x >= 0 THEN y = SQR(x) ELSE y = -x

150 PSET (x, y), 2

110 PSET (x, y), 3

130 FOR x = -10 TO 10 STEP .01

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

Тема: Составление линейных программ и блок-схем (подготовка к зачетному занятию)

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

Тема: Операторы ветвления, циклы, графики. Составление программ (подготовка к зачетному занятию)

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

Зачетное занятие

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

1. Программа облочка NC, основное назначение (NORTON COMMANDER)

2. Понятие каталога, имя каталога, правила задания имен каталогов.

3. Понятие файл, имя файла, правила задания имен файла.

4. Имена дисководов, правила задания имен для дисководов.

5. Алгоритмизация. Понятие алгоритма. Основные свойства алгоритмов.

6. Язык программирования BASIC, поколения языка. Алфавит языка, основные языковые конструкции.

7. Правила записи операций с переменными из программирования BASIC.

8. Правила представления тригонометрических функций. Правила представления чисел в BASIC.

9. Основные команды языка программирования BASIC. Действия "присвоить", "запросить", "пусть", правила записи с комментарием и без комментариев.

10. Символьные переменные и операции с ними (сложение двух слов, операции выделения части слова MID$ (...a,b).

11. Блок-схемы. Линейные, разветвляющиеся и циклические (цикл "До", цикл "Пока" и цикл с "Параметром").

12. Операторы ветвления IF ...THEN ... ELSE два варианта записи.

13. Операторы ветвления IF ... THEN... GOTO два варианта записи.

14. Понятие цикл. Виды циклов (итерационные, детермированные).

15. Операторы цикла искусственный цикл. Цикл с параметрами (FOR ... NEXT...WHILE).

16. Операторы графики. Операторы рисания точки.

17. Оператор рисования отрезка.

18. Оператор рисования прямоугольника и квадрата.

19. Оператор рисания закрашенного прямоугольника.

20. Оператор рисования окружности.

21. Оператор рисования эллипса сжатого по оси х.

22. Оператор рисования эллипса сжатого по оси у.

23. Оператор закрашивания внутренней поверхности.

24. Оператор вычерчивания дуг.

25. Оператор рисования пером.

26. Построение графиков функций тригонометрических и арифметических.

Урок №58 Тема: ОС WINDOWS. Основные понятия

Основные операторы языка VBA

Комментарии (0)

3.1. Правила записи операторов

При записи операторов необходимо придерживаться следующих правил:

Каждый новый оператор записывается с новой строки.

Чтобы записать несколько операторов на одной строке, их разделяют между собой двоеточием (:).

Если оператор не помещается в одной строке, то необходимо поставить в конце строки пробел и знак подчеркивания (_), а затем продолжить не поместившуюся часть на следующей строке.

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

Оператор присваивания используется, если какой-то переменной нужно присвоить новое значение. Он имеет следующий синтаксис:

ИМЯ_ПЕРЕМЕННОЙ = ВЫРАЖЕНИЕ

Сначала вычисляется выражение в правой части, а затем результат присваивается переменной, стоящей в левой части.

Например . Записать с помощью оператора присваивания следующее математическое выражение:

На VВА это выражение можно записать в виде следующего оператора:

Y = a^(1/3)+(a^2+Exp(-b))/(Sin(a)^2-Log(b))

3 .3. Операторы ввода-вывода

3 .3.1. Оператор и функция MsgBox

Оператор MsgBox осуществляет вывод информации в диалоговом окне и устанавливает режим ожидания нажатия кнопки пользователем.

Он имеет следующий синтаксис:

MsgBox Сообщение[,Кнопки][, Заголовок]

Аргументы:

Сообщение - обязательный аргумент, задающий в окне выводимое информационное сообщение. Может состоять из нескольких текстовых строк, объединенных знаком & . Использование в этом аргументе Chr(13) приводит к переходу на новую строку при выводе информации.

Кнопки - значение этого аргумента определяет категории появляющихся в окне кнопок. От значения аргумента кнопкизависит также, появляется ли в окне какой-либо значок. Если не указано, какие кнопки необходимо отображать в окне сообщений, то используется значение по умолчанию, соответствующее кнопке ОК. В табл. 3.1 приведены возможные комбинации кнопок и значков в окне сообщений.

Заголовок - задает заголовок окна.

Функция MsgBox возвращает значение типа Integer, указывающее, какая кнопка была нажата в диалоговом окне.

Таблица 3.1. Допустимые значения переменной кнопки

Отображение

Аргумент

Кнопка ОК

Кнопки ОК и Отмена

Кнопки Да и Нет

Кнопки Да, Нет и Отмена

Кнопки Прекратить, Повторить и Игнорировать

VbAbortRetryIgnore

Кнопки Повторить и Отмена.

Информационный знак

Знак вопроса

Знак восклицания

Например . Вывести сообщение о текущей дате.

MsgBox "Сегодня на календаре" & Date , "Внимание"

В результате будет выведено следующее окно (рис.3.1).

После щелчка по кнопке ОК окно сообщения закроется, и выполнение программы возобновится с оператора, стоящего непосредственно за вызовом MsgBox.

3.3.2. Функция InputBox

Функция InputBox осуществляет ввод значений переменных с помощью окна ввода и имеет следующий синтаксис:

Имя_Переменной = InputBox(Сообщение[, Заголовок ] )

Аргументы:

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

Заголовок - задает заголовок окна.

Например , Ввести значение переменной N с клавиатуры, предусмотрев значение по умолчанию равное 10.

Для этого можно использовать следующий оператор:

N = InputBox("Введите N", "Ввод исходных данных",10)

В результате будет выведено следующее окно для ввода значения переменной N (рис.3.2).

Если значение по умолчанию подходит пользователю, то после щелчка кнопки ОК окно ввода закроется, переменной N присвоится значение 10 и выполнение программы возобновится с оператора, стоящего непосредственно за вызовом InputBox .

Если же значение по умолчанию не подходит пользователю, то перед щелчком по кнопке ОК необходимо ввести нужное значение переменной N.

3 .4. Условный оператор IF

Для реализации разветвляющегося вычислительного процесса в VBA используется оператор If…Then…Else, который представляет собой простейшую форму проверки условий. Он имеет следующий синтаксис:

If УСЛОВИЕ Then ОПЕРАТОР_1 E lse ОПЕРАТОР_2

ОПЕРАТОР_1 выполняется, если УСЛОВИЕ истинно, в противном случае выполняется ОПЕРАТОР_2 . При этом оператор If…Then…Else записывается в одну строку.

УСЛОВИЕ - это выражение логического типа. Результат выражения всегда имеет булевский тип. Выражение может быть простым и сложным. При записи простых условий могут использоваться все возможные операции отношения, указанные в табл. 3.2.

Таблица 3 .2. Логические отношения

Операция

Название

Выражение

Результат

True, если А равно В

True, если А не равно В

True, если А,больше В

True, если А меньше В

Больше или равно

True, если А больше или равно В

Меньше или равно

True, если А меньше или равно В

Сложные условия образуются из простых путем применения логических операций и круглых скобок. Список логических операций приведен в табл. 3.3.

Таблица 3 .3. Логические операции

Название

Выражение

Результат

Логическое
отрицание

Логическое И

Логическое ИЛИ

В условном операторе допустимо использование блока операторов вместо любого из операторов. В этом случае условный оператор имеет вид:

If УСЛОВИЕ Then

БЛОК_ОПЕРАТОРОВ_1

БЛОК_ОПЕРАТОРОВ_2

End I f

В условном операторе может проверяться несколько условий. В этом случае условный оператор имеет вид:

If УСЛОВИЕ_1 Then

БЛОК_ОПЕРАТОРОВ_1

ElseIf УСЛОВИЕ_2 Then

БЛОК_ОПЕРАТОРОВ_2

Else

End If

Пример 1 . Написать часть программы для алгоритма на рис. 3.3.

Пример 2. Написать часть программы для алгоритма на рис. 3.4.

3.5. Оператор выбора Select Case

Оператор Select Case удобно использовать, когда в зависимости от значения некоторого выражения, имеющего конечное множество допустимых значений, необходимо выполнить разные действия. Он также относится к условным операторам, но имеет другой вид:

Select Case ПРОВЕРЯЕМОЕ_ВЫРАЖЕНИЕ

Case ЗНАЧЕНИЯ_1

ОПЕРАТОРЫ_1

Case ЗНАЧЕНИЯ _ 2

ОПЕРАТОРЫ _ 2

. . .

Case ЗНАЧЕНИЯ_N

ОПЕРАТОРЫ _N

[ Case Else

ИНАЧЕ _ ОПЕРАТОРЫ]

End Select

ПРОВЕРЯЕМОЕ_ВЫРАЖЕНИЕ может иметь любой скалярный тип, кроме вещественного. ЗНАЧЕНИЯ состоят из произвольного количества значений или диапазонов, отделенных друг от друга запятыми.

Тип ЗНАЧЕНИЙ должен совпадать с типом ПРОВЕРЯЕМОГО_ВЫРАЖЕНИЯ .

Сначала вычисляется ПРОВЕРЯЕМОЕ_ВЫРАЖЕНИЕ . Если его значение совпадает с одним из значений ЗНАЧЕНИЯ_I , то выполнятся ОПЕРАТОРЫ_I End Select . Если его значение не совпадает ни с одним из значений ЗНАЧЕНИЯ_I , то выполнятся ИНАЧЕ_ОПЕРАТОРЫ и управление передается оператору, стоящему после End Select

Например. Написать часть программы для алгоритма на рис. 3.5, определяющего значение переменной S в зависимости от значения переменной n.

3.6. Операторы цикла

Для реализации циклического вычислительного процесса, т. е. многократного выполнения одного или нескольких операторов, служит оператор цикла For…Next , который имеет следующий синтаксис:

For СЧЕТЧИК=НАЧ_ЗНАЧЕНИЕ Т o КОН_ЗНАЧЕНИЕ Step ШАГ

БЛОК_ОПЕРАТОРОВ

БЛОК_ОПЕРАТОРОВ

Next СЧЕТЧИК

Цикл For…Next перебирает значения переменной СЧЕТЧИК , которая является параметром цикла, от начального до конечного значения с указанным шагом изменения. При этом обеспечивается выполнение блока операторов тела цикла при каждом новом значении счетчика. Если Step ШАГ в конструкции отсутствует, то по умолчанию считается, что шаг равен 1. По оператору Exit For можно выйти из оператора цикла до того, как СЧЕТЧИК достигнет последнего значения.*

Для перебора объектов из группы подобных объектов, например, ячеек из диапазона или элементов массива, удобно использовать оператор цикла For… Each…Next .

For Each Элемент In Группа

БЛОК _ ОПЕРАТОРОВ

БЛОК_ОПЕРАТОРОВ

Next Элемент

В VBA для организации циклов с неизвестным заранее числом повторений используются и другие операторы цикла:

циклы с предусловием - Do While Loop ,

Do Until Loop ;

циклы с постусловием - Do Loop While ,

Do Loop Until .

Ниже приведен синтаксис этих операторов цикла:

" Цикл с предусловием Do While Loop

Do While УСЛОВИЕ

БЛОК_ОПЕРАТОРОВ

БЛОК_ОПЕРАТОРОВ

" Цикл с предусловием Do Until Loop

Do Until УСЛОВИЕ

БЛОК_ОПЕРАТОРОВ

БЛОК_ОПЕРАТОРОВ

" Цикл с постусловием Do Loop While

БЛОК _ ОПЕРАТОРОВ

БЛОК_ОПЕРАТОРОВ

Loop While УСЛОВИЕ

" Цикл с постусловием Do Loop Until

БЛОК _ ОПЕРАТОРОВ

БЛОК_ОПЕРАТОРОВ

Loop Until УСЛОВИЕ

Оператор Do W hile…Loop обеспечивает многократное повторение блока операторов до тех пор, пока УСЛОВИЕ соблюдается, а оператор



Другие новости

Цели урока:

  1. Знакомство с алгоритмической структурой “ветвление”;
  2. Обучение приемам построения алгоритмов с “ветвлением” и их программированию на языке Visual Basic.
  3. Закрепление умений и навыков с помощью теста и практических работ.

Задачи урока:

  • образовательная – знакомство учащихся с базовыми алгоритмическими структурами;
  • развивающие – формирование у учащихся приемов логического и алгоритмического мышления; развитие познавательного интереса к предмету; развитие умения планировать свою деятельность; развитие памяти;
  • воспитательные – развитие умения связывать изучение нового материала с уже известными фактами; воспитание самостоятельности, критичности и ответственности за выполняемую работу.

Тип урока: изучение нового материала и его закрепление.

Основные организационные формы обучения на уроке:

  • фронтальная работа с классом;
  • групповая работа;
  • индивидуальная работа за компьютером;
  • дифференцированная форма работы.

Средства обучения:

План урока.

  1. Организационный момент.
  2. Актуализация опорных знаний.
  3. Изучение нового материала.
  4. Применение полученных знаний.
  5. Подведение итогов урока. Домашнее задание.

Ход урока

1. Организационный момент. (слайд 1)

Приветствие, проверка присутствующих. Объявление темы и целей урока. (слайд 2)

2. Актуализация опорных знаний. (слайд 3)

На прошлых уроках мы познакомились с понятием алгоритма и основами алгоритмизации.

  1. Для начала вспомним, что такое алгоритм?
  2. Какими свойствами обладает алгоритм?
  3. Какие способы задания алгоритмов Вы знаете?
  4. Дайте определение линейному алгоритму?

3. Изучение нового материала.

Постановка проблемной задачи: (слайд 4)

“Из ряда чисел 15, 16, 17, 18 выпишите значения x, при которых верно неравенство x + 24 > 40”.

Выяснить с учащимися, что при x = 15 и x = 16 неравенство x + 24 > 40 верным не будет. Если же x = 17 или x = 18 неравенство x + 24 > 40 будет верным.

Вывод: В отличие от линейных алгоритмов, в которых команды выполняются последовательно одна за другой, в алгоритмическую структуру “ветвление” входит условие (этот вывод учащиеся делают вывод самостоятельно).

В алгоритмической структуре “ветвление” в зависимости от истинности или ложности условия выполняется одна или другая серия команд. (слайд 5)

В качестве условия может быть использовано любое логическое выражение со знаком > (больше) , < (меньше) , = (равно) , > = (больше либо равно) , < = (меньше либо равно) .

Алгоритмическая структура “ветвление” может быть наглядно представлена с помощью блок-схемы. В языке программирования Visual Basic ветвление кодируется с использованием оператора условного перехода If … Then … Else … End If (Если…. То… Иначе … Конец Если) . (слайд 6)

В случае отсутствия серии команд, которую необходимо выполнить при ложности условия, используется сокращенная форма алгоритмической структуры “ветвление” - неполное “ветвление”. (слайд 7)

“Из ряда чисел 15, 16, 17, 18 выпишите значения x, при которых верно неравенство x + 24 > 40”.

If x + 24 > 40 Then
MsgBox “Выписать x”
End If

Дано число x. Определите, является ли число x положительным? (с помощью блок-схемы)

Дано число x. Определите, является ли число x положительным? (на языке программирования)

В качестве условия можно использовать переменную или арифметическое выражение . Если его результат будет равен 0, то это расценивается как “ложь”, остальные значения – “истина”.

If a Then
MsgBox “Не равно 0”
Else
MsgBox “Равно 0”
End If

4. Применение полученных знаний. (слайд 12)

Прежде чем перейти к закреплению полученных знаний, необходимо провести физкультминутку.

Любопытная Варвара
Смотрит влево…Смотрит вправо.
А потом опять вперед. Тут немного отдохнет
Шея не напряжена и расслаблена…

А теперь посмотрим вниз. Мышцы шеи напряглись.
Возвращаемся обратно. Расслабление приятно.
Шея не напряжена и расслаблена!

Какое значение переменной S будет напечатано после выполнения фрагмента программы на языке Visual Basic?

A = 2
B = 3
If A>B Then S=A*B Else S=A+B
Print S

Фрагмент алгоритма изображен в виде блок-схемы. Определите, какое значение переменной S будет напечатано в результате выполнения алгоритма?

A = 2
B = 3
If A>B Then S=A*B Else S=A+B
Print S

Как на языке VB записать следующее условие:

Практическая работа 1. (слайд17) (Приложение 3 )

Задание: Разработать проект, который использует алгоритмическую структуру “ветвление” для контроля знаний.

Проверочная работа проводится в виде теста по данной теме и материала прошлого урока. Тест находится в папке “Мои документы”.

Ученикам предлагается самим выставит себе оценки в зависимости от правильности выполнения задания (нормы оценок за тест демонстрируются на слайде).

Перед выполнением второй практической работы целесообразно провести мини- игру “Поделись улыбкою своей!” для снятия напряжения. (слайд 19)

Задание: Разработайте программу "Угадай-ка", которая будет загадывать число, а пользователь пытаться его угадать.

Дополнительное задание: (для сильных учеников).

Доработайте программу так, чтобы она в Text2.Text сообщала "Больше", "Меньше" либо "Горячо", если разница между числами меньше 10, и холодно, если 10 и более.

5. Подведение итогов урока. Домашнее задание. (слайд 21)

Учитель задает вопросы, подводящие учеников к формулировке выводов о цели урока и выполнении ими задач урока. Ученики отвечают на вопросы. Они должны самостоятельно прийти к выводу о соответствии целей и результатов урока. Выставление оценок.

§ 2.6.2 стр. 88 – 92 (Угринович Н. Д. Информатика и ИКТ. Базовый курс: Учебник для 9 класса – М.: БИНОМ. Лаборатория знаний, 2005.)

Задания 2.17 и 2.18.

Вопросы 1 и 2.

Дополнительное задание (для сильных учеников) :

Написать программу к следующей задаче: “Даны три числа. Определить наибольшее”.

Список используемой литературы:

  1. Волченков Н.Г. Программирование на Visual Basic 6.0 – M.: Горячая линия – Телеком, 2001.
  2. Сафронов И. Visual Basic в примерах и задачах. – СПб.: БХВ - Петербург, 2007.
  3. Угринович Н. Д. Информатика и ИКТ. Базовый курс: Учебник для 9 класса – М.: БИНОМ. Лаборатория знаний, 2005.
  4. Угринович Н., Босова Л., Михайлова Н. Практикум по информатике и информационным технологиям. – М.: Лаборатория базовых знаний, 2006.

Интернет-ресурсы:

  • http://www.fio.by/vypusk/Potok_72/group_2/user_4/Pages/L_ZAR.htm
  • http://www.rusedu.info/VB_Cod.html
  • iit.metodist.ru
  • www.vbnet.ru

ЯЗЫК ПРОГРАММИРОВАНИЯ VISUAL BASIC. ПРОГРАММИРОВАНИЕ ВЕТВЛЕНИЙ

Ветвление в Visual Basic организуется с использованием:

  • условного оператора IF;
  • встроенной функции IIF;
  • оператора выбора CASE.

Для проверки одного условия и выполнения оператора или блока операторов используется условный оператор IF...THEN . Этот оператор можно использовать с разным синтаксисом: однострочным (линейным) и многострочным (блочным).

Линейный оператор имеет следующий синтаксис:

If <условие> Then <операторы!>

Блочный оператор имеет следующий синтаксис:

If <условие> Then
<блок операторов 1>
End If

Если заданное условие имеет значение True, выполняется блок операторов, в противном случае - блок операторов2. Если предложение Else не задано, при не выполнении условия управление сразу же передается следующему после If оператору.

Оператор If может быть вложенным, т. е. находиться внутри блоков операторов. Для проверки более одного условия и выполнения одного из нескольких блоков операторов используется расширенный условный оператор вида:

If <условие 1> Then
<блок операторов 1>
Elself <условие 2> Then
<блок операторов 2>
Elself <условие n> Then
<блок операторов n>
End If

Для выбора одного из значений в зависимости от выполнения или невыполнения некоторого условия используется условная функция IIF, имеющая следующий синтаксис:

IIF (<условие>, <значение1>, <значение2>)

Эта функция возвращает значение1, если условие истинно, и значение2, если условие ложно.

В качестве условия можно использовать логическое выражение, возвращающее значение True (Истина) или

False (Ложь), или любое арифметическое выражение (нулевое значение эквивалентно False, а ненулевое - True).

Оператор выбора SELECT CASE используется для проверки одного условия и выполнения одного из нескольких блоков операторов.

Формат записи оператора:

Select Case <проверяемое выражение>
Case <список выражений 1>
<операторы 1> Case <список выражений 2>
<операторы 2> Case <список выражений 3>
<операторы 3>
Case Else
<операторы группы Else>
End Select

Проверяемое выражение вычисляется в начале работы оператора Select Case. Это выражение может возвращать значение любого типа (логическое, числовое, строковое).

Список выражений - одно или несколько выражений, разделенных стандартным символом - разделителем (точкой с запятой).

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

Эти алименты списка выражений могут иметь одну из следующих форм:

  • <выражение> - проверяет совпадение заданного выражения с одним из выражений - элементов списка;
  • <выражение 1> То <выражение 2> - проверяет попадание заданного выражения в указанный диапазон;
  • < Is <логический оператор> < выражение> - проверяет выполнение указанного условия для заданного выражения.

В этом параграфе мы покажем, как оформляются на языке Бейсик разветвляющиеся программы. Простейшей командой, изменяющей естественный порядок выполнения программы, является команда GOTO (GO TO - "перейти к..."). Эта команда имеет вид

где N - номер строки программы. По этой команде ЭВМ переходит к выполнению команды с номером N.

Вы знакомы с двумя способами записи ветвлений - неполной и полной. Ветвление в неполной форме записывалось так:

Если Q, то: Р Конец ветвления

(здесь Q - условие, а Р - последовательность команд, которую надо выполнять в случае, когда условие верно).

Можно по-разному перевести на язык Бейсик эту форму записи. Если Р состоит из одного действия, то перевод такой:

IF Q THEN P

(слово IF означает "если", а слово THEN - "то"). Например:

10 IF X>0 THEN Y = LOG (X) 20 ...

Если значение переменной х>0, то ЭВМ вычислит ln x и присвоит результат переменной у, а затем будет выполняться команда с номером 20. Если же значение x не превосходит нуля, то сразу будет выполняться команда с номером 20.

Допустим теперь, что последовательность Р состоит из нескольких действий. Тогда сокращенная форма ветвления будет записываться сложнее. Пусть, например, в Р содержится 6 действий P 1 , ..., Р 6 , ветвление должно начинаться со 120-й строки, а следующая после ветвления команда имеет номер 150. Это означает, что в случае невыполнения условия Q надо перейти к команде 150. Поэтому запись будет такой:

120 IF NOT (Q) THEN GOTO 150

. . . . . . . . . .

Здесь NOT (Q) означает отрицание условия Q (NOT - "не"). Например, NOT (X = Y, a NOT (X = Y) означает XY.

Отметим еще, что в строках вида

IF ... THEN GOTO К

где К - номер строки, одно из слов, GOTO или THEN, можно не писать, т. е. три команды

IF ... THEN К IF ... GOTO К IF ... THEN GOTO К

означают одно и то же.

Например, алгоритм нахождения максимума из двух чисел:

Запросить А, В. Присвоить М значение А. Если М

На языке Бейсик можно записать так:

10 INPUT А,В 20 М = А 30 IF M

Тот же алгоритм можно перевести на язык Бейсик и иначе:

10 INPUT А,В 20 М = А 30 IF N0T(M

Покажем теперь, как записать на языке Бейсик команду ветвления в полной форме:

Если Q, то: Р Иначе: Т Конец ветвления.

Аналогично предыдущему, если Р и Т состоят из одного действия, то удобно переводить так:

IF Q THEN P ELSE T

(ELSE - иначе).

Если же Р или Т состоят из нескольких действий, то удобнее переводить следующим образом (для примера: пусть Р состоит из трех, Т - из четырех команд, ветвление начинается с 530-й строки, следующая за ветвлением строка имеет номер 600):

530 IF Q THEN 536 531 T 1 532 Т 2 533 Т 3 534 Т 4 535 GOTO 600 536 P 1 537 Р 2 538 Р 3 600 ...

Проверьте, что, исполняя этот фрагмент, ЭВМ выполнит команды P 1 , Р 2 , Р 3 , если условие Q выполняется, и команды Т 1 , T 2 , Т 3 , Т 4 , если Q не имеет места. А затем, после выполнения соответствующей серии команд, ЭВМ перейдет к выполнению команды, записанной в строке 600.

Рассмотрим пример программы для вычисления значения функции по следующему правилу:

10 INPUT X 20 IF Х>=2 THEN Y=SQR(X) ELSE Y=ABS(X) 30 PRINT"Y="Y 40 END

Можно было эту программу записать и так:

10 INPUT X 20 IF X>=2 THEN 50 30 Y=ABS(X) 40 GOTO 60 50 Y=SQR(X) 60 END

Составим теперь математическую модель и программу решения следующей "артиллерийской" задачи.

Задача. На заданном расстоянии от пушки находится стена. Известен угол наклона пушки и начальная скорость снаряда. Попадет ли снаряд в стену?

Сначала, как обычно, выскажем упрощающие предположения. Снаряд считаем материальной точкой, сопротивлением воздуха и размерами пушки пренебрегаем. Разумеется, мы считаем также, что выполняются законы Ньютона. Из условия задачи видно, каковы в ней исходные данные: это угол а, начальная скорость v, расстояние до стены S и высота стены h. Результатом является одно из сообщений "попал" или "не попал". Начальные данные подчиняются естественным ограничениям: 00, h>0, 0

Значит, нам надо вывести формулу для определения L. Как вы знаете из курса физики, перемещения снаряда по горизонтали и вертикали за время t равны, соответственно:

x = (v cos α) t; y = (v sin α) t-gt 2 /2,

где g - ускорение свободного падения (9,8 м/с 2). Определим, сколько времени понадобится снаряду, чтобы преодолеть расстояние S:

t = S/(v cos α).

Подставив это значение t в выражение для у, получим значение L:


Конечно, значение L, вычисленное по этой формуле, может оказаться и отрицательным. Это означает, что снаряд до стены не долетит. Если же L окажется больше h, то снаряд перелетит через стену. Вот математическая модель и построена.

Составим алгоритм для ВЫЧИСЛИТЕЛЯ:

Сообщить "Введите начальную скорость снаряда, расстояние до стены, высоту стены". Запросить v, S, h. Сообщить "Введите угол наклона ствола пушки". Запросить А. Если Vν≤0, то: Сообщить "Скорость должна быть положительной". Стоп. Конец ветвления. Если vν≥1000, то: Сообщить "Скорость слишком велика". Стоп. Конец ветвления. Если S≥0, то: Сообщить "Расстояние должно быть положительным". Стоп. Конец ветвления. Если h≤0, то: Сообщить "Высота стены должна быть положительной". Стоп. Конец ветвления. Если A≤0, то: Сообщить "Пушка не должна стрелять в землю". Стоп. Конец ветвления. Если А≥3,14/2, то: Сообщить "Пушка направлена не в сторону стены". Стоп. Конец ветвления. Присвоить L значение Если L>h, то: Сообщить "Снаряд не попал в стену...". Стоп. Конец ветвления. Если L

А теперь переведите этот алгоритм на язык Бейсик (мы и так сделали большую часть работы).

Вопросы

1. По какой команде можно заставить ЭВМ, не проверяя никаких условий, изменить порядок выполнения действий?

2. Как в языке Бейсик оформляется ветвление:

а) в неполной форме;

б) в полной форме?

3. Для чего нужны первые 28 строк в алгоритме решения "артиллерийской" задачи?

Задания для самостоятельного выполнения

1. Переведите на Бейсик алгоритмы решения задач 5-7 из § 8 и 1-7 из § 9.

2. Найдите и исправьте ошибки в следующей программе нахождения квадратного корня из числа:

10 INPUT X 20 IF X> = 0 THEN 30 30 PRINT SQR(X) 40 GOTO 60 50 PRINT. "Корень вычислить невозможно" 60 END

3. Злоумышленник стер команду 100 в следующей программе нахождения корней квадратного уравнения:

10 INPUT А,Б,С 20 IF А 0 THEN 50 30 PRINT "Это уравнение не квадратное" 40 STOP 50 D=B^2 - 4∗A∗C 60 IF D

4. Составьте математическую модель, алгоритм и программу на Бейсике решения следующей задачи.

Задача. Пушка стреляет в направлении движения градового облака в тот момент, когда оно проплывает над пушкой. Известен угол наклона ствола, скорость снаряда, длина и скорость облака, высота, на которой движется облако. Попадет ли снаряд в облако?