- •35 Жегуло а.И. Компьютерные науки 2010-2011 гг. Компьютерные науки Лекции для студентов 1 курса, 2010-2011 уч. Г., семестр 1
- •1. Основные понятия 3
- •2. Введение в язык программирования Pascal 3
- •7. Массивы 16
- •8. Сортировки массивов 22
- •9. Рекурсия 25
- •1. Символьные и строковые типы данных 31
- •Основные понятия
- •Способы описания алгоритма:
- •Введение в язык программирования Pascal
- •Структура программы на языке Pascal
- •Правила записи программ
- •Стиль программирования
- •Переменные и константы. Понятие типа данных
- •Классификация типов данных
- •Стандартные простые типы данных
- •Целые типы
- •Вещественные типы
- •Логические (булевские) типы
- •Перечисляемые типы
- •Интервальные типы
- •Порядковые типы
- •Описание данных
- •Описание переменных
- •Описание констант
- •Описание типизированных констант
- •Выражения
- •Операции отношения
- •Приоритеты операций
- •Арифметические выражения
- •Логические выражения
- •Операторы
- •Оператор присваивания
- •Оператор ввода с клавиатуры
- •Оператор вывода на экран монитора
- •Форматный вывод
- •Условный оператор (оператор альтернативы)
- •Составной оператор
- •Оператор выбора
- •Оператор цикла с предусловием while
- •Оператор цикла с постусловием repeat
- •Оператор цикла for с параметром
- •Вложенные циклы
- •Взаимозаменяемость циклов различных видов
- •Дополнительные конструкции переходов для циклов
- •«Вечные» циклы
- •Простейшие алгоритмы
- •Вычисление суммы и произведения
- •Организация счетчика
- •Нахождение наибольшего и наименьшего значений
- •Рекуррентные последовательности
- •Итерационные алгоритмы
- •Подпрограммы (процедуры и функции)
- •Понятие подпрограммы, ее описания и вызова
- •Цели введения подпрограмм
- •Способы передачи параметров. Виды параметров
- •Параметры-значения
- •Параметры-переменные
- •Параметры-константы
- •Корректность передачи параметров
- •Досрочное завершение работы программы и подпрограммы
- •Реализация вызова подпрограммы
- •Область действия и время жизни идентификаторов
- •Правила видимости
- •Время жизни идентификаторов
- •Побочный эффект функции
- •Массивы
- •Описание переменных-массивов
- •Обозначение элементов массива
- •Двумерные массивы – матрицы
- •Трехмерные массивы
- •Типизированные константы-массивы
- •Операции над массивами
- •Именная эквивалентность типов
- •Передача массива в качестве параметра
- •Открытые массивы
- •Типичные задачи для одномерных массивов
- •Поиск заданного элемента в массиве
- •Анализ методов поиска по количеству операций сравнения
- •Двумерные массивы – матрицы
- •Трехмерные массивы
- •Сортировки массивов
- •Понятие сортировки
- •Параметры оценки алгоритмов
- •Сортировка простым включением (простыми вставками) Принцип сортировки включением
- •Сортировка простым выбором Принцип сортировки выбором
- •Сортировка простым обменом (метод пузырька) Принцип сортировки обменом
- •Сравнение эффективности базовых методов сортировки
- •Использование индексных массивов при сортировке
- •Рекурсия
- •Что такое рекурсия
- •Рекурсивные подпрограммы
- •Прямая и косвенная рекурсия
- •Предварительное (опережающее) описание подпрограммы
- •Опасности рекурсии
- •Бесконечная рекурсия
- •Итерация и рекурсия. Необоснованное применение рекурсии
- •Глубокая рекурсия
- •Когда использовать рекурсию
- •Формы рекурсивных подпрограмм
- •Примеры рекурсивных программ
- •Ввод последовательности целых чисел, заканчивающейся нулем, вывод в обратном порядке
- •Поиск максимального элемента массива
- •Задача о Ханойских башнях
- •Символьные и строковые типы данных
- •Символьные типы данных
- •Представление символов в памяти компьютера
- •Символьные константы и переменные Неименованные символьные константы
- •Стандартные функции над символами
- •Строковые типы данных
- •Строковые типы. Представление строк в памяти компьютера
- •Стандартные функции и процедуры для строк
- •Выделение слов из строки
-
Корректность передачи параметров
Корректность передачи параметров обеспечивается следующим:
-
порядок перечисления формальных параметров в заголовке описания подпрограммы и фактических параметров при вызове подпрограммы должен быть одинаковым;
-
если параметр передается по значению, типы формального параметра и соответствующего фактического параметра должны быть совместимы по присваиванию;
-
если параметр передается по адресу, типы формального и фактического параметров должны быть эквивалентны.
-
Досрочное завершение работы программы и подпрограммы
Досрочно выйти из подпрограммы можно, вызвав стандартную процедуру exit. При использовании exit непосредственно в теле программы она завершается (так же, как при использовании процедуры halt).
-
Реализация вызова подпрограммы
Вызов подпрограмм реализуется с использованием программного стека специальной области памяти, куда для каждой вызванной подпрограммы помещаются адреса или значения фактических параметров, адрес возврата в точку вызова, а также отводится место под локальные переменные подпрограммы.
После завершения работы подпрограммы отведенное ей место в программном стеке освобождается, происходит возврат в точку вызова. Если вызывалась функция, результат ее работы возвращается в выражение, содержащее вызов этой функции.
Так как подпрограммы могут вызывать друг друга, в стеке могут находиться записи нескольких вызванных подпрограмм. Подпрограмма, вызванная последней, первой завершает свою работу.
-
Область действия и время жизни идентификаторов
Областью действия идентификатора (сферой видимости) называется часть программы или подпрограммы, где идентификатор может использоваться. Границы области действия определяются местом объявления (описания) идентификатора.
Глобальным называется идентификатор, объявленный в программе.
Локальным называется идентификатор, объявленный в той подпрограмме, где он используется.
Язык Pascal допускает описание вложенных подпрограмм, т.е. помещение подпрограмм внутрь других подпрограмм. Такие вложенные подпрограммы могут использоваться только в той подпрограмме, в которой они описаны. Это можно использовать для более логичной структуризации программы.
Правила видимости
-
Глобальный идентификатор может использоваться в любом месте программы, в том числе во всех подпрограммах программы.
-
Локальный идентификатор может использоваться в той подпрограмме, где он объявлен, и во всех вложенных в нее подпрограммах. Для этих внутренних подпрограмм он называется внешним идентификатором.
-
Формальные параметры считаются локальными в той подпрограмме, где они описаны.
-
Идентификатор в любой подпрограмме должен быть уникальным, но в разных подпрограммах можно объявлять одинаковые идентификаторы.
-
В каждом месте программы действует ближайшее по вложенности описание. Объекты с такими же идентификаторами из объемлющих подпрограмм или из программы становятся недоступными.
Время жизни идентификаторов
Время жизни это интервал времени выполнения программы, в течение которого переменная или подпрограмма существуют. Время жизни переменной может быть локальным или глобальным. Переменная с глобальным временем жизни имеет выделенную для нее память и определенное значение на протяжении всего времени выполнения программы, начиная с момента выполнения объявления этой переменной. Переменная с локальным временем жизни имеет выделенную для него память и определенное значение только во время выполнения подпрограммы, в котором эта переменная объявлена. При каждом вызове подпрограммы для локальной переменной выделяется новая память в стеке подпрограмм, которая освобождается при выходе из подпрограммы.