- •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 с параметром
- •Вложенные циклы
- •Взаимозаменяемость циклов различных видов
- •Дополнительные конструкции переходов для циклов
- •«Вечные» циклы
- •Простейшие алгоритмы
- •Вычисление суммы и произведения
- •Организация счетчика
- •Нахождение наибольшего и наименьшего значений
- •Рекуррентные последовательности
- •Итерационные алгоритмы
- •Подпрограммы (процедуры и функции)
- •Понятие подпрограммы, ее описания и вызова
- •Цели введения подпрограмм
- •Способы передачи параметров. Виды параметров
- •Параметры-значения
- •Параметры-переменные
- •Параметры-константы
- •Корректность передачи параметров
- •Досрочное завершение работы программы и подпрограммы
- •Реализация вызова подпрограммы
- •Область действия и время жизни идентификаторов
- •Правила видимости
- •Время жизни идентификаторов
- •Побочный эффект функции
- •Массивы
- •Описание переменных-массивов
- •Обозначение элементов массива
- •Двумерные массивы – матрицы
- •Трехмерные массивы
- •Типизированные константы-массивы
- •Операции над массивами
- •Именная эквивалентность типов
- •Передача массива в качестве параметра
- •Открытые массивы
- •Типичные задачи для одномерных массивов
- •Поиск заданного элемента в массиве
- •Анализ методов поиска по количеству операций сравнения
- •Двумерные массивы – матрицы
- •Трехмерные массивы
- •Сортировки массивов
- •Понятие сортировки
- •Параметры оценки алгоритмов
- •Сортировка простым включением (простыми вставками) Принцип сортировки включением
- •Сортировка простым выбором Принцип сортировки выбором
- •Сортировка простым обменом (метод пузырька) Принцип сортировки обменом
- •Сравнение эффективности базовых методов сортировки
- •Использование индексных массивов при сортировке
- •Рекурсия
- •Что такое рекурсия
- •Рекурсивные подпрограммы
- •Прямая и косвенная рекурсия
- •Предварительное (опережающее) описание подпрограммы
- •Опасности рекурсии
- •Бесконечная рекурсия
- •Итерация и рекурсия. Необоснованное применение рекурсии
- •Глубокая рекурсия
- •Когда использовать рекурсию
- •Формы рекурсивных подпрограмм
- •Примеры рекурсивных программ
- •Ввод последовательности целых чисел, заканчивающейся нулем, вывод в обратном порядке
- •Поиск максимального элемента массива
- •Задача о Ханойских башнях
- •Символьные и строковые типы данных
- •Символьные типы данных
- •Представление символов в памяти компьютера
- •Символьные константы и переменные Неименованные символьные константы
- •Стандартные функции над символами
- •Строковые типы данных
- •Строковые типы. Представление строк в памяти компьютера
- •Стандартные функции и процедуры для строк
- •Выделение слов из строки
-
Оператор ввода с клавиатуры
Ввод данных с клавиатуры в переменные осуществляется с помощью процедур ввода READ и READLN:
READ(список переменных); READLN(список переменных)
Например, READ(i,j,k); READLN(name)
Тип каждого вводимого значения должен быть совместим по присваиванию с типом переменной.
Оператор READ удобен для ввода последовательности чисел, т.к. можно не заботиться о том, сколько чисел набирать в строке. После ввода он оставляет курсор в той же строке. Если количество набранных в строке чисел больше количества переменных, то лишние числа можно ввести следующим оператором READ, а если в строке набрано меньше чисел, то остальные можно набрать в другой строке.
Оператор READLN после выполнения ввода переходит на новую строку, лишние значения уже нельзя ввести нижеследующим оператором READ или READLN.
READLN без параметров используется в качестве паузы при работе программы; после нажатия на Enter программа продолжает выполнение.
Для ввода строк лучше использовать READLN, указывая только одну строковую переменную.
-
Оператор вывода на экран монитора
Вывод значений на экран выполняется процедурами write и writeln:
write(список выражений); writeln(список выражений);
Например: writeln(’Площадь круга=', pi*R*R)
В текущую строку экрана выводятся одно за другим значения выражений после их вычисления. После вывода по write курсор остается в той же строке, после вывода по writeln – переходит на новую строку.
Оператор writeln без параметров используется для перехода на новую строку.
Форматный вывод
Для каждого выводимого выражения можно указать ширину поля вывода, т.е. количество позиций для выдачи значения, например: write(x:6)
Если ширина поля больше количества символов в изображении значения, изображение дополнится пробелами слева;
Если изображение значения не помещается в поле вывода, формат игнорируется.
Вещественные числа в этом формате и без указания формата выводятся в форме с плавающей запятой.
Для выдачи вещественных чисел с фиксированной точкой указывают ширину поля вывода и количество знаков после десятичной точки: например, write(x:8:5)
Если указать больше знаков после точки, чем есть ненулевых цифр в числе, дробная часть дополняется нулями справа до указанного количества. Если указать меньше, дробная часть округляется.
-
Условный оператор (оператор альтернативы)
Условный оператор выбирает для исполнения один из двух возможных операторов в зависимости от значения условия, которое является логическим выражением.
IF условие THEN оператор1 ELSE оператор2
Если значение условия равно TRUE, выполняется оператор1, иначе (т.е. значение условия равно FALSE) выполняется оператор2.
Условный оператор может быть неполным, т.е. часть ELSE может отсутствовать:
IF условие THEN оператор
Если условие в неполном операторе не выполняется, он заканчивает работу, например:
if x<>0 then y:=Sin(x)/x
Условные операторы могут быть «вложенными», когда после else в качестве оператора используется новый условный оператор:
if условие1 then оператор1 else if условие2 then оператор2 else if условие3 then оператор3
Во «вложенных» условных операторах каждому else соответствует ближайший слева по тексту then.
Пример. Вычислить
if (x>=a)and(x<=b) then y:=f1(x) else if(x>=c)and(x<=d) then y:=f2(x) else y:=f3(x) |