
- •1.Основные понятия: программирование, данные, программа, процесс, оператор, алгоритм. Краткая характеристика развития программирования.
- •2.Основные этапы решения задач на эвм.???
- •3.Алгоритм, свойства алгоритма. Алгоритмический язык программирования. Способы записи алгоритма.
- •4. Синтаксис и семантика языка программирования??. Структура программы на языке Pascal.
- •5.Основные символы языка Pascal. Идентификаторы, константы, переменные.
- •6.Скалярные типы данных.? Вроде как тоже стандартные
- •7.Стандартные типы данных. Надо уточнить
- •8.Выражения. Операторы. Составной оператор.
- •9.Оператор условия if.
- •10.Оператор выбора case.
- •11.Оператор цикла For.
- •12.Оператор цикла Repeat.
- •13.Оператор цикла While.
- •14.Процедуры и функции. Основные понятия.
- •15.Подпрограммы в языке Pascal.
- •16.Параметры подпрограмм.
- •17.Принцип локализации. (поискать)
- •18.Массив как структура данных.
- •19.Строки.
- •1 . Операция сравнения (так как в строках определён порядок, то для их возможно сравнить).
- •2. Операция обращения к элементу строки
- •20.Записи.
- •Запись с вариантной частью
- •21.Множества.
- •22.Файлы. Типизированные файлы.
- •Описание типизированных файлов
- •23.Файлы. Текстовые файлы.
- •Текстовые файлы
- •Пробельные символы
- •24.Файлы. Нетипизированные файлы.
- •25.Рекурсии.
- •26. Программирование графики. Графика в Pascal
- •Действия с пером.
- •Действия с кистью.
- •Действия со шрифтом
- •Действия с рисунками.
- •Действия с графическим окном
- •Задание режимов вывода
- •27.Создание модулей.
- •28.Сортировки массивов. Пузырьковая сортировка.
- •29.Сортировки массивов. Шейкерная сортировка.
- •30.Сортировки массивов. Сортировка Шелла.
- •31.Сортировки массивов. Быстрая сортировка.
- •32.Сортировки массивов. Сортировка прямыми (простыми) вставками.
- •33.Сортировки массивов. Сортировка бинарными вставками.
- •34.Сортировки массивов. Сортировка прямыми (простыми) вставками с барьером.
- •35.Сортировка массивов. Пирамидальная сортировка.
- •36.Динамические структуры данных. Стек, его применение. Операции над элементами стека.
- •37.Динамические структуры данных. Очередь, ее применение. Операции над элементами очереди.
- •38.Динамические структуры данных. Списки, их применение. Операции над элементами списка, их реализация.
- •Формирование списка
- •Просмотр списка
- •Удаление элемента из списка
- •39.Динамические структуры данных. Деревья, их применение.
- •40.Тип данных указатель.
36.Динамические структуры данных. Стек, его применение. Операции над элементами стека.
Называются так потому, что их элементы создаются и уничтожаются во время работы программы.
Stack – динамическая структура данных, у которой в каждый момент доступен верхний последний элемент.
Операции, необходимые для Стека.
Empty (<нач_ст>):Boolean;
Add(<нач_ст>,<нов_элемен>):<нач_ст>;
Take(<нач_ст>):тип_элем;
Del (<нач_ст>):нач_ст;
LIFO (последний зашел первый вышел)
FILO(первым зашел первый вышел)
стеки часто применяются в системном программном обеспечении, включая компиляторы и интерпретаторы.
37.Динамические структуры данных. Очередь, ее применение. Операции над элементами очереди.
Queue – динамическая структура данный, у которой в любой момент времени доступны два элемента: 1й и последний, НО! В конец очереди можно только добавлять элементы, а из начала только забирать.
Процедуры для реализации очереди
Empty (<нач_оч>):Boolean;
Add(<кон_оч>,<нов_элемен>):<кон_чо>;
Take(<нач_оч>):тип_элем;
Del (<нач_оч>):нач_оч;
В программировании очереди применяются при решении многих задач. Один из наиболее популярных видов таких задач — симуляция. Очереди также применяются в планировщиках задач операционных систем и при буферизации ввода/вывода.
38.Динамические структуры данных. Списки, их применение. Операции над элементами списка, их реализация.
списки
Все динамические структуры реализуются через списки. Если для каждой динамической переменной описывать и хранить ее указатель, то никакой выгоды не будет, на этапе выполнения программы будет выделяться статически память под сам указатель. Общий обьем памяти увеличится.
Решение проблемы списки
Они применяются в следущих случаях, когда заранее не известно какой обем памяти потребуется программе.
2 когда некоторые « большие переменные» нужны поочередно
3 когда в поцессе обработки днных нужно провести большую работу на ходу перестраивая всю структуру.
Структура списков
1.полезная информация элемента – его данные
2.ссылка или указательн на следующий элемент
Примеры
1.односвязный список –структура каждый элемет которй знает адрес, только одно ээлемента слудуещего за ним стеки и очереди
2. двусвязный список. Каждый элемент помнит адрес двух элементов. Предыдущего и следущего
3. бинарное дерево нелинейный двусвязный список. Каждая вершина помнит адреса двух своих потомкоми одного предка.
Type ukazat= ^ S; S= record Inf: integer; Next: ukazat; End;
В Паскале существует основное правило: перед использованием какого-либо объекта он должен быть описан. Исключение сделано лишь для указателей, которые могут ссылаться на еще не объявленный тип.
Формирование списка
Чтобы список существовал, надо определить указатель на его начало.
Пример описания списка
Type ukazat= ^S; S= record Inf: integer; Next: ukazat; End;
Создадим первый элемент списка:
New (u); {выделяем место в памяти} u^. Next:= nil; {указатель пуст} u^. Inf:=3;
Продолжим формирование списка. Для этого нужно добавить элемент либо в конец списка, либо в голову.
А) Добавим элемент в голову списка. Для этого необходимо выполнить последовательность действий:
получить память для нового элемента;
поместить туда информацию;
присоединить элемент к голове списка.
New(x); Readln(x^.Inf); x^. Next:= u; u:= x;
Б)Добавление элемента в конец списка. Для этого введем вспомогательную переменную, которая будет хранить адрес последнего элемента. Пусть это будет указатель с именем hv (хвост).
x:= hv;
New( x^. next); {выделяем память для следующего элемента}
x:= x^.next; x^.next:= nil; x^. inf:= 5; hv:=x;