Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 26.05.2019
Сообщений: 70

В заданном одномерном массиве целого типа найти и напечатать совершенные числа, или сообщить, что таких нет

30.05.2019, 05:12. Показов 1380. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
Option Explicit
Option Base 1
Sub Mass()
    Dim M() As Integer, n As Integer, i As Integer, j As Integer, s1 As String, s2 As String, sum As Long
    n = InputBox("Введите количество элементов массива", "Определение размера массива", 10)
    ReDim M(n) As Integer
    Randomize
    s1 = "Массив:" & vbCrLf
    For i = 1 To n
        M(i) = Int(28 * Rnd + 6)
        s1 = s1 & M(i) & "  "
    Next i
        If SovChicslo(M(i)) Then s2 = s2 & M(i) & "  "
   
    MsgBox (s1 & vbCrLf & IIf(s2 = "", "Простых чисел нет", "Простые числа:" & vbCrLf & s2))
End Sub
 
Function SovChicslo(ByVal a As Integer) As Boolean
    Dim i  As Integer
   For i = 1 To n
        sum = 0
        For j = 1 To M(i) \ 2
            If M(i) Mod j = 0 Then sum = sum + j
        Next j
    
    Next i
 
    SovChicslo = True
End Function
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.05.2019, 05:12
Ответы с готовыми решениями:

В заданном одномерном массиве целого типа найти и напечатать совершенные числа, или сообщить, что таких нет
Здравствуйте, подскажите чего тут не так Option Explicit Option Base 1 Sub Mass() Dim M() As Integer, n As Integer, i As...

В заданном одномерном массиве целого типа найти и напечатать только простые числа, или сообщить, что таких нет
1. В заданном одномерном массиве целого типа найти и напечатать только простые числа, или сообщить, что таких нет. Использовать процедуру...

В заданном одномерном массиве целого типа найти и напечатать те элементы
В заданном одномерном массиве целого типа найти и напечатать те элементы, у которых последовательность цифр от младшего к старшему...

4
Заблокирован
30.05.2019, 06:04
SkyGir, включайте голову иногда! В функцию SovChicslo вы передаете число - элемент массива, а проверяете в ней массив M(i), про который функция ничего не знает.

Кстати, по моему ваш код приведёт к ошибке out of range на строке
Цитата Сообщение от SkyGir Посмотреть сообщение
If SovChicslo(M(i)) Then s2 = s2 & M(i) & " *"
Проверить не на чем...
1
1 / 1 / 0
Регистрация: 26.05.2019
Сообщений: 70
30.05.2019, 06:07  [ТС]
Цитата Сообщение от Остап Бонд Посмотреть сообщение
включайте голову иногда! В функцию SovChicslo вы передаете число - элемент массива, а проверяете в ней массив M(i), про который функция ничего не знает.
Голова иногда включается, а иногда вообще никак. Спасибо за отзывчивость

Добавлено через 50 секунд
Цитата Сообщение от Остап Бонд Посмотреть сообщение
Кстати, по моему ваш код приведёт к ошибке out of range на строке
Так оно и есть
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
30.05.2019, 06:40
Лучший ответ Сообщение было отмечено SkyGir как решение

Решение

SkyGir,
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
Option Explicit
Option Base 1
Sub Mass()
    Dim M() As Integer, n As Integer, i As Integer, j As Integer, s1 As String, s2 As String, sum As Long
    n = Val(InputBox("Введите количество элементов массива", "Определение размера массива", 20))
    ReDim M(n) As Integer
    Randomize
    s1 = "Массив:" & vbCrLf
    For i = 1 To n
        M(i) = Int(28 * Rnd + 6)
        s1 = s1 & M(i) & "  "
        If SovChicslo(M(i)) Then s2 = s2 & M(i) & "  "
    Next i
    MsgBox (s1 & vbCrLf & IIf(s2 = "", "Совершенных чисел нет", "Совершенные числа:" & vbCrLf & s2))
End Sub
 
Function SovChicslo(ByVal a As Integer) As Boolean
    Dim i  As Integer, sum As Integer
    For i = 1 To a \ 2
         If a Mod i = 0 Then sum = sum + i
    Next i
    SovChicslo = sum = a
End Function
1
1 / 1 / 0
Регистрация: 26.05.2019
Сообщений: 70
30.05.2019, 08:49  [ТС]
Спасибо Вам огромное
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.05.2019, 08:49
Помогаю со студенческими работами здесь

В заданном одномерном массиве целого типа найти и напечатать только простые числа, или сообщить, что таких нет
Доброе утро, и вновь прошу подсказать решение моего вопроса Option Explicit Option Base 1 Sub Mass() Dim M() As Integer, n As...

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

В заданном одномерном массиве целого типа найти и напечатать те элементы, сумма цифр которых кратна трём
В заданном одномерном массиве целого типа найти и напечатать те элементы, сумма цифр которых кратна трём, или сообщить, что таких нет....

Из двоичного представления целого числа убрать группу из трех подряд идущих единиц или напечатать комментарий, что таких групп нет.
Из двоичного представления целого числа убрать группу из трех подряд идущих единиц или напечатать комментарий, что таких групп нет. ...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru