Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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
При объявлении
Dim n, m As Long

Типа 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-сайт: html-expert.org.ru
 Профиль | | #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
Так точно также, как обычно
Dim A() as Integer

потом
ReDim A(n,m)

Ответить

Номер ответа: 8
Автор ответа:
 Barsik



Разработчик Offline Client

ICQ: 343368641 

Вопросов: 17
Ответов: 686
 Web-сайт: barsik.newmail.ru
 Профиль | | #8
Добавлено: 09.09.05 23:35
Dim A(n, m) As Integer

дык у тя это будет видно токо в той процедуре...

Ответить

Номер ответа: 9
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #9 Добавлено: 09.09.05 23:42
Dim A(n, m) As Integer
дык у тя это будет видно токо в той процедуре...


Да в еррор это вылетит! ReDim A(n,m) надо, как Андрей писал...

Ответить

Номер ответа: 10
Автор ответа:
 мешок



ICQ: 589291350 

Вопросов: 0
Ответов: 1
 Web-сайт: my.mail.ru/mail/mihsib85
 Профиль | | #10
Добавлено: 07.04.10 18:42
 народ помогите пжлста я ноль в бейсике: составить программу на бейсике по заполнение массива А(50) целыми числами я чет сделал препод забрил срочно надо вуручайте

Ответить

Номер ответа: 11
Автор ответа:
 



Вопросов: 0
Ответов: 1
 Профиль | | #11 Добавлено: 21.06.10 19:44
привет всем! напишите пожалуйста программу:ввести с клавиатуры 10произвольных чисел, вычислить произведение только положительных. Заранее спасибо.

Ответить

Номер ответа: 12
Автор ответа:
 VbStarter



ICQ: 357911808 

Вопросов: 118
Ответов: 1340
 Web-сайт: moscowdevils.ru
 Профиль | | #12
Добавлено: 21.06.10 22:39
грёбаные студуенты-археологи

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам