Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2009, 22:34   #1
zxspec
Пользователь
 
Регистрация: 04.02.2009
Сообщений: 13
По умолчанию VB. Что за динамический массив

Помогите пожалуйста с программой, дан двумерный массив m x n (динамический) пользователь должен вводить данные через inputbox для каждого элемента а затем найти максимальный элемент на диагонали (главной - это диагональ тянется от первого элемента 1-ой строки до последнего элемента последней строки) и вывести результат в текстовое поле
Поделитесь хотя бы куском кода, как реализуется статический массив я знаю а вот как менять количество строк в зависимости от того сколько пользователь ввёл элементов это я не могу. Конечно лучше всего будет если вы всё опишите. Помогите в прошлый раз на мой вопрос про открытие chm-файлов так и не ответили ну да ладно, хоть с этим помогите у вас же на форуме профессионалы а это дело займёт минуты 3, так не пожалейте же потраченного времени.
zxspec вне форума Ответить с цитированием
Старый 02.09.2009, 23:07   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Для динамических массивов используйте Redim.
Пример:
Код:
Dim mas() As Integer
Dim m As Integer
Dim n As Integer


Private Sub Command1_Click()
m = Int(Text1.Text)   // количество строк
n = Int(Text2.Text)    // количество столбцов
ReDim mas(0 To m, 0 To n) As Integer   // изменяем размер массива

mas(3, 3) = 4
MsgBox (mas(3, 3))
End Sub
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 02.09.2009, 23:57   #3
zxspec
Пользователь
 
Регистрация: 04.02.2009
Сообщений: 13
По умолчанию

Что-то не получается, что такое int впереди?
да и комментарии пишутся после апострофа это же C++ а я учу VB

Последний раз редактировалось zxspec; 03.09.2009 в 00:03.
zxspec вне форума Ответить с цитированием
Старый 03.09.2009, 00:13   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
что такое int впереди?
Я просто забыл функцию преобразования строки в число )) Вместо int напишите val. Хотя и в том варианте у меня работало.

Цитата:
да и комментарии пишутся после апострофа это же C++ а я учу VB
Комменты я уже здесь добавил.. Не обращайте внимания )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.09.2009, 05:14   #5
talisman-ydachi
Пользователь
 
Регистрация: 24.09.2009
Сообщений: 16
По умолчанию

прочитал написанное и чтобы не создавать новую тему хочу спросить:

Если числу, скажем "а" integer присвоить а потом сказать, что

а=Val(какой-то там текстбокстекст), то вал вернет , к примеру 3,0016...тогда причем тут интегер?...Помидорами не кидать...купил дорогой самоучитель - делаю первые шаги...вотъ
talisman-ydachi вне форума Ответить с цитированием
Старый 26.09.2009, 06:29   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
а=Val(какой-то там текстбокстекст), то вал вернет , к примеру 3,0016...тогда причем тут интегер?
В этом случае в переменную a будет записано значение 3, а не 3,0016 - и всё потому, что значение будет автоматически преобразовано к типу, присвоенному переменной (в данном случае integer).
EducatedFool вне форума Ответить с цитированием
Старый 26.09.2009, 13:30   #7
talisman-ydachi
Пользователь
 
Регистрация: 24.09.2009
Сообщений: 16
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
В этом случае в переменную a будет записано значение 3, а не 3,0016 - и всё потому, что значение будет автоматически преобразовано к типу, присвоенному переменной (в данном случае integer).
Спасибо огромное!...Есть еще в связи с этим вопросик...Для защиты от ошибок в элементарных програмках написано такое...

Dim a As Integer

a=Val( aTextBox.Text)

Если пользователь в поле aTextBox.Text укажет ТЕКСТ то должно выдать ноль, или ошибку?

ЗЫ. Неявное преобразование из типа Double в тип Integer происходит по математическим правилам?...То есть 0.5=0 а 0.6=1 ? Спасибо.
talisman-ydachi вне форума Ответить с цитированием
Старый 26.09.2009, 19:26   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
Если пользователь в поле aTextBox.Text укажет ТЕКСТ то должно выдать ноль, или ошибку?
VAL для текста возвращает 0
Цитата:
debug.Print val("текст")
0

Цитата:
Неявное преобразование из типа Double в тип Integer происходит по математическим правилам?
Проще проверить, чем искать данные в учебниках:
Цитата:
debug.Print cint(0.4)
0
debug.Print cint(0.5)
0
debug.Print cint(0.6)
1
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический массив Ivin Мультимедиа в Delphi 14 27.02.2009 23:22
динамический массив Dimon Паскаль, Turbo Pascal, PascalABC.NET 3 21.03.2008 18:08
Динамический массив _ares_ Паскаль, Turbo Pascal, PascalABC.NET 3 26.12.2007 23:54
Динамический массив. Mickle Помощь студентам 9 21.06.2007 20:31