Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
 Аватар для Spiritsun
33 / 6 / 0
Регистрация: 12.01.2010
Сообщений: 85

Как можно создать и использовать массивы без границ

23.01.2010, 22:26. Показов 3188. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
подскажите, пжалста, как можно создать и использовать массивы без границ? Я знаю, что они объявляются както так
VB.NET
1
dim mass(,) as integer
(2-х мерный), а после как его использовать, как добавлять значения? Знаю еще существует как раз необходимая команда
VB.NET
1
ReDim Preserve mass(num1,num2)
, но она влияет только на последний ранг num2. А мне необходимо динамично изменять 2 ранга.

Добавлено через 57 минут
ладно, кажись вник чуток, сначало объявляем
VB.NET
1
dim mass(,) as integer
а после используем
VB.NET
1
mass= New Integer (num1,num2) {}
Но после такого New все старые значения удаляются, а как бы их сохранять и прибавлять разрадности (верхний диапазон)?

Добавлено через 49 минут
о, вот какую парнуху придумал
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
Dim bb(,) As Integer = New Integer(,) {}
Dim cc(,) As Integer = New Integer(,) {}
bb = New Integer(1, 1) {}
bb(0, 0) = 1
bb(0, 1) = 1
bb(1, 0) = 1
bb(1, 1) = 1
cc = bb.Clone
bb = New Integer(2, 1) {}
bb(2, 0) = 2
Array.Copy(cc, bb, cc.Length)
Erase cc
в результате сохраняются старые данные массива bb(). Подскажите как это грамотно провернуть без лишних массивов и зря потраченных ресурсов.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.01.2010, 22:26
Ответы с готовыми решениями:

Как можно растягивать и сжимать форму без границ FormBorderStyle=None
Можно ли сделать возможность растягивать (в том числе и разворачивать на весь экран) или сжимать форму,если у нее нет рамки...

Как в Pascal ABC сделать так, чтобы можно было двигать форму без границ (FormBorderStyle.None)?
Пробовал использовать этот код: {$apptype windows} {$reference 'System.Windows.Forms.dll'} {$reference 'System.Drawing.dll'} ...

можно ли в Matlab создать библиотеку для С++ и использовать ее без вызова Matlab?
Возможно ли с помощью команды deploytool или какой-то другой команды создать библиотеку .dll например функции polyxpoly, чтобы в...

8
 Аватар для Abu
1161 / 288 / 23
Регистрация: 28.09.2008
Сообщений: 553
27.01.2010, 01:55
В книжке по vb.NET нашла что (собсно как и в vb6.0)
В многомерных массивах при использовании ключевого слова Preserve совместно с оператором ReDim может изменяться размер только последнего измерения!
И через пару листов там написано про массивы массивов . Небольшие манипуляции позволили сваять такое:
Code
1
2
3
4
5
6
7
8
9
10
        Dim ar()() As Integer
        Dim i As Integer, j As Integer
        For i = 0 To 9
            ReDim Preserve ar(i)
            For j = 0 To 9
                ReDim Preserve ar(i)(j)
                ar(i)(j) = i * j
            Next
        Next
        MsgBox(ar(2)(7)) 'это для проверки
Это скорее всего не правильно, но блин работает!
0
 Аватар для Spiritsun
33 / 6 / 0
Регистрация: 12.01.2010
Сообщений: 85
27.01.2010, 18:27  [ТС]
Правльно всё, прикольно! Работает, но заметь, это всё теже одномерные массивы. Стоит добавить еще один ранг и попробовать изменить первый, накроется идея медным тазом. Пример:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
Dim ar()(,) As Integer
        Dim g As Integer,h As Integer
        For g = 0 To 5
            ReDim Preserve ar(g)
            For h = 0 To 3
                ReDim Preserve ar(g)(h, 0)
                ar(g)(h, 0) = 1
                ReDim Preserve ar(g)(h, 1)
                ar(g)(h, 1) = 2
            Next
        Next
первый цикл проходит, т.к. идет новая инициализация крайнего правого ранга, а на 2-ом ошибка.
0
 Аватар для Abu
1161 / 288 / 23
Регистрация: 28.09.2008
Сообщений: 553
28.01.2010, 04:12
Ну вот же:
Цитата Сообщение от Abu Посмотреть сообщение
В многомерных массивах при использовании ключевого слова Preserve совместно с оператором ReDim может изменяться размер только последнего измерения!
0
1 / 1 / 2
Регистрация: 03.05.2010
Сообщений: 17
03.05.2010, 19:18
А я бы предложил избежать использование функции ReDim в этом случае, поместив значения сначала в одномерный массив, а затем переведя его в двумерный:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    For k = 0 To n ^ 2 - 1
            Randomize()
            Mas(k) = 10 * Rnd()
           
        Next k
     'Так мы сформировали массив случайных чисел из n строк 
        For i = 0 To n - 1
            For j = 0 To n - 1
                k = n * i + j  'Так мы задаём закономерность, чтобы двумерный массив заполнился из одномерного построчно
                Mas1(i, j) = Mas(k)
 
               
            Next j
        Next i
Однако нам известно число строк n в данном варианте, и именно динамическим массивом даннный не является(((((((
0
0 / 0 / 0
Регистрация: 21.06.2010
Сообщений: 6
29.06.2010, 02:15
Spiritsun, а почему не хотите использовать коллекции и в частности класс ArrayList.
Там же вроде как раз и реализуется безразмерный массив типа Object, что очень удобно, ведь можно засунуть любые типы данных, увеличивать размер без потери данных.
Если заинтересует - могу подробно описать как и что делать ))
0
 Аватар для Abu
1161 / 288 / 23
Регистрация: 28.09.2008
Сообщений: 553
30.06.2010, 01:54
Цитата Сообщение от gomela Посмотреть сообщение
Если заинтересует - могу подробно описать как и что делать ))
Я думаю, что может заинтересовать многих, поэтому описывайте и поподробней

P.S. А модеры название темы изменят на более подходящее, я думаю .
0
0 / 0 / 0
Регистрация: 21.06.2010
Сообщений: 6
30.06.2010, 13:15
Цитата Сообщение от Abu Посмотреть сообщение
Я думаю, что может заинтересовать многих, поэтому описывайте и поподробней

P.S. А модеры название темы изменят на более подходящее, я думаю .
Это издёвка? Или Вам правда интересно?
0
 Аватар для Abu
1161 / 288 / 23
Регистрация: 28.09.2008
Сообщений: 553
01.07.2010, 23:24
Цитата Сообщение от gomela Посмотреть сообщение
Это издёвка? Или Вам правда интересно?

Где тут издёвка?!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.07.2010, 23:24
Помогаю со студенческими работами здесь

Создать таблицу без внешних границ
Всем привет! Помогите пожалуйста с таблицей html. Какой код надо написать чтобы было как на картинке?(Границы были только внутри)

Можно ли планшетник использовать как wifi модем на ноутбуке без Wi-Fi?
Здравствуйте, у меня такой вопрос: имею стационарный компьютор подключеный к интернету, я на него поставил wifi передачик и теперь в любой...

Как можно использовать ajax controls без использования тэга <form>
В процессе разработки большой системы было дано задание улучшить доступность (accessibility) приложения. Один из пунктов, указанных в...

TJpegImage в TBitmap, и как можно использовать Canvas для JPEG без потери качества!
Доброго времени суток. Мне интересно если перегонять TJpegImage в TBitmap таким способом: uses Jpeg; ......................... ...

Как правильно создать и использовать radiobutton? Можно ли из программы узнать версию Windows ?
Здравствуйте. Как правильно создать и использовать элементы radiobutton ? Если я просто создам несколько этих элементов функцией...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Функция установки текстового статуса в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru