- •ГЕОФИЗИЧЕСКИЙ ФАКУЛЬТЕТ
- •ПРАКТИКУМ ПО КУРСУ
- •УЧЕБНОЕ ПОСОБИЕ
- •ВВЕДЕНИЕ
- •ЗАДАНИЕ 1
- •ЗАДАНИЕ 2
- •ЗАДАНИЕ 3
- •ЗАДАНИЕ 4
- •ЗАДАНИЕ 5
- •ЗАДАНИЕ 6
- •СПРАВОЧНИК Управление данными
- •ЗАДАНИЕ 7
- •СПРАВОЧНИК Финансовые функции
- •ЗАДАНИЕ 8
- •ЗАДАНИЕ 9
- •ЗАДАНИЕ 1
- •ЗАДАНИЕ 2
- •ЗАДАНИЕ 3
- •ЗАДАНИЕ 4
- •ЗАДАНИЕ 5
- •ЗАДАНИЕ 6
- •СИСТЕМА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ ACCESS
- •ЗАДАНИЕ 2
- •ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ
- •ЭЛЕКТРОННЫЕ ТАБЛИЦЫ
- •АЛГОРИТМ. СВОЙСТВА АЛГОРИТМОВ.
- •ЭТАПЫ РЕШЕНИЯ ЗАДАЧ НА КОМПЬЮТЕРЕ
- •ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ
- •СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ
- •ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
- •ФУНКЦИОНАЛЬНОЕ ПРОГРАММИРОВАНИЕ
- •ЯЗЫКИ ПРОГРАММИРОВАНИЯ. КОМПИЛЯЦИЯ И ИНТЕРПРЕТАЦИЯ.
- •КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВНИЯ
- •ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ Visual Basic for Application (VBA)
- •ТИПЫ АЛГОРИТМОВ И ИХ РЕАЛИЗАЦИЯ НА VBA
- •АЛГЕБРА ЛОГИКИ. ЛОГИЧЕСКИЕ ФУНКЦИИ. БАЗОВЫЕ ЛОГИЧЕСКИЕ ОПЕРАЦИИ.
- •ОСНОВНЫЕ ЗАКОНЫ АЛГЕБРЫ ЛОГИКИ. ПРЕОБРАЗОВАНИЕ ЛОГИЧЕСКИХ ФУНКЦИИ.
- •ОСНОВНЫЕ ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ
- •ОСНОВНЫЕ ЛОГИЧЕСКИЕ УСТРОЙСТВА КОМПЬЮТЕРА - СУММАТОР
- •ОСНОВНЫЕ ЛОГИЧЕСКИЕ УСТРОЙСТВА КОМПЬЮТЕРА - ТРИГГЕР
- •СИСТЕМА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ (СУБД). НАЗНАЧЕНИЕ И ОСНОВНЫЕ ВОЗМОЖНОСТИ.
- •ВОПРОСЫ ДЛЯ ПОДГОТОВКИ К ЭКЗАМЕНУ.
- •СПИСОК ЛИТЕРАТУРЫ
ЗАДАНИЕ 3
ПОИСК ЭЛЕМЕНТОВ МАССИВА ПО УСЛОВИЮ
Ключевые понятия: выбор элементов массива, запись условий в цикле, условие чѐтности и нечѐтности чисел, вычисление количества элементов, алгоритм нахождения максимального и минимального элементов массива.
ДВОЙНОЙ ЦИКЛ С ПАРАМЕТРОМ
ЗАДАЧА № 1.3
Заполнить массив размером N на N ячеек листа ЭТ целыми числами, полученными по определенным алгоритмам (правилам). Константу N и параметры циклов i, j объявить в разделе General (вверху, выше всех макросов Sub) как общие (Public) переменные и константы (Const).
Const N = 10
Public i As Byte, j As Byte
1. Построить таблицу умножения и сложения номера строки и столбца (Пифагоровы таблицы).
Sub Умножение() |
Sub Сложение() |
For i = 1 To N |
For i = 1 To N |
For j = 1 To N |
For j = 1 To N |
Cells(i, j) = i * j |
Cells(i, j) = i + j |
Next j |
Next j |
Next i |
Next i |
End Sub |
End Sub |
2. Разместить на листе Excel командные кнопки и назначить им макросы для выполнения соответствующих программ. Изменить свойство отображения ЭТ (Сервис-Параметры-Общие-Стиль ссылок R1С1).
55
3. Заполнить таблицу случайными числами в заданном диапазоне от А до В. Для этого использовать функцию (Rnd()*(b - a + 1) + a). Для выбора целой части числа применяем функцию Cells(i, j) = Int(Rnd()*(В - А ) + А) и записываем в i-строку и j-столбец.
Sub Случ_числа()
Dim a As Integer
Dim b As Integer
a= Val(InputBox("A от -255 до 255", "Введи A?"))
b= Val(InputBox("B>A от " & Str(a) & " до 255", "Введи B?"))
Randomize 'включение датчика
For i = 1 To N For j = 1 To N
Cells(i, j) = Int(Rnd() * (b - a ) + a)
Next j Next i
End Sub
4. Рассчитать сумму всех чисел в таблице (т.е. N*N) а также среднее значение. Для этого мы возьмем пустую переменную s=0 и в процессе просмотра таблицы в двойном цикле будем складывать все числа в s = s + Cells(i, j). Так накопиться сумма, а среднее будет равно s/(N*N).
Sub Сумма()
Dim s As Integer
s = 0 'начальное значение суммы
For i = 1 To N For j = 1 To N
s = s + Cells(i, j) ' накапливаемая сумма
Next j Next i
Cells(12, 1) = s : Cells(12, 2) = "- cумма"
Cells(13, 1) = s / (N * N) : Cells(13, 2) = "- cреднее"
MsgBox ("Сумма = " & Str(s) & " Среднее = " & Str(s / (N * N)))
End Sub
5. Определить количество нечетных и четных чисел. Для этой задачи введем две вспомогательные переменные k1 и k2 для хранения количества нечетных и четных чисел. Отличать четное число будем с помощью условного оператора, где в качестве условия будем проверять остаток от деления нацело (оператор Mod) каждого
56
числа из таблицы Cells(i, j) Mod 2 = 0 и увеличивать соответствующие счетчики k2 = k2 + 1, если правда, и k1 = k1 + 1, если иначе.
Sub Чет_Нечет()
Dim k2 As Integer, k1 As Integer
k2 = 0 |
' счетчик четных значений |
k1 = 0 |
' счетчик нечетных значений |
For i = 1 To N For j = 1 To N
If Cells(i, j) Mod 2 = 0 Then Cells(i, j).Interior.ColorIndex = 0
k2 = k2 + 1 ' увеличение счетчика четных значений
Else
Cells(i, j).Interior.ColorIndex = 15
k1 = k1 + 1 ' увеличение счетчика нечетных значений
End If
Next j Next i
Cells(12, 1) = k2: Cells(12, 2) = "- четных" Cells(13, 1) = k1: Cells(13, 2) =" - нечетных"
End Sub
6. Определить количество положительных и отрицательных чисел. Для этой задачи можно поступить так же, как и в предыдущем случае, но мы рассмотрим альтернативный прием. Выберем две ячейки таблицы и обнулим все, что в них могло храниться Cells(12, 1) = 0 'ячейка положительных чисел и Cells(13, 1) = 0 'ячейка отрицательных. Отличать положительное число от отрицательного будем с помощью условного оператора, где в качестве условия будем сравнивать каждое число с нулем Cells(i, j) > 0 и увеличивать соответствующую ячейку-счетчик Cells(12, 1) = Cells(12, 1) + 1, если правда, и иначе Cells(13, 1) = Cells(13, 1) + 1.
Sub Числа_плюс_минус()
Cells(12, 1) = 0 'ячейка положительных
Cells(13, 1) = 0 'ячейка отрицательных
For i = 1 To N
For j = 1 To N
If Cells(i, j) > 0 Then
Cells(12, 1) = Cells(12, 1) + 1
Cells(i, j).Interior.ColorIndex = 45
Else
57
Cells(13, 1) = Cells(13, 1) + 1
Cells(i, j).Interior.ColorIndex = 35
End If
Next j
Next i
Cells(12, 2) = "положительных"
Cells(13, 2) = "отрицательных"
End Sub
7. Написать программу, которая будет закрашивать ячейки получившихся таблиц различными цветами из цветовой палитры (от 0-до 56). Так как у нас могут появиться в процессе работы и отрицательные числа и числа больше значения 56, то применим функцию ABS(Число), которая возвращает абсолютное значение числа, и уже знакомую операцию Mod к значению в каждой ячейки. Полученным цветовым индексом (ColorIndex) закрасим свойство ин-
терьер (Interior или фон) ячейки Cells(i, j).Interior.ColorIndex =
Abs(c) Mod 56.
Sub Закрасить() For i = 1 To N
For j = 1 To N c = Cells(i, j)
Cells(i, j).Interior.ColorIndex = Abs(c) Mod 56 Next j
Next i End Sub
8. Предусмотреть очистку закрашенной области ячеек с исполь-
зованием метода Cells(i, j).Clear.
Sub Очистить()
If Cells(1, 1).Value <> "" Then
For i = 1 To N
For j = 1 To N
Cells(i, j).Clear
Next j
Next i
End If
End Sub
9. Разместить на листе Excel командные кнопки и назначить им макросы для выполнения соответствующих программ.
58
Пример работы программы Sub Чет-Нечет() и Sub Закрасить()
Пример работы программы Sub Случ_числа() и программы Sub Числа_плюс_минус()
САМОСТОЯТЕЛЬНО:
ЗАДАЧА №1.4. Определить количество кратных 3 среди четных и нечетных элементов в массиве ячеек.
ЗАДАЧА №1.5. Определить номера минимального и максимального элементов в массиве.
ЗАДАЧА №1.6. Определить наличие простых чисел в массиве среди элементов.
ЗАДАЧА №1.7. Определить сколько пар, начиная с первого элемента, в таблице стоят по порядку, т.е. число в ячейке с нечетным номером столбца больше чем с четным [Cells(i, 1)> Cells(i, 2)].
Для всех самостоятельных заданий: сделать кнопку вызова программы, вывести результат и закрасить соответствующие ячейки.
59