- •Программирование на языке Паскаль в среде Turbo Pascal версии 6 и 7
- •Глава 7. Составные типы данных 29
- •Глава 8. Подпрограммы и функции 46
- •Глава 9. Файлы 50
- •Глава 10. Динамические переменные (списки) 58
- •Тип и функциональные возможности языка
- •Структура программы на Паскале
- •Алфавит языка
- •Правила написания имен
- •Структура блока описаний
- •Глава 2. Простые типы данных в языке Паскаль Понятие и классификация типов данных
- •Целочисленные типы
- •Вещественные типы
- •Логический тип
- •Символьный тип
- •Интервальный тип пользователя
- •Перечисляемый тип пользователя
- •Глава 3. Встроенные функции Понятие и классификация типов функций
- •Математические функции
- •Функции преобразования типов
- •Глава 4. Выражения Понятие и классификация типов выражений
- •Арифметические операции
- •Логические операции
- •Отношения
- •Битовые операции
- •Глава 5. Выполняемые операторы языка (для программ линейной структуры) Понятие и классификация
- •Классификация инструкций Паскаля
- •Оператор присваивания
- •Простейшие операторы ввода с клавиатуры
- •Простейшие операторы вывода на экран дисплея
- •Глава 6. Выполняемые управляющие операторы языка Простые управляющие операторы
- •Оператор безусловного перехода.
- •Оператор продолжения цикла.
- •Операторы ветвлений
- •Оператор условного перехода.
- •Неполный условный оператор.
- •Полный условный оператор.
- •Операторы циклов
- •Оператор арифметического цикла
- •Операторы итеративных циклов
- •Организация цикла с помощью условного перехода
- •Оператор итеративного цикла с предусловием
- •Оператор итеративного цикла с постусловием
- •Глава 7. Составные типы данных Классификация составных типов
- •Массивы Основные определения
- •Вывод массива
- •Примеры программ работы с массивами
- •Сортировки массива
- •Алгоритмы основных методов сортировок
- •Строки Строковые переменные
- •Стандартные (встроенные) процедуры работы со строками
- •Стандартные (встроенные) функции работы со строками
- •Структуры
- •Глава 8. Подпрограммы и функции Понятие подпрограмм в языке Паскаль.
- •Процедуры.
- •Описание и вызов функций
- •Параметры процедур и функций
- •Глава 9. Файлы Классификация внешних данных
- •Стандартные процедуры работы с файлами
- •Процедуры
- •Функции
- •Особенности работы с текстовыми файлами
- •Пример работы с текстовыми файлами.
- •Двоичные файлы (в машинных кодах) Типизированные файлы
- •Процедуры при работе с типизированными файлами
- •Функции при работе с типизированными файлами
- •Пример работы с типизированными файлами.
- •Файлы без типов
- •Процедуры, используемые при работе с нетипизированными файлами
- •Функции, используемые при работе с нетипизированными файлами.
- •Глава 10. Динамические переменные (списки) Понятие динамических переменных
- •Списочные данные
- •Односвязные списки
- •Двусвязные списки
- •Нульсвязные списки
- •Глава 11.Стандартный модуль работы с текстовым экраном Crt
- •2) Координаты экрана
- •3) Управление графическим режимом
- •4) Управление экраном и окном
- •5) Управление цветом
- •6) Вывод точек
- •7) Вывод линий
- •8) Вывод и закраска контуров
- •9) Окружности, эллипсы, дуги
- •10) Вывод текста
- •11) Последовательность работ при использовании графического режима
- •11) Пример программы приложения
Глава 5. Выполняемые операторы языка (для программ линейной структуры) Понятие и классификация
Программа на Паскале представляет собой последовательность операторов, часть которых служит для описания данных и других объектов программы, а остальные служат для реализации алгоритма решения задачи. Кроме операторов в тексте программ могут встречаться комментарии и директивы компилятору. Рассмотрим основные группы предложений (инструкций) Паскаля
Классификация инструкций Паскаля
Рисунок 1.
Классификация инструкций Паскаля
Операторы - это инструкции, подлежащие переводу в машинные команды, директивы - инструкции, управляющие работой компилятора, а комментарии - инструкции для людей, дающие пояснения по работе программы. Разделение операторов на выполняемые и не выполняемые связано с описанием шагов алгоритма и распределением памяти для задачи. Предложенная классификация типична для алгоритмических языков. Обычно богатство и гибкость языка связана с наличием разнообразных операторов в каждом разделе.
Рассмотрим сначала выполняемые операторы.
Оператор присваивания
Полое название оператора – Оператор присваивания нового значения переменой.
Оператор присваивания - основной оператор любого языка программирования, т.к. именно он позволяет получить новые данные по уже имеющимся. Фактически он состоит из трех частей: вычисления значения выражения, записанного в правой части оператора; необязательного преобразования результата к типу переменной, имя которой записано в левой части оператора; записи приведенного результата в область памяти, занимаемую этой переменной. Правая и левая части оператора разделены знаком ":=".
Формат оператора:
<имя переменной> := <выражение>;
Оператору присваивания в блок-схеме соответствует блок процесс:
Рисунок 2.
Изображение присваивания в блок-схеме
Примеры:
Name := 'Иванов';
InformBall := 5;
X1:= (-B -sqrt(sqr(B)-4.0*A*C))/2.0/A;
Язык Паскаль требует, чтобы тип выражения соответствовал типу переменной, допускаются только различия внутри числового арифметического типа, например выражение целое беззнаковое двухбайтовое, а переменная целая знаковая четырехбайтовая, или выражение целочисленное, а переменная - вещественная и т.д. Именно в этом случае производится преобразование к типу переменной. Если типы принципиально различные, компилятор не транслирует такой оператор, а сообщает об ошибке.
Оператор присваивания не содержит в себе никаких других операторов. Такой тип операторов называют часто простым. Однако, простая форма записи оператора присваивания не означает, что эти операторы всегда пишут правильно - выражения иногда бывают очень сложными, в них допускаются ошибки, кроме того язык позволяет присваивание любых типов данных (кроме файловых), и здесь часто нарушают соответствие типов правой и левой частей оператора.
Лекция 13
Простейшие операторы ввода с клавиатуры
Если оператор присваивания реализует основную функцию обработки информации с помощью ЭВМ - преобразование данных, то вспомогательные функции реализуются операторами ввода и вывода. Рассмотрим простейшие операторы ввода и вывода в Паскале. Строго говоря, язык не имеет операторов ввода и вывода, а использует для этого специальные процедуры. Однако, традиционно такие простейшие процедуры рассматривают как операторы.
Оператор ввода (а точнее, процедура ввода) может вводить данные в оперативную память или из файла или с клавиатуры. При вводе с клавиатуры процедура имеет вид:
Read(<список переменных>); или
Readln(<список переменных>);
Список переменных представляет собой перечень имен переменных через запятую, в которые заносятся вводимые значения. Очевидно, что список значений и список имен должны соответствовать друг другу по типам и порядку следования элементов списков. Отличие в этих процедурах проявляется только при вводе данных из файла. Оно заключается в том, что при втором варианте после ввода выполняется переход на новую запись файла, даже если в текущей записи данные не кончились.
Вводу данных в блок схеме соответствует блок ввод:
Рисунок 3.
Изображение простейшего ввода в
блок-схеме
Примеры:
Read(N); {программа ждет, пока не будет набрано число на клавиатуре и не нажата клавиша <Enter>, после чего переменная с именем N получит набранное значение}
Read(A,B,C); {необходимо набрать через пробел три числа и нажать <Enter>, первое попадет в ячейку с именем A и т.д.}
Нельзя в списке имен писать константы или выражения.
Если в программе требуется выполнить ввод данных с клавиатуры, предварительно следует предусмотреть команды вывода на экран запроса, какие параметры и в каком порядке пользователь должен вводить, например:
Writeln('задай коэффициенты уравнения: A,B,C');
Readln(A,B,C);
или
Writeln('Сколько вариантов будем считать?');
Readln(N);