Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 22.04.2017
Сообщений: 6
1

Напишите процедуру на языке VBA, которая определяет сократимость дроби

22.04.2017, 23:34. Показов 1095. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите ,пожалуйста, с написанием программы на языке VBA.
Вот условие:
Напишите процедуру на языке VBA, которая определяет сократимость дроби a/b (b≠0) . Вычисление наибольшего общего делителя чисел a и b оформить в виде функции.
Исходные данные: 1. a=2, b=0 1 Результат: 1. Неверно введено b
2. a=3, b=5
3. a=6, b=8 2. Дробь 3/5 не сократима
3. Дробь 6/8 сократима на 2



Вот немного начала (может и не правильно):
Function НОД(a, b)
While a <> b
If a > b Then
a = a - b
Else
b = b - a
End If
Wend
НОД = a
End Function

Sub List6_11()
Dim a As Long, b As Long, НОД As Variant

a = CDbl(InputBox("Введите a", "Исходные данные"))
b = CDbl(InputBox("Введите b", "Исходные данные"))
If b = 0 Then MsgBox "Неверно введено b"
If НОД =(a,b) Then MsgBox "Дробь" & a / b & ("сокротима на ") & f
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.04.2017, 23:34
Ответы с готовыми решениями:

Определить сократимость дроби
Всем привет:) я тут впервые нашел такой замечательный форум в поиске а теперь к делу......

Напишите программу, которая сортирует массив по убыванию суммы цифр числа. Используйте функцию, которая определяет сумму
Напишите программу, которая сортирует массив по убыванию суммы цифр числа. Используйте функцию,...

Создайте процедуру, которая делит дроби
Создайте процедуру, которая делит дроби. Первые два аргумента - числитель и знаменатель первой...

Напишите программу, которая определяет время суток
Напишите программу, которая по введенному числу из промежутка 0..24, определяет время суток.

3
141 / 119 / 29
Регистрация: 12.02.2017
Сообщений: 308
23.04.2017, 09:51 2
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
Private Function GCD(ByVal a As Long, ByVal b As Long) As Long 'greatest common divisor
    Dim i&
    GCD = 1
    If a < 2 Or b < 2 Then Exit Function
    If Not (a Mod 2) Then
        If Not (b Mod 2) Then
            Do Until (a Mod 2) Or (b Mod 2)
                GCD = GCD * 2
                a = a \ 2: b = b \ 2
            Loop
        End If
    End If
    i = 3
    Do Until (i > a) Or (i > b)
        Do Until (a Mod i) Or (b Mod i)
            GCD = GCD * i
            a = a \ i: b = b \ i
        Loop
        i = i + 2
    Loop
End Function
Sub TestGCD()
    Dim a&, b&, s$
    s = InputBox("Введите числитель")
    If s = "" Then Exit Sub
    a = Abs(Val(s))
Denominator:
    s = InputBox("Введите знаменатель")
    If s = "" Then Exit Sub
    b = Abs(Val(s))
    If b = 0 Then MsgBox "Неправильный знаменатель.": GoTo Denominator
    MsgBox "Наибольший общий делитель дроби " & a & "/" & b & ": " & GCD(a, b)
End Sub
1
0 / 0 / 0
Регистрация: 22.04.2017
Сообщений: 6
23.04.2017, 22:06  [ТС] 3
спасибо , а можете подсказать как правльно написать примерно так (другие MsgBox немного нужны )


Function GCD(ByVal a As Long, ByVal b As Long) As Long
Dim i&
GCD = 1
If a < 2 Or b < 2 Then Exit Function
If Not (a Mod 2) Then
If Not (b Mod 2) Then
Do Until (a Mod 2) Or (b Mod 2)
GCD = GCD * 2
a = a \ 2: b = b \ 2
Loop
End If
End If
i = 3
Do Until (i > a) Or (i > b)
Do Until (a Mod i) Or (b Mod i)
GCD = GCD * i
a = a \ i: b = b \ i
Loop
i = i + 2
Loop
End Function
Sub List6_11()
Dim a&, b&, s$
s = InputBox("Введите числитель")
If s = "" Then Exit Sub
a = Abs(Val(s))
Denominator:
s = InputBox("Введите знаменатель")
If s = "" Then Exit Sub
b = Abs(Val(s))
If b = 0 Then MsgBox "Неверно введено b": GoTo Denominator
MsgBox ("Дробь " & a & "/" & b & "сократима на" & GCD(a, b))
MsgBox ("Дробь" & a & "/" & b & " не сократима ")
End Sub

Добавлено через 9 часов 25 минут
Homarty, спасибо , а можете подсказать как правльно написать примерно так (другие MsgBox немного нужны )


Function GCD(ByVal a As Long, ByVal b As Long) As Long
Dim i&
GCD = 1
If a < 2 Or b < 2 Then Exit Function
If Not (a Mod 2) Then
If Not (b Mod 2) Then
Do Until (a Mod 2) Or (b Mod 2)
GCD = GCD * 2
a = a \ 2: b = b \ 2
Loop
End If
End If
i = 3
Do Until (i > a) Or (i > b)
Do Until (a Mod i) Or (b Mod i)
GCD = GCD * i
a = a \ i: b = b \ i
Loop
i = i + 2
Loop
End Function
Sub List6_11()
Dim a&, b&, s$
s = InputBox("Введите числитель")
If s = "" Then Exit Sub
a = Abs(Val(s))
Denominator:
s = InputBox("Введите знаменатель")
If s = "" Then Exit Sub
b = Abs(Val(s))
If b = 0 Then MsgBox "Неверно введено b": GoTo Denominator
MsgBox ("Дробь " & a & "/" & b & "сократима на" & GCD(a, b))
MsgBox ("Дробь" & a & "/" & b & " не сократима ")
End Sub
0
141 / 119 / 29
Регистрация: 12.02.2017
Сообщений: 308
23.04.2017, 23:37 4
[VB]Dim i&
i=GCD(a,b)
If i>1 Then
MsgBox "Дробь " & a & "/" & b & "сократима на " & i
Else
MsgBox "Дробь" & a & "/" & b & " не сократима "

Добавлено через 22 секунды
Visual Basic
1
2
3
4
5
6
Dim i&
i=GCD(a,b)
If i>1 Then
    MsgBox "Дробь " & a & "/" & b & "сократима на " & i
Else
MsgBox "Дробь" & a & "/" & b & " не сократима "
Добавлено через 1 минуту
Это добавите вместо Msgbox

Добавлено через 2 минуты
Пропустил в конце кода
Visual Basic
1
End If
0
23.04.2017, 23:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.04.2017, 23:37
Помогаю со студенческими работами здесь

Напишите программу, которая определяет время в виде «чч:мм»
помогите очень надо Известно время вылета самолета: НН часов и ММ минут, а также...

Напишите программу, которая определяет количество элементов массива
народ ,помогите пожалуйста решить срочно!!! Прошу Вас .....заранее благодарю)). Создайте файл,...

Напишите программу, которая определяет, во что превращаются S рублей
Напишите программу, которая определяет, во что превращаются S рублей при инфляции P процентов...

Напишите программу, которая определяет наибольшее число в файле
Текстовый файл CISLA.TXT содержит ряд натуральных чисел. Каждое из этих чисел может содержать до...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru