- •1.Файловая система. Директория, файл, путь.
- •2. Основные команды операционной системы для работы с файлами.
- •8.7. Удаление подкаталогов - команда rmdir (rd)
- •3. Физические носители данных. Их классификация, характеристики и назначение.
- •4.Статическая и динамическая области оперативной памяти. Их назначение и использование
- •Память типа rom
- •Память типа dram
- •Оперативная память sdram
- •Оперативная память ddr sdram
- •Оперативная память rdram
- •5.Указатель. Размещение данных в динамической области оперативной памяти.
- •Динамические структуры данных. Статические и динамические переменные. Адреса. Указатели и их объявление.
- •Присвоение значений указателю. Оператор @ с переменной. Оператор @ с параметром процедуры, переданным по значению. Оператор @ с параметром процедуры, переданным по ссылке.
- •6.Типы данных (целые и вещественные числа). Размер используемой памяти, пределы изменения и точность представляемых данных.
- •7.Приоритеты выполнения операций при вычислении значений арифметических и логических выражений .
- •8.Структурированные типы данных. Назначение и способы реализации.
- •9.Алгоритм, его свойства и формы представления. Типовые структуры алгоритма.
- •10.Линейная структура и ее свойства. Ввод и вывод данных. Оператор присваивания.
- •11.Циклическая структура. Назначение и основные элементы.
- •12.Цикл с явно заданным количеством повторений. Основные элементы и варианты реализации.
- •13.Цикл с неявно заданным количеством повторений. Основные элементы и варианты реализации.
- •14.Типовая структура-разветвление. Основные элементы и варианты реализации.
- •15.Процедуры. Назначение, варианты реализации.
- •16.Функции. Назначение, варианты реализации.!
- •17.Формальные и фактические параметры. Назначение, варианты реализации.
- •18.Линейный список. Реализация с использованием массивов. Реализация многомерного массива.
- •19.Линейный список. Реализация с использованием связных списков. Примеры применения.
- •20.Поиск в линейном списке. Назначение и варианты реализации. Бинарный поиск
- •Последовательный поиск
- •21.Сортировка данных в линейном списке. Назначение и варианты реализации. Упорядочивание списка. Вставление элемента в середину списка.
- •22.Стек и очередь. Назначение, варианты реализации и примеры применения.
- •Стек. Отличия стека от списка. Основные операции со стеком.
- •Очереди. Основные операции над очередью.
- •23.Дерево. Назначение, варианты реализации и примеры применения.
- •Представление деревьев. Основные операции над деревом.
- •24.Текстовые и типизированные файлы. Обмен данных с внешними носителями.
- •Типы файлов Турбо Паскаль
- •Стандартные процедуры и функции
- •Работа с типизированными файлами
- •Работа с текстовыми файлами
- •Работа с нетипизированными файлами
17.Формальные и фактические параметры. Назначение, варианты реализации.
Необходимо соблюдать строгое соответствие между формальными и фактическими параметрами по их количеству, типам и порядку следования в списке.
Формальным параметром может быть ТОЛЬКО переменная, тип которой обязательно указывается в заголовке описания функции или процедуры.
Если формальных параметров несколько и они имеют один и тот же тип, то их удобно объединить в группу:
<имя> , <имя> ,┘, <имя> : <тип>;
Если в списке формальных параметров несколько подобных групп, эти группы отделяются друг от друга точкой с запятой.
Фактическим параметром может быть константа, переменная или выражение (в последнем случае вычисляется результат выражения, который и ставится в соответствие формальному параметру). Фактический параметр обязательно должен совпадать по типу с соответствующим ему формальным.
Формальные и фактические параметры
Формальные параметры подпрограммы указывают, с какими параметрами следует обращаться к этой программе (количество примеров, их последовательность, типы). Они задаются в заголовке подпрограммы в виде списка формальных параметров, разбитого на группу формальных параметров включаются однотипные параметры одной категории.
Все формальные параметры можно разбить на четыре категории:
параметры значения (эти параметры в основной программе подпрограммой не меняются );
параметры - переменные ( эти параметры подпрограмма может изменить в основной программе );
параметры-константы ( используются только в версии 7.0);
параметры-процедуры и параметры-функции (т.е. процедурного типа).
Для каждого формального параметра следует указать имя и, как правило, тип, а в случае параметра-переменной или параметра-константы - его категорию. Имена параметров могут быть любыми, в том числе и совпадать с именами объектов программы. Необходимо лишь помнить, что в этом случае параметр основной программы с таким именем становится недостурным для непосредственного использования подпрограммой. Тип формального параметра может быть практически любым, однако в заголовке подпрограммы нельзя вводить новый тип. Например, нельзя писать
function Max( A: array[ 1..100 ] of real ): real;
Чтобы правильно записать этот заголовок, следует в основной программе ввести тип-массив, а затем использовать его в заголовке:
type tArr =array [ 1..100 ] of real; function Max ( A: tArr ) : real;
При обращении к подпрограмме формальные параметры заменяют на соответствующие фактические вызывающей программой или подпрограммы
18.Линейный список. Реализация с использованием массивов. Реализация многомерного массива.
Линейный список - это конечная последовательность однотипных элементов (узлов), возможно, с повторениями. Количество элементов в последовательности называется длиной списка, причем длина в процессе работы программы может изменяться.
Линейный список F, состоящий из элементов D1,D2,...,Dn, записывают в виде последовательности значений заключенной в угловые скобки F=, или представляют графически (см.рис.12).
D1 |
|
D2 |
|
D3 |
|
... |
|
Dn |
Рис.12. Изображение линейного списка. |
||||||||
Например, F1=< 2,3,1>,F2=< 7,7,7,2,1,12 >, F3=< >. Длина списков F1, F2, F3 равна соответственно 3,6,0.
При работе со списками на практике чаще всего приходится выполнять следующие операции:
- найти элемент с заданным свойством;
- определить первый элемент в линейном списке;
- вставить дополнительный элемент до или после указанного узла;
- исключить определенный элемент из списка;
- упорядочить узлы линейного списка в определенном порядке.
В реальных языках программирования нет какой-либо структуры данных для представления линейного списка так, чтобы все указанные операции над ним выполнялись в одинаковой степени эффективно. Поэтому при работе с линейными списками важным является представление используемых в программе линейных списков таким образом, чтобы была обеспечена максимальная эффективность и по времени выполнения программы, и по объему требуемой памяти.
Методы хранения линейных списков разделяются на методы последовательного и связанного хранения. Рассмотрим простейшие варианты этих методов для списка с целыми значениями F=<7,10>.
При последовательном хранении элементы линейного списка размещаются в массиве d фиксированных размеров, например, 100, и длина списка указывается в переменной l, т.е. в программе необходимо иметь объявления вида
float d[100]; int l;
Размер массива 100 ограничивает максимальные размеры линейного списка. Список F в массиве d формируется так:
d[0]=7; d[1]=10; l=2;
Полученный список хранится в памяти согласно схеме на рис.13.
l: |
2 |
|
|||||
d: |
7 |
10 |
|
|
... |
|
|
|
[0] |
[1] |
[2] |
[3] |
|
[98] |
[99] |
Рис.13. Последовательное хранение линейного списка. |
|||||||
