- •Р.К. Ахмадулин технология программирования
- •Оглавление
- •§1. Основные понятия
- •Основные символы языка Паскаль
- •Элементарные конструкции языка Паскаль
- •Примеры записи чисел и выражений на языке Паскаль
- •Вопросы для самопроверки
- •§2. Типы данных
- •Целые типы
- •Вещественные типы
- •Символьный тип
- •Логический тип
- •Скалярные типы, определяемые пользователем
- •Вопросы для самопроверки
- •§3. Операции и выражения
- •Приоритет операций и отношений в выражениях
- •Стандартные (встроенные) функции
- •Вопросы для самопроверки
- •§4. Структура программы
- •Комментарии
- •Директивы компилятора
- •Оформление исходного текста
- •Вопросы для самопроверки
- •§5. Переменные и константы. Оператор присваивания
- •Понятие константы
- •Понятие переменной
- •Оператор присваивания
- •Совместимость типов данных
- •Понятие типизированной константы
- •Вопросы для самопроверки
- •§6. Процедуры ввода и вывода
- •Процедуры вывода
- •Форматированный вывод
- •Процедуры ввода
- •Вопросы для самопроверки
- •§7. Условный оператор и оператор выбора. Оператор перехода
- •Условный оператор if
- •Понятие составного оператора
- •Оператор выбора
- •Оператор перехода
- •Вопросы для самопроверки
- •§8. Операторы цикла
- •Циклы с заданным числом итераций
- •Циклы с предусловием
- •Циклы с постусловием
- •Вопросы для самопроверки
- •§9. Пример использования циклов
- •Вычисление факториала
- •Вычисление суммы по заданной формуле
- •Вычисление суммы по формуле с заданной точностью
- •Вычисление максимального элемента последовательности
- •Вычисление длины последовательности элементов
- •Вопросы для самопроверки
- •§10. Массивы
- •Описание массива
- •Обращение к элементам массива
- •Многомерные массивы
- •Допустимые операции с массивами
- •Инициализация массива
- •Вопросы для самопроверки
- •§11. Алгоритмы сортировки
- •Сортировка выбором
- •Сортировка вставкой
- •Пузырьковая сортировка
- •Улучшенные сортировки
- •Вопросы для самопроверки
- •§12. Строковый тип
- •Описание строковых переменных
- •Операции над строками
- •Процедуры и функции для работы со строками
- •Вопросы для самопроверки
- •§13. Записи
- •Объявление записи
- •Обращение к записям
- •Оператор присоединения with
- •Записи с вариантами
- •Инициализация записи
- •Вопросы для самопроверки
- •§14. Множества
- •Описание множеств
- •Операции над множествами
- •Пример использования множеств
- •Множества как типизированная константы
- •Вопросы для самопроверки
- •§15. Процедуры и функции
- •Понятие процедуры и функции
- •Структура процедуры
- •Структура функции
- •Формальные параметры
- •Глобальные и локальные объекты
- •Вопросы для самопроверки
- •§16. Модули
- •Понятие модуля
- •Стандартные модули в Турбо Паскаль
- •Подключение модулей
- •Структура модуля
- •Вопросы для самопроверки
- •§17. Файлы
- •Понятие файла
- •Процедуры и функции для работы с файлами
- •Понятие буфера ввода-вывода
- •Вопросы для самопроверки
- •§18. Типизированные файлы
- •Описание типизированных файлов
- •Операции над типизированными файлами
- •Последовательный и прямой доступ
- •Вопросы для самопроверки
- •§20. Текстовые файлы
- •Описание типизированных файлов
- •Чтение и запись
- •Конец строки и конец файла
- •Дополнительные процедуры для работы с текстовыми файлами
- •Файлы Input и Output
- •Вопросы для самопроверки
- •§21. Ссылки и указатели
- •Понятие указателя
- •Описание указателей
- •Операции с указателями
- •Выделение и освобождение динамической памяти
- •Вопросы для самопроверки
- •Рекомендуемая литература
- •Технология программирования
- •625000, Тюмень, ул. Володарского, 38
- •625039, Тюмень, ул. Киевская, 52
Вопросы для самопроверки
1. Для чего предназначена процедура Writeln?
2. Чем отличаются процедуры Write и Writeln?
3. Что означает следующая запись на языке Паскаль: Writeln(x: 5: 2)?
4. Что выполнит команда на языке Паскаль Readln(x, y, z)?
5. В каких случаях при вводе-выводе данных используется функция IOResult?
§7. Условный оператор и оператор выбора. Оператор перехода
Обычно операторы выполняются по порядку один за другим. Иногда требуется разорвать такой ход выполнения программы и передать управление произвольному оператору. В таких случаях используется так называемый оператор перехода goto. В других случаях требуется в теле программы организовать ветвления – обрабатывать разные данные по-разному, в зависимости от тех или иных условий. В этих случаях используются условный оператор if и оператор выбора case. Именно об этих перечисленных операторах и пойдет речь далее.
Условный оператор if
Условный оператор if используется в тех случаях, если какие-либо операторы нужно выполнять только при тех или иных условиях.
Другими словами, условный оператор может использоваться для организации в теле программы различных ветвлений (например, если пользователь ввел значение «1», то выполняем первый набор операторов, иначе – второй).
Имеются 2 формы записи условного оператора: короткая и полная.
Короткая форма записи условного оператора выглядит следующим образом:
IF <логическое выражение> THEN <оператор_1>;
Условный оператор в короткой форме работает по правилу: если логическое выражение принимает значение Истина, то выполняется Оператор_1. Далее выполняется оператор, следующий за условным. Если логическое выражение ложно, то будет сразу же выполняться оператор, следующий за этим условным оператором.
Пример: напечатать на экране модуль вводимого пользователем числа
readln(x);
if x<0 then x:=-x;
writeln(‘модуль числа равен:’, x);
Полная форма записи условного оператора выглядит следующим образом:
IF <выражение> THEN <оператор_1> ELSE <оператор_2>;
Условный оператор в полной форме работает по правилу: если логическое выражение принимает значение Истина, то выполняется Оператор_1, далее выполняется оператор, следующий за условным. Если же логическое выражение принимает значение Ложь, то выполняется Оператор_2, далее – следующий за этим условным оператором.
Как видно из пояснений, в такой записи никогда вместе не выполнятся операторы, стоящие после ключевых слов then и else, но всегда будет выполняться один из них.
Обратите внимание: перед ключевым словом else точка с запятой «;» не ставится, т.к. это разорвало бы условный оператор на две части. Также после else не пишут никаких дополнительных условий.
Пример: напечатать на экране модуль вводимого пользователем числа
readln(x);
if x>0 then writeln(x) else writeln(-x);
Условные операторы могут вкладываться в другие условные операторы, в ветвь then или else. Не рекомендуется вкладывать один в другой более трех условных операторов.
Пример: определить, какое значение содержит переменная x.
if x>=0 then if x=0 then writeln(‘нулевое’)
else writeln(‘положительное’) else writeln(‘отрицательное’);
При вложении условных операторов один в другой следует быть аккуратным при создании ветви else: ключевое слово else будет относиться к ближайшему слева условному оператору if, еще не имеющему ветви else. Так, в представленном выше примере else writeln(‘положительное’) относится к оператору if x=0, а ветвь else writeln(‘отрицательное’) – к оператору if x>=0.
Пример: представим предыдущий пример в более понятном для читателя виде:
if x>=0 then
if x=0 then writeln(‘нулевое’) else writeln(‘положительное’)
else writeln(‘отрицательное’);