Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2019, 07:44   #1
SkyGir
Пользователь
 
Регистрация: 24.05.2019
Сообщений: 31
По умолчанию В заданном одномерном массиве целого типа найти и напечатать совершенные числа, или сообщить, что таких нет. VBA

Доброе утро, подскажите, пожалуйста,решение моего вопроса, спасибо
SkyGir вне форума Ответить с цитированием
Старый 29.05.2019, 07:58   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

А что непонятно?
p51x вне форума Ответить с цитированием
Старый 29.05.2019, 08:04   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
решение моего вопроса
либо ищи делители и их сумму каждого числа массива, либо сравнивай с известными совершенными числами: 6, 28, 496, 8128, 33550336. Дальше уже замиллиардные )
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 29.05.2019, 15:32   #4
SkyGir
Пользователь
 
Регистрация: 24.05.2019
Сообщений: 31
По умолчанию

Спасибо за отзывчивость(Извините, за эстонский ответ, только прочитал)
SkyGir вне форума Ответить с цитированием
Старый 29.05.2019, 16:53   #5
SkyGir
Пользователь
 
Регистрация: 24.05.2019
Сообщений: 31
По умолчанию

Код:
Option Explicit
Option Base 1
Sub Mass()
    Dim M() As Integer, n As Integer, i As Integer, x%
    n = InputBox("Введите количество элементов массива", "Определение размера массива")
ReDim M(n) As Integer
    Randomize
    For i = 1 To n
        M(i) = Int(500 * Rnd + 1)
Next i
For i = 1 To n
If M(i) = 6 Or M(i) = 28 Or M(i) = 496 Then x = M(i)
Next i
If x > 0 Then
MsgBox "Совершенные числа, присутствующие в массиве:" & M(i)
Else: MsgBox "Совершенных чисел нет"
End If
End Sub
Вот наваял (знаю, что х будет=6 или 28 или 496, но это не суть важно, мне кол-во элементов не нужно)
Подскажите, что еще не так, постоянно выдает, что чисел нет
SkyGir вне форума Ответить с цитированием
Старый 29.05.2019, 17:42   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от SkyGir Посмотреть сообщение
Подскажите, что еще не так, постоянно выдает, что чисел нет
выведите массив и посмотрите - вероятность выпадения 3 чисел из 500 равна 3/500 = 0.006 = 0.6%
нужно примерно 150 раз запустить программу, чтобы хоть раз выпало нужное число.
ну или откажитесь от random и задавайте числа вручную.

или сделайте random от 1 до 30, вероятность повысится.



Цитата:
Сообщение от SkyGir Посмотреть сообщение
Код:
If M(i) = 6 Or M(i) = 28 Or M(i) = 496 Then x = M(i)
Цитата:
Сообщение от SkyGir Посмотреть сообщение
Код:
MsgBox "Совершенные числа, присутствующие в массиве:" & M(i)
так можно увидеть только одно число.
заполните массив сами, укажите несколько совершенных чисел и посмотрите, что произойдёт
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.05.2019, 17:45   #7
SkyGir
Пользователь
 
Регистрация: 24.05.2019
Сообщений: 31
По умолчанию

Спасибо за отзывчивость
SkyGir вне форума Ответить с цитированием
Старый 29.05.2019, 17:46   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а дописал свой пост выше. обратите внимание! В коде у Вас ошибка.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В заданном произвольном одномерном массиве maxim1592 Паскаль, Turbo Pascal, PascalABC.NET 4 28.05.2014 15:10
Visual Basic: Описать функцию DigitN (K, N) целого типа, возвращающую N-ю цифру целого положительного числа К Екатерина23 Помощь студентам 1 10.12.2013 09:25
Вывести все совершенные числа в заданном интервале А — В ксения777 Помощь студентам 5 31.10.2011 21:14
программу нахождения экстремального элемента или его порядкового номера при заданном одномерном массиве А (Паскаль) S_S_V_N Помощь студентам 1 16.10.2011 21:54