Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [VB6] Описание (объяснение) программного кода. Помогите.


Автор: ALBB 25.5.2008, 10:33
Люди добрые, помогите, пожалуйста, полному чайнику. 
Тут вот в Универе дали задание объяснить написание одного программного кода (из калькулятора). То есть, надо пояснить что и зачем там написано. 

Ну вот такая прога: 

Цифры 1,2,3, и т.д запрограммированы вот так 
Код

Private Sub Command1_Click() 
On Error Resume Next 
If a = 1 Then 
Text2.Text = Text2.Text + "1" 
End If 
If a = 2 Then 
Text1.Text = Text1.Text + "1" 
End If 
If a = 3 Then 
Text7.Text = "." 
End If 
End Sub 

Private Sub Command5_Click() 
On Error Resume Next 
If a = 1 Then 
Text2.Text = Text2.Text + "5" 
End If 
If a = 2 Then 
Text1.Text = Text1.Text + "5" 
End If 
If a = 3 Then 
Text7.Text = "" 
End If 
End Sub 

Нужно объяснить, что тут и зачем вообще написано. 

Вот ещё кнопка «очистка» 
Код

Private Sub Command11_Click() 
On Error Resume Next 
Text1.Text = "" 
Text2.Text = "" 
Text3.Text = "" 
Text1.SetFocus 
b = 0 
End Sub 

Тоже надо всё объяснить. 

Кнопки «сложение», «вычитание», «умножение» и «деление»: 
Код

Private Sub Command13_Click() 
On Error Resume Next 
Text2.SetFocus 
Text6.Text = Val(Text1.Text) + Val(Text2.Text) 
c = 1 
End Sub 

Private Sub Command14_Click() 
On Error Resume Next 
Text2.SetFocus 
c = 2 
End Sub 

Private Sub Command15_Click() 
On Error Resume Next 
c = 3 
Text2.SetFocus 
End Sub 

Private Sub Command16_Click() 
On Error Resume Next 
c = 4 
Text2.SetFocus 
End Sub 

В чём принцип их программирования? Как это объяснить? 

А так же кнопка Равно: 
Код

Private Sub Command18_Click() 
On Error Resume Next 
If c = 1 Then 
Text3.Text = Val(Text1.Text) + Val(Text2.Text) 
End If 
If c = 2 Then 
Text3.Text = Val(Text1.Text) - Val(Text2.Text) 
End If 
If c = 3 Then 
Text3.Text = Val(Text1.Text) * Val(Text2.Text) 
End If 
If c = 4 Then 

If Text2.Text = "0" Then 
MsgBox "Деление на ноль запрещено", 48, "Ошибка" 
Else 

Text3.Text = Round(Text1.Text / Text2.Text, 11) 

End If 
End If 
If c = 5 Then 
Text3.Text = Val(Text1.Text) ^ Val(Text2.Text) 
End If 
If c = 6 Then 
Text3.Text = Val(Text1.Text) ^ (1 / Text2.Text) 
End If 
Text7.SetFocus 
End Sub 

Чёго тут вообще написано? 

Каков принцип программирования синуса и косинуса?: 
Код

Private Sub Command22_Click() 
On Error Resume Next 
gradtorad = Text1.Text * pi / 180 
Text3.Text = Round(Cos(gradtorad), 11) 
Text7.SetFocus 
End Sub 

Private Sub Command23_Click() 
On Error Resume Next 
gradtorad = Text1.Text * pi / 180 
Text3.Text = Round(Sin(gradtorad), 11) 
Text7.SetFocus 
End Sub 

А так же возведение X в квадрат и куб?: 
Код

Private Sub Command26_Click() 
On Error Resume Next 
Text3.Text = Val(Text1.Text) ^ 2 
Text7.SetFocus 
End Sub 

Private Sub Command27_Click() 
On Error Resume Next 
Text3.Text = Val(Text1.Text) ^ 3 
Text7.SetFocus 
End Sub 

И, главное, нужно объяснить почему везде написана одна и та же строчка On Error Resume Next 

Помогите, пожалуйста, со всем этим разобраться. 
Просто не соображаю я в информатике. Да и специальность у меня с этим предметом не связана даже близко. Но вот никуда не денешься от этой информатики как общеобразовательного предмета, и задания приходится всё-таки делать. 

В общем, кому не трудно, помогите, пожалуйста.

Автор: Данкинг 25.5.2008, 10:41
Цитата(ALBB @  25.5.2008,  11:33 Найти цитируемый пост)
И, главное, нужно объяснить почему везде написана одна и та же строчка On Error Resume Next 

Чтобы в случае ошибки (типа деления на нуль) программа не вылетала, а продолжала работать со следующей строки.
А в остальном что там непонятного? По-моему, проще программы (реально работающей и нужной) и не бывает. smile 

Автор: Naghual 25.5.2008, 11:40
ALBB, для данной темы существует http://forum.vingrad.ru/Vingrad-help-center.html

Автор: cardinal 25.5.2008, 19:58
ALBB, пользуйтесь тегом "Код"!

Автор: Akina 25.5.2008, 20:45
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)