Форум программистов, компьютерный форум, киберфорум
Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.51/63: Рейтинг темы: голосов - 63, средняя оценка - 4.51
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 46

Как увеличить максимальный размер массива?

03.05.2010, 01:02. Показов 13953. Ответов 88
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос. Как увеличить максимальный размер массива? Команда типа DIM Y(16383) еще понимается
в QB, ,более уже никак, а мне надо хотя бы DIM Y(300000). Числа в массиве только натуральные, массив только одномерный. Строю скатерть Улама. Большую хочу!
Еще. Как картинку, нарисованную в QB напечатать или сохранить в JPG, например? Из ДОСа не получается..
Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.05.2010, 01:02
Ответы с готовыми решениями:

Увеличить размер массива, оставив нетронутыми исходные элементы
1 (с использованием динамического массива): составить программу, в которой описать массив из 10 элементов и заполнить элементы 10...

Как программно увеличить максимальный размер окна в Windows?
Если в винде разрешение экрана 1024х768, то больше этого размера окно расширить нельзя. Можно ли как то убрать это ограничение?

Как динамически увеличить размер массива?
К примеру, задаю массивint Array;читаю данные с устройства и получается так, что данных пришло более 1000 позиций. Дело в том, что я...

88
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 46
05.05.2010, 22:47  [ТС]
Студворк — интернет-сервис помощи студентам
Киньте хор.ссылку на описание команд QB 4.5, плиз..если она поможет, конечно
А то непонятно даже что есть DIM A%(32767)...

Добавлено через 1 минуту
Цитата Сообщение от PB Посмотреть сообщение
А где прога?
Могу дать файл энтот самый *.bas прямо из каталога QB, куда и как кинуть?
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
06.05.2010, 00:42
Цитата Сообщение от sasa999 Посмотреть сообщение
Киньте хор.ссылку на описание команд QB 4.5, плиз
А что здесь нет описания команд? Учебники по QBasic


Могу дать файл энтот самый *.bas прямо из каталога QB, куда и как кинуть?
Если код не большой, то выложи прямо в сообщении выделив его как "код BASIC", а если массивный, то прикрепи к сообщению (доступно в расширеном режиме).
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
06.05.2010, 01:07
>Киньте хор.ссылку на описание команд QB 4.5

Скачай первый кубейсик, там полностью весь синтаксис, самый лучший хелп по всем командам.
Нигде в книге не напишут сколько памяти ты можешь выделить, это известные параметры: для msdos предел 1 массива равен одному сегменту т.е. 64 Кб(я крыс под unreal пишу), для os windows, 4 Гб(формально, на самом деле гиг мож чуть больше из-за особенностей ядра).

Кидай кстати код и укажи где ты точку ставить будешь, её цветность. Если тебе больше 256 цветов надо, то программить везу(под асмом это сложно, не возьмусь если не найду свой модуль) или только в *.bmp* файл(это я смогу тебе написать если что, у меня где-то в книжке по паскалю структура есть)...
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 46
06.05.2010, 21:07  [ТС]
ВОт прога. Считает до 16300 точек-простых чисел, рисует их "по улитке вправо", конкретно здесь 3000
точек (параметр im=3000). Цвета не нужны, хватает. Хочу чтоб на весь экран скатерть была.. Еще можно переделать в треугольник, пирамиду, там тоже нечто похожее будет.
Вложения
Тип файла: txt ULAM.txt (1.5 Кб, 40 просмотров)
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
07.05.2010, 02:42
sasa999 какую роль играет массив? Возможно ли юзать какой-нть другой метод нахождения натуральных чисел и убрать масив? Просто я уж никак не мог подумать что проблема в алгоритме генерации изображения. Вообщем позже добавлю в твой код побольше массивов, но ждать пока программа сгенерирует картинку очень долго.
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 46
09.05.2010, 23:10  [ТС]
Нет, массив убрать нельзя, именно он постепенно и накапливает все подряд простые числа.
И снова перебирает эти числа из все увеличивающегося массива. 16383 числа слишком мало, надо больше, этак 100-300тыс штук. Именно в этом проблема. Именно ее надо решить.

Добавлено через 2 минуты
Что знасит медленно Гененрирует? Рисование 3000 чисел это всего лишь неск.секунд работы, а 16300 чисел рисуются около 6 мин. Мне хватает этого. Вряд ли быстрее можно, ибо Эмулятор ДОСа
быстро никогда не работает.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
10.05.2010, 02:28
>Именно в этом проблема. Именно ее надо решить.

