Практикум по дисциплине «Информатика»

ч. 1 ... ч. 2 ч. 3 ч. 4 ч. 5 ч. 6 ч. 7



Задание 4.2.1. Запись, редактирование, создание макроса

  1. Записать макрос «Таблица», назначить макросу сочетание клавиш CTRL. Изменить размер шрифта (18 пт), начертание – курсив.

Расписание занятий группы на 1 семестр




  1. Создать макросы по расчету значений функций с точностью 2 знака:

2.1. x = 12.347, y = 10.678
2.2. x = 6.121, y = 15.773
2.3.

x = 15.664, y = 29.786, t = 32.124
4.3. Условный переход (If … Then…)

Пример: рассчитать значение А и n при x = 2.3, y=45.8, z=55.5 и условиях:



Код макроса

Option Explicit

Public Sub Execute()

Dim a As Single, x As Single, y As Single

Dim z As Single, n As Single

x = 2.3

y = 45.8

z = 55.5

a = Sqr(Abs(x + y ^ 2 + z))

If a > 2 Then

n = x ^ 2 - y ^ 3 + 2 * x * y

End If

If a = 2 Then

n = y ^ 3 - x ^ 2

End If

If a < 2 Then

n = 1 - (y - z) / (y + z)

End If

Debug.Print "x ="; x; "y ="; y; "z ="; z

Debug.Print "a ="; a

Debug.Print "n ="; n

End Sub

Задание 4.3.1. Условный переход





4.4. Функции пользователя

Пример: создать функцию для вычисления в EXCEL

1. Insert / Module – добавление в проект модуля,

2. щелчок на пиктограмме Module 1,

3. в окне свойств (Properties), Names (имя), ввести Vector (имя модуля),

4. в окне VBA ввести операторы функции:


Public Function getVector(a As Single, b As Single) As Single

Dim z As Single

z = Sqr(a ^ 2 + b ^ 2)

getVector = z

End Function

(Function – имя процедуры, Public – глобальный доступ)

4. Сохранить результаты, закрыть окно VBA.

5. Найти созданную функцию в EXCELfx , выбрать категорию

«Определенные пользователем», ввести значения аргументов
Задание 4.4.1. Функции пользователя


  1. Создать пользовательские функции,

  2. Рассчитать значения x

при a = 0,1 0,1 в диапазоне от 0,1 до 3,

b = 2

  1. Построить графики функции x(a)


Formula1

Formula2

Formula3

Formula4
4.5. Организация Windows диалога

1. Функция InputBox (для ввода строки текста в программу c помощью окна диалога Windows):

- формат вызова функции:

Dim s As String

S=InputBox(«приглашение»,[“значение по умолчанию”])

- функции преобразования чисел в типы данных:



CInt(s) – Integer, CLng(s) – Long, CSng(s) – Single, CDbl(s) – Double, CDate(s) – Date, Cvar – Variant

2. Функция MsgBox (для организации диалога с пользователем):

- формат вызова функции:

response=MsgBox(“Текст сообщения”,флаги,”Заголовок”)
- аргументы функции:

- “Текст сообщения” – cсообщение пользователю,

- флаги – комбинация системных констант VBA для вывода кнопок и пиктограммы к сообщению (vb):

Системные константы


Константа

Назначение

vbOKOnly

кнопка «ОК»

vbOKCancel

кнопки «ОК», «Отмена»

VbAbortRetryIgnore

кнопки «Отменить», «Повторить»,

«Игнорировать»



VbYesNoCancel

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

VbYesNo

кнопки «Да», «Нет»

VbRetryCancel

кнопки «Повторить», «Отмена»

VbCritical

пиктограмма

VbQuestion

пиктограмма

VbExclamation

пиктограмма

vbInformation

пиктограмма

- при закрытии диалога в переменную response возвращается код нажатой кнопки:

Коды кнопок

Кнопка

Код

«ОК»

vbOK

«Cancel»

vbCancel

«Отменить»

vbAbort

«Повторить»

vbRetry

«Игнорировать»

vbIgnore

«Да»

vbYes

«Нет»

vbNo

- ”Заголовок” – текст для заголовка окна (необязателен).



Пример: выполнить вычисления (макрос) по формуле

- данные вводятся с клавиатуры,

- если данные не числа – сообщение об ошибке,

- после вычислений вывести запрос на продолжение.



Код макроса

Комментарий

Option Explicit




Public Sub ExecDialog()

Начало процедуры

Dim a As Single, b As Single

Задание переменных

Dim z As Single

Dim strA As String, strB As String

Dim response

newInput:

Ввод данных в диалог


strA = InputBox("InputA")

strB = InputBox("InputB")

If Not IsNumeric(strA) Or Not IsNumeric(strB) Then

Проверка ввода (условие) (если данные не числа - сообщение об ошибке в диалоге с пиктограммой (х))


MsgBox "Error!" & Chr(10) & Chr(13) & "Not number data!", vbCritical, ""

Exit Sub

End If

a = CSng(strA): b = CSng(strB)

Преобразование a и b в число с плавающей запятой

z = Sqr(a ^ 2 + b ^ 2)

Формула

MsgBox "Z=" & Format(z, "###0.00") & "A=" & a & "B=" & b, vbInformation, ""

Вывод результатов работы в диалог с пиктограммой (!)


response = MsgBox("Input new data", vbQuestion + vbYesNo, "")

Запрос на повторный ввод данных в диалоге с пиктограммой (?) и кнопками Да, Нет

If response = vbYes Then GoTo newInput

Если Да, новый ввод данных

End Sub

Окончание процедуры


Задание:

1. Убрать проверку ввода.

2. Убрать запрос на ввод новых данных.

3. Изменить имя процедуры на «h».

4. Изменить имена переменных: strA на с, strB на d.

5. Изменить сообщения InputA на ВводА, InputB на ВводВ.



Задание 4.5.1. Организация Windows диалога

- выполнить вычисления (макрос) по формулам:

- данные вводятся с клавиатуры,

- если данные не числа – сообщение об ошибке,

- после вычислений вывести запрос на продолжение.
4.6. Массивы

1. Массивы - это объекты программы, которые позволяют хранить однотипные значения под определенным именем.



Доступ к элементам массива осуществляется по их номеруиндексу. Если для доступа к элементу массива нужен один индекс, то массив одномерный, если два индекса, то массив двухмерный (матрица).

2. Одномерные массивы задаются в следующем виде:



Dim имяМассива (1 То n) As T, где T – тип элементов.

Матрицы задаются в виде:

Dim имяМассива (1 То n, 1 To m) As T, где n – число строк, а m – число столбцов

3. При необходимости генерации случайных чисел используются функции:



Randomizeактивизация генератора случайных чисел;

Rndполучение случайного вещественного числа нормально распределенного в диапазоне от 0 до 1.

4. Обработка массивов производится в цикле. Основным циклом является цикл типа FOR:



For i = n1 to n2 [step n3]

операторы



next i

iсчетчик шагов цикла,

n1начальное значение счетчика цикла,

n2конечное значение счетчика,

n3шаг приращения счетчика (необязательный параметр, по умолчанию = 1).

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



Do While условие

'операторы

loop

6. Range - объект для работы с данными в ячейках рабочего листа.



Cells - объект доступа к диапазону ячеек по индексам.
Пример 1 (одномерный массив): заполнить массив случайными вещественными числами, вычислить их сумму, вывести сумму и массив.

Операторы программы

Комментарий

1

2

Option Explicit




Public Sub ExecArray()

Начало процедуры

Const n = 10

Задание константы

Dim sngArray(1 To n) As Single

Задание одномерного массива

Dim i As Integer

Задание счетчика шагов

Dim mes As String

Задание переменной mes

Randomize

Активизация генератора случайных чисел

mes = "V["

Начальное значение для строки элементов массива

For i = 1 To n

Начало цикла

sngArray(i) = Rnd

Получение случайного вещественного числа

mes = mes & "" & Format(sngArray(i), "###0.00")

Вывод переменной mes с округлением

Next i

Следующее значение i

mes = mes + "]"

Конечное значение для строки элементов массива

Dim s As Single

Задание переменной s

s = 0

Начальное значение суммы

For i = 1 To n

Начало цикла

1

2

s = s + sngArray(i)

Вычисление суммы

Next i

