|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
08.03.2009, 11:49 | #1 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Проблема ограниченности переменных в Паскале
При создании программ, работающих с большим количеством данных возникает одна проблема: вмещаемость переменных.
К примеру Integer имеет максимальное число 65535 ; String вмещает максимум 254 символа, а массив, состоящий из String вмещает максимум 254 ячейки. Я где то слышал, что размер можно увеличить используя HEAP- память. Помогите........... |
08.03.2009, 12:42 | #2 |
Форумчанин
Регистрация: 11.11.2008
Сообщений: 161
|
Использовать динамическую память..., она выделяется в процессе выполнения программы.
|
08.03.2009, 12:59 | #3 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
А как именно? Пример можешь привести?
|
08.03.2009, 13:17 | #4 |
Форумчанин
Регистрация: 11.11.2008
Сообщений: 161
|
Сам диапазон значений переменных изменить нельзя. Можно просто разместить их в динамической памяти, к примеру массив из большого кол-ва записей, может не поместиться в статическую память, и единственным решение будет его размещение в динамической памяти..
Почитай "Указатели" К примеру вот Код:
Но это просто объявление!! Компилятор еще не выделил под наш указатель участок в памяти. new(a); {здесь функция new выделяет память и записывает адрес этого участка памяти в указатель а} теперь указатель а содержит адрес участка памяти.. а^- операция разыменования, т.е мы обращаемся к значению на которое указывает а. a^:=4;-здесь мы "кладем" значение 4 в нашу ячейку на которую указывает а. Последний раз редактировалось Викдон; 08.03.2009 в 13:19. |
10.03.2009, 10:07 | #5 | ||
Oldschool geek
Форумчанин
Регистрация: 09.03.2009
Сообщений: 611
|
Цитата:
Если нужно больше, есть 32битный LongInt. Если нужно ещё больше, есть 64битный Comp, но я не уверен, что он работает корректно. Comp вроде как считается 64битным целым числом, но операции над ним происходят в сопроцессоре, а в сопроцессоре все числа с плавающей запятой, может получаться погрешность. А может и не получаться. Так или иначе, переменные типа Comp нельзя использовать в качестве индексов массивов, в циклах for. 255. Цитата:
Пользоваться ими неудобно, нужно вручную контроллировать выделение памяти, следить, чтобы не было переполнений буфера. |
||
10.03.2009, 10:09 | #6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Есть правда длинная арифметика, но я уверен что если автор задачу обьяснит найподробнейше, можно просто поменяв стратегию получить нужный результат, как делают все.
I'm learning to live...
|
|
10.03.2009, 14:50 | #7 | |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Цитата:
В данном случае моя программа открывает файл, и заносит в массив состоящий из 254 элементов типа String (если ставлю 255 пишет ошибку) строчки файла так, что каждый элемент вмещает строчку текста. Проблема в том, что если файл содержит более 254 строк, массива не хватает. Конечно можно создать матрицу (двумерный массив), и при переполнении записывать данные в следующий массив, но зто очень усложнит код в определенных местах программы. |
|
10.03.2009, 15:39 | #8 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
I'm learning to live...
|
||
10.03.2009, 15:45 | #9 | ||
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Цитата:
Error 96: Too many variables. Цитата:
|
||
10.03.2009, 15:49 | #10 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Код:
Цитата:
I'm learning to live...
|
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
здравствуйте, у меня проблема: мне надо решить задачки в паскале, а то допуска не бедет... | =|винтик|= | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 20.01.2009 18:09 |
Проблема с графикой в Паскале... | bygoga | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 20.12.2008 09:55 |
Срочно! Помогите построить СДНФ на Паскале число переменных задает пользователь | stscolt | Помощь студентам | 1 | 21.04.2008 22:20 |
Проблема с масивом в Паскале | SeRhy | Помощь студентам | 2 | 15.11.2007 20:54 |