|
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 46
|
|
Как увеличить максимальный размер массива?03.05.2010, 01:02. Показов 13953. Ответов 88
Метки нет (Все метки)
Вопрос. Как увеличить максимальный размер массива? Команда типа DIM Y(16383) еще понимается
в QB, ,более уже никак, а мне надо хотя бы DIM Y(300000). Числа в массиве только натуральные, массив только одномерный. Строю скатерть Улама. Большую хочу! Еще. Как картинку, нарисованную в QB напечатать или сохранить в JPG, например? Из ДОСа не получается.. Спасибо.
0
|
|
| 03.05.2010, 01:02 | |
|
Ответы с готовыми решениями:
88
Увеличить размер массива, оставив нетронутыми исходные элементы
Как динамически увеличить размер массива? |
|
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 46
|
||
| 05.05.2010, 22:47 [ТС] | ||
|
Киньте хор.ссылку на описание команд QB 4.5, плиз..если она поможет, конечно
А то непонятно даже что есть DIM A%(32767)... Добавлено через 1 минуту
0
|
||
|
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
|
|||
| 06.05.2010, 00:42 | |||
0
|
|||
|
Кормпилятор
|
|
| 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). Цвета не нужны, хватает. Хочу чтоб на весь экран скатерть была.. Еще можно переделать в треугольник, пирамиду, там тоже нечто похожее будет.
0
|
|
|
Кормпилятор
|
|
| 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
|
|
|
Кормпилятор
|
|
| 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
|
|
|
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
|
|||||||||
| 10.05.2010, 16:42 | |||||||||
|
Их много есть. ![]() Для эксперимента создал такой код в PureBasic
Всё работает. Масив такого большого размера создаётся за доли секунды.Если грамотно написать на асме, то скорость увеличится в сотни раз! Естественно что нужно запускать прогу не на эмуляторе DOSа. PS Не обязательно весь код писать на ассемблере, ведь можно использовать асм. вставки чтобы ускорить выполнение критических мест проги.
0
|
|||||||||
|
Кормпилятор
|
||
| 10.05.2010, 18:25 | ||
|
Переписал вашу программу под 3 массива LONG (16384 элемента), впринципе можно под 5 массивов сделать, но запускать надо под Win, потому что он оставляет больше места под Dos программу в обычной памяти.
0
|
||
|
Кормпилятор
|
|
| 10.05.2010, 18:30 | |
|
Блин почему вложения не работают? уже 3 раз загружаю - не пашет, как инфу вложить?
1
|
|
|
Кормпилятор
|
|
| 10.05.2010, 18:33 | |
|
Наконец-то заработало...
0
|
|
|
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
|
|
| 10.05.2010, 20:10 | |
|
Возможно использован не правильный алгоритм и поэтому так долго строится картинка.
В архиве парочка примеров прог (запускать под виндой) с исходниками. Построение изображения занимает считанные секунды, при размерах картинки 800х600
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). Помогите, плиз?
0
|
|
|
Кормпилятор
|
||
| 12.05.2010, 01:42 | ||
|
sasa999, слишком много памяти вы требуете от старого Dos-овского бейсика, раньше не делали упор на пямять, старались её экономить.
Любой современный компилятор под винду решит ваши проблемы, в случае с vb вы просто можете скопировать вашу программу в функцию обработки нажатия кнопки на форме, рисовать также на форме, не поленитесь установите попробуйте, вместо того чтобы теребить форум нетривиальными задачами. Добавлено через 16 минут
1
|
||
|
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
|
||
| 12.05.2010, 10:50 | ||
|
Всё равно его править придётся.
0
|
||
|
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 46
|
|
| 12.05.2010, 21:40 [ТС] | |
|
>Quiet Snow<, Можно поподробней (простите за неосведомленность мою) что именно мне надо усатновить/освоить под Виндой? Куда бросаться? Тут так много рекомендайий мелькает, что теряюсь. Я поклонник старых традиций, потому прошу указать что где как... Склеенные массивы вроде медленней, но несущественно. Спасибо!
Добавлено через 5 минут И вообще, рано или поздно так или иначе появится таки нетривиальная задача, и число ей подобных будет только расти.. А тривиальные - да кому они нужны! Правда? Ковыряние вне рамок тривиальности радикально способствует прогрессу )
0
|
|
|
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
|
|
| 12.05.2010, 21:54 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 46
|
|
| 12.05.2010, 22:46 [ТС] | |
|
Какой именно надо VB осваивать? Куда лезть конкретно? Я не знаю, что именно мне нужно. Разницы между VB1 - VB6 не знаю/не вижу. Мне нужно увидеть скат.Улама 1024х1024, и Lifegenesis аналогично, а больше монитор не позволит.
А можно просто переписать мою прогу в ту среду/или еще как положено, чтобы у меня она тоже работала?
0
|
|
| 12.05.2010, 22:46 | |
|
Помогаю со студенческими работами здесь
40
Как увеличить размер дин. массива средствами С++ Необходимо увеличить максимальный размер памяти программы до 5 Гигов Как увеличить размер массива до заданной длины заданным значением?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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(), которая. . .
|