рефератырефератырефератырефератырефератырефератырефератырефераты

рефераты, скачать реферат, современные рефераты, реферат на тему, рефераты бесплатно, банк рефератов, реферат культура, виды рефератов, бесплатные рефераты, экономический реферат

"САМЫЙ БОЛЬШОЙ БАНК РЕФЕРАТОВ"

Портал Рефератов

рефераты
рефераты
рефераты

Перевод целых неотрицательных чисел в различных системах счисления

Министерство образования Республики Таджикистан

Таджикский Технический Университет им. ак. М.С. Осими

кафедра АСОИиУ

Лабораторная работа №4

«Перевод целых неотрицательных чисел в различных системах счисления»

Выполнил:

Принял:

-Душанбе 2009-

Программа Enhanced Converter

Public x0, x, i, j, z As Double Процедура инициализации приложения

Public y As String

Private Sub clr_Click()

inp.Text = "" Процедура очистки текстовых полей

out.Text = ""

End Sub

Внешний вид окна приложения с введёнными данными

Private Sub Form_KeyPress(KeyAscii As Integer)

Dim val As String

val = Chr(KeyAscii)

Select Case cmb.ListIndex

Case 0

Select Case val

Case "0"

inp.Text = inp.Text & "0"

Case "1"

inp.Text = inp.Text & "1"

End Select

Case 1

If val >= "0" And val <= "9" Then

If val >= "8" And val <= "9" And inp.Text = "" Then

Exit Sub

Else

End If

inp.Text = inp.Text & CStr(val)

Else

End If

Case 2

If (val >= "0" And val <= "9") Or (val >= "a" And val <= "f") Or (val >= "A" And val <= "F") Then

inp.Text = inp.Text & CStr(val)

Else

End If

Case 3, 4, 5

If val >= "0" And val <= "9" Then

inp.Text = inp.Text & CStr(val)

Else

End If

End Select

End Sub

Private Sub inp_KeyDown(KeyCode As Integer, Shift As Integer)

On Error GoTo err:

If (KeyCode = vbKeyBack) Then

inp.Text = Left(inp.Text, Len(inp.Text) - 1)

ElseIf (KeyCode = vbKeyDelete) Then

inp.Text = ""

Else

End If

Exit Sub

err:

Beep

End Sub

Private Sub Form_Load()

inp.Text = ""

End Sub

Private Sub inp_Change()

Dim d(100) As Double

Dim ds(100) As String

Select Case cmb.ListIndex

Case 0

inp.MaxLength = 40

If inp.Text = "" Then

out.Text = ""

Exit Sub

Else

i = (Len(inp.Text))

x = 0

j = 0

Do

x = x + (val(Mid(inp.Text, i, 1)) * (2 ^ j))

i = i - 1

j = j + 1

Loop Until i = 0

out.Text = x

End If

Case 1

inp.MaxLength = 40

If inp.Text = "" Then

out.Text = ""

Exit Sub

Else

i = (Len(inp.Text))

x = 0

j = 0

Do

x = x + (val(Mid(inp.Text, i, 1)) * (8 ^ j))

i = i - 1

j = j + 1

Loop Until i = 0

out.Text = x

End If

Case 2

inp.MaxLength = 40

z = 0

If inp.Text = "" Then

out.Text = ""

Exit Sub

Else

i = (Len(inp.Text))

x = 0

j = 0

Do

Select Case Mid(inp.Text, i, 1)

Case "A", "a"

z = 10

Case "B", "b"

z = 11

Case "C", "c"

z = 12

Case "D", "d"

z = 13

Case "E", "e"

z = 14

Case "F", "f"

z = 15

Case "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"

z = val(Mid(inp.Text, i, 1))

End Select

x = x + z * (16 ^ j)

i = i - 1

j = j + 1

Loop Until i = 0

out.Text = x

End If

Case 3

inp.MaxLength = 15

On Error GoTo err:

If inp.Text = "" Then

out.Text = ""

Exit Sub

ElseIf val(inp.Text) = 0 Or val(inp.Text) = 1 Then

out.Text = inp.Text

Exit Sub

Else

i = 1

x0 = val(inp.Text)

Do

d(i) = val(x0 - (val(x0 / 2) * 2))

x = Round((x0 / 2) - 0.3, 0)

i = i + 1

x0 = x

Loop Until x = 1

d(i) = x

out.Text = ""

Do

out.Text = out.Text & val(d(i))

i = i - 1

Loop Until i = 0

End If

Case 4

inp.MaxLength = 15

On Error GoTo err:

If inp.Text = "" Then

out.Text = ""

Exit Sub

Else

i = 1

x0 = val(inp.Text)

If x0 >= 0 And x0 <= 7 Then

out.Text = inp.Text

Exit Sub

Else

Do

d(i) = val(x0 - (val(x0 / 8) * 8))

x = val(x0 / 8)

If x >= 0 And x <= 7 Then

i = i + 1

d(i) = x

Exit Do

Else

i = i + 1

x0 = x

End If

Loop Until x = 1

out.Text = ""

Do

out.Text = val(out.Text) & val(d(i))

i = i - 1

Loop Until i = 0

End If

End If

Case 5

inp.MaxLength = 15

z = 0

If inp.Text = "" Then

out.Text = ""

Exit Sub

Else

i = 1

x0 = val(inp.Text)

If val(inp.Text) >= 0 And val(inp.Text) <= 15 Then

Select Case val(inp.Text)

Case 10

y = "A"

Case 11

y = "B"

Case 12

y = "C"

Case 13

y = "D"

Case 14

y = "E"

Case 15

y = "F"

Case 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

y = inp.Text

End Select

out.Text = y

Exit Sub

Else

Do

z = val(x0 - (val(x0 / 16) * 16))

Select Case z

Case 10

y = "A"

Case 11

y = "B"

Case 12

y = "C"

Case 13

y = "D"

Case 14

y = "E"

Case 15

y = "F"

Case 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

y = CStr(z)

End Select

ds(i) = y

x = val(x0 / 16)

If x <= 0 Then Exit Do

i = i + 1

x0 = x

Loop Until x = 1

out.Text = ""

Do

out.Text = out.Text & ds(i)

i = i - 1

Loop Until i = 0

End If

End If

End Select

Exit Sub

err:

MsgBox "Введены неверные значения или значения не являются корректными", , "=VaMp1r3=™"

Call clr_Click

End Sub

Private Sub cmb_Click()

Call clr_Click

End Sub

Private Sub ext_Click()

End

End Sub

Private Sub cop_Click()

MsgBox "=VaMp1r3=™. Все права защищены. По всем вопросам а также с претензиями обращаться в гр. 6546 Б2 к Столову Юрию.", , "=VaMp1r3=™"

End Sub

рефераты
РЕФЕРАТЫ © 2010