Массивы 1 и 2-х мерные, случайное число.
Задание №2
- Запускаем Excel.
- В разработчике открываем VisualBasic (VBA)
- Там же в разработчике через вставку создаем кнопку (для удобства)
- Записываем в VBA программный код:
Option Explicit
Option Base 1
Sub zN7_n2()
Dim M() As Variant
Dim a, b, c As Integer
Dim i, j, d As Integer
Dim sum As Integer
sum = 0
For d = 1 To 100
sum = sum + c
If sum <= 4800 Then
a = (Rnd() * (200 - 190 + 1) + 190)
b = (Rnd() * (500 - 290 + 1) + 290)
c = a + b
Sheets(5).Cells(d + 1, 4) = a
Sheets(5).Cells(d + 1, 4) = b
For i = 4 To 6
For j = 1 To 9
Sheets(5).Cells(j, i).Font.Color = RGB(0, 255, 0)
Sheets(5).Cells(j, i).Font.Italic = True
Next j
Next i
c = a + b
sum = sum + c
Sheets(5).Cells(d + 1, 5) = sum
Else
MsgBox "Завершение работы"
ExitFor
End If
Next d
End Sub
Результат:
Рис 8
Рис 9
Задание №3
- Запускаем Excel.
- В разработчике открываем VisualBasic (VBA)
- Там же в разработчике через вставку создаем кнопку (для удобства)
- Записываем в VBA программный код:
Sub zN7_n3()
Dim B() As Variant
Dim i, j, a, k, s As Integer
Dim d As String
k = InputBox("Ââåäèòå ÷èñëî")
ReDimB(j)
Randomize
For i = 8 To 60
B(a) = (Rnd() * (67 - 67 + 1) + 67)
Sheets(1).Cells(i - 7, 4) = B(a)
Sheets(1).Cells(i - 7, 4).Interior.Color = RGB(255, 155, 155)
Sheets(1).Cells(i - 7, 4).Font.Color = RGB(255, 0, 0)
Sheets(1).Cells(i - 7, 4).Font.Bold = True
If B(a) Mod 2 = 0 Then
k = k + B(a)
Sheets(1).Cells(i - 7, 3) = k
Sheets(1).Cells(i - 7, 3).Interior.Color = RGB(255, 155, 155)
Sheets(1).Cells(i - 7, 3).Font.Color = RGB(255, 0, 0)
Sheets(1).Cells(i - 7, 3).Font.Bold = True
Else
k = 0
Sheets(1).Cells(i - 7, 3) = k
Sheets(1).Cells(i - 7, 3).Interior.Color = RGB(255, 155, 155)
Sheets(1).Cells(i - 7, 3).Font.Color = RGB(255, 0, 0)
Sheets(1).Cells(i - 7, 3).Font.Bold = True
End If
Next i
Open "\\Fileserver\студенты\И-16-1\Клочихина_АМ\Учебная_практика-03.01\1.txt" For Output As #1
Print #1, B(a)
For i = 1 To 29
d = d & i & ";"
Next i
Print #1, B(a)
For i = 30 To 60
Next i
d = d & i & ";"
Close #1
Open "\\Fileserver\студенты\И-16-1\Клочихина_АМ\Учебная_практика-03.01\1.txt" For Input As #1
Input #1, B(a)
For j = 3 To i
Sheets(4).Cells(6, j + 1) = B(a)
Sheets(4).Cells(6, j + 1).Interior.Color = RGB(255, 155, 155)
Sheets(4).Cells(6, j + 1).Font.Color = RGB(255, 0, 0)
Sheets(4).Cells(6, j + 1).Font.Bold = True
Next j
Close #1
End Sub
Результат:
Рис 11
Рис 12
УП №8
Задание №4
- Запускаем Excel.
- В разработчике открываем VisualBasic (VBA)
- Там же в разработчике через вставку создаем кнопку (для удобства)
- Записываем в VBA программный код:
Sub zN7_n4()
Dim N() As Variant
Dim i, j, a As Integer
ReDimN(j)
Randomize
For i = -8 To j
N(a) = (Rnd() * (67 - 67 + 1) + 67)
Sheets(3).Cells(i + 12, 4) = N(a)
Sheets(3).Cells(i + 12, 4).Interior.Color = RGB(255, 155, 155)
Sheets(3).Cells(i + 12, 4).Font.Color = RGB(255, 0, 0)
Sheets(3).Cells(i + 12, 4).Font.Bold = True
Next i
End Sub
Результат:
Рис 13
Электронное тестирование
Методика «Мотивация успеха и боязнь неудачи»
Задание
Создать тест выявляющий мотивацию на успех или на страх неудачи (провала).
- Запускаем Excel.
- В разработчике открываем VisualBasic (VBA)
- Записываем в VBA программный код:
OptionExplicit
SubМетодика_Мотивация_И_Боязнь_Неудачи()
Dim a, sum, obsum As Integer
Dim d, s, t As String
d = InputBox("Введите фамилию и имя:", "Начало опроса")
s = InputBox("Введите возраст:", "Начало опроса")
t = InputBox("Введите свой род занятий:", "Начало опроса")
MsgBox "Соглашаясь или нет с нижеприведенными утверждениями, необходимо выбрать один из ответов - Да или Нет. Ответ Да означает как явное Да, так и Скорее Да, чем Нет. То же и с ответом Нет. Отвечать следует быстро, подолгу не задумываясь.", , "Инструкция к опросу"
a = MsgBox("Включаясь в работу, надеюсь на успех.", vbYesNo, "1.")
If a = vbYes Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("В деятельности активен.", vbYesNo, "2.")
If a = vbYes Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("Склонен к проявлению инициативвы.", vbYesNo, "3.")
If a = vbYes Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("При выявлении ответственных заданий стараюсь по возможности найти причины отказа от их.", vbYesNo, "4.")
If a = vbNo Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("Часто выбираю крайности: либо занижено легкие задания, либо нереально трудные.", vbYesNo, "5.")
If a = vbNo Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("При встрече с препятствиями, как правило, не отступаю, а ищу способы их преодаления.", vbYesNo, "6.")
If a = vbYes Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("При чередовании успехов и неудач склонен к переоценки своих успехов.", vbYesNo, "7.")
If a = vbNo Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("Продуктивность деятельности в основном зависит от моей целеустремленности, а не от внешнего контроля.", vbYesNo, "8.")
If a = vbYes Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("При выполнении достаточно трудных заданий в условиях ограниченного времени результативность моей деятельности ухудшается.", vbYesNo, "9.")
If a = vbNo Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("Я склонен проявлять настойчивость в достижении цели.", vbYesNo, "10.")
If a = vbYes Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("Я склонен планировать свое будущее на достаточно отдаленную перспективу.", vbYesNo, "11.")
If a = vbYes Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("Если рискую, то с умом.", vbYesNo, "12.")
If a = vbYes Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("Я не очень настойчив в достижении цели, особенно если отсутствует внешний контроль.", vbYesNo, "13.")
If a = vbNo Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("Предпочитаю ставить перед собой средние по трудности или слегка завышинные, но достижимые цели.", vbYesNo, "14.")
If a = vbYes Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("В случие неудачи при выполнении задания его притягательность для меня снижается.", vbYesNo, "15.")
If a = vbNo Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("При чередовании успехов и неудач я больше склонен к переоценке своих неудач.", vbYesNo, "16.")
If a = vbYes Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("Предпочитаю планировать свое будущее лишь на ближайшее время.", vbYesNo, "17.")
If a = vbNo Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("При работе в условиях ограниченного времени результативность деятельности у меня улучшается, даже если задание достаточно трудное.", vbYesNo, "18.")
If a = vbYes Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("В случае неудачи я, как правило, не отказываюсь от поставленной цели.", vbYesNo, "19.")
If a = vbYes Then
a = 1
sum = sum + a
Else
sum = 0
End If
a = MsgBox("Если я сам выбрал для себя задание, то в случае неудачи его притягательность для меня только возрастает.", vbYesNo, "20.")
If a = vbYes Then
a = 1
sum = sum + a
Else
sum = 0
End If
obsum = 0
obsum = obsum + sum
MsgBox "Испытуемому присваивается по одному бал у, если он ответил:", , "Ключ к опроснику"
MsgBox "1. Да - на вопросы: 1-3, 6, 8, 10-12, 14, 16, 18-20.", , "Ключ к опроснику"
MsgBox "2. Нет - на вопросы: 4, 5, 7, 9, 13, 15, 17.", , "Ключ к опроснику"
MsgBox "Общая сумма балов равна " &obsum, , "Ключ к опроснику"
MsgBox "1-7 баллов: диагностируется мотвация на неудачу (боязнь неудач)", , "Выводы"
MsgBox "14-20 баллов: диагностируется мотивация на успех (надежда на успех)", , "Выводы"
MsgBox "8-13 баллов: мотивационный плюс не выражен. При этом, если у испытуемого 8-9 баллов - то его мотивация ближе к избеганию неудачиб если 12-13 баллов - ближе к стремлению к успеху.", , "Выводы"
EndSub
В результате сначала появляются диалоговые окна с просьбой ввести некоторые данные, а после окна с выбором ответа «Да» или «Нет». По окончанию теста идет подсчет набранных баллов и вывод информации о значении общей суммы набранных балов.
Задание №14.
Использование в программах строковых переменных, использование основных функций для работы со строками.
Задание 2.
1) В тексте: "Вся информация в лифлете носит ознакомительный характер" программой определить и вывести на UserForm: число букв в тексте; число слов в тексте; слово с наибольшей и наименьшей длиной. Создать кнопку для запуска макроса.
Для выполнения задания:
- Запускаем Excel.
- В разработчике открываем VisualBasic (VBA)
- Там же в разработчике через вставку создаем кнопку (для удобства) (Рис 13, Рис 14)
- Записываем в VBA программный код:
Private Sub CommandButton1_Click() – Кнопказапускамакросаформы 1.
ПодсчетСимволов.Show
End Sub
OptionExplicit
DimaAsString – задаемосновную переменную, с которой начинается работа.
PrivateSubCommandButton1_Click() – программирование кнопки вывода информации(Рис 15).
Dimb, i, k, z, kol, kolsim, mina, maxa – переменные для программы.
a = Label2
z = Split(a)
kolsim = UBound(z) + 1
Label7 = "" &kolsim
For i = LBound(z) To UBound(z)
z(i) = Trim(z(i))
kol = kol + Len(z(i))
Next i
Label8 = "" &kol
mina = Len(z(0))
For i = 1 To UBound(z)
If Len(z(i)) < mina Or Len(z(i)) = mina Then
mina = Len(z(i))
b = b &z(i) & "; "
End If
Next i
Label9 = "" & b
maxa = Len(z(0))
For i = 5 To UBound(z)
If Len(z(i)) >maxa Or Len(z(i)) = maxa Then
mina = Len(z(i))
k = k &z(i) & "; "
End If
Next i
Label10 = "" & k
Label11 = "Спасибо за внимание!"
EndSub
PrivateSubCommandButton2_Click() – программированиекнопкиочисткии последующего закрытия.
Label7 = ""
Label8 = ""
Label9 = ""
Label10 = ""
Label11 = ""
ПодсчетСимволов.Hide
EndSub
Рис 14
Рис 15
Рис 16
2) В текстовое поле на UserForm вводится любое предложение. Программой заменить второе и четвертое слово, написав их заглавными буквами, определить и вывести на UserForm: число букв в тексте; число слов в тексте; слово с наибольшей и наименьшей длиной.
Для выполнения задания:
- Запускаем Excel.
- В разработчике открываем VisualBasic (VBA)
- Там же в разработчике через вставку создаем кнопку (для удобства) (Рис 17)
Private Sub CommandButton2_Click() – кнопказапускамакросаформы 2
ИзменениеТекстаИПодсчетСимволов.Show
End Sub
OptionExplicit
DimaAsString - задаемосновную переменную, с которой начинается работа.
PrivateSubCommandButton1_Click()– выводаинформации (Рис 19).
Dim b, i, k, z, kol, kolsim, mina, maxa
a = TextBox1
Label7 = UCase(TextBox1.Text)
z = Split(a)
kolsim = UBound(z) + 1
Label9 = "" &kolsim
For i = LBound(z) To UBound(z)
z(i) = Trim(z(i))
kol = kol + Len(z(i))
Next i
Label8 = "" &kol
mina = Len(z(0))
For i = 1 To UBound(z)
If Len(z(i)) < mina Or Len(z(i)) = mina Then
mina = Len(z(i))
b = b &z(i) & "; "
End If
Next i
Label10 = "" & b
maxa = Len(z(0))
For i = 3 To UBound(z)
If Len(z(i)) >maxa Or Len(z(i)) = maxa Then
mina = Len(z(i))
k = k &z(i) & "; "
End If
Next i
Label11 = "" & k
End Sub
PrivateSubCommandButton2_Click()– программированиекнопкиочистки.
TextBox1 = ""
Label7 = ""
Label8 = ""
Label9 = ""
Label10 = ""
Label11 = ""
End Sub
PrivateSubCommandButton3_Click()– программированиекнопкизакрытия.
TextBox1 = ""
Label7 = ""
Label8 = ""
Label9 = ""
Label10 = ""
Label11 = ""
ИзменениеТекстаИПодсчетСимволов.Hide
EndSub
Результат:
Рис 17
Рис 18
Рис 19
Задание №15