Другие языки программирования и технологии

помогите исправить код BV

в чем ошибка нужно все положительные числа в матрице записать в одномерный массив For i = 1 To n For j = 1 To m If mas(i, j) > 0 Then c = c + 1 a(c) = mas(i, j) Next Next
Тут весь код - одна огромная ошибка.

По порядку:
1. Не BV, а VB (Visual Basic)
2. Переменные надо обязательно объявлять (использовать оператор Dim)
3. Переменные n и m - они чему равны? Вероятно размерностям массива mas и следовательно,
надо сначала определять размерности массива и присваивать значения переменным ((использовать оператор Ubound).
4. Массив а (с) должен быть динамическим массивом и увеличивать свою размерность, если число в матрице положительное (использовать оператор ReDim).
5. Выражение с=с+1 абсолютно излишне. Увеличить верхнюю границу динамического массива можно прибавив 1 к уже существующему значению.
6. При использовании ReDim добавлять указание Preserve, иначе данные в массиве можно потерять.
7. Оператор If Then без End if. Работать не будет.
Дмитрий Пономарев
Дмитрий Пономарев
56 566
Лучший ответ
Тут весь код - одна огромная ошибка.

По порядку:
1. Не BV, а VB (Visual Basic)
2. Переменные надо обязательно объявлять (использовать оператор Dim)
3. Переменные n и m - они чему равны? Вероятно размерностям массива mas и следовательно,
надо сначала определять размерности массива и присваивать значения переменным ((использовать оператор Ubound).
4. Массив а (с) должен быть динамическим массивом и увеличивать свою размерность, если число в матрице положительное (использовать оператор ReDim).
5. Выражение с=с+1 абсолютно излишне. Увеличить верхнюю границу динамического массива можно прибавив 1 к уже существующему значению.
6. При использовании ReDim добавлять указание Preserve, иначе данные в массиве можно потерять.
7. Оператор If Then без End if. Работать не б