IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Динамическая память, вопросы к экзамены
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской
Реальное имя: SiNaC0m

Репутация: -  0  +


Доброе время суток, через несколько дней у меня экзамен. Помогите разобраться.
Вот вопрос: "Понятие адреса памяти, сегмента, смещения, нормализованного адреса.
Распределение памяти CMA: cегмент кода программы, сегмент данных, стек, динамическая память (куча).
Типы указатель (Pointer) и ссылка (^ тип)"

Как я понимаю:
Адрес - это номер ячейки в сегменте данных(все оперативной области ПК), он состоит из сегмента и смещения.
В свою очередь сегмент - часть оперативной памяти, не превышающая 64 Кбайта и начинающаяся с числа кратного 16. А смещение показывает в каком месте сегмента хранится заданный адрес(то есть, сколько надо пройти от начала сегмента до нужной ячейки в этом сегменте).
Сегмент кода программы-место в сегменте, отведенное под сам код проги.
Сегмент данных-это непрерывная область оперативной памяти пк.
Стек-простейшая динамическая структура. стек придерживается принципа ЛИФО(ласт ин фёст аут). Выборка и добавление элемента в стек происходит в одном месте.
Динамическая память(куча)- это вся оперативная память ПК, за вычетом сегмента(64), смещения и тела проги.
Типы указателей: Указатель - это переменная, которая хранит адрес в качестве своего значения.
Они(Указатели) бывают типизированные и нетипизированные.
Типизированные - ссылка(^). Пример:
var a : ^real;
b : ^integer;
Типизированный указатель ссылается на какой то определенный тип.
Нетипизированный ссылается на неопределенный.
var c : pointer;
a нельзя присвоить b, для этого необходимо сначала c:=b, а потом a:=c;
Все ли я правильно написал? И что такое нормализированный адрес?
Очень хочется узнать ваше мнение!!!


--------------------
Мы стремимся к знаниям... вы называете нас преступниками. Мы существуем без цвета кожи, без национальности и религиозных предубеждений... вы называете нас преступниками. Вы производите атомные бомбы, разжигаете войны, убиваете, обворовываете и врете нам, пытаясь убедить в своей правоте... а мы все также остаемся преступниками.
© Mentor
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Автооответчик
*****

Группа: Пользователи
Сообщений: 1 188
Пол: Мужской
Реальное имя: Александр

Репутация: -  16  +


Адреса задаются совокупностью двух шестнадцатиразрядных слов, которые называются сегментом и смещением. Сегмент - это участок памяти, имеющий длину 65536 байт (64 Кбайт) и начинающийся с физического адреса, кратного 16 (т.е. О, 16, 32, 48 и т.д.). Смещение указывает, сколько байт от начала сегмента необходимо пропустить, чтобы обратиться к нужному адресу.

<>Выборка и добавление элемента в стек происходит с одного конца<>

Сегмент данных - область памяти, выделенная под данные программы (т.е. у каждой программы свой сегмент данных)

ну это так, придирки...


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской
Реальное имя: SiNaC0m

Репутация: -  0  +


GoodWind: Спасибо... Но что такое НОРМАЛИЗОВАННЫЙ адрес???
и еще я не могу понять что значит СМА???


--------------------
Мы стремимся к знаниям... вы называете нас преступниками. Мы существуем без цвета кожи, без национальности и религиозных предубеждений... вы называете нас преступниками. Вы производите атомные бомбы, разжигаете войны, убиваете, обворовываете и врете нам, пытаясь убедить в своей правоте... а мы все также остаемся преступниками.
© Mentor
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






CMA = Control Memory Address
Вообще-то CMA называется Стандартная Память, в которой хранится DOS и программы... Есть еще UMA (Upper Memory Address) - Верхняя Память, содержащая видеопамять и BIOS...

А нормализованным адресом называется адрес, приведенный к виду, в котором его смещение - в интервале $0 .. $F (от 0 до 15)

Кстати:
Цитата
a нельзя присвоить b, для этого необходимо сначала c:=b, а потом a:=c;
Совсем не обязательно... Можно обойтись без доп. переменной:
a := pointer(b);
, но все равно: нужно приложить дополнительные усилия. Почему? Потому, что такие операции (приведение типа) потенциально очень опасны, и программист должен показать компилятору, что он НЕ ошибся, а сознательно произвел эту операцию...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской
Реальное имя: SiNaC0m

Репутация: -  0  +


volvo: Большое спасибо.. Не подскажешь, где можно почитать о СМА.

З.Ы. Просьба тему не закрывать. Вопросы по динамической памяти и структурам еще будут, но чуть позже.


--------------------
Мы стремимся к знаниям... вы называете нас преступниками. Мы существуем без цвета кожи, без национальности и религиозных предубеждений... вы называете нас преступниками. Вы производите атомные бомбы, разжигаете войны, убиваете, обворовываете и врете нам, пытаясь убедить в своей правоте... а мы все также остаемся преступниками.
© Mentor
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской
Реальное имя: SiNaC0m

Репутация: -  0  +


Доброе время суток Динамические структуры данных: бинарные деревья. Деревья поиска. Сбалансированные деревья
Дерево - это динамическая структура данных, состоящая из узлов и их отношений, образующих иерархическую структуру узлов.
Узлы, которые не имеют потомков, называются листьями. Они(узлы) могут быть любого простого или структуированного типа, но не файлового!!!
Бинарное дерево - это динамическая структура данных, каждый узел которой кроме данных хранит в себе не более двух ссылок на другие двоичные деревья.
Бинарное дерево является рекурсией, так как каждое пеоддерево является в свою очередь самостоятельным деревом.
Дерево поиска - это бинарное дерево, в котором каждый ключ его левого поддерева меньше ключа его узла, а каждый ключ его правого поддерева больше.
Высота дерева определяется количеством его уровней.
Сбалансированное дерево - это двоичное дерево, в котором количество узлов справа и слева отличается не более чем на единицу.
Удаление элементов из дерева:
1) Если узел является листом, то его просто обнуляют.
2) Если узел содержит только одного потомка, то тот встаёт на его место.
3) Если узел имеет двух потомко, то на его место ставится либо самый правый узел его левого поддерева, либо самый левый узел его правого поддерева.
Я прав??? Что еще можно к этому добавить?
З.Ы. Если я хочу узнать про особенности работы 4 параметра в процедуре Blockread и blockwrite, мне нужно заводить новую тему?
Жду ваших дополнений...
Экзамен оказывается у меня завтра, точнее уже сегодня..... Пожелайте мне удачи..... ОНА мне очень нужна!!!


--------------------
Мы стремимся к знаниям... вы называете нас преступниками. Мы существуем без цвета кожи, без национальности и религиозных предубеждений... вы называете нас преступниками. Вы производите атомные бомбы, разжигаете войны, убиваете, обворовываете и врете нам, пытаясь убедить в своей правоте... а мы все также остаемся преступниками.
© Mentor
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата
Они(узлы) могут быть любого простого или структуированного типа, но не файлового!!!
Хочешь, приведу работающий пример, где в узлах дерева содержится файловый тип?

Если честно, то это ограничение скорее всего связано с тем, что в структуры нельзя БЫЛО включать поля файловых типов... Сейчас я не знаю, актуально ли это ограничение...

Цитата
Если я хочу узнать про особенности работы 4 параметра в процедуре Blockread и blockwrite, мне нужно заводить новую тему?
Можешь не открывать... Что именно тебя интересует? Какие особенности? Через четвертый параметр возвращается количество реально прочитанных/записанных блоков, если ты его НЕ определяешь, то не возвращается ничего (как будешь отслеживать возможную ошибку чтения/записи?) smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской
Реальное имя: SiNaC0m

Репутация: -  0  +


volvo:Большое спасибо!!
Можно тебя попросит: напиши плиз четкое определение записи с вариантной частью...
Моё вот: Записи с произвольным числом вариантов структур - называются записью с вариантами...
Как то криво звучит...


--------------------
Мы стремимся к знаниям... вы называете нас преступниками. Мы существуем без цвета кожи, без национальности и религиозных предубеждений... вы называете нас преступниками. Вы производите атомные бомбы, разжигаете войны, убиваете, обворовываете и врете нам, пытаясь убедить в своей правоте... а мы все также остаемся преступниками.
© Mentor
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Ну, я бы привел вот такое определение:
Цитата
В вариантной части типа запись память распределяется более чем для одного списка полей, поэтому доступ к информации может быть осуществлен более чем одним способом. Каждый список полей является вариантом. Варианты налагаются друг на друга в памяти, поэтому в любое время возможен доступ ко всем полям во всех вариантах.
 К началу страницы 
+ Ответить 

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

 




- Текстовая версия 21.11.2017 16:59
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"