Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 13.06.2015
Сообщений: 47
1

Найти Сумму всех несократимых дробей

20.05.2016, 15:16. Показов 1029. Ответов 5
Метки нет (Все метки)

Всем привет. Нужна помощь
Нужно найти сумму всех несократимых дробей, со знаменателем К, содержащихся между m и n, где К просто число
т.к я не шарящий, упростил себе работу, взял промежуток [1,3] знаменатель 3.
для этого промежутка подходят след значения 4/3 5/3 6/3 7/3 8/3
сумма составит 24/3 т.е 8

PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
sub ààbbcc()
Dim a(1 To 10) As Single
For i = 1 To 10
a(i) = Cells(1, i)
Next i
k = 3
For i = 1 To 10
Cells(i, 2).Value = Cells(i, 1).Value / k
Next
m = 1
n = 3
For i = 1 To 10
Cells(i, 3).Value = Cells(i, 2).Value < n ?????????
Написал эту белиберду , теперь не знаю как сравнить разделенные значения с М и Н, и выписать это все в 3й столбец, чтоб потом из этого же столбца найти сумму этих значений.
То, что написано, вообще можно отнестись к этому серьезно? Я имею ввиду, может быть есть какие нибудь пути, чтобы сократить и сделать «красивее»
Благодарю
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2016, 15:16
Ответы с готовыми решениями:

Найти сумму всех элементов и их среднее арифметическое, результаты представить в виде несократимых дробей
Здарова. Дали задачу написать программу реализующую класс “дробь”, в которой значение дроби...

Вычислить суммы всех несократимых дробей
Категорически приветствую. Так гласит задание: Вопрос: Задаем, например, m = 3, n = 10 и k =...

Вычислить суммы всех несократимых дробей
Вычислить суммы всех несократимых дробей, со знаменателем к, содержащихся между целыми числами m и...

Вычислить суммы всех несократимых дробей C# Windows Forms
Вычислить суммы всех несократимых дробей, со знаменателем к, содержащихся между целыми числами m и...

5
Модератор
Эксперт MS Access
10048 / 4061 / 655
Регистрация: 07.08.2010
Сообщений: 11,410
Записей в блоге: 3
20.05.2016, 15:30 2
Цитата Сообщение от linkel Посмотреть сообщение
упростил себе работу, взял промежуток [1,3] знаменатель 3.
даже слишком упростили, надо было взять хотя бы от 2 до 10 со знаменателем 4
0
Модератор
Эксперт Python
28592 / 15456 / 3053
Регистрация: 12.02.2012
Сообщений: 25,338
Записей в блоге: 4
20.05.2016, 16:10 3
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
Function Task(n As Integer, m As Integer, k As Integer, Optional p As Integer = 0) As String
    If p = 0 Then
       Task = Task(n, m, k, n * k + 1)
    Else
       If p / k >= m Then
          Task = ""
       Else
          q = gcd(p, k)
          Task = Task(n, m, k, p + 1) & "+" + CStr(p \ q) & "/" & CStr(k \ q)
       End If
    End If
End Function
 
Function gcd(n As Integer, m As Integer) As Integer
   If m > n Then
      gcd = gcd(m, n)
   Else
      If m = 0 Then
         gcd = n
      Else
         gcd = gcd(m, n Mod m)
      End If
   End If
End Function
 
Sub test()
   Debug.Print Mid$(Task(2, 10, 4), 2)
End Sub
Результат:

Код
39/4+19/2+37/4+9/1+35/4+17/2+33/4+8/1+31/4+15/2+29/4+7/1+27/4+13/2+25/4+6/1+23/4+11/2+21/4+5/1+19/4+9/2+17/4+4/1+15/4+7/2+13/4+3/1+11/4+5/2+9/4
0
1 / 1 / 1
Регистрация: 13.06.2015
Сообщений: 47
20.05.2016, 18:07  [ТС] 4
как вы все это пишите)оч сложно)
0
Модератор
Эксперт Python
28592 / 15456 / 3053
Регистрация: 12.02.2012
Сообщений: 25,338
Записей в блоге: 4
20.05.2016, 19:07 5
linkel, код разбит на три самостоятельные процедуры, потому, что это стандартная техника программирования. При разбиении на отдельные процедуры код удобнее использовать в разных приложениях.
Код можно упростить - если нужно подсчитать сумму дробей, то:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function Task(n As Integer, m As Integer, k As Integer, Optional p As Integer = 0) As Double
    If p = 0 Then ' первый запуск
       Task = Task(n, m, k, n * k + 1) ' устанавливаем накопительный параметр p=n*k+1 так, чтобы p/k было > n
    Else
       If p / k >= m Then ' если дробь вышла за допустимый диапазон, вернем 0
          Task = 0
       Else
          Task = Task(n, m, k, p + 1) + p/k  ' иначе прибавим очередную дробь к рекурсивному вызову фунции при следующем p
       End If
    End If
End Function
 
Sub test() ' стартовая процедура
   Debug.Print Task(2, 10, 4) ' вызов и печать
End Sub

Но мне интереснее было получить список всех дробей...
1
1 / 1 / 1
Регистрация: 13.06.2015
Сообщений: 47
21.05.2016, 00:12  [ТС] 6
спасибо
я хотел бы узнать часть макроса, чтоб сравнить массив с 2мя заданными коэффициентам, вывести их на след соседний столбец, и при меньших или больших( т.е не соблюдения условия) значениях сразу превратить в нули. такое возможно?
m> value <n

Добавлено через 2 часа 5 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub bbcc()
Dim a(1 To 10) As Single
For i = 1 To 10
a(i) = Cells(1, i)
Next i
k = 3
For i = 1 To 10
Cells(i, 2).Value = Cells(i, 1).Value / k
Next
M = 1
N = 3
For i = 1 To 10
If N > Cells(i, 2) And Cells(i, 2) > M Then Cells(i, 3) = Cells(i, 2)
If Cells(i, 2) = 2 Then Cells(i, 3) = Empty
Next i
S = 0
For Each el In Range("c1:C10").Value
S = S + el
Next
MsgBox S, vbInformation, "Сумма всех несократимых дробей"
End Sub

Вот оно, творение
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2016, 00:12

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Вычислить суммы всех несократимых дробей, со знаменателем к, содержащихся между целыми числами
Категорически приветствую! Имеется вопрос. Так гласит задание: Вычислить суммы всех...

Вывод в порядке возрастания всех правильных несократимых дробей, знаменатели которых не превосходят n
требуется написать программу, которая выводит в порядке возрастания все правильные несократимые...

Напишите программу поиска всех простых несократимых дробей, заключенных между 0 и 1, знаменатели которых не превышают 7
Очень долго думал. Задачка жесть): Напишите программу поиска всех простых несократимых дробей,...

Найти количество несократимых правильных дробей с данным знаменателем
Как ускорить данный код? #include &lt;iostream&gt; using namespace std; int prost(unsigned long long...


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

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

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