Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_2011__2_МГРИ-РГГРУ.pdf
Скачиваний:
213
Добавлен:
29.03.2016
Размер:
4.01 Mб
Скачать

ЗАДАНИЕ 2

ОСНОВНЫЕ ОПЕРАТОРЫ VBA.

Ключевые понятия: алгоритм, блок-схема алгоритма, понятие переменной, типы данных, описание переменных, оператор присваивания, вводвывод данных в ячейки ЭТ, условный оператор, редактор Visual Basic, модуль, сохранение и выполнение программ.

УСЛОВНЫЙ ОПЕРАТОР

ЗАДАЧА № 1.1 Написать программу нахождения наибольшего из двух чисел.

Числа вводятся в ячейки A=Cells(1,1) и B=Cells(2,1). Результат выводится в ячейку Cells(3,1)=MAX. Разместить на листе Excel командную кнопку и присвоить ей выполнение программы. Нарисовать блок-схему алгоритма.

Sub Наибольшее_из_двух_чисел()

‘ Объявление размера (Dimension) ячеек с данными

Dim a, b, Max As Integer

'Чтение исходных данных из ячеек-Cells(Row,Collunm) ЭТ a = Cells(1, 1).Value

b = Cells(2, 1).Value

'Оператор условия проверки лог-го выражения (a > b)

If a > b Then

'Присваивание результата если выражения (a > b)=true

Max = a

Else

'Присваивание результата иначе выражения (a > b)=false

Max = b End If

' Вывод результата в ячейку ЭТ

Cells(3, 1).Value = Max

51

If a = b Then

Cells(3, 1) = "числа равны" End If

End Sub

2) Написать новую программу нахождения наибольшего из трѐх чисел: A, B, C. При этом, в логическом условии оператора IF можно использовать только операцию сравнения > (больше).

Номер

A

B

C

Max

 

1

2

3

C

Составить таблицу проверки и тес-

 

 

 

 

 

тирования работы программы и ал-

1

3

2

B

3

1

2

A

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

 

можные значения переменных.

 

 

 

 

 

2

1

3

C

 

 

 

 

 

 

 

итд

 

 

 

 

 

Нарисовать блок-схему программы. Отметить на блок-схеме цифрами в кружках (как показано в таблице). Создать новую кнопку для выполнения.

Самостоятельная работа

Написать программу «Решение квадратного уравнения ах2+bх+с=0», используя алгоритм представленный в Блок-схеме.

Начало

1

d b2 4ac

 

 

3

 

 

 

 

 

2

да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d>=0

 

ds

d

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

4

нет

 

 

 

 

 

 

 

 

 

 

b ds

 

 

 

x1

Сообщение:

 

 

 

 

2a

 

 

 

 

 

 

«Решения нет»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Конец

 

 

x2

b ds

 

 

 

 

2a

 

 

 

 

 

 

 

 

Исходные данные. Значения пере-

менных а>0, b>0, с>0 разместить на листе ЭТ с соответствующими подписями и прочитать в начале программы. Вычислить (блок 1) значение дискриминанта d. Это значение проверить (блок 2): если оно меньше нуля, то выводится сообщение «Решения нет» (блок 4), если же d больше или равен нулю, то вычисляются квадратный корень из дискриминанта (блок 3), а затем - значения двух корней (блоки 5 и 6)

Результат записать в подготовленные ячейки. Нарисовать Блок-схему. Написать алгоритм на псевдокоде. Разместить кнопку для старта и выполнения программы.

Добавить объект Полоса прокрутки для быстрого изменения значений коэффициентов а, в, с.

52

ОПЕРАТОР ЦИКЛА

Ключевые понятия: циклический алгоритм, оператор цикла с параметром, вложенные циклы, объект Cells, его свойства и методы, датчик случайных чисел, вычисление суммы элементов массива ячеек, вывод в диалоговое окно.

ОПЕРАТОР ЦИКЛА С ПАРАМЕТРОМ ЗАДАЧА № 1.2

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

1.Для проверки свойства «Массовость алгоритмов» предусмотреть переменное конечное значение размерности таблицы, которое используется в циклическом операторе. Для этого воспользо-

ваться стандартной функцией InputBox, которая выводит на экран диалоговое окно, где можно указать значение параметра в заданных пределах.

N=Val(InputBox(―Введи 0<=N<=255‖))

Функция InputBox возвращает введенный строковый (as String) тип значения. Для перевода его в числовой тип данных необходимо применить стандартная функция Val (сокращение от слова Value).

2.Нарисовать Блок-схему по аналогии с рисунком (Вид-Панель ин- струментов-Рисование Автофигуры-Блок-схема).

3.Написать алгоритм для Sub Diagonal() на псевдокоде. Самый простой вид псевдокода представляет собой текст программы, где все операторы написаны на киррилице в сокращенном виде.

53

Например, вместо

Sub Row_Number() пишется Алгоритм Нумерация строки,

вместо

For i=1 to N пишется НЦ (начало цикла) по I от 1 до N

4.Разместить кнопки в первой строке и назначить им соответствующие макросы для старта и выполнения всех программ.

5.Составить таблицу проверки (прогонки программы без выполнения) для алгоритма Диагональ в точке (1).для N=4.

Номер

N

 

i

 

i+1

Cells(i+1, i+1)

 

 

 

4

 

1

 

2

1

Составить таблицу проверки

 

 

 

 

 

 

 

 

и тестирования работы про-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

граммы и алгоритма пере-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

числив в ней все возможные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

значения переменных.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sub Row_Number()

 

 

Sub Diagonal()

Dim j As Byte

 

 

 

 

Dim i As Byte

Dim N As Byte

 

 

 

 

Dim N As Byte

N=Val(InputBox(―Введи 0<=N<=255‖))

N=Val(InputBox(―Введи 0<=N<=255‖))

For j= 1 To N

 

 

 

 

For i = 1 To N

Cells(2, j+1).Value = j

Cells(i+1, i+1).Value = i

Next j

 

 

 

 

 

 

 

 

 

 

 

 

 

Next i

 

 

End Sub

 

 

 

 

 

 

 

 

 

 

 

 

 

 

End Sub

 

 

 

 

 

 

 

Sub Column_Number()

 

Sub Invers_Number()

Dim i As Integer

 

 

 

 

 

 

 

 

Dim i As Byte

Dim N As integer

 

 

 

 

Dim N As Byte

N=Val(InputBox(―Введи 0<=N<=65535‖))

N=Val(InputBox(―Введи 0<=N<=255‖))

For i = 1 To N

 

 

 

 

For i = 1 To N

Cells(i+1, 2).Value = i

 

Cells(i+1, i+1).Value = N-i+1

Next i

 

 

 

 

 

 

 

 

 

 

 

 

 

Next i

 

 

End Sub

 

 

 

 

 

 

 

 

 

 

 

 

 

 

End Sub

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Самостоятельно

6.Написать программу, заполняющую обратную диагональ, и составить таблицу проверки (прогонки программы без выполнения) для алгоритма Обратная диагональ в точке (1).для N=4.

54