- •1. Основные этапы развития программирования как науки. Стихийное программирование.
- •2 Этап.
- •3 Этап.
- •4 Этап.
- •2. Структурный подход к программированию.
- •3. Объектный подход к программированию.
- •4. Процедуры с параметрами. Описание, пример.
- •5. Функции с параметрами. Описание, пример.
- •6. Область действия идентификаторов при использ. Проц. И функц.
- •7. Способы передачи параметров. Формальные и фактич. Параметры.
- •Параметры-значения
- •Параметры-константы
- •8. Параметры – значения. Механизм работы.
- •9. Параметры – переменные. Механизм работы.
- •10. Параметры – константы. Механизм работы.
- •11. Рекурсия. Понятия, пример.
- •12. Строки в delphi. Способы реализации строк. Основные процедуры. И функции.
- •13. Записи в delphi. Пример программы.
- •15. Модули в delphi. Понятие, описание, использование.
- •16. Программирование с использованием динамической памяти. Структура оперативной памяти. Понятие указателя.
- •17. Указатели. Описание в программе. Допустимые операции.
- •Операции над указателями
- •Нулевой указатель
- •18. Статические и динамические переменные. Динамические структуры данных.
- •19. Линейные списки. Основные операции над линейными списками.
- •20. Формы хранения информации. Их сравнение.
- •21. Стэк. Понятие, описание в программе, основные операции.
- •22. Очередь. Понятие, описание в программе, основные операции.
- •23. Списки. Понятие, описание в программе, основные операции.
- •25. Постфиксная, префиксная, инфиксная записи выражения.
- •26. Деревья. Понятия бинарного дерева. Способы представления д.
- •27. Бинарное дерево. Способы прохождения дерева.
- •28. Бинарное дерево поиска. Построение, использование.
- •Использование бинарных деревьев поиска Создание примеров деревьев поиска.
- •Симметричный метод прохождения.
- •Дублированные узлы
- •30. Графические средства delphi.
- •31.Понятие объекта. Основные свойства ооп.
- •32. Поля, методы и свойства объекта.
- •33. Использование конструктора и деструктора.
- •35. Основные операторы языка с.
- •36. Операторы инкремента и декремента. Операторы присваивания.
- •37. Функции scanf() и printf().
- •38. Способы задания развветвляющегося алгоритма в с. Пример.
- •39. Циклические алгоритмы. Виды циклов в с. Пример.
- •40. Табулирование функции одной переменной на заданном отрезке. Блок-схема. Программа.
- •41. Алгоритм вывода простых чисел меньше 100 в с.
- •42. Алгоритм разложения числа на простые множители в с.
- •43. Организация средства человеко-машинного интерфейса. Пользовательский интерфейс. Согласованность пи.
- •44. Стиль программирования. Критерии качества программы.
- •45. Тестирование программных продуктов.
16. Программирование с использованием динамической памяти. Структура оперативной памяти. Понятие указателя.
Динамические структуры – это структуры данных с изменяющимися в процессе работы программы размерами. Такие структуры можно по ходу программы создавать и удалять. Эти данные запоминаются в динамической памяти (ДП). В ДП операционной системой выделяется область (куча). Для динамических структур используются переменные типа-указатель (или указатель). Указатель содержит адрес первого байта переменной в ДП. Длина переменной определяется ее типом. Тип-указатель должен быть объявлен. Если тип объекта, на который ссылается указатель не стандартный, то его нужно объявить до применения указателя. Затем необходимо объявить указатели.
Делится динамическая память на несколько областей (зон, разделов):
1. Conventional memory – основная память; 2. UMA (Upper Memory Area) – верхняя память; 3. HMA (High Memory Area) – область верхней памяти или область верхних адресов; 4. XMS (eXtended Memory Specification) – дополнительная память; 5. EMS (Expanded Memory Specification) – расширенная память;
Указатель – носитель физического адреса в памяти величины базового типа. Указатель имеет размер в 2 слова (4 байта). Создается компилятором в статической памяти.
Указатели бывают 2 типов: нетипизированный (var p: Pointer) и типизированный ( p1:^Integer)
В ряде случаев возникает необходимость в указателе без ссылок p: nil;
Необходимо различать переменную типа указатель и переменную на которую этот указатель ссылается
V
указатель
ar p:^Integer
p
Р^
^-переменная типа IntegerР
*
Для самих указателей допустимы только операции присвоения и сравнения
Два значения ссылочного типа равны, если они ссылаются на один и тот же объект или оба пустые
Каждый указатель может находиться в одном из 3 состояний:
Указатель может содержать пустой адрес(=nil)
Указатель содержит адрес переменной, под которую уже выделена память
Указатель может находиться в неопределённом состоянии (в начале работы, когда не присвоили еще никакого значения указателю)
17. Указатели. Описание в программе. Допустимые операции.
Указатель — переменная, диапазон значений которой состоит из адресов ячеек памяти и специального значения — нулевого адреса. Значение нулевого адреса не является реальным адресом и используется только для обозначения того, что указатель в данный момент не может использоваться для обращения ни к какой ячейке памяти. Указатели предлагают метод динамического управления памятью: их можно использовать для доступа к области с динамическим размещением памяти, обычно называемой кучей, или динамической памятью. Переменные, размещаемые в куче, называются динамическими. Часто они не содержат связанных с ними идентификаторов, и ссылаться на них можно только с помощью указателей и ссылок.
Операции над указателями
Языки программирования, в которых предусмотрен тип указателей, содержат, как правило, две основные операции над ними: присваивание и разыменование. Первая из этих операций присваивает указателю некоторый адрес. Вторая служит для обращения к значению в памяти, на которое указывает указатель. Разыменование может быть явным и неявным, в большинстве современных языков программирования разыменование происходит только при явном указании.
В случае, если указатель хранит адрес какого-либо объекта, то говорят, что указатель ссылается или указывает на этот объект p.
Языки, предусматривающие использование указателей для управления динамической памятью, должны содержать оператор явного размещения переменных в памяти. В некоторых языках помимо этого оператора предусмотрен ещё и оператор явного удаления переменных из памяти. Обе эти операции часто принимают форму встроенных подпрограмм.