Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
андрей 01
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 30
#1

Программа, сокращающая дроби

26.10.2011, 15:55. Просмотров 1198. Ответов 4
Метки нет (Все метки)

vb.net
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
Public Class Form1
    Dim a1 As Integer
    Dim a2 As Integer
    Dim b1 As Integer
    Dim b2 As Integer
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        Dim z1 As Integer
        Dim z2 As Integer
        Dim n As Integer
 
        a1 = CInt(TextBox1.Text)
        a2 = CInt(TextBox2.Text)
        Label4.Text = a1
        Label5.Text = a2
 
1:      If a1 Mod a2 = 0 Then       ' c 1 по 2 строки проверяем делится ли числитель на знаменатель целочислено-
            Label8.Text = ""        ' при выполнения этого условия дробь сокращется на знаменатель.
            Label9.Text = ""
            Label11.Text = ""  '
            Label12.Text = ""
            Label10.Text = ""
            Label13.Text = ""
            Label14.Text = ""
            Label7.Text = a1 / a2
2:          Button3.Enabled = False ' c 2 по 3 строки проверяем делится ли знаменатель на числитель целочислено-
            If a2 Mod a1 = 0 Then   '  при выполнения этого условия дробь сокращется на числитель.
                z1 = a1 / a1
                z2 = a2 / a1
3:          End If                  ' если два пред идущих условия не выполняется тогда находим наибольший общий-                          
        Else                        ' множитель и сокращаем на него всю дробь.
 
            If a1 > a2 Then n = a1 'определчем ведущий масив по размерности(ведущий это тот в котором будет наибольшие-
            If a2 > a1 Then n = a2 ' количество цифор полученных при целочисленном дилении если больше числитель то это будет масив чеслителчя и на оборот.
            Dim mas1(n) As Integer  'объявляем масив в который будем записывать числа на которые чеслитель делится целочислено.
            Dim mas2(n) As Integer  ' объявляем  масив в который будем записывать числа на которые знаменатель делится целочислено.
 
            For i = 1 To n           'создаем цыкал от 1 до размерности ведущего масива в который будем записывать числа полученных при целочисленном дилении-
                If a1 Mod i = 0 Then 'числителя и знаменатиля на постояно увеличиваюшюся (i).
                    mas1(i) = i      'если числитель делится цэлочисленно на текущюю (i) то записываем её в масив числителя.
                End If
                If a2 Mod i = 0 Then
                    mas2(i) = i       'если знаменатель делится цэлочисленно на текущюю (i) то записываем её в масив знаменателя.
                End If
            Next
 
            For i = 2 To n             ' в этом вложеном цикле сравниваем элементы массивов числителя и знаменателя и те которыу равны между сбой и не равны нулю-
                For i1 = 2 To n        ' и будут общими множытелями.Последний общий множител будет наибольшим для числителя и знаменателя.
                    If mas1(i) = mas2(i1) And mas1(i) <> 0 And mas2(i1) <> 0 Then
                        z1 = a1 / mas1(i)  ' делим числитель знаменатель на (НОД)
                        z2 = a2 / mas2(i1)
                    End If
                Next
            Next                        'после этой строки наша дробь сократилась на сколько это возможно,причём дробь можно сократить любую главное-
            'что бы она была из класа (обычная -> правеьная и не праельная)
 
            If z1 < z2 Then     ' дальще идёт офармление и действия наслучий не сокращаемости дроби
                Button3.Enabled = False
            Else
                Button3.Enabled = True
            End If
 
            Label8.Text = z1
            Label9.Text = z2
            Label7.Text = "-"
            Label11.Text = ""
            Label12.Text = ""
            Label10.Text = ""
            Label13.Text = ""
            Label14.Text = ""
 
 
            If Label8.Text = 0 And Label9.Text = 0 And Label7.Text = "-" Then
                Label8.Text = ""
                Label9.Text = ""
                Label7.Text = "несократимо"
                Button3.Enabled = False
            End If
        End If
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        a1 = CInt(TextBox1.Text) ' это фигня
        a2 = CInt(TextBox2.Text)
        TextBox1.Text = CInt(a2)
        TextBox2.Text = CInt(a1)
    End Sub
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim zech As Integer ' сдесь по нажатию кнопки находим цэлую часть у дроби которая уже сократиилась причём дробь остаётся в виде дроби
        Dim z1 As Integer = CInt(Label8.Text)
        Dim z2 As Integer = CInt(Label9.Text)
 
 
        zech = Int(z1 / z2)
        For i = 1 To zech
            z1 = z1 - z2
        Next i
        Label14.Text = zech
        Label11.Text = z1
        Label12.Text = z2
        Label10.Text = "="
        Label13.Text = "-"
        Button3.Enabled = False
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Button3.Enabled = False  'это кнопка которая позволяет и не позваляет (не нужных случаях) находить цэлую часть 
    End Sub
End Class
писал сам тока не знаю как скомпелировать мож подскажите кто
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2011, 15:55
Ответы с готовыми решениями:

Из БД SQL не отображает десятичные дроби
Хочу вывести из базы данных по условию столбец с десятичными дробями, но...

Определить разрядность десятичной дроби
Привет. Как определить разрядность десятичной дроби? Private Function R(ByVal...

Перевод обыкновенной дроби в проценты
Здравствуйте. Стал изучать VB 2010. А по ходу дела еще и в колледже давали...

Не допускать присутствия нуля перед числом. Исключение составляют лишь дроби
Добрый день, народ! Как сделать так, что, если в поле был введен 0, а после...

Вычислите значение с точностью ε = 0.00001, воспользовавшись представлением в виде цепной дроби
Здравствуйте. Прошу помощи, не могу найти ошибки в коде. Суть...

4
ImAlexSmith
324 / 113 / 7
Регистрация: 01.05.2011
Сообщений: 283
Записей в блоге: 3
26.10.2011, 17:01 #2
да вроде все нормально скомпилировалось и даже посчиталось. А что именно то не получается, какая ошибка?
0
андрей 01
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 30
26.10.2011, 18:53  [ТС] #3
не знаю как скомпелировать
0
XIST
1044 / 772 / 109
Регистрация: 01.10.2009
Сообщений: 2,404
Записей в блоге: 1
26.10.2011, 18:57 #4
в меню build>build solution
0
ImAlexSmith
324 / 113 / 7
Регистрация: 01.05.2011
Сообщений: 283
Записей в блоге: 3
26.10.2011, 19:22 #5
кнопочка F5 мб вам поможет
0
26.10.2011, 19:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2011, 19:22

Программа сокращения дроби
пРИ выполнении программы вылетыет с ошибкой.Где ошибка?:-| #include&lt;stdio.h&gt;...

Программа для вычисления рациональной дроби
мне нужно составить программу для вычисления рациональной дроби коэффициентами...

Программа печати k-го члена в виде обыкновенной несократимой дроби
Задание про подпрограммы, функции. vba Ломал голову, но безуспешно. Помогите...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru