Gauda
Gauda

Программа - Visual Basic, проблема.

Здравствуйте добрые люди, вообщем проблема такова :

Код

X(i) = InputBox("Введите " & i & " элемент массива", "Заполнение массива") - Здесь возникает ошибка и пишет : "Индекс находился вне границ массива. "

Как можно исправить индекс, чтобы он позволял вводить массив с клавиатуры до определенного k?

ВС
Влад Смирнов

Здравствуй добрый человек!

Не вижу проблемы.. .
В примере кода, который вы указали по ссылке, куча ошибок, вот и проблемы (по мне, так это вообще безумный код) .
Если что то публикуется в интернете, это еще не значит, что там все правильно.

Михаил Кононович написал все верно, но это применительно к Visual Basic 6.0,
а у вас VB .NET (опять же сужу по примеру кода) , а это разные basic, хоть немного и похожи синтаксисом.

Ванюшка
Ванюшка

Массив начинает считаться с 0 и имеет k элементов. Следовательно, последний элемент - k-1 а не к.

Для исправления ситуации нужно вначале указать опцию компилирования
Option base 1
что приведет к индексированию массива с 1, а не с 0.

также более правильно использовать операторы размера массива LBOUND и UBOUND.
for i = LBOUND(X) to UBOUND(X)
всегда правильно переберет все элементы массива Х независимо от Option base

И еще
DIM X(k) создает массив с кол-вом элементов к, которое сейчас равно 0.
То, что потом оно изменяется, ни на что не влияет. Следовательно массив на протяжении всего for имеет 0 элементов.
Для изменения размерности массива нужно использовать оператор redim
REDIM X(k)

АЩ
Алексей Щелкачев

объяви массив
Dim x(0 to 100)
и вводи x(i), где i от 0 до 100

Похожие вопросы
Visual Basic, тестовая программа
почему программа не считает? (visual basic)
Проблема в Visual basic 6.0
Помогите доработать программу на visual basic !(((
Как в Visual Basic засунуть стороннюю программу?
Простейшая программа Visual basic
составить программу в visual basic
visual basic. напишите программу. спасибо
есть кто умеет писать программы в visual basic
Помогите составить программу в Visual Basic