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

РГР_2

.docx
Скачиваний:
16
Добавлен:
31.03.2015
Размер:
68.13 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ЭКОНОМИКИ И УПРАВЛЕНИЯ «НИНХ»

Институт

Прикладной информатики

Кафедра

Экономической информатики

Расчетно-графическая работа

Учебная дисциплина:

Информатика

Тема:

«Разработка программ на VBA в среде Excel»

Номер варианта РГР:

15

Номер группы:

1721

Ф.И.О студента:

Мельникова А.И.

Проверил(а):

Степанова Т.И.

Оценочное заключение:

Новосибирск 2012

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

1

начало

2

«С1»>0

нет

4

«С1»<0

да

нет

3

вывод

число в клетке да

положительное

5

Очистить «С1»

вывод

6

число в клетке

отрицательное

7

вывод

число в клетке = 0

8

конец

Программа:

Private Sub pr1()

If Cells(1, 3) > 0 Then

MsgBox "Число в клетке положительное"

ElseIf Cells(1, 3) < 0 Then

Cells(1, 3).Clear

MsgBox "Число в клетке отрицательное"

Else

MsgBox "Число в клетке = 0"

End If

End Sub

Задание 2. Циклические алгоритмы. Составить блок-схему и программу. В клетки диапазона D10:D30 записать сумму соответствующих ячеек столбцов А, В и С (например, А10+В10+С10 - в D10).

1

начало

i=10,30

2

3

D(i)=A(i)+B(i)+C(i)

4

конец

Private Sub pr2()

Dim a(10 To 30, 1 To 3) As Integer

For i = 10 To 30

For j = 1 To 3

a(i, j) = Int(Rnd * 100) - 50

Cells(i, j) = a(i, j)

Next

Next

For i = 10 To 30

Cells(i, 4) = Cells(i, 1) + Cells(i, 2) + Cells(i, 3)

Next

End Sub

Задание 3. Функции пользователя. Создать функцию пользователя, которая возвращает следующий результат: при заданном аргументе n определяет сумму отрицательных элементов в числовой последовательности: .

K(n)

1

K=0

2

a(1)=Cos(2)/2

3

a(2)=Sin(3)/5

4

i=3,n

5

6

a(i)=a(i-1)-2*a(i-2)

7

i=1,n

a(i)<0

8

нет

да

K=K+a(i)

9

10

Возврат

Function K(n)

Dim n As Integer

Dim K As Single

ReDim a(1 To n) As Single

K = 0

a(1) = Cos(2) / 2

a(2) = Sin(3) / 5

For i = 3 To n

a(i) = a(i - 1) - 2 * a(i - 2)

Next

For i = 1 To n

If a(i) < 0 Then K = K + a(i)

Next

End Function

Задание 4. Пусть на рабочем листе задан некоторый двумерный массив натуральных чисел. Найти столбец,  в котором число четных превышает число нечетных его элементов.

1

Начало

j=1 to 5

i=1 to 5

k=0: с=0

c=c+1

вывод

n

2

3

11

6

8

max=0

n=0

4

Конец

12

5

Cells(i, j) .Value Mod 2 = 0

да

нет

7

k=k+1

c>k and c>max

9

нет

да

10

max=c

n=j

Private Sub pr4()

Dim max, c, n, k As Integer

Dim a(1 To 7, 1 To 5) As Integer

For i = 1 To 7

For j = 1 To 5

a(i, j) = Int(Rnd * 100) - 50

Cells(i, j) = a(i, j)

Next

Next

max = 0

n = 0

For j = 1 To 5

k = 0: c = 0

For i = 1 To 7

If Cells(i, j).Value Mod (2) = 0 Then

c = c + 1

Else

k = k + 1

End If

Next

If c > k And c > max Then

max = c

n = j

End If

Next

MsgBox "Cтолбец, в котором число четных превышает число нечетных чисел:" & n

End Sub

Задание 5. Разработать форму для ввода данных в таблицу на рабочем листе Excel.

Форма:

Код программы:

Public Sub UserForm_Initialize()

ComboBox1.AddItem "100 г"

ComboBox1.AddItem "125 г"

ComboBox1.AddItem "150 г"

ComboBox1.AddItem "175 г"

ComboBox1.AddItem "200 г"

ComboBox1.AddItem "250 г"

ComboBox1.AddItem "300 г"

ComboBox1.AddItem "350 г"

ComboBox1.AddItem "400 г"

ComboBox1.AddItem "450 г"

ComboBox1.AddItem "500 г"

ComboBox1.Style = fmStyleDropDownList

End Sub

Public Sub CommandButton1_Click()

Dim Row As Integer

Row = Application.CountA(Sheets("Лист1").Range("A:A")) + 1

Dim Категория As String

Dim вес As String

With UserForm1

If .OptionButton1 = True Then Категория = "Салаты"

If .OptionButton2 = True Then Категория = "Закуски"

If .OptionButton3 = True Then Категория = "Супы"

If .OptionButton4 = True Then Категория = "Мясо"

If .OptionButton5 = True Then Категория = "Морепродукты"

If .OptionButton6 = True Then Категория = "Десерты"

End With

With Sheets("Лист1")

.Cells(Row, 1) = Категория

End With

Cells(Row, 2) = TextBox1

Cells(Row, 4) = TextBox2

With UserForm1

вес = .ComboBox1

End With

With Sheets("Лист1")

.Cells(Row, 3) = вес

End With

End Sub

Public Sub CommandButton2_Click()

End

End Sub

Модуль:

Sub Вычислить()

UserForm1.Show

End Sub