на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Перевод целых неотрицательных чисел в различных системах счисления

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

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

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

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

Лабораторная работа №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



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.