Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 25.01.2017
Сообщений: 1

Калькулятор перевода в VB

24.02.2017, 17:33. Показов 1523. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, такое дело: пишу калькулятор перевода числа из одной СС в любую другую. Всё вроде бы хорошо, но есть одно большое и жирное НО - не могу прописать правило перевода. Допустим, что числа 125 не существует в 5-ой СС и так далее. Неистово буду благодарна
Вот код программы:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
Dim w, e, r, t, p, u, o As Integer, q, y, i, m, z As Byte
 
i = Len(Text2.Text) 
q = Val(Text2.Text) 'Исходное число'
w = Val(Text4.Text) 'СС числа'
e = Val(Text5.Text) 'Результативная СС числа'
r = Val(Text3.Text) 'Результат'
Text6.Text = i
u = 0
y = q 'Рас'
p = ""
 
If (w = 10) Then
While (y > 0)
t = y Mod e
If (t > 10) Then
If (t = 10) Then t = "A"
If (t = 11) Then t = "B"
If (t = 12) Then t = "C"
If (t = 13) Then t = "D"
If (t = 14) Then t = "E"
If (t = 15) Then t = "F"
If (t = 16) Then t = "G"
If (t = 17) Then t = "H"
If (t = 18) Then t = "I"
If (t = 19) Then t = "J"
If (t = 20) Then t = "K"
If (t = 21) Then t = "L"
If (t = 22) Then t = "M"
If (t = 23) Then t = "N"
If (t = 24) Then t = "O"
If (t = 25) Then t = "P"
If (t = 26) Then t = "Q"
If (t = 27) Then t = "R"
If (t = 28) Then t = "S"
If (t = 29) Then t = "T"
If (t = 30) Then t = "U"
If (t = 31) Then t = "V"
If (t = 32) Then t = "W"
If (t = 33) Then t = "X"
If (t = 34) Then t = "Y"
If (t = 35) Then t = "Z"
End If
p = t & p
y = Int(y / e)
u = u + 1
Wend
Text3.Text = p
End If
 
If (e = 10) Then
t = q
p = 0
While (i > 0)
y = t Mod 10
p = p + y * (w ^ u)
u = u + 1
i = i - 1
t = Int(t / 10)
Wend
Text3.Text = p
End If
If (w <> 10) Then
If (e <> 10) Then
t = q
g = i
p = 0
While (g > 0)
y = t Mod 10
p = p + y * (w ^ u)
u = u + 1
g = g - 1
t = Int(t / 10)
Wend
Text7.Text = p
y = p
o = Str(p)
g = Len(o)
Text8.Text = g
u = 0
p = ""
 
While (y > 0)
t = y Mod e
If (t > 10) Then
If (t = 10) Then t = "A"
If (t = 11) Then t = "B"
If (t = 12) Then t = "C"
If (t = 13) Then t = "D"
If (t = 14) Then t = "E"
If (t = 15) Then t = "F"
If (t = 16) Then t = "G"
If (t = 17) Then t = "H"
If (t = 18) Then t = "I"
If (t = 19) Then t = "J"
If (t = 20) Then t = "K"
If (t = 21) Then t = "L"
If (t = 22) Then t = "M"
If (t = 23) Then t = "N"
If (t = 24) Then t = "O"
If (t = 25) Then t = "P"
If (t = 26) Then t = "Q"
If (t = 27) Then t = "R"
If (t = 28) Then t = "S"
If (t = 29) Then t = "T"
If (t = 30) Then t = "U"
If (t = 31) Then t = "V"
If (t = 32) Then t = "W"
If (t = 33) Then t = "X"
If (t = 34) Then t = "Y"
If (t = 35) Then t = "Z"
End If
p = t & p
y = Int(y / e)
u = u + 1
Wend
Text3.Text = p
End If
End If
End Sub
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.02.2017, 17:33
Ответы с готовыми решениями:

Калькулятор перевода из одной системы счисления в другую
Помогите пожалуйста написать програмный код к задаче. Надо сделать калькулятор, переводящий числа из 10-чной системы счисления в 2- 8-...

Калькулятор для перевода числа из 10-чной системы счисления в двоичную
Помогите пожалуйста написать програмный код. Надо сделать калькулятор, переводящий числа из 10-чной системы счисления в 2-чную. В...

Калькулятор перевода чисел
Всем добрый вечер :) на днях задали писать курсовую, задание которой написать на делфи калькулятор перевода чисел из 16 в 2 систему + к...

2
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
28.02.2017, 15:03
Берта
Если вам нужно проверить соответствие числа
например 125 в 5-ой СС , то используйте функцию Mid().
Проверка осуществляется в цикле. Число должно быть
задано в строковой переменной. Проверяйте по одной
цифре. В вашем примере каждая цифра должна быть
одной из следующих 0, 1, 2, 3, 4
0
141 / 119 / 29
Регистрация: 12.02.2017
Сообщений: 308
01.03.2017, 03:05
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
'функция принимает десятичное исходное число и преобразует
'его в число указанной системы счисления (второй аргумент)
Function ScaleOfNotation(iNumber As Long, iScale As Long) As String
    Dim iTmp As Long
    iTmp = Abs(iNumber)
    If iTmp = 0 Then
        ScaleOfNotation = "0"
        Exit Function
    End If
    Do
        ScaleOfNotation = ScaleOfNotation & CStr(iTmp Mod iScale)
        iTmp = iTmp \ iScale
    Loop While iTmp
    If Sgn(iNumber) < 0 Then ScaleOfNotation = ScaleOfNotation & "-"
    ScaleOfNotation = StrReverse(ScaleOfNotation)
End Function
 
 
'преобразует число из указанной системы счисления в 
'в десятичную систему
Function ToDecimal(sNumber As String, iScale As Long) As Long
    On Error GoTo Lb
    Dim iLen As Long
    Dim i As Long, y As Long
    Dim s As String, s2 As String
    Dim blnSgn As Boolean
    s = Trim(sNumber)
    iLen = Len(sNumber)
    If iLen = 0 Then
        ToDecimal = 0
        Exit Function
    End If
    s2 = Left(s, 1)
    If s2 = "-" Then
        blnSgn = True
        s = Right(s, iLen - 1)
        iLen = iLen - 1
    End If
    For i = 1 To iLen
        s2 = Mid(s, i, 1)
        y = CLng(s2)
        If y >= iScale Then Error 11
        ToDecimal = ToDecimal + y * (iScale ^ (iLen - i))
    Next i
    If blnSgn Then ToDecimal = -ToDecimal
    Exit Function
Lb:
    MsgBox "Invalid argument of function."
End Function
Добавлено через 14 минут
Вот, получайте, первая функция принимает два аргемента: исходное десятичное число и число СС, на выходе выдает число в указанной СС в виде строки.
Вторая функция, наоборот, получает число в указанной СС ( второй аргумент) и преобразует в обычное десятичное число.
Теперь про ограничения, обе функции понимают системы счисления от 2 до 9, компьютер с абракадаброй вида 9DR536 работать начисто отказывается, а я человек слабохарактерный, можно попробовать в виде строк но на это у меня не хватит времени. Следующее, вторая функция, которая принимает строковый аргумент числа в н-ой СС не должна содержать пробелов и др. неразумных вещей. Все.

Добавлено через 7 минут
Оффтоп, Sasha_Smirnov, еще не успел до конца отправить сообщение, как уже получил +, как умудряетесь?
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.03.2017, 03:05
Помогаю со студенческими работами здесь

калькулятор перевода из 16 в 10 систему в С++
...есть программа перевод из 16 в 10, но только одной цифры (пример A2 = 40960)... а мне нужно польской записью целое выражение (пример:...

Калькулятор перевода Байт-Килобайты
Здравствуйте, помогите пожалуйста создать калькулятор переводов с помощью библиотеки Tkinter из: Байт-Килобайт Байт-Мегабайт ...

Двоичный калькулятор с возможностью перевода в другие СС
Двоичный калькулятор. Выполняемые функции: 1) перевод из двоичной в 10-ю, 8-ю, 16-ю системы счисления целых и дробных чисел; 2) выполнение...

Калькулятор перевода числа в различные системы счисления
Калькулятор просто переводит число из одной СС в другую. Прога не моя, знаю, что делают функции но КАК они это делают... Вобщем, объясните...

Калькулятор для перевода обычного числа в бинарное
Добрый день Пытаюсь написать калькулятор для перевода обычного числа в БИНАРНОЕ Вввожу число 22 на выходе в текстовой форме...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru