Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Правила обмена с дисковыми файлами





1) вводится файловая переменная, которая используется для операции обмена (f).

2) Устанавливается связь между файловой переменной и именем файла (FName).

Делается это с помощью стандартной процедуры assign(f, FName)

FName образуется по правилам DOS.

При необходимости может указываться имя диска и путь к файлу.

FName – константа или переменная

Далее прога имеет дело только с файловой переменной

3) Файл открывается для чтения(reset(f)) или записи (rewrite(f)).

4) Производится обмен данными с помощью подпрограмм

Отличие от стандартного их формата в том, что добавляется в скобки файловая переменная: read(f,x,y,…);

Если в подпрограммах ввода-вывода не указана файловая переменная, то имеет в виду либо input, либо output.

input – связан с клавой, output – c дисплеем.

5) После завершения работы с файлом, он должен быть закрыт с помощью close(f);

Если файл не закрыт, то при выходе из проги его закроет система. Однако если прога должна была добавить данные в файл, то они будут потеряны, т.к. прога работает не напрямую с фалами на диске, а работает только с его копией (буфером).

Команда close соответствует переброске данных из буфера на диск.

 

Понятие о статических и динамических структурах данных

Статические структуры – такие, которые имеют один и тот же размер и формат на протяжении выполнения блока, где они объявлены.

При компиляции для статического объекта выделяется определенный объем памяти в соответствии с типом, который для других целей использовать нельзя до завершения работы блока.

Динамические структуры – такие, которые можно создавать или уничтожать в процессе работы блока.

Цель динамического распределения памяти – экономия ресурсов. При этом распределение памяти можно менять в процессе работы блока

Достоинство – экономия памяти

Недостаток – более медленная работа проги, более сложное программирование.

 

 

Структура распределения памяти ЭВМ. Понятие “кучи”. Адрес в памяти.

 

I II III IV

 

I–системная область (ОС, система программирования, оболочка)

II – системная область (рекурсивный стек, стек ЦП)

III – область программы и статический данных; ограничена

IV – область динамического распределения данных heap (“куча”)

Распределение памяти осуществляется с помощью указателей.

Адрес памяти занимает 4 байта – 2 байта сегмент и 2 байта смещение

 

 

Указатели

Для уяснения понятия указателя необходимо рассмотреть структуру и использование оперативной памяти компьютера в операционной системе MS DOS (основные принципы распределения памяти справедливы и для Windows):

 

 


Области самых младших и самых старших адресов занимают системные ресурсы, обеспечивающие функционирование операционной системы.
Сразу за системной областью младших адресов располагается исполняемый код прикладной программы.
Сегмент данных содержит ячейки для хранения значений глобальных констант и переменных.
Стек представляет собой буфер для временного хранения промежуточных (локальных) переменных и констант.
Перечисленные фрагменты ОЗУ составляют так называемую статическую память, которая заполняется сразу при запуске программы и не освобождается до ее завершения.
Следующий участок ОЗУ (по ходу возрастания адресов) представляет собой динамическую память, или кучу. Ячейки кучи могут неоднократно выделяться и освобождаться по мере необходимости во время выполнения программы, т.е. динамически.
В Паскале все константы и переменные, объявленные в разделе const и var основной программы или модуля, располагаются в сегменте данных, т.е. статической памяти. Размер сегмента данных и стека составляет соответственно 64 К и 16 К, что сильно ограничивает разработку программ, оперирующих большими массивами переменных емкого типа. Кардинальным решением этой проблемы является использование указателей и соответствующих средств доступа к динамической памяти.
Указатель, или ссылка – это переменная, значением которой является физический адрес некоторой ячейки памяти (чаще всего динамической).
Адрес каждой ячейки памяти ПК занимает 4 байта, или два машинных слова. Первое слово задает смещение адреса относительно начала сегмента, а второе – абсолютный адрес сегмента. Сегмент – это участок памяти, имеющий длину 64К и начинающийся с физического адреса, кратного 16 (0, 16, 32, 48 и т.д.). Смещение показывает, сколько байтов от начала сегмента нужно пропустить, чтобы достичь нужного адреса. Обычно слова адреса записываются в шестнадцатиричной системе через двоеточие, например:
F3A1: 128D
смещение сегмент

Фрагмент памяти в 16 байтов называется параграфом, поэтому сегмент адресует память с точностью до параграфа, а смещение – с точностью до байта. Поскольку большинство типов данных занимают несколько смежных байтов, то указатель содержит адрес первого байта ячейки памяти, при этом сам указатель занимает 4 байта (два слова).

Указатели в Паскале бывают двух типов:

- типизированный указатель (ссылка), который адресует ячейку для данных определенного типа;

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

 

 







Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.