Member 13543397 Ответов: 2

Какое условие я должен использовать?


Пересмотрите пример задачи № 3, прочитав десять (10) целых значений и сохранив эти значения в массиве. Определите и отобразите количество введенных простых чисел.

В чем заключается ошибка в моем коде?

Пожалуйста, помогите Т-Т

Что я уже пробовал:

Общественного Класса Form1
Частная суб обработчика button1_click(отправителя как объект, а равно EventArgs) обрабатывает кнопки button1.Щелчок
Dim MyArray(9), ctr как целое число
Dim j, k как целое число
Для ctr = от 0 до 9
MyArray(ctr) = InputBox("входной номер :")
Список listbox1.Предметы.Добавить(MyArray(ctr))
Следующий

Для j = 2 To (MyArray(ctr) - 1)
Если MyArray(ctr) Mod j = 0, то
k = k + 1
Конец, Если
Следующий
Текстовое поле textbox1.Текст = к
Конец Подводной Лодки
End Класса

2 Ответов

Рейтинг:
1

Patrice T

Цитата:
В чем заключается ошибка в моем коде?

Когда вы просите о помощи, это хорошая идея, чтобы дать сообщение об ошибке.

Первая ошибка: вы проверяете MyArray(ctr) которого не существует. индекс находится вне границ.

вторая ошибка: вы считаете делители вместо того, чтобы считать простые числа.

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

Отладчик - Википедия, свободная энциклопедия[^]
Visual Basic / Visual Studio Video Tutorial - Базовая Отладка - YouTube[^]
Visual Basic .NET programming for Beginners - точки останова и средства отладки[^]
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Рейтинг:
0

Jochen Arndt

Существует множество проблем.

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

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

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

[РЕДАКТИРОВАТЬ]
Как уже упоминалось ppolymorphe:
Если вы попросите у пользователя 10 номеров, вы должны предоставить достаточно места для хранения номеров.
[/РЕДАКТИРОВАТЬ]