- •Кафедра технологии машиностроения
- •Наименование темы
- •Прикладное программирование
- •Оглавление
- •Теоретические сведения о Microsoft Visual Basic
- •Задачи на курсовую работу
- •Блок-схема (алгоритм программы для перевода чисел из десятичной в двоичную систему исчисления и на оборот)
- •Рабочий вид программы (принцип действия)
- •Код программы
- •Список использованной литературы
Блок-схема (алгоритм программы для перевода чисел из десятичной в двоичную систему исчисления и на оборот)
m=i
Покаa не станет равно 0
Получение значения ячейки
Если выбран пункт «В двоичную»
i=1
Для i=1 до m-1
Запись результата в строку
Если выбран пункт «В десятичную»
Запоминание значения
Вычисление длины строки
d=0
Процесс перевода числа из десятичного в двоичное по разрядам.
Если число цифр в строке меньше следующего разряда для вычисления
Для i=1 до m
Перевод числа в строку;
Вычисление длины строки.
Увеличение разряда
Старт
Получение остатка от деления;
Деление нацело;
Запись в массив остатка; Увеличение I.
Запись результата в ячейку
Конец
Запись результата в ячейку
Конец
Рабочий вид программы (принцип действия)
1
2
3
4
5
Ячейка для ввода исходного числа.
Ячейка, в которую выводится результат вычисления.
Флажок выбора системы исчисления (двоичная).
Флажок выбора системы исчисления (десятичная).
Кнопка после нажатия которой происходит вычисление.
Код программы
Private Sub CommandButton1_Click()
Dim a As Integer, d As Integer, e(10) As Integer, i As Integer, m As Integer, tmp As Integer 'переменные
Dim ch As String 'переменные
a = Cells(1, 1) 'Запись в a числа из первой ячейки (исходное число)
If OptionButton1 = True Then 'Если выбран пункт "В двоичную"
i = 1 'Стартовое число, количество цифр в числе
Do Until a = 0 'Пока a не будет равно 0, цикл будет продолжаться
d = a Mod 2 'Получение остатка от деления
a = a \ 2 'Само деление (нацело)
e(i) = d 'Запись в массив остатка (массив будет выводиться в виде строки)
i = i + 1 'Повышение количества чисел на одно
Loop
m = i 'Запоминание количества чисел
For i = 1 To m - 1 'Начало цикла записи в строку результата
ch = ch + Str(e(m - i)) 'Соппсна запись результата в строку
Next i
Cells(2, 1) = ch 'Вывод результата в ячейку
End If
If OptionButton2 = True Then 'Если выбран пункт "В десятичную"
ch = Cells(1, 1) 'Запись значения строкового
a = Cells(1, 1) 'Запись значения цифрового
m = Len(ch) 'Вычисление длины строки
d = 0 'Установка начальной суммы
For i = 1 To m 'Начало цикла вычисления
d = d + ((a \ 10 ^ (m - i)) * (2 ^ (m - i))) 'Много букв (много цыфер?): получение числа из наивысшего разряда и умножение его на 2 в степени порядка разряда
a = a - 10 ^ (m - i) 'Уменьшение числа на разряд, присвоение a следующего значения
ch = CStr(a) 'Установка числа в строку
tmp = Len(ch) 'Вычисление длины строки
If tmp < (m - i) Then 'Бубен: если количество цифр в строке, меньше следующего разряда для вычисления
i = i + 1 'увеличение на 1 разряда для вычисления
End If
Next i
Cells(2, 1) = d 'Запись результат в ячейку
End If
End Sub