Если проблема только в количестве памяти то Visual Basic - оптимальный вариант. Вообще говоря программы с таким быстродействием нужно реализовывать на ассемблере, потому что перебирать 300 тыс элементов мягко говоря пинцет учитывая тенденцию в снижении скорости работы. Выход вижу только один - накопительное вичисление, т.е. программа при старте загружает из файла вычисленный в прошлый раз массив простых чисел, по завершении сохраняет в этот же файл. Ну и может за пару лет таким образом вы эти 300000 вычислите)))))).

>именно он постепенно и накапливает все подряд простые числа.

Ясно.

P.S: На QB столько памяти нету - 5 массивов по 32768 элементов типа INTEGER - предел, на программу тоже памяти надо оставлять.

Добавлено через 3 минуты
Да ещё если значения чисел превышают 32767, тогда придётся использовать тип LONG - количество доступных элементов уменьшится вдвое.
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 46
10.05.2010, 12:10  [ТС]
На Ассемблере??? Не, не думаю , что так все серьезно. Я правильно понял - если писать на Visual Basic, то размер массива там больше и меня устроит? Какой макс.размер линейного массива в VB?
Накопительное вычисление... - дело второе, меня устраивает лишних неск.минут работы на первые 16300 чисел, дальше, все равно, считаться все будет крайне медленно. Никакой ассемблер глобально не поможет, количество вычислений растет в степенной зависимости. За 8 часов насчитает немало)
А покак, как сделать в QB массив целых чисел в 32768 ? Текст проги ulam.txt выше 4 поста назад
есть. Можешь исправить прямо в нем?
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
10.05.2010, 16:42
Цитата Сообщение от sasa999 Посмотреть сообщение
Я правильно понял - если писать на Visual Basic, то размер массива там больше и меня устроит?
Подойдёт практически любой х86 бейсик под винду.
Их много есть.

Цитата Сообщение от sasa999 Посмотреть сообщение
Какой макс.размер линейного массива в VB?
По идее, должно быть окого 4 ГБ.
Для эксперимента создал такой код в PureBasic
Code
1
2
3
Dim Massiv.b(1000000000) ; Создание массива, размером миллиард байт
Massiv(1000000000)=100   ; Запись в миллиардный элемент массива
Debug Massiv(1000000000) ; Чтение из миллиардного элемента массива
Создаётся байтовый массив, размером миллиард байт (почти 1 ГБ) и производится запись и чтение и последний (миллиардный) элемент массива.
Всё работает. Масив такого большого размера создаётся за доли секунды.


Цитата Сообщение от sasa999 Посмотреть сообщение
Никакой ассемблер глобально не поможет
Очень сильно ошибаетесь.
Если грамотно написать на асме, то скорость увеличится в сотни раз! Естественно что нужно запускать прогу не на эмуляторе DOSа.

PS
Не обязательно весь код писать на ассемблере, ведь можно использовать асм. вставки чтобы ускорить выполнение критических мест проги.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
10.05.2010, 18:25
Цитата Сообщение от sasa999 Посмотреть сообщение
За 8 часов насчитает немало
Вам нужен кластер чтобы не считать эти 300000 элементов на бейсике несколько лет, говорю реально без приколов. Ваша программа у меня под VirtualPC считает на пороге выше 10000 элементов по 10 элементов в секунду, скорость ещё падает(6 элементов на 17000). Ну допустим вы создадите exe файл, запустите под досом, ну будет считать 50-70 элементов в секунду, но скорость то нелинейно падает, подумаете сколько потребуется времени на вычисление 1 элемента где-то на 60 тысячах, вы всё бросите, вам надоест ждать, да и вряд-ли досчитаете до 60000 тысяч без метода накопления элементов, дописывайте этот модуль сейчас если вам так нужна эта программа.

Переписал вашу программу под 3 массива LONG (16384 элемента), впринципе можно под 5 массивов сделать, но запускать надо под Win, потому что он оставляет больше места под Dos программу в обычной памяти.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
10.05.2010, 18:30
Блин почему вложения не работают? уже 3 раз загружаю - не пашет, как инфу вложить?
Миниатюры
Как увеличить максимальный размер массива?  
Вложения
Тип файла: txt Ulam.txt (2.2 Кб, 27 просмотров)
1
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
10.05.2010, 18:33
Наконец-то заработало...
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
10.05.2010, 20:10
Возможно использован не правильный алгоритм и поэтому так долго строится картинка.
В архиве парочка примеров прог (запускать под виндой) с исходниками.
Построение изображения занимает считанные секунды, при размерах картинки 800х600
Миниатюры
Как увеличить максимальный размер массива?  
Вложения
Тип файла: rar Графика.rar (49.5 Кб, 22 просмотров)
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 46
11.05.2010, 23:45  [ТС]
>Quiet Snow<, сПАСИБО, ВСЕ ПОЛУЧИЛОСЬ, ХОТЯ НЕ ОЧЕНЬ ПОНИМАЮ, КАК МАССИВЫ ПОСКЛЕИВАЛИСЬ ЧТО ЛИ?
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 46
12.05.2010, 00:00  [ТС]
еще вопрос. сделал прогу Lifegenesis, рисует популяцию микроорганизмов согласно правилам выживания/рождения , а площадь для рисунка маловата. Надо увеличить пощадь в неск.раз, т.е.
для SCREEN 12 сделать из DIM X(127, 127) и DIM Y(127, 127) соответственно DIM X(400, 400) и DIM Y(400,400). Помогите, плиз?
Вложения
Тип файла: txt LIFEGEN.TXT (1.1 Кб, 30 просмотров)
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
12.05.2010, 01:42
sasa999, слишком много памяти вы требуете от старого Dos-овского бейсика, раньше не делали упор на пямять, старались её экономить.
Любой современный компилятор под винду решит ваши проблемы, в случае с vb вы просто можете скопировать вашу программу в функцию обработки нажатия кнопки на форме, рисовать также на форме, не поленитесь установите попробуйте, вместо того чтобы теребить форум нетривиальными задачами.

Добавлено через 16 минут
Цитата Сообщение от sasa999 Посмотреть сообщение
КАК МАССИВЫ ПОСКЛЕИВАЛИСЬ ЧТО ЛИ?
Да программным образом. И работает теперь медленней.
1
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
12.05.2010, 10:50
Цитата Сообщение от >Quiet Snow< Посмотреть сообщение
в случае с vb вы просто можете скопировать вашу программу в функцию обработки нажатия кнопки
А разве допустимо чтобы внутри функции располагались подпрограммы?
Всё равно его править придётся.
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 46
12.05.2010, 21:40  [ТС]
>Quiet Snow<, Можно поподробней (простите за неосведомленность мою) что именно мне надо усатновить/освоить под Виндой? Куда бросаться? Тут так много рекомендайий мелькает, что теряюсь. Я поклонник старых традиций, потому прошу указать что где как... Склеенные массивы вроде медленней, но несущественно. Спасибо!

Добавлено через 5 минут
И вообще, рано или поздно так или иначе появится таки нетривиальная задача, и число ей подобных будет только расти.. А тривиальные - да кому они нужны! Правда? Ковыряние вне рамок тривиальности радикально способствует прогрессу)
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
12.05.2010, 21:54
Цитата Сообщение от sasa999 Посмотреть сообщение
что именно мне надо усатновить/освоить под Виндой
Определись с диалектом бейсика под винду и начинай его осваивать.
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 46
12.05.2010, 22:46  [ТС]
Какой именно надо VB осваивать? Куда лезть конкретно? Я не знаю, что именно мне нужно. Разницы между VB1 - VB6 не знаю/не вижу. Мне нужно увидеть скат.Улама 1024х1024, и Lifegenesis аналогично, а больше монитор не позволит.
А можно просто переписать мою прогу в ту среду/или еще как положено, чтобы у меня она тоже работала?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.05.2010, 22:46
Помогаю со студенческими работами здесь

Как увеличить размер дин. массива средствами С++
Привет всем!!! Подскажите плз, как увеличить размер (т.е добавить один элемент в конец) динамического массива средствами С++. (new и...

Необходимо увеличить максимальный размер памяти программы до 5 Гигов
Необходимо увеличить максимальный размер памяти программы до 5 Гигов и как я понимаю, выполнить явный вызов деструкторов for (int i = 0;...

Как увеличить размер массива до заданной длины заданным значением?
Как увеличить размер массива до заданной длины заданным значением?

Как можно увеличить размер массива на 1, чтобы добавилась еще одна строка снизу
дан двумерный массив, где i - индекс столбца, j - индекс строки. Как можно увеличить размер массива на 1, чтобы добавилась еще одна строка...

Как в IntelliJ IDEA увеличить размер (размер редактора, кода)?
как в IntelliJ IDEA увеличит размер (размер редактора, кода)?


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru