Вторник, 12 Ноя 2024, 23:13
Uchi.ucoz.ru
Меню сайта
Форма входа

Категории раздела
Высшая математика [11]
Экономическая социология [95]
Основы Менеджмента [64]
Бухгалтерский учёт [157]
Философия [163]
Мировая Экономика [603]
Бизнес планирование [29]
Финансирование и кредитование инвест [105]
Ценообразование [46]
Гражданское право [196]
Права Человека [173]
Основы Маркетинга [207]
Основы энергосбережения [55]
Информатика [0]
Экология и устойчивое развитие [0]
Физика для студентов [0]
Основы права [0]
Политология [0]
Не стандартные примеры на Delphi [169]
Примеры на Delphi7 [108]
Алгоритмы [94]
API [110]
Pascal [152]
Базы Данных [6]
Новости
Чего не хватает сайту?
500
Статистика
Зарегистрировано на сайте:
Всего: 51642


Онлайн всего: 188
Гостей: 188
Пользователей: 0
Яндекс.Метрика
Рейтинг@Mail.ru

Каталог статей


Главная » Статьи » Студентам » Pascal

Предел сегмента данных в 64K
Из раскопок:

В: Может ли Borland Pascal использовать статические переменные с размером
более чем 64 килобайта?
О: Нет!
В: Вы говорите *статические* переменные. Неужели есть что-то еще, с чем
можно работать?
О: Да, смотри ниже одно из решений проблемы. Можете не тратить время на
чтение следующего текста, все равно это не работает, можете смело скроллировать
вниз.
В: Поможет разделение большого массива на несколько маленьких (все элементы
меньше чем 64k, но в сумме больше чем 64k)?
О: Нет!
В: Поможет объявление нескольких переменных в модуле?
О: Нет!
В: Поможет объявление чего-либо в секции реализации модуля?
О: Нет!
В: Поможет использование защищенного режима Borland Pascal 7?
A: Нет!
В: Вы уверены??
О: Да!!
В: Почему??
О: Во-первых, все программы, созданные на Borland Pascal, для любых
переменных используют только один сегмент данных, во-вторых, процессоры Intel
80xxx ограничивают размер сегмена 64 килобайтами.
В: Это глупо!!
О: Скажите это Borland!! (Или Intel, ...или обоим).
В: Есть ли выход из тупика?
О: Да! Возможны два решения:
1) не используйте *СТАТИЧЕСКИЕ* переменные для хранения данных большого
размера. В итоге это позволит разместить более чем 64k данных, но весь массив
данных в 64k не поместится, таким образом вы его поделите на несколько частей,
что не является решением проблемы. Сделайте переменные динамическими.

2) используйте другой компилятор: есть несколько доступных компиляторов языка
Pascal, которые более-менее Borland-совместимые и не имеют таких ограничений
(они 32-битные).

В: Почему Borland Pascal не имеет 32-битного компилятора?
О: Да, он весьма древний. Сообщите Borland, что вы хотите новую версию.
В: Что такое не-статическая память?
О: Для примера Куча, XMS, EMS, ... Куча доступна непосредственно, для XMS
необходим драйвер (himem.sys), для EMS тоже (HIMEM.SYS + EMM386.EXE) и он обычно
доступен не на всех компьютерах, так что лучше использовать XMS вместо EMS.
В: Что такое Куча?
О: Куча - вся свободная память ниже 640-килобайтной границы в режиме
реального времени, в защищенном режиме (доступном только в Borland Pascal 7) -
вся свободная память ниже 16-мегабайт (обычно *ВСЯ* свободная память, но мы
здесь говорим о Borland Pascal).
В: Каким образом можно воспользоваться Кучей?
О: Доступ к памяти Кучи возможен только с помощью указателей. Посмотрите на
этот пример, вы можете использовать эту технологию в ваших программах:

type
arr = array [1..30000] of longint; { это ваши
данные }
arrptr = ^arr; { это
указатель на данные }
var
data : arrptr; { это переменная,
содержащая указатель }
begin
if memavail < sizeof(arr) then halt; { проверяем наличие доступной памяти }
new (data); {
распределяем память }
for i := 1 to 30000 do data^[i]:=0; { используем ее, обратите здесь внимание на символ ^ !!
}
dispose (data); {
освобождаем память }
end.
Категория: Pascal | Добавил: Lerka (22 Ноя 2012)
Просмотров: 373 | Рейтинг: 1.0/ 5 Оштрафовать | Жаловаться на материал
Похожие материалы
Всего комментариев: 0

Для блога (HTML)


Для форума (BB-Code)


Прямая ссылка

Профиль
Вторник
12 Ноя 2024
23:13


Вы из группы: Гости
Вы уже дней на сайте
У вас: непрочитанных сообщений
Добавить статью
Прочитать сообщения
Регистрация
Вход
Улучшенный поиск
Поиск по сайту Поиск по всему интернету
Наши партнеры
Интересное
Популярное статьи
Портфолио ученика начальной школы
УХОД ЗА ВОЛОСАМИ ОЧЕНЬ ПРОСТ — ХОЧУ Я ЭТИМ ПОДЕЛИТ...
Диктанты 2 класс
Детство Л.Н. Толстого
Библиографический обзор литературы о музыке
Авторская программа элективного курса "Практи...
Контрольная работа по теме «Углеводороды»
Поиск
Главная страница
Используются технологии uCoz