Следующее значение i

MsgBox "S=" & s & Chr(10) & Chr(13) & mes, vbInformation, "“

Вывод результатов в диалог

(Chr – управляющие коды для перехода на новую строку)



End Sub

Окончание процедуры



Задание:

1. Изменить имя процедуры на «Massiv».

2. Изменить имя массива на L.

3. Убрать начальное и конечное значение переменной mes.

4. Убрать округление переменной mes.

5. Убрать пиктограмму с «!».


Пример 2 (одномерный массив): создать макрос для ввода с клавиатуры последовательности чисел, выполнить их суммирование до контрольного значения, которое вводится с клавиатуры.

Код макроса

Комментарий

Option Explicit




Public Sub getNumbers()

Начало процедуры

Dim strN As String, strX As String

Задание переменных

Dim n As Single, s As Single, x As Single

strN = InputBox(“Вв. Предельное число N")

Диалог для ввода предельного числа

If Not IsNumeric(strN) Then Exit Sub

Если введено не число - выход из программы

n = CSng(strN)

Преобразование n в число с плавающей запятой

s = 0

Начальное значение суммы

Do While s < n

Начало цикла по логическому условию

strX = InputBox(“Введите число")

Диалог для ввода числа

If Not IsNumeric(strX) Then Exit Do

Если введено не число - выход из программы

x = CSng(strX)

Преобразование x в число с плавающей запятой

s = s + x

Вычисление суммы

Loop

Конец

MsgBox “Получено=" & s & "N=" & n

Вывод результатов в диалог

End Sub

Окончание процедуры


Задание:

1. Заполнить два массива случайными числами, вычислить их сумму.

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

Пример 3 (операции с матрицами): Заполнить квадратные матрицы А и В размера n x n случайными вещественными числами. Получить новую матрицу С по формуле: С(i,j)=A(i,j)+B(i,j).

Рабочий лист после обработки данных:


1. Создать 3 командные кнопки, изменить имя и заголовок.

2. Ввести операторы программы в окне VBA




Операторы программы

Комментарий

1

2

Const n = 5

Задание константы

Dim A(1 To n, 1 To n) As Single

Задание переменных с плавающей запятой

Dim B(1 To n, 1 To n) As Single

Dim cRow As Integer, cCol As Integer

Задание целочисленных переменных




Кнопка «Ввод»

Private Sub cmdInput_Click()

Начало процедуры

Range("A12:E16").ClearContents

Очистка области вывода нового массива

cmdExec.Enabled = True

Открыть доступ к кнопке «Вычислить»

Получение исходных матриц




Randomize

Активизация генератора случайных чисел

For i = 1 To n

Начало цикла

For j = 1 To n

A(i, j) = Rnd

Заполнение ячеек случайными числами

B(i, j) = Rnd

Next j

Конец цикла

Next i

Вывод исходных матриц на рабочий лист




Dim dCol As Integer




dCol = 7

Увеличение № столбца

1

2

cRow = 4

№ первой строки

For i = 1 To n




cCol = 1




For j = 1 To n




Cells(cRow, cCol).Value = A(i, j)




Cells(cRow, cCol + dCol).Value = B(i, j)




cCol = cCol + 1




Next j




cRow = cRow + 1




Next i




Range("A4:E8").NumberFormat = "0.000"

Форматирование выходных исходных данных

Range("H4:L8").NumberFormat = "0.000"

End Sub







Кнопка «Вычислить»

Private Sub cmdExec_Click()




Dim C(1 To n, 1 To n) As Single

Новая матрица

For i = 1 To n




For j = 1 To n




C(i, j) = A(i, j) + B(i, j)

Вычисление элементов матрицы

Next j




Next i




cRow = 12

Первая строка матрицы С

Вывод полученной матрицы




For i = 1 To n




cCol = 1




For j = 1 To n




Cells(cRow, cCol).Value = C(i, j)




cCol = cCol + 1




Next j




cRow = cRow + 1




Next i




Range("A12:E16").NumberFormat = "0.000"

Форматирование чисел вычисленной матрицы

cmdExec.Enabled = False

Закрыть доступ к кнопке «Вычислить»

End Sub







Кнопка «Сброс»

Private Sub cmdClear_Click()




Очистка областей вывода




Range("A12:E16").ClearContents




Range("A4:E8").ClearContents




Range("H4:L8").ClearContents




End Sub

Окончание процедуры

Задание 4.6.1. Одномерные массивы

Создать массив и процедуру его обработки:



1. С помощью генератора случайных чисел создайте два массива: M1 и М2 по 30 чисел каждый. Вычислите сумму каждой пары элементов этих массивов и выведите в диалоговом окне новый массив МЗ m3(i)=m1(i)+m2(i). Найдите максимальные значе­ния элементов каждого массива.
2. С помощью генератора случайных чисел создайте массив на 25 элементов. В диалоговом режиме введите два целых числа X и Y. В исходном массиве замените нулями элементы, модуль ко­торых при делении на X дает в остатке число, большее Y. По­лученный массив вывести в диалоговом окне.
3. Заполните массив M1 30-ю случайными числами в диапазоне от -50 до 50. С помощью генератора случайных чисел создайте число А1 и выведите его в окне. Все элементы последователь­ности, меньшие числа А1, замените нулями. Посчитайте сум­му элементов диапазона от -5... до 9 и количество элементов, вошедших в этот промежуток. Результаты вывести в диалого­вых окнах.
4. Массивы A,B,C,D заполнены числами (по 20 чисел). Массив F заполнить максимальными элементами этих массивов, а мас­сив J - минимальными. Вывести все массивы в диалоговых окнах.
5. Массивы A, B, C, D заполнить числами. Найти минимальный эле­мент каждого массива и найти произведение этих минимумов. Вывести все массивы, минимальные элементы и их произведе­ния в разных диалоговых окнах.
6. Даны два массива С и D по 30 элементов каждый. Поменять местами элементы столбца С, имеющие четный индекс, на эле­менты столбца D, имеющие нечетный индекс. Вывести все мас­сивы в разных диалоговых окнах.
7. В массиве С находится возраст 30-ти жителей дома от 1 до 75 лет в произвольном порядке. Выведите массив, отсортирован­ный по возрастанию, поместив около каждой цифры слова: "год", "года", "лет".
8. В массивы В и Е введите оценки двух групп по дисциплине "Информатика" и определите, в какой группе больше пятерок. В какой группе больше двоек? Определите, в какой группе лучше успеваемость. Результаты выведите на рабочий лист в диа­логовых окнах.
9. Массив А заполнить годами: от 1970 до 2000. Массив С запол­нить последовательно значениями урожайности зерновых за последние 30 лет. В каком году урожайность была ниже сред­него значения? Результат вывести на рабочий лист в диалого­вом окне.
10. Массив F заполнить произвольными числами. Все элементы, предшествующие минимальному, выделить в отдельный мас­сив и переместить в массив К. Выведите оба массива и мини­мальный элемент в диалоговых окнах. Рассмотрите граничные варианты.
11. Массив А заполнить количеством осадков в мм, выпавших в Москве в течение последних 30 лет XX века. Найти среднее количество осадков и отклонение от среднего для каждого года. Результаты вывести на рабочий лист в диалоговых окнах.
12. Массив А содержит имена: Маша, Коля, Саша, Валя, Ира и т.д. Массив В, соответственно, содержит значения жен, муж, муж, муж, жен и т.д. Сформируйте два массива С и D из лиц мужско­го и женского пола. Выведите оба массива в диалоговых окнах.
13. Массивы А, В, С заполнить следующими величинами: А-имя, В-рост, С-пол. Создайте два массива, для мальчиков и девочек, расположив их по росту. Выведите оба массива в диалоговых окнах.
14. Массивы А и В заполнены целыми числами. Вычислить в мас­сиве С сумму кубов каждой пары элементов и разместить по убыванию в массиве D. Выведите все массивы в диалоговых окнах.
15. Массив А(15) заполнить целыми числами величиной от 100 до 100000. В массив В поместить сумму цифр каждого числа. Выведите оба массива в диалоговых окнах. Отдельно выведите значение максимального числового значения элемента (по сум­ме цифр).

Задание 4.6.2. Матрицы

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


1. Диапазон А1:К16 заполнить целыми числами. Расположить строки по возрастанию суммы их элементов.
2. Начиная с ячейки В1 рабочего листа диапазон содержит в произ­вольном порядке даты рабочих дней за первый квартал. Распределите даты в трех диапазонах (строках) - для каждого месяца свой. Отсортируйте даты в каждой строке по убыванию.
3. Диапазон A1:F6 заполнен целыми числами. Расположить диагональные элементы таким образом, чтобы они оказались выс­троены по убыванию.
4. Двумерный диапазон неизвестного размера заполнен целыми числами. Поменять местами строки с номерами р и q (номера вводятся в диалоговом окне).
5. Определить для квадратной матрицы неизвестной размернос­ти, начинающейся в ячейке В5, является ли она ортонормированной, т.е. такой, в которой скалярное произведение каждой пары различных строк равно нулю, а скалярное произведение каждой строки на себя равно единице.
6. Дана целочисленная матрица А1:N14. Необходимо сформиро­вать одномерный массив из элементов, лежащих выше главной диагонали, включая диагональ, и разместить его в столбце Р.
7. В квадратной матрице неизвестной размерности найти макси­мальное и минимальное численные значения элементов и пе­реставить местами столбцы, в которых они находятся.
8. Дана целочисленная матрица неизвестной размерности. Сфор­мировать из максимальных значений чисел каждой строки век­тор и записать в столбец, находящийся через один от последне­го столбца матицы.
9. Таблица круга футбольного чемпионата задана своей верхней правой частью. Построить всю таблицу целиком.
10. Двумерный диапазон, начинающийся с ячейки С4, заполнен дей­ствительными целыми положительными числами. Необходимо сформировать в строке, расположенной через одну после пос­ледней, одномерный массив, каждый элемент которого равен количеству элементов соответствующего столбца меньше 10.
11. Матрица размерностью N строк и М столбцов заполнена целы­ми числами. Необходимо определить, какой из размеров боль­ше, и недостающие ячейки заполнить единицами.
12. На рабочем листе интервал A1: E1 заполнен целыми числами. В каждой строке есть нулевой элемент. Необходимо поменять местами нулевые элементы на цифры первого столбца.

13. Интервал A2:J11 заполнен целыми числами. Поменять местами максимальные значения элементов 1-ой и 2-ой строки, 3-ой и 4-ой, ..., 9-ой и 10-ой.


14. На листе Excel дана таблица продаж за месяц в виде:

A

B

C

D

E

Товар

Себестоимость



Розничная

цена


Количество

проданного



Поставщику уплачено




В столбце Е рассчитайте себестоимость каждого вида товара (B*C-D). Выведите сообщение: какой товар продавать выгод­нее? На следующем листе повторите таблицу, расположив то­вары по размеру прибыли на единицу товара. 15.
15. Столбец А заполнен целыми числами от 1 до 100000. В стол­бец В нужно поместить сумму цифр каждого числа, из сосед­ней ячейки столбца А значение максимального элемента (по сумме цифр) вывести красным цветом, применив жирный кур­сив.
16. На первом листе находится таблица значения курса валюты за месяц следующего вида:

Дата

Цена в $

На втором листе размещается таблица товаров в валюте, куп­ленных в этот период:

Товар

Дата покупки

Цена товара в $

Цена в рублях

Товары в таблице расположены по алфавиту. В один день мо­гут быть куплены разные товары. Необходимо пересчитать сто­имость товаров в рубли по соответствующему на текущий день курсу.

4.7. Проектирование интерфейса. Объект User Form

1. Элементы управления (ActiveX).

1.1. Добавление кнопки:

- Разработчик / Вставить / Элементы ActiveX , Кнопка, режим конструктора,

- растянуть кнопку на листе,

- правой кнопкой по кнопке / Свойства:



Свойство

Значение

Name (имя)

cmdNumber1

Caption (заголовок)

Закрыть

1. 2. Программирование кнопки:

- правой кнопкой по кнопке / Исходный текст – окно VBA,

- ввести код:



Private Sub cmdNumber1_Click()

Начало процедуры для события Click – щелчок по кнопке

'Загрузка формы

Комментарий

Load frmNumber1

Загрузка формы с именем Number1

frmNumber1.Show

Вывод на экран формы Number1

End Sub

Окончание процедуры

1.3. Пользовательские формы:

- Insert / User Form, View / Properties Window

- визуальные компоненты диалога: View / ToolBox



Визуальный

компонент

Назначение

Префикс

Label

Текстовая метка – ввод текста

lbl

TextBox

Тестовое поле - ввод – вывод строки текста

txt

ListBox

Список - выбор значения из набора

lst

CheckBox,

OptionButton



Переключатели

chk,opt

ToggleButton

Кнопка – выбор значения

tgb

CommandButton

Командная кнопка - выполнение действия

cmd

Frame

Кадр - группировка элементов формы

fra

1.4. Создание формы «Закрыть»:

- создать на рабочем листе командную кнопку с заголовком «Закрыть форму!», запрограммировать ее:



Private Sub cmdForm1_Click()

Начало процедуры для события Click – щелчок по кнопке

'Загрузка формы

Комментарий

Load Form1

Загрузка формы с именем Form1

Form1.Show

Вывод на экран формы Form1

End Sub

Окончание процедуры

- создать форму Form1 с текстовой меткой и командной кнопкой:



Текстовая метка:

Свойство

Значение

Caption (Заголовок)

Первая форма

AutoSize (Автоподбор)

True

BackColor (Цвет заливки)

Выбрать

Font (Шрифт)

Гарнитура шрифта

ForeColor (Цвет шрифта)

Выбрать

Picture (Рисунок)

Выбор рисунка

TextAlign(Выравнивание текста)

2 - … Center


Командная кнопка: имя – CloseButton, заголовок – Закрыть!, изменить шрифт, заливку.

Программирование кнопки:

- открыть редактор VBA ,

- ввести End между операторами:

Private Sub CloseButtom_Click()

End

End Sub
- проверка работы формы.

4. Проверить работу формы.



Задание 4.7.1. Создание формы


Читатель






Программирование командной кнопки в форме:

Private Sub CommandButton1_Click()

Reader.Caption = TextBox1.Text

End Sub

Проверка работы формы - возможность изменения заголовка окна.
Задание 4.7.2. Создание формы (расчет по курсу валют)

Разместить и запрограммировать на рабочем листе и форме элементы:

- Командная кнопка вызова формы с листа Калькулятор.

- Текстовые поля: ввод курсов валют, ввод суммы для расчета.

- Блоки радиокнопок для выбора вида операции и курса валют.

- Текстовое поле «Итого» для вывода результатов расчета.

- Командные кнопки «Расчет» и «Сброс».



1. Размещение на листе кнопки. Свойства кнопки:



Свойство

Значение

Name

cmdLoad

Caption

Калькулятор

2. Программирование кнопки:



Private Sub cmdLoad_Click()

'Загрузка формы

Load frmValuta

frmValuta.Show

End Sub
3. Insert / User Form – создание формы. Свойства формы:

Свойство

Значение

Name

frmValuta

Caption

Пересчет валюты

4. Размещение на форме текстовых полей, меток, флажков, рамок, командных кнопок, имеющих свойства:



Свойства текстовых полей:

Name

Text

txtEurRub

35,70

txtUSDRubl

24,85

txtSumma

-

Свойства меток текстовых полей:

Name

Autosize

Caption

lblEURRUB

True

Евро/Рубль

lblUSDRub

True

Доллар/Рубль

lblSumma

True

Сумма

Свойства блока кнопок для выбора курса валют:

Элемент

Name

Caption

Autosize

Value

Рамка

FraKurs

Курс

Нет

Нет

Радиокнопка

optEURRUB

ЕВРО

False

False

Радиокнопка

optUSDRUB

ДолларСША

False

True

Свойства блока кнопок для выбора типа операции:

Элемент

Name

Caption

Autosize

Value

Рамка

FraExec

Вид операции

Нет

Нет

Радиокнопка

optValutaRub

Валюта-Рубли

False

True

Радиокнопка

optRubValuta

Рубли-Валюта

False

False

Свойства командных кнопок:



Name

Caption

Default

cmdGo

Расчет

True

cmdReset

Сброс

False

Свойства текстовой метки для вывода результатов расчетов:

Name

Caption

Autosize

BorderStyle

Value

lblItog

Итого:

False

1

Нет




Операторы программы

Option Explicit

Private Sub cmdGo_Click()

Контроль данных

If Not IsNumeric(txtUSDRubl.Text) Or Not IsNumeric(txtEurRub.Text) Or Not IsNumeric(txtSumma.Text) Then

MsgBox "Введены неверные данные !", vbCritical, ""

Exit Sub

End If

Чтение курса валюты

Dim kurs As Single

If OptUSDRUB.Value Then

kurs = CSng(txtUSDRubl.Text)

Else

kurs = CSng(txtEurRub.Text)

End If

Проведение вычислений

Dim summa As Single

Dim mes As String

summa = CSng(txtSumma.Text)

Dim itogo As Single

If optValutaRub.Value Then

itogo = kurs * summa

mes = " Валюта - Рубли «

Else

itogo = summa / kurs

mes = " Рубли - Валюта "

End If

lblItog.Caption = " Итого: Вид операции " & Chr(10) & Chr(13) & mes & Format(itogo, "###0.00")

End Sub

Private Sub cmdReset_Click()

Возврат формы в исходное состояние

txtUSDRubl.Text = "24,85"

txtEurRub.Text = "35,70"

txtSumma.Text = ""

lblItog.Caption = " Итого: "

optValutaRub.Value = True

OptUSDRUB.Value = True

End Sub

5. БАЗЫ ДАННЫХ ACCESS



5.1. Проектирование таблиц

1. Совокупность объектов Базы данных (БД):

- таблицы, в Access данные хранятся в виде связанных таблицреляционные БД; запись: данные об объекте (строка), поле: однородные данные (столбец);

- запросы: отбор данных;

- формы: бланки для заполнения;

- отчеты: отображение данных;

- макросы: автоматизация выполнения операций;

- модули: вычисления или события на Visual Basic.

2. Создание БД:

- Новая база данных, ввести имя БД,  - выбрать расположение,


Создать;

- Главная / Режим , Конструктор, ввести имя таблицы;

- ввод имен полей: до 64 символов + └┘ , нельзя ! . > < ;

3. Подбор типов данных ( Счетчик  ):



1

Текстовый

до 255 символов

2

Поле МЕМО

текст или число до 64 000 символов (не индексируются)

3

Числовой

+ размер поля

4

Дата / Время

дата или время

5

Денежный

4 разряда (,) 15 разрядов (разряд – 1 000)

6

Счетчик

автоматически увеличивается на «1» при добавлении записи

7

Логический

Да, Нет (не индексируется)

8

Поле объекта OLE

связанные объекты (не > 128 Мб)

9

Гиперссылка

путь к файлу на компьютере или в Internet

10

Мастер подстановок

списки для выбора значения

11

Вложение

повторяющийся текст

- ввести описание (комментарии, необязательное поле);

4. Задание параметров полей (Свойства поля / Общие) в зависимости от типа данных:



1

Размер поля

длина текста или числа

2

Формат поля

отображение данных в форме и запросе

3

Число десятичных знаков

после « , »

4

Маска ввода

вид текста, формат даты и времени и др.

5

Подпись

надпись + к полю в форме и отчете (пояснения)

6

Значение по умолчанию

часто встречается

7

Условие на значение

выбор (или / или)

8

Сообщение об ошибке

при вводе недопустимого значения

9

Обязательное поле

нужно заполнять

10

Пустые строки

разрешение наличия пустых строк

11

Индексированное поле

запрет или допуск повторяющихся значений

Размер числового поля:

1

Байт

целые числа от 0 до 255 (1б)

2

Целое

целые числа от –32 768 до + 32 768 (2б)

3

Длинное целое

целые числа от –2 147 483 648 до + 2 147 483 647 (4б)

4

Одинарное с плавающей точкой

дробные, 6 знаков после « , »

от –3,402823Е38 до + 3,402823Е38 (4б)



5

Двойное с плавающей точкой

дробные, 10 знаков после « , »

от –1,7976931346232Е308 до +1,7976931346232Е308 (8б)



ч. 1 ... ч. 2 ч. 3 ч. 4 ч. 5 ч. 6 ч. 7