Страница: 1 |
Страница: 1 |
Вопрос: массивы в Бейсике
Добавлено: 07.09.05 13:29
Автор вопроса: ElectroSciff
Народ, ответьте!
Процедура
Private Sub Command1_Click()
Dim n, m As Long
n = Val(Text1)
m = Val(Text2)
Dim A(n, m) As Integer
End Sub
Выдает «Compile Error: Constant expression required» и устанавливает курсор на переменной m.
Почему в стандартном Basic проходит такое объявление массива , а в Visual – нет? Как объявить массив, если узнаешь его ТОЧНУЮ размерность по ходу выполнения программы? Не хочется, правда, связываться с динамическими массивами…
Ответы
Всего ответов: 12
Номер ответа: 1
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #1
Добавлено: 07.09.05 13:49
При объявлении
Типа long только переменная n, переменная m типа Variant.
Dim n As Long
Dim m As Long
Redim Preserve - сохраняет значения,
Redim - нет.
Номер ответа: 2
Автор ответа:
ElectroSciff
Вопросов: 2
Ответов: 5
Профиль | | #2
Добавлено: 07.09.05 14:44
Спасибо, Андрей! Но даже разделяя обьявление переменных на две строки результат получается тем же. С динамическими массивами я то разобрался, но не хотелось бы связываться. Т.е.
Private Sub Command1_Click()
Dim n as Long
Dim m As Long
n = Val(Text1)
m = Val(Text2)
Dim A(n, m) As Integer
End Sub
- ситуация не меняется. Неужто компилятор в размерности переменные, уже определенные ранее, не берет? Сомнительно...Я уже и в секции General Declarations объявлял их, думая , что причина в видимости значений переменных - ничего подобного! Ошибка - и все тут! Может , еще что присоветуешь?
Номер ответа: 3
Автор ответа:
Progos
ICQ: 311715784
Вопросов: 39
Ответов: 157
Web-сайт:
Профиль | | #3
Добавлено: 07.09.05 15:42
Массивы объявляются константами
По-другому - только динамические
Номер ответа: 4
Автор ответа:
ElectroSciff
Вопросов: 2
Ответов: 5
Профиль | | #4
Добавлено: 07.09.05 16:12
Progos,благодарю! Удивлен я , конечно, этим, по идее , старые версии Бейсика должны поддерживаться новыми...Но Бог судья Майкрософту. Придется с динамическими возиться. Еще раз спасибо! Коль я уж на форуме, то вопрос - как двумерный массив динамический объявляется?
Номер ответа: 5
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #5
Добавлено: 07.09.05 16:13
А что ты против динамических имеешь?
Номер ответа: 6
Автор ответа:
ElectroSciff
Вопросов: 2
Ответов: 5
Профиль | | #6
Добавлено: 07.09.05 16:19
Ничего. Просто привык к старым версиям, и это кажется удобным - получил по ходу выполнения количественное значение,впихнул в переменную, объявил массив. А динамический- вроде как нечто растянутое такое... С каждым изменением ReDim. Вобщем , привыкать надо.
Номер ответа: 7
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #7
Добавлено: 07.09.05 16:37
Так точно также, как обычно
потом
Номер ответа: 8
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #8
Добавлено: 09.09.05 23:35
дык у тя это будет видно токо в той процедуре...
Номер ответа: 9
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #9
Добавлено: 09.09.05 23:42
дык у тя это будет видно токо в той процедуре...
Да в еррор это вылетит! ReDim A(n,m) надо, как Андрей писал...
Номер ответа: 10
Автор ответа:
мешок
ICQ: 589291350
Вопросов: 0
Ответов: 1
Web-сайт:
Профиль | | #10
Добавлено: 07.04.10 18:42
народ помогите пжлста я ноль в бейсике: составить программу на бейсике по заполнение массива А(50) целыми числами я чет сделал препод забрил срочно надо вуручайте
Номер ответа: 11
Автор ответа:
Вопросов: 0
Ответов: 1
Профиль | | #11
Добавлено: 21.06.10 19:44
привет всем! напишите пожалуйста программу:ввести с клавиатуры 10произвольных чисел, вычислить произведение только положительных. Заранее спасибо.
Номер ответа: 12
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #12
Добавлено: 21.06.10 22:39
грёбаные студуенты-археологи