Министерство образования Республики Таджикистан
Таджикский Технический Университет им. ак. М. С. Осими
кафедра АСОИиУ
Лабораторная работа №2
«Сложение и вычитание целых неотрицательных чисел в двоичном коде»
Выполнил:
Принял:
-Душанбе 2009-
Программа «Plusdouble»
Option Explicit
Public sel As Integer
Public i, x, j, x0 As Double
Public c As Integer
Окно приложения в исходном состоянии.
Private Sub Command1_Click()
fir.Text = ""
sec.Text = ""
res.Text = ""
x = 0
j = 0 Процедура очистки полей формы
x0 = 0
i = 0
End Sub
Private Sub ext_Click()
End Процедура выхода
End Sub
Private Sub fir_Change()
If val(fir.Text) = 0 Or val(fir.Text) = 1 Then
lb1.Caption = fir.Text
Exit Sub
Else
i = (Len(fir.Text))
x = 0
j = 0
Do Процедура для перевода
x = x + (val(Mid(fir.Text, i, 1)) * (2 ^ j)) введённого значения
i = i – 1 в десятичный код
j = j + 1
Loop Until i = 0
lb1.Caption = x
End If
End Sub
Private Sub fir_GotFocus()
sel = 1
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
On Error GoTo err:
If (KeyCode = vbKeyBack) Then
Select Case sel
Case 1
fir.Text = Left(fir.Text, Len(fir.Text) - 1)
Case 2
sec.Text = Left(sec.Text, Len(sec.Text) - 1)
End Select
Else
End If
Exit Sub
err:
Beep
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Dim val As String
val = Chr(KeyAscii)
If (val >= "0") And (val <= "9") Then
If sel = 1 Then
Select Case val
Case "0"
fir.Text = fir.Text & "0"
Case "1" Процедуры
fir.Text = fir.Text & "1" контроля за
End Select вводом
ElseIf sel = 2 Then
Select Case val
Case "0"
sec.Text = sec.Text & "0"
Case "1"
sec.Text = sec.Text & "1"
End Select
Else
End If
Else
End If
End Sub
Private Sub Form_Load()
plus.Value = True
c = 1
End Sub
Форма с введёнными значениями
Private Sub res_Change()
If val(res.Text) = 0 Or val(res.Text) = 1 Then
lb3.Caption = res.Text
Exit Sub
Else
i = (Len(res.Text))
x = 0
j = 0
Do
x = x + (val(Mid(res.Text, i, 1)) * (2 ^ j))
i = i - 1
j = j + 1
Loop Until i = 0
lb3.Caption = x
End If
End Sub
Private Sub res_GotFocus()
sel = 3
End Sub
Private Sub run_Click()
Dim d(90) As Integer
If fir.Text = "" Or sec.Text = "" Then
MsgBox "Incorrect input. Please input numbers again", , "=VaMp1r3=™"
Exit Sub
Else
Select Case plus.Value
Case True
x0 = ((CInt(lb1.Caption)) + (CInt(lb2.Caption)))
x = 0
c = 1
Do
d(c) = x0 Mod 2
x = Round((CDbl(x0) / 2) - 0.3, 0)
c = c + 1
x0 = x
Loop Until x = 1
d(c) = x
res.Text = ""
Do
res.Text = res.Text & d(c)
c = c - 1
Loop Until c = 0
Case False
If val(lb2.Caption) > val(lb1.Caption) Then
MsgBox "Так нельзя! Первое слагаемое должно быть больше второго. , "=VaMP1r3=™"
Exit Sub
Else
x0 = ((CInt(lb1.Caption)) - (CInt(lb2.Caption)))
x = 0
c = 1
Do
If x0 = 0 Then Exit Do
d(c) = x0 Mod 2
x = Round((CDbl(x0) / 2) - 0.3, 0)
c = c + 1
x0 = x
Loop Until x = 1
d(c) = x
res.Text = ""
Do
res.Text = res.Text & d(c)
c = c - 1
Loop Until c = 0
End If
End Select
End If
End Sub
Форма с вычисленными данными
Private Sub sec_Change()
If val(sec.Text) = 0 Or val(sec.Text) = 1 Then
lb2.Caption = sec.Text
Exit Sub
Else
i = (Len(sec.Text))
x = 0
j = 0
Do
x = x + (val(Mid(sec.Text, i, 1)) * (2 ^ j))
i = i - 1
j = j + 1
Loop Until i = 0
lb2.Caption = x
End If
End Sub
Private Sub sec_GotFocus()
sel = 2
End Sub
Похожие работы
... последовательности 0 и 1. Например целое неотрицательное число А2=Т 111100002 будет храниться в ячейке следующим образом: 1 1 1 1 0 0 0 0 Значит, мы можем записать все числа от 0 до 255 в двоичной системе счисления в 1 ячейке памяти. 2.2 Представление чисел в компьютере Целые числа в компьютере хранятся в ячейках памяти, в этом случае каждому разряду ячейки памяти соответствует ...
... заключается в том, что она чувствительнак знаку числа и по умолчанию при переводе в двоичную систему счисления использует дополнительный "до 1" код, что избавляет нас от написания дополнительной функции перевода. BaseToInt Данная функция реализует алгоритм преобразования числа Base- системы счисления в десятичную по следующей формуле: x = anPn + an-1Pn-1 + ... + a1P1 + a0P0 + ...
... проблемного характера, задания, связанные с классификацией, анализом и синтезом, опорные схемы. Всё это составляет приёмы познавательной деятельности учащихся. Глава 3. Приёмы активизации учащихся в процессе обучения математике в начальных классах при изучении нумерации многозначных чисел 3.1. Сущность приёмов активизации Для того, чтобы добиться активности учащихся на уроке математике, ...
... , как правило, указываются только смещения. Отметим, что в MASM сегментный регистр записывается в самой команде непосредственно перед смещением (именем переменной, меткой и т.п.), однако на уровне машинного языка ситуация несколько иная. Имеется 4 специальные однобайтовые команды, называемые префиксами замены сегмента (обозначаемые как CS:, DS:, SS: и ES:). Они ставятся перед командой, операнд- ...
0 комментариев