- •1. Понятие алгоритма и его свойства
- •2.Способы представления алгоритма
- •3. Средства описания языков программирования
- •4. Классификация языков программирования
- •5. Базовые элементы языка Паскаль
- •6.Структура программы
- •7.Стандартные типы данных.Числовые типы.
- •8. Стандартные не числовые типы данных
- •9. Выражения и виды операций
- •10. Стандартные функции
- •10.2 Стандартные функции
- •11. Операторы действия
- •12. Процедуры ввода
- •13. Процедуры вывода
- •14. Структурные операторы. Составной оператор. Условные операторы.
- •15. Операторы цикла.
- •17. Структурированные типы данных. Массивы.
- •18. Строки
- •19. Записи
- •20. Процедуры. Процедуры без параметров. Параметры- значения.
- •21. Процедуры. Параметры-переменные.
- •22. Пользовательские функции
- •23. Рекурсия
- •24. Понятие файла
- •25. Процедуры и функции для работы с файлами
- •26.Текстовые файлы
- •27. Модули
- •28. Распределение памяти при выполнении программ
- •29.Указатели. Ссылочные переменные
- •30. Процедуры для работы со ссылками
- •33. Структурное программирование.
- •34. Нисходящее проектирование программ
23. Рекурсия
При вычислениях возможны случаи, когда подпрограмма обращается к себе самой. Такую ситуацию называют рекурсией.Примером рекурсии служит подпрограмма вычисления факториала натурального числа:n!=система 1, если n=0; (n-1)!n, если n>0 function f(n:integer ):integer; begin if n=0 then f:=l else f:=f (n-l)*n; end; Обращение к данной функции, например, с фактическим параметром 3, влечет следующие действия. Рекурсия.Рекурсия - это процесс, при котором вспомогательный алгоритм (функция или процедура) вызывает самого себя. Программу с рекурсией позволяют реализовать только некоторые языки программирования (в частности Pascal). Рекурсия позволяет свести общую задачу к другой, более простой задаче.Идея, рекурсии основана на использовании рекуррентных соотношений.Рекуррентное соотношение (рекуррентная формула) позволяет легко найти функцию для некоторого значения аргумента я, если известно ее значение для аргумента /7-1. Рекуррентные соотношения существуют для многих математических функций.Определения с помощью рекуррентных формул иногда называют рекурсивными определениями. Достоинства алгоритмов, в которых используются рекурсии: простота, наглядность и компактность, поскольку использование рекурсии позволяет легко (почти дословно) построить алгоритм вычисления по рекуррентным.формулам.Недостаток таких алгоритмов: неэкономное использование оперативной памяти при их реализации на компьютерах.Текущим уровнем рекурсии называется число рекурсивных вызовов в каждый конкретный момент времени.Главное требование к рекурсивным процедурам: вызов рекурсивной процедуры должен выполняться по условию, которое на каком-то уровне рекурсии станет ложным.Если условие истинно, то рекурсивный спуск продолжается Когда оно становится ложным, то спуск заканчивается и начинается поочередный рекурсивный возврат из всех вызванных на данный момент копий рекурсивной процедуры.Безусловные рекурсивные процедуры приводят к бесконечным процессам, и на эту проблему нужно обратить особое внимание, так как практическое использование процедур с бесконечным самовызовом невозможно. Такая невозможность вытекает из того, что для каждой копии рекурсивной процедуры необходимо выделять дополнительную область памяти, а бесконечной памяти не существует.Рекурсии делятся на два вида: прямую и косвенную.При прямой рекурсии во вспомогательном алгоритме осуществляется обращение этого алгоритма к самому себе.
24. Понятие файла
Файл в Паскаль-программе представляет структурированный тип данных, образованный последовательностью компонентов одного типа. В Паскале имеются три разновидности файлов: типизированные, безтиповые и текстовые. Доступ к физическим файлам происходит через так называемые файловые переменные.Для организации ввода/вывода в программе необходимо выполнить следующие действия:- объявить файловую переменную;- открыть файл для чтения и/или записи;- выполнить операции ввода/вывода;- закрыть файл.В любой момент доступен только один компонент файла. Другие компоненты становятся доступными по мере продвижения по файлу, В отличие от массива число компонентов в файле не фиксируется. Его длина определяется в процессе выполнения программы и ограничивается только доступной памятью. Позиция файла, следующая за последним компонентом файла (или первая позиция пустого файла), помечается специальным маркером, который отличается от любого компонента файла. Для работы с файлами используют специальные процедуры и функции. С их помощью осуществляются все необходимые действия по созданию файлов и доступа к их компонентам. Перед выполнением операций файловая переменная связывается с физическим файлом, после чего он в тексте программы не упоминается. В Паскале есть подпрограммы, применяемые для файлов любого типа, а также подпрограммы для работы только с определенными типами файлов. Для эффективного выполнения операций ввода/вывода из внешних файлов в Паскале целесообразно использовать нетипизированные файлы, так как при работе с ними можно использовать быстрые дисковые операции низкого уровня. Нетипизированные файлы дают возможность прямого доступа к любому файлу на диске независимо от его типа и структуры.