Файл: Отчет по учебной практике пм. 04 Уп04. 01 Выполнение работ по одной или нескольким рабочим профессиям, должностям служащих.docx
Добавлен: 26.10.2023
Просмотров: 449
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство цифрового развития государственного управленияинформационных технологий и связи Республики Татарстангосударственное автономное профессиональное образовательное учреждение«Международный центр компетенции –Казанский техникум информационных технологии и связи»ОТЧЕТПО УЧЕБНОЙ ПРАКТИКЕПМ.04 УП04.01 «Выполнение работ по одной или нескольким рабочим профессиям, должностям служащих» Выполнил обучающаяся Гаврилов Артур Сергеевич Группа 231 Специальность «Обеспечение информационной безопасности автоматизированных систем 10.02.05»
Казань, 2023г.
1ПРОГРАММИРОВАНИЕ НА VBA В EXCEL 2
1.2 Практическая работа №2 9
1.3 Практическая работа №3 14
1.4 Практическая работа №4 18
ЗАКЛЮЧЕНИЕ: 25
1. Принадлежит ли точка A(x,y) закрашенной области (рис. 3.5)? Для ввода координат точки и вывода результата создать диалоговое окно. Рисунок 1.1-Задание 1
Код программы:Private Sub CommandButton1_Click()Dim x As Double, y As Doublex = TextBox1.Texty = TextBox2.TextIf x >= -2 And x <= 4 And y >= 0 And y <= 2 ThenLabel1.Caption = "да"ElseLabel1.Caption = "нет"End IfEndSub(Рисунок1.1)2. Создать программу для вычисления площадей геометрических фигур: прямоугольника, квадрата, трапеции, треугольника по трем сторонам, круга и кольца. Для ввода исходных данных на рабочем листе установить три поля ввода TextBox. Для управления видимостью второго и третьего полей ввода установить два флажка CheckBox. При установленных флажках второе и третье поля невидимы. На рабочем листе создать кнопочное меню - установить командные кнопки «Площадь прямоугольника», «Площадь квадрата», «Площадь трапеции», «Площадь треугольника», «Площадь круга», «Площадь кольца», «Очистить». Результат вывести с помощью окна сообщений. Рисунок 1.2-Задание 2
Код программы:Private Sub CheckBox1_Change() If CheckBox1.Value Then TextBox2.Visible = True Else TextBox2.Visible = False End If End Sub Private Sub CheckBox2_Change() If CheckBox2.Value Then TextBox3.Visible = True Else TextBox3.Visible = False End If End Sub Private Sub CommandButton1_Click() a = Val(TextBox1.Text) b = Val(TextBox2.Text) MsgBox Str(a * b) End Sub Private Sub CommandButton2_Click() a = Val(TextBox1.Text) MsgBox Str(a * a) End Sub Private Sub CommandButton3_Click() a = Val(TextBox1.Text) b = Val(TextBox2.Text) c = Val(TextBox2.Text) MsgBox Str(1 / 2 * c * (a + b)) End Sub Private Sub CommandButton4_Click() a = Val(TextBox1.Text) b = Val(TextBox2.Text) MsgBox Str(1 / 2 * a * b) End Sub Private Sub CommandButton5_Click() a = Val(TextBox1.Text) MsgBox Str(3.14 * a * a) End Sub Private Sub CommandButton6_Click() a = Val(TextBox1.Text) b = Val(TextBox2.Text) MsgBox Str(3.14 * (a * a - b * b)) End Sub Private Sub CommandButton7_Click() TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" End Sub(Рисунок 1.2)3. Создать программу нахождения числа дней в месяце, если даны: номер месяца n – целое число от 1 до 12 и год. Для ввода года, номера месяца и вывода результата на окне формы разместите три поля ввода TextBox, для управления работой программы – три командные кнопки.
Рисунок 1.3-Задание 3
Код программы:Private Sub CommandButton1_Click()Dim n As IntegerDim year As IntegerDim days_count As Integer n = InputBox("введите номер месяца (1-12):")year = InputBox("введите год:") Select Case nCase 1, 3, 5, 7, 8, 10, 12days_count = 31Case 4, 6, 9, 11days_count = 30Case 2If year Mod 4 = 0 And (year Mod 100 <> 0 Or year Mod 400 = 0) Thendays_count = 29Elsedays_count = 28End IfCase ElseMsgBox "неправильный год!"Exit SubEnd SelectMsgBox "количество дней в месяце: " & days_countEnd Sub (Рисунок 1.3)4. По номеру месяца вывести сообщение о времени года. Номер месяца ввести с помощью TextBox. Результат вывести на надпись и в зависимости от времени года в элемент управления Image1 загрузить разные рисунки. Рисунок можно загрузить используя свойство Picture и функцию LoadPicture: Image1.Picture = LoadPicture("путь\имя файла") (рис.3.7). Предусмотреть обработку ошибочных ситуаций. Если имя файла или путь к файлу заданы неверно, вывести об этом сообщение.Рисунок 1.4-Задание 4Код программы:Private Sub CommandButton1_Click()Dim month As Singlemonth = Val(TextBox1.Text)Select Case monthCase 12, 1, 2Label1.Caption = "Зима"Image1.Picture = LoadPicture("C:\Users\Student\Downloads\winter.jpg")Case 3, 4, 5Label1.Caption = "Весна"Image1.Picture = LoadPicture("C:\Users\Student\Downloads\spring.jpg")Case 6, 7, 8Label1.Caption = "Лето"Image1.Picture = LoadPicture("C:\Users\Student\Downloads\summer.jpg")Case 9, 10, 11Label1.Caption = "Осень"Image1.Picture = LoadPicture("C:\Users\Student\Downloads\autumn.jpg")Case ElseLabel1.Caption = "не соответствует назвачению"End SelectEnd Sub (Рисунок 1.4)5. Создать программу, которая составляет предложения из слов, заранее введенных в три раскрывающихся списка ComboBox. В каждом списке не менее десяти слов. Одно слово берется из первого списка, одно – из второго, одно – из третьего. В первый список занесены названия зверей и птиц, во второй – наречия, характеризующие образ действия, в третий – глаголы, описывающие разные действия. Из каждого списка слово выбирается случайным образом. Для опеределения индекса случайно выбираемого элемента списка используется функция Rnd. Полученное с помощью функции Rnd случайное число умножается на число элементов списка и округляется до целого с помощью функции Int. Число элементов списка определяется свойством ListCount. Составленные предложения добавляются в список ListBox.
Рисунок 1.5-Задание 5
Код программы:Sub Userform_Initialize()With ComboBox1.List = Array("Ежик", "Собака", "Кошка", "Рыбка", "Свинка").ListIndex = 0End WithWith ComboBox2.List = Array("громко", "тихо", "слабо", "низко", "хорошо").ListIndex = 0End WithWith ComboBox3.List = Array("поет", "летает", "прячется", "квакает", "лает").ListIndex = 0End WithEnd SubPrivate Sub ComboBox1_Click()With ComboBox1End WithEnd SubPrivate Sub CommandButton1_Click()With ListBox1RandomizeListBox1.AddItem (ComboBox1.List(Int(Rnd() * ComboBox1.ListCount)) + " " + ComboBox2.List(Int(Rnd() * ComboBox2.ListCount)) + " " + ComboBox3.List(Int(Rnd() * ComboBox3.ListCount)))End WithEnd Sub (Рисунок 1.5)
Код программы:
Private Sub TextBox1_LostFocus()
Dim n%, sumf#, i%
If IsNumeric(TextBox1.Value) Then
n = TextBox1.Value
Else
MsgBox "enter num"
TextBox1.Activate
Exit Sub
End If
For i = 1 To n
sumf = sumf + (-1) ^ (i + 1) * (Sin(i) / i)
Next
Cells(2, 5) = Format(Replace(sumf, ",", "."), "0,0000") '"Standard")
End Sub(Рисунок 2.1)
2. Вычислить сумму
Для ввода исходных данных и вывода результата создать диалоговое окно с 47 помощью формы. Значения a, b ввести с помощью полей ввода TextBox, значение суммы вывести на надпись.
Рисунок 2.2-Задание 2
Код программы:
Private Sub CommandButton1_Click()
Dim a As Double, b As Double, s As Double
a = CDbl(TextBox1.Value)
b = CDbl(TextBox2.Value)
s = 0
For i = 3 To 100
s = s + (a * (i + 1)) / (b + i + 2)
Next i
Label1.Caption = "Сумма: " & s
End Sub(Рисунок 2.2)
Задание 3. Вычислить сумму s = i=0xx+ i2 с точностью до члена меньшего ε. Для ввода значений х и ε на рабочем листе разместить два поля ввода TextBox, значение суммы записать в ячейку рабочего листа.
Рисунок 2.3-Задание 3
Код программы:
Private Sub CommandButton1_Click()
Dim i As Integer, x, s, eps As Single
eps = Val(TextBox1.Text)
x = Val(TextBox2.Text)
n = eps - 1
i = 0
q = 1
Do Until i >= eps
q = x / (x + (i ^ 2))
s = n + q
i = i + 1
Loop
Range("F5").Value = Round(s, 10)
End Sub(Рисунок 2.3)
4. Протабулировать функцию
на отрезке [a,b] с шагом h. Для ввода исходных данных и вывода результата создать диалоговое окно с помощью формы. Значения a, b, h ввести с помощью полей ввода TextBox, таблицу значений аргумента и функции вывести на надпись.
Рисунок 2.4-Задание 4
Код программы:
Private Sub CommandButton1_Click()
Dim i As Integer, a, s, b As Single
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
q = 1
s = 1
i = 3
Do Until i >= 100
q = a * (i + 1) / (b + i + 2)
s = s + q
i = i + 1
Loop
Label4.Caption = " s = " & s
End Sub(рисунок 2.4)
5. Протабулировать функцию
на отрезке [a,b] с шагом h. Для ввода значений a, b, h на рабочем листе разместить три поля ввода TextBox, для вывода таблицы значений аргумента и функции – список ListBox.
Рисунок 2.5-Задание 5
Код программы:
Private Sub CommandButton1_Click()
Dim x, y, a, b, h As Single, s As String
s = “”
14
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
h = Val(TextBox3.Text)
If (h > 0) And (a > b) Then
Exit Sub
End If
If (h < 0) And (a < b) Then
Exit Sub
End If
If (a > 0) And (b > 0) Then
For x = a To b Step h
y = (Sqr(x + 1) + (1 / x))
s = "x = " + Format(x, "####0.00") + " y = " + Format(y, "####0.00")
ListBox1.AddItem (s)
Next
Else
End If
End Sub (Рисунок 2.5)
Задание 6. Вывести строчные английские буквы в обратном порядке от 'z‘ к ‘a‘. Использовать функцию Chr(N), которая возвращает строку из одного символа, соответствующего коду символа с номером N. N – число между 0 и 255. Коды строчных букв английского алфавита от 97 до 122.
Рисунок 2.6-Задание 6
Код программы:
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 122 To 97 Step -1
Label1.Caption = Label1.Caption & Chr(i)
Next i
End Sub(Рисунок 2.6)
7. Дано натуральное число n. Найти сумму квадратов всех его цифр. Для ввода исходных данных и вывода результата создать диалоговое окно с помощью формы. Значение n ввести с помощью поля ввода TextBox, значение суммы вывести на надпись.
Рисунок 2.7-Задание 7
Код программы:
Private Sub CommandButton1_Click()
Dim n As Long
Dim digit As Integer
Dim sum As Integer
n = CLng(TextBox1.Text)
Do While n > 0
digit = n Mod 10
sum = sum + digit ^ 2
n = n \ 10
Loop
Label2.Caption = sum
End Sub(Рисунок 2.7)
8. Дано натуральное число n. Проверить, является ли оно трехзначным, кратным пяти. Для ввода исходных данных и вывода результата создать диалоговое окно с помощью формы. Значение n ввести с помощью поля ввода TextBox, ответ вывести на надпись.
Рисунок 2.8-Задание 8
Код программы:
Private Sub CommandButton1_Click()
Dim n As Long
Dim digits() As String
Dim digit As String
Dim sum As Long
n = CLng(TextBox1.Text)
If Len(CStr(n)) = 3 And n Mod 5 = 0 Then
Label2.Caption = vbCrLf & "Число является трехзначным и кратным пяти: Да"
ElseIf Len(CStr(n)) = 3 And n Mod 5 <> 0 Then
Label2.Caption = vbCrLf & "Число является трехзначным, но не кратным пяти: Нет"
ElseIf Len(CStr(n)) <> 3 And n Mod 5 = 0 Then
Label2.Caption = vbCrLf & "Число не является трехзначным, но кратно пяти: Нет"
Else
Label2.Caption = vbCrLf & "Число не является трехзначным и не кратно пяти: Нет"
End If
End SubРисунок 2.8)
1. В данной строке текста все слова перевернуть. Для ввода исходного текста и вывода результата на окне формы установить два поля ввода TextBox.
Рисунок 3.1 – Задание 1
Код программы:
Sub reversewords()
Dim strInput As String
Dim strOutput As String
Dim arrWords() As String
Dim i As Integer
strInput = TextBox1.Value
arrWords = Split(strInput, " ")
For i = 0 To UBound(arrWords)
strOutput = strOutput & StrReverse(arrWords(i)) & " "
Next i
TextBox2.Value = strOutput
End Sub
Private Sub CommandButton1_Click()
Call reversewords
End Sub(Рисунок 3.1)
2. Дана строка текста. Сформировать новую строку, вставив между встречающимися рядом символами "к" и "м" символ "у". Для ввода исходного текста и вывода результата на рабочем листе установить два поля ввода TextBox.
Рисунок 3.2 – Задание 2
Код программы:
Private Sub CommandButton1_Click()
Dim str1 As String
Dim str2 As String
Dim i As Integer
str1 = TextBox1.Value
str2 = ""
For i = 1 To Len(str1)
If Mid(str1, i, 1) = "к" And Mid(str1, i + 1, 1) = "м" Then
str2 = str2 & "кум"
i = i + 1
Else
str2 = str2 & Mid(str1, i, 1)
End If
Next i
TextBox2.Value = str2
End Sub (Рисунок 3.2)
Задание 3. Дана строка текста, в которой есть хотя бы один пробел. Подсчитать количество символов "а" в слове, следующем после первого появления пробела. Для ввода исходного текста на рабочем листе установить поле ввода TextBox, ответ записать в ячейку рабочего листа.
Рисунок 3.3 – Задание 3
Код программы:
Private Sub CommandButton1_Click()
Dim text, word As String, spaceIndex, count As Integer
text = TextBox1.text
spaceIndex = InStr(text, " ")
word = Mid(text, spaceIndex + 1)
count = 0
For i = 1 To Len(word)
If Mid(word, i, 1) = "a" Then
count = count + 1
End If
Next i
TextBox2.text = "количество символов 'a' в слове: " & count
End Sub(Рисунок 3.3)
4. Дана строка текста. Найти слова, которые содержат сочетание "из". Для ввода исходного текста и вывода результата на окне формы установить два поля ввода TextBox.
Рисунок 3.4 – Задание 4
Код программы:
Private Sub CommandButton1_Click()
Dim str As String
Dim arr() As String
Dim i As Integer
Dim result As String
str = TextBox1.Value
arr = Split(str, " ")
For i = 0 To UBound(arr)
If InStr(1, arr(i), "из") > 0 Then
result = result & arr(i) & vbCrLf
End If
Next i
TextBox2.Value = result
End Sub(Рисунок 3.4)
5. Дана строка символов. Встречаются ли в строке пять символов "$" и три символа "%"? Для ввода исходного текста на окне формы установить поле ввода TextBox, ответ вывести на надпись.
Рисунок 3.5 – Задание 5
Код программы:
Private Sub CommandButton1_Click()
Dim text As String
Dim countDollar As Integer
Dim countPercent As Integer
text = TextBox1.Value
For i = 1 To Len(text)
If Mid(text, i, 1) = "$" Then
countDollar = countDollar + 1
ElseIf Mid(text, i, 1) = "%" Then
countPercent = countPercent + 1
End If
Next i
If countDollar = 5 And countPercent = 3 Then
Label1.Caption = "В строке 5 символов '$' и 3 символа '%'"
Else
Label1.Caption = "В строке ничего нет"
End If
End Sub(Рисунок 3.5)
6. Дана строка символов. Заменить все символ "x" на символ "y", а символы "z" на символ "t". Для ввода исходного текста и вывода результата на рабочем листе установить два поля ввода TextBox.
Рисунок 3.6 – Задание 6
Код программы:
Private Sub CommandButton1_Click()
Dim str As String
str = TextBox1.Value
str = Replace(str, "x", "y")
str = Replace(str, "z", "t")
TextBox2.Value = str
End Sub(Рисунок 3.6)
1. Дан числовой массив А(n). Найти произведение и среднее геометрическое положительных элементов массива. Элементы массива ввести с помощью TextBox. Если к – число положительных элементов массива, р - их произведение, то среднее геометрическое вычисляется по формуле k p (корень к –ой степени из р). Результат вывести на надпись.
Рисунок 4.1 – Задание 1
Код программы:
Private Sub CommandButton1_Click()
Dim A() As Double
Dim n, k, i As Integer
Dim p, gm As Double
Dim str() As String
str = Split(TextBox1.Text, " ")
n = UBound(str) + 1
ReDim A(1 To n)
For i = 1 To n
A(i) = Val(str(i - 1))
Next i
k = 0
p = 1
For i = 1 To n
If A(i) > 0 Then
k = k + 1
p = p * A(i)
End If
Next i
If k > 0 Then
gm = p ^ (1 / k)
Label1.Caption = "среднее геометрическое: " & Format(gm, "#0.00") & " произведение: " & p
Else
Label1.Caption = "нет положительных"
End If
End Sub (Рисунок 4.1)
2. Дан массив слов. Есть ли в этом массиве слова-палиндромы (т. е. слова, одинаково читающиеся слева направо и справа налево)? Если есть, то вывести их на экран. Для ввода исходного массива слов на рабочем листе установить поле ввода TextBox, для вывода результата – список ListBox.
Рисунок 4.2 – Задание 2
Код программы:
Private Sub CommandButton1_Click()
txt = Split(TextBox1.Text, " ")
For Each i In txt
If (i = StrReverse(i)) Then
ListBox1.AddItem (i)
End If
Next i
End Sub(Рисунок 4.2)
3. Дан массив A(n). Подсчитать, сколько в массиве элементов, больше первого. Для ввода массива на окне формы установить поле ввода TextBox. Результат вывести на надпись.
Рисунок 4.3 – Задание 3
Код программы:
Private Sub CommandButton1_Click()
Dim A As Variant, s, i, n As Integer
A = Split(TextBox1.Text)
n = UBound(A)
s = 0
For i = 0 To n
If A(0) < A(i) Then
s = s + 1
End If
Next
Label1.Caption = s
End Sub(Рисунок 4.3)
Задание 4. Дан целочисленный массив A(n). Вычислить произведение элементов массива, кратных семи. Для ввода массива на рабочем листе установить поле ввода TextBox, результат записать в ячейку рабочего листа.
Рисунок 4.4 – Задание 4
Код программы:
Private Sub CommandButton1_Click()
Dim A() As Integer
Dim n, i, multi As Integer
Dim str() As String
str = Split(TextBox1.Text, " ")
n = UBound(str) + 1
ReDim A(1 To n)
For i = 1 To n
A(i) = Val(str(i - 1))
Next i
multi = 1
For i = 1 To n
If A(i) Mod 7 = 0 Then
multi = multi * A(i)
End If
Next i
Range("A1").Value = multi
End Sub(Рисунок 4.4)
5. Дан массив слов. Найти самое длинное слово. Для ввода исходного массива на рабочем листе установить поле ввода TextBox, результат записать в рабочую ячейку.
Рисунок 4.5 – Задание 5
Код программы:
Private Sub CommandButton1_Click()
Dim words() As String
Dim i As Integer
Dim longestWord As String
words = Split(InputBox("Введите массив слов через запятую"), ",")
For i = 0 To UBound(words)
If Len(words(i)) > Len(longestWord) Then
longestWord = words(i)
End If
Next i
Range("A1").Value = longestWord
End Sub(Рисунок 4.5)
6. Дан массив слов. Найти слова начинающиеся буквой а и оканчивающиеся буквой я. Для ввода исходного массива на рабочем листе установить поле ввода TextBox, для вывода результата – список ListBox.
Рисунок 4.6 – Задание 6
Код программы:
Private Sub CommandButton1_Click()
Dim i, n, j As Integer
Dim A As Variant
Dim answer, s As String
answer = " "
A = Split(TextBox1.Text)
n = UBound(A)
For i = 0 To n
s = A(i)
If (Left(s, 1) = "а" And Right(s, 1) = "я") Then
answer = answer + " " + s
End If
Next
TextBox2.Text = answer
End Sub(Рисунок 4.6)
Задание 7. На листе Excel дан массив целых чисел, который начинается с ячейки А1. Массив отобразить на списке выбора ListBox. Число строк и столбцов массива ввести с помощью элементов управления TextBox1 и TextBox2. Над элементами выбранной строки массива произвести одно из следующих действий: суммирование четных элементов, вычисление произведения отрицательных элементов или среднего геометрического положительных элементов в зависимости от выбора действия. Действие выбрать с помощью одного из трех переключателей OptionButton.
Рисунок 4.7 – Задание 7
Код программы:
Private Sub CommandButton1_Click()
Dim Rows As Integer
Dim Cols As Integer
Dim i As Integer
Dim j As Integer
Dim s1 As String
Rows = Val(TextBox1.Text)
Cols = Val(TextBox2.Text)
For i = 1 To Rows
For j = 1 To Cols
ListBox1.AddItem Cells(i, j).Value
Next j
Next i
s1 = "A1:" + Chr(64 + j - 1) + Chr(48 + i - 1)
Range(s1).Select
With ListBox1
ColumnCount = j
RowSource = (s1)
End With
End Sub
Private Sub UserForm_Initialize()
Dim Row As Integer
Dim Value As Integer
Dim Sum As Integer
Dim Product As Integer
Dim Count As Integer
Dim Product As Double
Dim i As Integer
Dim j As Integer
Row = ListBox1.ListIndex + 1
If OptionButton1.Value = True Then
For j = 1 To Val(TextBox2.Text)
Value = Cells(Row, j).Value
If Value Mod 2 = 0 Then
Sum = Sum + Value
End If
Next j
MsgBox "Сумма четных элементов: " & Sum
ElseIf OptionButton2.Value = True Then
Product = 1
For j = 1 To Val(TextBox2.Text)
Value = Worksheets("Задание 7").Cells(Row, j).Value
If Value < 0 Then
Product = Product * Value
End If
Next j
MsgBox "Произведение отрицательных элементов: " & Product
ElseIf OptionButton3.Value = True Then
Count = 0
Product = 1
For j = 1 To Val(TextBox2.Text)
Value = Cells(Row, j).Value
If Value > 0 Then
Count = Count + 1
Product = Product * Value
End If
Next j
If Count = 0 Then
MsgBox "Нет положительных элементов в выбранной строке"
Else
MsgBox "Ср. Гео. Полож. чисел" & Product ^ (1 / Count)
End If
End If
End Sub(Рисунок 4.7)
За время прохождения учебной практики были получены навыки программирования на Visual Basic в Microsoft Excel.
| Начало практики: 11.05.23 | Родионова А.А. |
| Окончание практики: 17.05.23 | (ФИО и подпись руководителя практики) |
| Начало практики: 18.05.23 | Сулимов Ф.К. |
| Окончание практики: 24.05.23 | (ФИО и подпись руководителя практики ) |
СОДЕРЖАНИЕ
1ПРОГРАММИРОВАНИЕ НА VBA В EXCEL 2
1.2 Практическая работа №2 9
1.3 Практическая работа №3 14
1.4 Практическая работа №4 18
ЗАКЛЮЧЕНИЕ: 25
-
ПРОГРАММИРОВАНИЕ НА VBA В EXCEL
1. Принадлежит ли точка A(x,y) закрашенной области (рис. 3.5)? Для ввода координат точки и вывода результата создать диалоговое окно. Рисунок 1.1-Задание 1
Код программы:Private Sub CommandButton1_Click()Dim x As Double, y As Doublex = TextBox1.Texty = TextBox2.TextIf x >= -2 And x <= 4 And y >= 0 And y <= 2 ThenLabel1.Caption = "да"ElseLabel1.Caption = "нет"End IfEndSub(Рисунок1.1)2. Создать программу для вычисления площадей геометрических фигур: прямоугольника, квадрата, трапеции, треугольника по трем сторонам, круга и кольца. Для ввода исходных данных на рабочем листе установить три поля ввода TextBox. Для управления видимостью второго и третьего полей ввода установить два флажка CheckBox. При установленных флажках второе и третье поля невидимы. На рабочем листе создать кнопочное меню - установить командные кнопки «Площадь прямоугольника», «Площадь квадрата», «Площадь трапеции», «Площадь треугольника», «Площадь круга», «Площадь кольца», «Очистить». Результат вывести с помощью окна сообщений. Рисунок 1.2-Задание 2
Код программы:Private Sub CheckBox1_Change() If CheckBox1.Value Then TextBox2.Visible = True Else TextBox2.Visible = False End If End Sub Private Sub CheckBox2_Change() If CheckBox2.Value Then TextBox3.Visible = True Else TextBox3.Visible = False End If End Sub Private Sub CommandButton1_Click() a = Val(TextBox1.Text) b = Val(TextBox2.Text) MsgBox Str(a * b) End Sub Private Sub CommandButton2_Click() a = Val(TextBox1.Text) MsgBox Str(a * a) End Sub Private Sub CommandButton3_Click() a = Val(TextBox1.Text) b = Val(TextBox2.Text) c = Val(TextBox2.Text) MsgBox Str(1 / 2 * c * (a + b)) End Sub Private Sub CommandButton4_Click() a = Val(TextBox1.Text) b = Val(TextBox2.Text) MsgBox Str(1 / 2 * a * b) End Sub Private Sub CommandButton5_Click() a = Val(TextBox1.Text) MsgBox Str(3.14 * a * a) End Sub Private Sub CommandButton6_Click() a = Val(TextBox1.Text) b = Val(TextBox2.Text) MsgBox Str(3.14 * (a * a - b * b)) End Sub Private Sub CommandButton7_Click() TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" End Sub(Рисунок 1.2)3. Создать программу нахождения числа дней в месяце, если даны: номер месяца n – целое число от 1 до 12 и год. Для ввода года, номера месяца и вывода результата на окне формы разместите три поля ввода TextBox, для управления работой программы – три командные кнопки.
Рисунок 1.3-Задание 3
Код программы:Private Sub CommandButton1_Click()Dim n As IntegerDim year As IntegerDim days_count As Integer n = InputBox("введите номер месяца (1-12):")year = InputBox("введите год:") Select Case nCase 1, 3, 5, 7, 8, 10, 12days_count = 31Case 4, 6, 9, 11days_count = 30Case 2If year Mod 4 = 0 And (year Mod 100 <> 0 Or year Mod 400 = 0) Thendays_count = 29Elsedays_count = 28End IfCase ElseMsgBox "неправильный год!"Exit SubEnd SelectMsgBox "количество дней в месяце: " & days_countEnd Sub (Рисунок 1.3)4. По номеру месяца вывести сообщение о времени года. Номер месяца ввести с помощью TextBox. Результат вывести на надпись и в зависимости от времени года в элемент управления Image1 загрузить разные рисунки. Рисунок можно загрузить используя свойство Picture и функцию LoadPicture: Image1.Picture = LoadPicture("путь\имя файла") (рис.3.7). Предусмотреть обработку ошибочных ситуаций. Если имя файла или путь к файлу заданы неверно, вывести об этом сообщение.Рисунок 1.4-Задание 4Код программы:Private Sub CommandButton1_Click()Dim month As Singlemonth = Val(TextBox1.Text)Select Case monthCase 12, 1, 2Label1.Caption = "Зима"Image1.Picture = LoadPicture("C:\Users\Student\Downloads\winter.jpg")Case 3, 4, 5Label1.Caption = "Весна"Image1.Picture = LoadPicture("C:\Users\Student\Downloads\spring.jpg")Case 6, 7, 8Label1.Caption = "Лето"Image1.Picture = LoadPicture("C:\Users\Student\Downloads\summer.jpg")Case 9, 10, 11Label1.Caption = "Осень"Image1.Picture = LoadPicture("C:\Users\Student\Downloads\autumn.jpg")Case ElseLabel1.Caption = "не соответствует назвачению"End SelectEnd Sub (Рисунок 1.4)5. Создать программу, которая составляет предложения из слов, заранее введенных в три раскрывающихся списка ComboBox. В каждом списке не менее десяти слов. Одно слово берется из первого списка, одно – из второго, одно – из третьего. В первый список занесены названия зверей и птиц, во второй – наречия, характеризующие образ действия, в третий – глаголы, описывающие разные действия. Из каждого списка слово выбирается случайным образом. Для опеределения индекса случайно выбираемого элемента списка используется функция Rnd. Полученное с помощью функции Rnd случайное число умножается на число элементов списка и округляется до целого с помощью функции Int. Число элементов списка определяется свойством ListCount. Составленные предложения добавляются в список ListBox.
Рисунок 1.5-Задание 5
Код программы:Sub Userform_Initialize()With ComboBox1.List = Array("Ежик", "Собака", "Кошка", "Рыбка", "Свинка").ListIndex = 0End WithWith ComboBox2.List = Array("громко", "тихо", "слабо", "низко", "хорошо").ListIndex = 0End WithWith ComboBox3.List = Array("поет", "летает", "прячется", "квакает", "лает").ListIndex = 0End WithEnd SubPrivate Sub ComboBox1_Click()With ComboBox1End WithEnd SubPrivate Sub CommandButton1_Click()With ListBox1RandomizeListBox1.AddItem (ComboBox1.List(Int(Rnd() * ComboBox1.ListCount)) + " " + ComboBox2.List(Int(Rnd() * ComboBox2.ListCount)) + " " + ComboBox3.List(Int(Rnd() * ComboBox3.ListCount)))End WithEnd Sub (Рисунок 1.5)
1.2 Практическая работа №2
1. Вычислить сумму . Для ввода значения n на рабочем листе установить поля ввода TextBox, значение суммы вывести в ячейку рабочего листа.Рисунок 2.1-Задание 1Код программы:
Private Sub TextBox1_LostFocus()
Dim n%, sumf#, i%
If IsNumeric(TextBox1.Value) Then
n = TextBox1.Value
Else
MsgBox "enter num"
TextBox1.Activate
Exit Sub
End If
For i = 1 To n
sumf = sumf + (-1) ^ (i + 1) * (Sin(i) / i)
Next
Cells(2, 5) = Format(Replace(sumf, ",", "."), "0,0000") '"Standard")
End Sub(Рисунок 2.1)
2. Вычислить сумму
Для ввода исходных данных и вывода результата создать диалоговое окно с 47 помощью формы. Значения a, b ввести с помощью полей ввода TextBox, значение суммы вывести на надпись.Рисунок 2.2-Задание 2
Код программы:
Private Sub CommandButton1_Click()
Dim a As Double, b As Double, s As Double
a = CDbl(TextBox1.Value)
b = CDbl(TextBox2.Value)
s = 0
For i = 3 To 100
s = s + (a * (i + 1)) / (b + i + 2)
Next i
Label1.Caption = "Сумма: " & s
End Sub(Рисунок 2.2)
Задание 3. Вычислить сумму s = i=0xx+ i2 с точностью до члена меньшего ε. Для ввода значений х и ε на рабочем листе разместить два поля ввода TextBox, значение суммы записать в ячейку рабочего листа.
Рисунок 2.3-Задание 3
Код программы:
Private Sub CommandButton1_Click()
Dim i As Integer, x, s, eps As Single
eps = Val(TextBox1.Text)
x = Val(TextBox2.Text)
n = eps - 1
i = 0
q = 1
Do Until i >= eps
q = x / (x + (i ^ 2))
s = n + q
i = i + 1
Loop
Range("F5").Value = Round(s, 10)
End Sub(Рисунок 2.3)
4. Протабулировать функцию
на отрезке [a,b] с шагом h. Для ввода исходных данных и вывода результата создать диалоговое окно с помощью формы. Значения a, b, h ввести с помощью полей ввода TextBox, таблицу значений аргумента и функции вывести на надпись.Рисунок 2.4-Задание 4
Код программы:
Private Sub CommandButton1_Click()
Dim i As Integer, a, s, b As Single
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
q = 1
s = 1
i = 3
Do Until i >= 100
q = a * (i + 1) / (b + i + 2)
s = s + q
i = i + 1
Loop
Label4.Caption = " s = " & s
End Sub(рисунок 2.4)
5. Протабулировать функцию
на отрезке [a,b] с шагом h. Для ввода значений a, b, h на рабочем листе разместить три поля ввода TextBox, для вывода таблицы значений аргумента и функции – список ListBox.Рисунок 2.5-Задание 5
Private Sub CommandButton1_Click()
Dim x, y, a, b, h As Single, s As String
s = “”
14
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
h = Val(TextBox3.Text)
If (h > 0) And (a > b) Then
Exit Sub
End If
If (h < 0) And (a < b) Then
Exit Sub
End If
If (a > 0) And (b > 0) Then
For x = a To b Step h
y = (Sqr(x + 1) + (1 / x))
s = "x = " + Format(x, "####0.00") + " y = " + Format(y, "####0.00")
ListBox1.AddItem (s)
Next
Else
End If
End Sub (Рисунок 2.5)
Задание 6. Вывести строчные английские буквы в обратном порядке от 'z‘ к ‘a‘. Использовать функцию Chr(N), которая возвращает строку из одного символа, соответствующего коду символа с номером N. N – число между 0 и 255. Коды строчных букв английского алфавита от 97 до 122.
Рисунок 2.6-Задание 6
Код программы:
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 122 To 97 Step -1
Label1.Caption = Label1.Caption & Chr(i)
Next i
End Sub(Рисунок 2.6)
7. Дано натуральное число n. Найти сумму квадратов всех его цифр. Для ввода исходных данных и вывода результата создать диалоговое окно с помощью формы. Значение n ввести с помощью поля ввода TextBox, значение суммы вывести на надпись.
Рисунок 2.7-Задание 7
Код программы:
Private Sub CommandButton1_Click()
Dim n As Long
Dim digit As Integer
Dim sum As Integer
n = CLng(TextBox1.Text)
Do While n > 0
digit = n Mod 10
sum = sum + digit ^ 2
n = n \ 10
Loop
Label2.Caption = sum
End Sub(Рисунок 2.7)
8. Дано натуральное число n. Проверить, является ли оно трехзначным, кратным пяти. Для ввода исходных данных и вывода результата создать диалоговое окно с помощью формы. Значение n ввести с помощью поля ввода TextBox, ответ вывести на надпись.
Рисунок 2.8-Задание 8
Код программы:
Private Sub CommandButton1_Click()
Dim n As Long
Dim digits() As String
Dim digit As String
Dim sum As Long
n = CLng(TextBox1.Text)
If Len(CStr(n)) = 3 And n Mod 5 = 0 Then
Label2.Caption = vbCrLf & "Число является трехзначным и кратным пяти: Да"
ElseIf Len(CStr(n)) = 3 And n Mod 5 <> 0 Then
Label2.Caption = vbCrLf & "Число является трехзначным, но не кратным пяти: Нет"
ElseIf Len(CStr(n)) <> 3 And n Mod 5 = 0 Then
Label2.Caption = vbCrLf & "Число не является трехзначным, но кратно пяти: Нет"
Else
Label2.Caption = vbCrLf & "Число не является трехзначным и не кратно пяти: Нет"
End If
End SubРисунок 2.8)
1.3 Практическая работа №3
1. В данной строке текста все слова перевернуть. Для ввода исходного текста и вывода результата на окне формы установить два поля ввода TextBox.
Рисунок 3.1 – Задание 1
Код программы:
Sub reversewords()
Dim strInput As String
Dim strOutput As String
Dim arrWords() As String
Dim i As Integer
strInput = TextBox1.Value
arrWords = Split(strInput, " ")
For i = 0 To UBound(arrWords)
strOutput = strOutput & StrReverse(arrWords(i)) & " "
Next i
TextBox2.Value = strOutput
End Sub
Private Sub CommandButton1_Click()
Call reversewords
End Sub(Рисунок 3.1)
2. Дана строка текста. Сформировать новую строку, вставив между встречающимися рядом символами "к" и "м" символ "у". Для ввода исходного текста и вывода результата на рабочем листе установить два поля ввода TextBox.
Рисунок 3.2 – Задание 2
Код программы:
Private Sub CommandButton1_Click()
Dim str1 As String
Dim str2 As String
Dim i As Integer
str1 = TextBox1.Value
str2 = ""
For i = 1 To Len(str1)
If Mid(str1, i, 1) = "к" And Mid(str1, i + 1, 1) = "м" Then
str2 = str2 & "кум"
i = i + 1
Else
str2 = str2 & Mid(str1, i, 1)
End If
Next i
TextBox2.Value = str2
End Sub (Рисунок 3.2)
Задание 3. Дана строка текста, в которой есть хотя бы один пробел. Подсчитать количество символов "а" в слове, следующем после первого появления пробела. Для ввода исходного текста на рабочем листе установить поле ввода TextBox, ответ записать в ячейку рабочего листа.
Рисунок 3.3 – Задание 3
Код программы:
Private Sub CommandButton1_Click()
Dim text, word As String, spaceIndex, count As Integer
text = TextBox1.text
spaceIndex = InStr(text, " ")
word = Mid(text, spaceIndex + 1)
count = 0
For i = 1 To Len(word)
If Mid(word, i, 1) = "a" Then
count = count + 1
End If
Next i
TextBox2.text = "количество символов 'a' в слове: " & count
End Sub(Рисунок 3.3)
4. Дана строка текста. Найти слова, которые содержат сочетание "из". Для ввода исходного текста и вывода результата на окне формы установить два поля ввода TextBox.
Рисунок 3.4 – Задание 4
Код программы:
Private Sub CommandButton1_Click()
Dim str As String
Dim arr() As String
Dim i As Integer
Dim result As String
str = TextBox1.Value
arr = Split(str, " ")
For i = 0 To UBound(arr)
If InStr(1, arr(i), "из") > 0 Then
result = result & arr(i) & vbCrLf
End If
Next i
TextBox2.Value = result
End Sub(Рисунок 3.4)
5. Дана строка символов. Встречаются ли в строке пять символов "$" и три символа "%"? Для ввода исходного текста на окне формы установить поле ввода TextBox, ответ вывести на надпись.
Рисунок 3.5 – Задание 5
Код программы:
Private Sub CommandButton1_Click()
Dim text As String
Dim countDollar As Integer
Dim countPercent As Integer
text = TextBox1.Value
For i = 1 To Len(text)
If Mid(text, i, 1) = "$" Then
countDollar = countDollar + 1
ElseIf Mid(text, i, 1) = "%" Then
countPercent = countPercent + 1
End If
Next i
If countDollar = 5 And countPercent = 3 Then
Label1.Caption = "В строке 5 символов '$' и 3 символа '%'"
Else
Label1.Caption = "В строке ничего нет"
End If
End Sub(Рисунок 3.5)
6. Дана строка символов. Заменить все символ "x" на символ "y", а символы "z" на символ "t". Для ввода исходного текста и вывода результата на рабочем листе установить два поля ввода TextBox.
Рисунок 3.6 – Задание 6
Код программы:
Private Sub CommandButton1_Click()
Dim str As String
str = TextBox1.Value
str = Replace(str, "x", "y")
str = Replace(str, "z", "t")
TextBox2.Value = str
End Sub(Рисунок 3.6)
1.4 Практическая работа №4
1. Дан числовой массив А(n). Найти произведение и среднее геометрическое положительных элементов массива. Элементы массива ввести с помощью TextBox. Если к – число положительных элементов массива, р - их произведение, то среднее геометрическое вычисляется по формуле k p (корень к –ой степени из р). Результат вывести на надпись.
Рисунок 4.1 – Задание 1
Код программы:
Private Sub CommandButton1_Click()
Dim A() As Double
Dim n, k, i As Integer
Dim p, gm As Double
Dim str() As String
str = Split(TextBox1.Text, " ")
n = UBound(str) + 1
ReDim A(1 To n)
For i = 1 To n
A(i) = Val(str(i - 1))
Next i
k = 0
p = 1
For i = 1 To n
If A(i) > 0 Then
k = k + 1
p = p * A(i)
End If
Next i
If k > 0 Then
gm = p ^ (1 / k)
Label1.Caption = "среднее геометрическое: " & Format(gm, "#0.00") & " произведение: " & p
Else
Label1.Caption = "нет положительных"
End If
End Sub (Рисунок 4.1)
2. Дан массив слов. Есть ли в этом массиве слова-палиндромы (т. е. слова, одинаково читающиеся слева направо и справа налево)? Если есть, то вывести их на экран. Для ввода исходного массива слов на рабочем листе установить поле ввода TextBox, для вывода результата – список ListBox.
Рисунок 4.2 – Задание 2
Код программы:
Private Sub CommandButton1_Click()
txt = Split(TextBox1.Text, " ")
For Each i In txt
If (i = StrReverse(i)) Then
ListBox1.AddItem (i)
End If
Next i
End Sub(Рисунок 4.2)
3. Дан массив A(n). Подсчитать, сколько в массиве элементов, больше первого. Для ввода массива на окне формы установить поле ввода TextBox. Результат вывести на надпись.
Рисунок 4.3 – Задание 3
Код программы:
Private Sub CommandButton1_Click()
Dim A As Variant, s, i, n As Integer
A = Split(TextBox1.Text)
n = UBound(A)
s = 0
For i = 0 To n
If A(0) < A(i) Then
s = s + 1
End If
Next
Label1.Caption = s
End Sub(Рисунок 4.3)
Задание 4. Дан целочисленный массив A(n). Вычислить произведение элементов массива, кратных семи. Для ввода массива на рабочем листе установить поле ввода TextBox, результат записать в ячейку рабочего листа.
Рисунок 4.4 – Задание 4
Код программы:
Private Sub CommandButton1_Click()
Dim A() As Integer
Dim n, i, multi As Integer
Dim str() As String
str = Split(TextBox1.Text, " ")
n = UBound(str) + 1
ReDim A(1 To n)
For i = 1 To n
A(i) = Val(str(i - 1))
Next i
multi = 1
For i = 1 To n
If A(i) Mod 7 = 0 Then
multi = multi * A(i)
End If
Next i
Range("A1").Value = multi
End Sub(Рисунок 4.4)
5. Дан массив слов. Найти самое длинное слово. Для ввода исходного массива на рабочем листе установить поле ввода TextBox, результат записать в рабочую ячейку.
Рисунок 4.5 – Задание 5
Код программы:
Private Sub CommandButton1_Click()
Dim words() As String
Dim i As Integer
Dim longestWord As String
words = Split(InputBox("Введите массив слов через запятую"), ",")
For i = 0 To UBound(words)
If Len(words(i)) > Len(longestWord) Then
longestWord = words(i)
End If
Next i
Range("A1").Value = longestWord
End Sub(Рисунок 4.5)
6. Дан массив слов. Найти слова начинающиеся буквой а и оканчивающиеся буквой я. Для ввода исходного массива на рабочем листе установить поле ввода TextBox, для вывода результата – список ListBox.
Рисунок 4.6 – Задание 6
Код программы:
Private Sub CommandButton1_Click()
Dim i, n, j As Integer
Dim A As Variant
Dim answer, s As String
answer = " "
A = Split(TextBox1.Text)
n = UBound(A)
For i = 0 To n
s = A(i)
If (Left(s, 1) = "а" And Right(s, 1) = "я") Then
answer = answer + " " + s
End If
Next
TextBox2.Text = answer
End Sub(Рисунок 4.6)
Задание 7. На листе Excel дан массив целых чисел, который начинается с ячейки А1. Массив отобразить на списке выбора ListBox. Число строк и столбцов массива ввести с помощью элементов управления TextBox1 и TextBox2. Над элементами выбранной строки массива произвести одно из следующих действий: суммирование четных элементов, вычисление произведения отрицательных элементов или среднего геометрического положительных элементов в зависимости от выбора действия. Действие выбрать с помощью одного из трех переключателей OptionButton.
Рисунок 4.7 – Задание 7
Код программы:
Private Sub CommandButton1_Click()
Dim Rows As Integer
Dim Cols As Integer
Dim i As Integer
Dim j As Integer
Dim s1 As String
Rows = Val(TextBox1.Text)
Cols = Val(TextBox2.Text)
For i = 1 To Rows
For j = 1 To Cols
ListBox1.AddItem Cells(i, j).Value
Next j
Next i
s1 = "A1:" + Chr(64 + j - 1) + Chr(48 + i - 1)
Range(s1).Select
With ListBox1
ColumnCount = j
RowSource = (s1)
End With
End Sub
Private Sub UserForm_Initialize()
Dim Row As Integer
Dim Value As Integer
Dim Sum As Integer
Dim Product As Integer
Dim Count As Integer
Dim Product As Double
Dim i As Integer
Dim j As Integer
Row = ListBox1.ListIndex + 1
If OptionButton1.Value = True Then
For j = 1 To Val(TextBox2.Text)
Value = Cells(Row, j).Value
If Value Mod 2 = 0 Then
Sum = Sum + Value
End If
Next j
MsgBox "Сумма четных элементов: " & Sum
ElseIf OptionButton2.Value = True Then
Product = 1
For j = 1 To Val(TextBox2.Text)
Value = Worksheets("Задание 7").Cells(Row, j).Value
If Value < 0 Then
Product = Product * Value
End If
Next j
MsgBox "Произведение отрицательных элементов: " & Product
ElseIf OptionButton3.Value = True Then
Count = 0
Product = 1
For j = 1 To Val(TextBox2.Text)
Value = Cells(Row, j).Value
If Value > 0 Then
Count = Count + 1
Product = Product * Value
End If
Next j
If Count = 0 Then
MsgBox "Нет положительных элементов в выбранной строке"
Else
MsgBox "Ср. Гео. Полож. чисел" & Product ^ (1 / Count)
End If
End If
End Sub(Рисунок 4.7)
ЗАКЛЮЧЕНИЕ:
За время прохождения учебной практики были получены навыки программирования на Visual Basic в Microsoft Excel.