ОИ. Отчет по 2 лабораторной. Сравнение работы операторов if и case при помощи объекта Timer
Скачать 308.15 Kb.
|
1 2 2. Практический раздел2.1 Инструкция пользователя1. Запустить программу. 2. Ввести в поле “Введите день месяца” день месяца: Рис. 1. Ввод дня месяца. 3. Ввести в поле “ Введите номер месяца” номер месяца: Рис. 2. Введите номер месяца 4. Ввести в поле “Введите год” Рис. 3. Ввод года 5.Жмем кнопку "Подсчёт последовательного IF" и в поле "скорость работы сложного IF" выводится результат: Рис. 4. Вывод результата подсчёта последовательного IF 6. Жмем кнопку "Подсчёт вложенного IF" и в поле " скорость работы вложенного IF" выводится результат: Рис. 5. Вывод результата подсчёт вложенного IF 7 Жмем кнопку "Подсчёт последовательного CASE " и в поле " скорость работы CASE " выводится результат: Рис. 6. Вывод результата подсчёт последовательного CASE 8. Жмем кнопку "Подсчёт вложенного CASE " и в поле " Скорость работы вложенного CASE " выводится результат: Рис. 7 Вывод результата подсчёт вложенного CASE 9.Если Вы будете вводить в поле “день месяца” букву или пробел, то программа выдаст Вам следующую ошибку: Рис. 8. Ошибка при вводе букв и пробелов в поле день месяца 10.Если Вы будете вводить в поле “номер месяца” букву или пробел, то программа выдаст Вам следующую ошибку: Рис. 9. Ошибка при вводе букв и пробелов в поле номер месяца 11.Если Вы будете вводить в поле “год” букву или пробел, то программа выдаст Вам следующую ошибку: Рис. 10. Ошибка при вводе букв и пробелов в поле год 12 При вводе несуществующего календарного дня в поле “день месяца” , то программа выдаст Вам следующую ошибку Рис. 11. Ошибка при вводе несуществующего дня 13.При вводе несуществующего календарного месяца в поле “номер месяца” то программа выдаст Вам следующую ошибку Рис. 12. Ошибка при вводе несуществующего месяца 14.При вводе 100< года >3000 в поле “года”, то программа выдаст Вам следующую ошибку Рис. 13. Ошибка при вводе несуществующего года 2.2. Листинг кода:Form1(Лабораторная №1): Private Sub Command3_Click() Dim i As Long Dim Start As Date If IsNumeric(Text1.Text) = False Then MsgBox "в поле 'День месяца' должно быть введено число", , "Ошибка" Text1.Text = "" Text5.Text = "Время IF" Text1.SetFocus Exit Sub End If If IsNumeric(Text2.Text) = False Then MsgBox "в поле 'месяц' должно быть введено число", , "Ошибка" Text2.Text = "" Text5.Text = "Время IF" Text2.SetFocus Exit Sub End If If IsNumeric(Text3.Text) = False Then MsgBox "в поле 'год' должно быть введено число", , "Ошибка" Text3.Text = "" Text5.Text = "Время IF" Text3.SetFocus Exit Sub ElseIf ((Text3.Text < 100) Or (Text3.Text > 3000)) Then MsgBox "Нельзя использовать год с этим номером (от 100 до 3000)", , "Ошибка" Text3.Text = "" Text3.SetFocus Exit Sub End If Select Case CInt(Text2.Text) Case 1 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 2 If ((Text3.Text - 100) Mod 157 = 0) Then If ((Text3.Text - 100) Mod 4 = 0) Then If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце (в этом году) нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Else If ((Text1.Text < 1) Or (Text1.Text > 29)) Then MsgBox "В этом месяце (в этом году) нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If End If ElseIf ((Text3.Text - 100) Mod 4 = 0) Then If ((Text1.Text < 1) Or (Text1.Text > 29)) Then MsgBox "В этом месяце (в этом году) нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Else If ((Text1.Text < 1) Or (Text1.Text > 28)) Then MsgBox "В этом месяце (в этом году) нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If End If Case 3 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 4 If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 5 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 6 If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 7 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 8 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 9 If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 10 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 11 If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 12 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case Else MsgBox "не существует месяца с таким номером", , "Ошибка" Text2.Text = "" Text5.Text = "Время IF" Text2.SetFocus Exit Sub End Select Start = DateTime.Timer For i = 1 To 100000 If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then If IsNumeric(Text1.Text) Then Text5.Text = CDbl(DateTime.Timer - Start) End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If Next i End Sub Private Sub Command4_Click() Dim i As Long Dim Start As Date If IsNumeric(Text1.Text) = False Then MsgBox "в поле 'День месяца' должно быть введено число", , "Ошибка" Text1.Text = "" Text7.Text = "Время Case" Text1.SetFocus Exit Sub End If If IsNumeric(Text2.Text) = False Then MsgBox "в поле 'месяц' должно быть введено число", , "Ошибка" Text2.Text = "" Text7.Text = "Время Case" Text2.SetFocus Exit Sub End If If IsNumeric(Text3.Text) = False Then MsgBox "в поле 'год' должно быть введено число", , "Ошибка" Text3.Text = "" Text7.Text = "Время Case" Text3.SetFocus Exit Sub End If If IsNumeric(Text3.Text) = False Then MsgBox "в поле 'год' должно быть введено число", , "Ошибка" Text3.Text = "" Text5.Text = "Время IF" Text3.SetFocus Exit Sub ElseIf ((Text3.Text < 100) Or (Text3.Text > 3000)) Then MsgBox "Нельзя использовать год с этим номером (от 100 до 3000)", , "Ошибка" Text3.Text = "" Text3.SetFocus Exit Sub End If Select Case CInt(Text2.Text) Case 1 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 2 If ((Text3.Text - 100) Mod 157 = 0) Then If ((Text3.Text - 100) Mod 4 = 0) Then If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце (в этом году) нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Else If ((Text1.Text < 1) Or (Text1.Text > 29)) Then MsgBox "В этом месяце (в этом году) нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If End If ElseIf ((Text3.Text - 100) Mod 4 = 0) Then If ((Text1.Text < 1) Or (Text1.Text > 29)) Then MsgBox "В этом месяце (в этом году) нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Else If ((Text1.Text < 1) Or (Text1.Text > 28)) Then MsgBox "В этом месяце (в этом году) нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If End If Case 3 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 4 If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 5 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 6 If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 7 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 8 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 9 If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 10 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 11 If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 12 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case Else MsgBox "не существует месяца с таким номером", , "Ошибка" Text2.Text = "" Text5.Text = "Время IF" Text2.SetFocus Exit Sub End Select Start = DateTime.Timer For i = 0 To 100000 Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) Select Case IsNumeric(Text1.Text) Case True Text7.Text = CDbl(DateTime.Timer - Start) End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select End Select Next i End Sub Private Sub Timer1_Timer() Label2.Caption = DateTime.Time End Sub Private Sub Command1_Click() Dim i As Long Dim Start As Date If IsNumeric(Text1.Text) = False Then MsgBox "в поле 'День месяца' должно быть введено число", , "Ошибка" Text1.Text = "" Text5.Text = "Время IF" Text1.SetFocus Exit Sub End If If IsNumeric(Text2.Text) = False Then MsgBox "в поле 'месяц' должно быть введено число", , "Ошибка" Text2.Text = "" Text5.Text = "Время IF" Text2.SetFocus Exit Sub End If If IsNumeric(Text3.Text) = False Then MsgBox "в поле 'год' должно быть введено число", , "Ошибка" Text3.Text = "" Text5.Text = "Время IF" Text3.SetFocus Exit Sub End If If IsNumeric(Text3.Text) = False Then MsgBox "в поле 'год' должно быть введено число", , "Ошибка" Text3.Text = "" Text5.Text = "Время IF" Text3.SetFocus Exit Sub ElseIf ((Text3.Text < 100) Or (Text3.Text > 3000)) Then MsgBox "Нельзя использовать год с этим номером (от 100 до 3000)", , "Ошибка" Text3.Text = "" Text3.SetFocus Exit Sub End If Select Case CInt(Text2.Text) Case 1 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 2 If ((Text3.Text - 100) Mod 157 = 0) Then If ((Text3.Text - 100) Mod 4 = 0) Then If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце (в этом году) нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Else If ((Text1.Text < 1) Or (Text1.Text > 29)) Then MsgBox "В этом месяце (в этом году) нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If End If ElseIf ((Text3.Text - 100) Mod 4 = 0) Then If ((Text1.Text < 1) Or (Text1.Text > 29)) Then MsgBox "В этом месяце (в этом году) нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Else If ((Text1.Text < 1) Or (Text1.Text > 28)) Then MsgBox "В этом месяце (в этом году) нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If End If Case 3 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 4 If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 5 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 6 If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 7 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 8 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 9 If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 10 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 11 If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 12 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case Else MsgBox "не существует месяца с таким номером", , "Ошибка" Text2.Text = "" Text5.Text = "Время IF" Text2.SetFocus Exit Sub End Select Start = DateTime.Timer For i = 0 To 10000 If CInt(Text1.Text) = 1 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 2 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 3 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 4 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 5 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 6 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 7 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 8 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 9 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 10 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 11 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 12 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 13 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 14 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 15 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 16 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 17 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 18 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 19 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 20 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 21 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 22 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 23 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 24 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 25 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 26 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 27 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 28 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 29 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 30 Then Text4.Text = CDbl(DateTime.Timer - Start) Else Text4.Text = CDbl(DateTime.Timer - Start) End If Next i For i = 0 To 10000 If CInt(Text2.Text) = 1 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text2.Text) = 2 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text2.Text) = 3 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text2.Text) = 4 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text2.Text) = 5 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text2.Text) = 6 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text1.Text) = 7 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text2.Text) = 8 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text2.Text) = 9 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text2.Text) = 10 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text2.Text) = 11 Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf CInt(Text2.Text) = 12 Then Text4.Text = CDbl(DateTime.Timer - Start) Else Text4.Text = CDbl(DateTime.Timer - Start) End If Next i For i = 0 To 10000 If ((CInt(Text3.Text) > 99) And (CInt(Text3.Text) < 199)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 99) And (CInt(Text3.Text) < 199)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 199) And (CInt(Text3.Text) < 299)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 299) And (CInt(Text3.Text) < 399)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 399) And (CInt(Text3.Text) < 499)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 499) And (CInt(Text3.Text) < 599)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 599) And (CInt(Text3.Text) < 699)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 699) And (CInt(Text3.Text) < 799)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 799) And (CInt(Text3.Text) < 899)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 899) And (CInt(Text3.Text) < 999)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 999) And (CInt(Text3.Text) < 1099)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 1099) And (CInt(Text3.Text) < 1199)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 1199) And (CInt(Text3.Text) < 1299)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 1299) And (CInt(Text3.Text) < 1399)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 1399) And (CInt(Text3.Text) < 1499)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 1499) And (CInt(Text3.Text) < 1599)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 1599) And (CInt(Text3.Text) < 1699)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 1699) And (CInt(Text3.Text) < 1799)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 1799) And (CInt(Text3.Text) < 1899)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 1899) And (CInt(Text3.Text) < 1999)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 1999) And (CInt(Text3.Text) < 2099)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 2099) And (CInt(Text3.Text) < 2199)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 2199) And (CInt(Text3.Text) < 2299)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 2299) And (CInt(Text3.Text) < 2399)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 2399) And (CInt(Text3.Text) < 2499)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 2499) And (CInt(Text3.Text) < 2599)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 2599) And (CInt(Text3.Text) < 2699)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 2699) And (CInt(Text3.Text) < 2799)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 2799) And (CInt(Text3.Text) < 2899)) Then Text4.Text = CDbl(DateTime.Timer - Start) ElseIf ((CInt(Text3.Text) > 2899) And (CInt(Text3.Text) < 3001)) Then Text4.Text = CDbl(DateTime.Timer - Start) Else Text4.Text = CDbl(DateTime.Timer - Start) End If Next i End Sub Private Sub Command2_Click() Dim i As Long Dim Start As Date If IsNumeric(Text1.Text) = False Then MsgBox "в поле 'День месяца' должно быть введено число", , "Ошибка" Text1.Text = "" Text6.Text = "Время Case" Text1.SetFocus Exit Sub End If If IsNumeric(Text2.Text) = False Then MsgBox "в поле 'месяц' должно быть введено число", , "Ошибка" Text2.Text = "" Text6.Text = "Время Case" Text2.SetFocus Exit Sub End If If IsNumeric(Text3.Text) = False Then MsgBox "в поле 'год' должно быть введено число", , "Ошибка" Text3.Text = "" Text6.Text = "Время Case" Text3.SetFocus Exit Sub End If If IsNumeric(Text3.Text) = False Then MsgBox "в поле 'год' должно быть введено число", , "Ошибка" Text3.Text = "" Text5.Text = "Время IF" Text3.SetFocus Exit Sub ElseIf ((Text3.Text < 100) Or (Text3.Text > 3000)) Then MsgBox "Нельзя использовать год с этим номером (от 100 до 3000)", , "Ошибка" Text3.Text = "" Text3.SetFocus Exit Sub End If Select Case CInt(Text2.Text) Case 1 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 2 If ((Text3.Text - 100) Mod 157 = 0) Then If ((Text3.Text - 100) Mod 4 = 0) Then If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце (в этом году) нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Else If ((Text1.Text < 1) Or (Text1.Text > 29)) Then MsgBox "В этом месяце (в этом году) нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If End If ElseIf ((Text3.Text - 100) Mod 4 = 0) Then If ((Text1.Text < 1) Or (Text1.Text > 29)) Then MsgBox "В этом месяце (в этом году) нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Else If ((Text1.Text < 1) Or (Text1.Text > 28)) Then MsgBox "В этом месяце (в этом году) нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If End If Case 3 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 4 If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 5 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 6 If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 7 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 8 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 9 If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 10 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 11 If ((Text1.Text < 1) Or (Text1.Text > 30)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case 12 If ((Text1.Text < 1) Or (Text1.Text > 31)) Then MsgBox "В этом месяце меньше нет такого дня", , "Ошибка" Text1.Text = "" Text1.SetFocus Exit Sub End If Case Else MsgBox "не существует месяца с таким номером", , "Ошибка" Text2.Text = "" Text5.Text = "Время IF" Text2.SetFocus Exit Sub End Select Start = DateTime.Timer For i = 0 To 10000 Select Case CInt(Text1.Text) Case 1 Text6.Text = CDbl(DateTime.Timer - Start) Case 2 Text6.Text = CDbl(DateTime.Timer - Start) Case 3 Text6.Text = CDbl(DateTime.Timer - Start) Case 4 Text6.Text = CDbl(DateTime.Timer - Start) Case 5 Text6.Text = CDbl(DateTime.Timer - Start) Case 6 Text6.Text = CDbl(DateTime.Timer - Start) Case 7 Text6.Text = CDbl(DateTime.Timer - Start) Case 8 Text6.Text = CDbl(DateTime.Timer - Start) Case 9 Text6.Text = CDbl(DateTime.Timer - Start) Case 10 Text6.Text = CDbl(DateTime.Timer - Start) Case 11 Text6.Text = CDbl(DateTime.Timer - Start) Case 12 Text6.Text = CDbl(DateTime.Timer - Start) Case 13 Text6.Text = CDbl(DateTime.Timer - Start) Case 14 Text6.Text = CDbl(DateTime.Timer - Start) Case 15 Text6.Text = CDbl(DateTime.Timer - Start) Case 16 Text6.Text = CDbl(DateTime.Timer - Start) Case 17 Text6.Text = CDbl(DateTime.Timer - Start) Case 18 Text6.Text = CDbl(DateTime.Timer - Start) Case 19 Text6.Text = CDbl(DateTime.Timer - Start) Case 20 Text6.Text = CDbl(DateTime.Timer - Start) Case 21 Text6.Text = CDbl(DateTime.Timer - Start) Case 22 Text6.Text = CDbl(DateTime.Timer - Start) Case 23 Text6.Text = CDbl(DateTime.Timer - Start) Case 24 Text6.Text = CDbl(DateTime.Timer - Start) Case 25 Text6.Text = CDbl(DateTime.Timer - Start) Case 26 Text6.Text = CDbl(DateTime.Timer - Start) Case 27 Text6.Text = CDbl(DateTime.Timer - Start) Case 28 Text6.Text = CDbl(DateTime.Timer - Start) Case 29 Text6.Text = CDbl(DateTime.Timer - Start) Case 30 Text6.Text = CDbl(DateTime.Timer - Start) Case 31 Text6.Text = CDbl(DateTime.Timer - Start) Case Else Text6.Text = CDbl(DateTime.Timer - Start) End Select Next i For i = 0 To 10000 Select Case CInt(Text2.Text) Case 1 Text6.Text = CDbl(DateTime.Timer - Start) Case 2 Text6.Text = CDbl(DateTime.Timer - Start) Case 3 Text6.Text = CDbl(DateTime.Timer - Start) Case 4 Text6.Text = CDbl(DateTime.Timer - Start) Case 5 Text6.Text = CDbl(DateTime.Timer - Start) Case 6 Text6.Text = CDbl(DateTime.Timer - Start) Case 7 Text6.Text = CDbl(DateTime.Timer - Start) Case 8 Text6.Text = CDbl(DateTime.Timer - Start) Case 9 Text6.Text = CDbl(DateTime.Timer - Start) Case 10 Text6.Text = CDbl(DateTime.Timer - Start) Case 11 Text6.Text = CDbl(DateTime.Timer - Start) Case 12 Text6.Text = CDbl(DateTime.Timer - Start) Case Else Text6.Text = CDbl(DateTime.Timer - Start) End Select Next i For i = 0 To 10000 Select Case CInt(Text3.Text) Case 100 To 199 Text6.Text = CDbl(DateTime.Timer - Start) Case 200 To 299 Text6.Text = CDbl(DateTime.Timer - Start) Case 300 To 399 Text6.Text = CDbl(DateTime.Timer - Start) Case 400 To 499 Text6.Text = CDbl(DateTime.Timer - Start) Case 500 To 599 Text6.Text = CDbl(DateTime.Timer - Start) Case 600 To 699 Text6.Text = CDbl(DateTime.Timer - Start) Case 700 To 799 Text6.Text = CDbl(DateTime.Timer - Start) Case 800 To 899 Text6.Text = CDbl(DateTime.Timer - Start) Case 900 To 999 Text6.Text = CDbl(DateTime.Timer - Start) Case 1000 To 1099 Text6.Text = CDbl(DateTime.Timer - Start) Case 1100 To 1199 Text6.Text = CDbl(DateTime.Timer - Start) Case 1200 To 1299 Text6.Text = CDbl(DateTime.Timer - Start) Case 1300 To 1399 Text6.Text = CDbl(DateTime.Timer - Start) Case 1400 To 1499 Text6.Text = CDbl(DateTime.Timer - Start) Case 1500 To 1599 Text6.Text = CDbl(DateTime.Timer - Start) Case 1600 To 1699 Text6.Text = CDbl(DateTime.Timer - Start) Case 1700 To 1799 Text6.Text = CDbl(DateTime.Timer - Start) Case 1800 To 1899 Text6.Text = CDbl(DateTime.Timer - Start) Case 1900 To 1999 Text6.Text = CDbl(DateTime.Timer - Start) Case 2000 To 2099 Text6.Text = CDbl(DateTime.Timer - Start) Case 2100 To 2199 Text6.Text = CDbl(DateTime.Timer - Start) Case 2200 To 2299 Text6.Text = CDbl(DateTime.Timer - Start) Case 2300 To 2399 Text6.Text = CDbl(DateTime.Timer - Start) Case 2400 To 2499 Text6.Text = CDbl(DateTime.Timer - Start) Case 2500 To 2599 Text6.Text = CDbl(DateTime.Timer - Start) Case 2600 To 2699 Text6.Text = CDbl(DateTime.Timer - Start) Case 2700 To 2799 Text6.Text = CDbl(DateTime.Timer - Start) Case 2800 To 2899 Text6.Text = CDbl(DateTime.Timer - Start) Case 2900 To 3000 Text6.Text = CDbl(DateTime.Timer - Start) Case Else Text6.Text = CDbl(DateTime.Timer - Start) End Select Next i End Sub Private Sub Command5_Click() Unload Me End Sub Private Sub form_Load() Label1.Caption = "Лабораторная работа №2" Label2.Caption = DateTime.Time Timer1.Interval = 1000 Label3.Caption = "Скорость работы IF" Label4.Caption = "Скорость работы вложенного IF" Label5.Caption = "Скорость работы CASE" Label6.Caption = "Скорость работы вложенного CASE" Text1.Text = "Введите день месяца" Text2.Text = "Введите номер месяца" Text3.Text = "Введите год" Text4.Text = "Время IF" Text5.Text = "Время IF" Text6.Text = "Время CASE" Text7.Text = "Время CASE" Text4.Locked = True Text5.Locked = True Text6.Locked = True Text7.Locked = True Command1.Caption = "Подсчет последовательного If" Command2.Caption = "Подсчет последовательного CASE" Command3.Caption = "Подсчет вложенного If" Command4.Caption = "Подсчет вложенного CASE" Command5.Caption = "Выход" Frm_Timer.Caption = "Лабораторная работа №2: Сравнение работы операторов IF и CASE" End Sub Private Sub text1_GotFocus() If Text1.Text = "Введите день месяца" Then Text1.Text = "" End If End Sub Private Sub text1_lostFocus() If Text1.Text = "" Then Text1.Text = "Введите день месяца" End If End Sub Private Sub text2_GotFocus() If Text2.Text = "Введите номер месяца" Then Text2.Text = "" End If End Sub Private Sub text2_lostFocus() If Text2.Text = "" Then Text2.Text = "Введите номер месяца" End If End Sub Private Sub text3_GotFocus() If Text3.Text = "Введите год" Then Text3.Text = "" End If End Sub Private Sub text3_lostFocus() If Text3.Text = "" Then Text3.Text = "Введите год" End If End Sub ЗаключениеЯ изучили тему “Сравнение операторов IF и CASE”, создал программу, которую описал во Введении. При этом я исключил случаи, когда пользователь мог ввести буквы, пробелы, слишком большие числа, а также сделал все проверки исходя из данных связанных с правильностью вводимых дат в зависимости от месяца и года в полях “Введите день месяца”, “Введите номер месяца”, “Введите год”. Список литературыСтроковые функции (Visual Basic). Режим доступа: https://docs.microsoft.com/ru-ru/dotnet/visual-basic/language-reference/functions/string-functions. Дата обращения: 23.02.2019 Основы работы со строками в Visual Basic. Режим доступа: https://docs.microsoft.com/ru-ru/dotnet/visual-basic/programming-guide/language-features/strings/string-basics. Дата обращения: 23.02.2019 Лукин С.Н. Visual Basic 6.0 - Самоучитель для начинающих Москва– 2001 Стив Браун. Visual Basic 6.0 – учебный курс. 19 уроков для освоения языка. – СПб: Питер, 2009. Решении сложных задач программирования VB6. Режим доступа: http://informatic.ugatu.ac.ru/lib/VB_6.0/function/bycat.html Дата обращения: 24.02.2019 1 2 |