- •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 с параметром
- •Вложенные циклы
- •Взаимозаменяемость циклов различных видов
- •Дополнительные конструкции переходов для циклов
- •«Вечные» циклы
- •Простейшие алгоритмы
- •Вычисление суммы и произведения
- •Организация счетчика
- •Нахождение наибольшего и наименьшего значений
- •Рекуррентные последовательности
- •Итерационные алгоритмы
- •Подпрограммы (процедуры и функции)
- •Понятие подпрограммы, ее описания и вызова
- •Цели введения подпрограмм
- •Способы передачи параметров. Виды параметров
- •Параметры-значения
- •Параметры-переменные
- •Параметры-константы
- •Корректность передачи параметров
- •Досрочное завершение работы программы и подпрограммы
- •Реализация вызова подпрограммы
- •Область действия и время жизни идентификаторов
- •Правила видимости
- •Время жизни идентификаторов
- •Побочный эффект функции
- •Массивы
- •Описание переменных-массивов
- •Обозначение элементов массива
- •Двумерные массивы – матрицы
- •Трехмерные массивы
- •Типизированные константы-массивы
- •Операции над массивами
- •Именная эквивалентность типов
- •Передача массива в качестве параметра
- •Открытые массивы
- •Типичные задачи для одномерных массивов
- •Поиск заданного элемента в массиве
- •Анализ методов поиска по количеству операций сравнения
- •Двумерные массивы – матрицы
- •Трехмерные массивы
- •Сортировки массивов
- •Понятие сортировки
- •Параметры оценки алгоритмов
- •Сортировка простым включением (простыми вставками) Принцип сортировки включением
- •Сортировка простым выбором Принцип сортировки выбором
- •Сортировка простым обменом (метод пузырька) Принцип сортировки обменом
- •Сравнение эффективности базовых методов сортировки
- •Использование индексных массивов при сортировке
- •Рекурсия
- •Что такое рекурсия
- •Рекурсивные подпрограммы
- •Прямая и косвенная рекурсия
- •Предварительное (опережающее) описание подпрограммы
- •Опасности рекурсии
- •Бесконечная рекурсия
- •Итерация и рекурсия. Необоснованное применение рекурсии
- •Глубокая рекурсия
- •Когда использовать рекурсию
- •Формы рекурсивных подпрограмм
- •Примеры рекурсивных программ
- •Ввод последовательности целых чисел, заканчивающейся нулем, вывод в обратном порядке
- •Поиск максимального элемента массива
- •Задача о Ханойских башнях
- •Символьные и строковые типы данных
- •Символьные типы данных
- •Представление символов в памяти компьютера
- •Символьные константы и переменные Неименованные символьные константы
- •Стандартные функции над символами
- •Строковые типы данных
- •Строковые типы. Представление строк в памяти компьютера
- •Стандартные функции и процедуры для строк
- •Выделение слов из строки
-
Стиль программирования
Стиль программирования это набор правил, которых придерживается программист. Хороший стиль предполагает:
-
использование комментариев;
-
использование несущих смысловую нагрузку имен всех объектов программы;
-
расположение каждого оператора на отдельной строке программы;
-
использование отступов при записи операторов if, case, for, repeat, while; при этом служебные слова then и else, begin и end следует размещать одно под другим;
-
использование пустых строк для отделения смысловых фрагментов программы.
Следование правилам хорошего стиля программирования значительно уменьшает вероятность появления ошибок на этапе набора текста, делает программу легко читаемой, а это облегчает процессы отладки и внесения изменений.
Хорошая программа должна быть не только правильно записана, она должна быть надежной и дружественной по отношению к пользователю.
Надежность подразумевает, что программа, не полагаясь на «разумное» поведение пользователя, контролирует исходные данные, проверяет результат выполнения операций, которые по какой-либо причине могут быть не выполнены (например, операции с файлами).
Дружественность предполагает хорошо спроектированный интерфейс с пользователем, разумное и предсказуемое, с точки зрения пользователя, поведение программы.
-
Переменные и константы. Понятие типа данных
Данные в программе представлены в виде переменных и констант.
Переменной называется величина, значение которой может изменяться в процессе выполнения программы.
Константой называется величина, значение которой не изменяется в процессе исполнения программы, оставаясь одним и тем же, указанным в тексте программы.
Каждая переменная, константа, значение выражения, результат функции имеют определенный тип.
Тип данных определяет множество значений и множество операций над этими значениями. Тип данных влияет также на формат внутреннего представления значений в памяти компьютера и на реализацию операций над значениями.
Функция sizeof(имя_типа) выдает количество байт, занимаемых значениями указанного типа.
-
Классификация типов данных
Язык Pascal характеризуется большим разнообразием типов данных (см. рисунок). Это даёт программисту возможность выбирать типы данных, более естественно отражающие структуры данных программируемой задачи.
Простые типы определяют значения, которые не имеют внутренней структуры. К ним относятся числовые типы (целые и вещественные), логические, символьные, перечисляемые и интервальные типы.
Структурированные типы задают определенный способ образования новых типов из уже имеющихся, причем структурированные значения могут состоять из значений как простых, так и структурированных типов. Структурированными типами являются массивы, строки, множества, записи и файлы.
Все типы данных подразделяются на два вида:
-
Стандартные типы – встроены в язык, каждый имеет стандартный идентификатор. Это целые, логические, символьные и вещественные типы;
-
Пользовательские типы – объявляются программистом в разделе описаний типов type. Идентификатор типа задает программист при объявлении типа. Это перечисляемые и интервальные типы, все структурированные типы, типизированные указатели и процедурные типы.