Лин и разветвл алгоритмы
.pdfМинистерство образования и науки Российской Федерации
Государственное образовательное учреждение высшего профессионального образования
«Сибирский государственный индустриальный университет»
Кафедра прикладной информатики
ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ
ИРАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ
ВOBJECT PASCAL
Методические указания к выполнению лабораторной работы по дисциплине «Информатика»
Специальности: Промышленное и гражданское строительство (270102)
Городское строительство и хозяйство (270105) Производство строительных материалов, изделий и конструкций (270106)
Теплогазоснабжение и вентиляция (270109) Водоснабжение и водоотведение (270112)
Проектирование зданий (270114) Экспертиза и управление недвижимостью (270115)
Новокузнецк
2011
УДК 004.43(07) П784
Рецензент Кафедра информационных технологий в металлургии
ГОУ ВПО СибГИУ (Зав. кафедрой д.т.н., профессор В.П. Цымбал)
П784 Программирование линейных и разветвляющихся алгоритмов в Object Pascal. Метод. указ. / Сост. Л.Д. Павлова, О.А. Кондратова : СибГИУ. – Новокузнецк, 2011. – 27 с.
Рассмотрены базовые понятия алгоритмического языка Object Pascal, описаны операторы, предназначенные для программирования линейных и разветвляющихся алгоритмов, приведены задания для самостоятельной работы.
Предназначена для студентов специальностей: Промышленное и гражданское строительство (270102), Городское строительство и хозяйство (270105), Производство строительных материалов, изделий и конструкций (270106), Теплогазоснабжение и вентиляция (270109), Водоснабжение и водоотведение (270112), Проектирование зданий (270114), Экспертиза и управление недвижимостью (270115), а также может быть рекомендована для студентов других специальностей.
СОДЕРЖАНИЕ |
|
ОБЩИЕ СВЕДЕНИЯ................................................................................ |
4 |
ОСНОВНЫЕ СИМВОЛЫ........................................................................ |
5 |
СТРУКТУРА ПРОГРАММЫ .................................................................. |
6 |
ДАННЫЕ................................................................................................... |
7 |
Константы........................................................................................... |
7 |
Переменные........................................................................................ |
8 |
ВЫРАЖЕНИЯ........................................................................................... |
9 |
Арифметические выражения.......................................................... |
10 |
Выражения отношения.................................................................... |
12 |
Логические выражения.................................................................... |
12 |
ОПЕРАТОРЫ.......................................................................................... |
13 |
Оператор присваивания................................................................... |
13 |
Условный оператор.......................................................................... |
14 |
Оператор обращения ....................................................................... |
14 |
ОРГАНИЗАЦИЯ ВВОДА/ВЫВОДА ДАННЫХ................................. |
15 |
Ввод данных..................................................................................... |
15 |
Вывод данных .................................................................................. |
16 |
ПРИМЕР ВЫПОЛНЕНИЯ ЗАДАНИЯ................................................. |
18 |
Задача 1 ............................................................................................. |
18 |
Задача 2 ............................................................................................. |
19 |
Задача 3 ............................................................................................. |
19 |
РЕАЛИЗАЦИЯ ПРОГРАММЫ В КОНСОЛЬНОМ ПРИЛОЖЕНИИ |
|
DELPHI .................................................................................................... |
20 |
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ........................... |
24 |
Программирование линейных алгоритмов.................................... |
24 |
Программирование разветвляющихся алгоритмов....................... |
25 |
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ.................................................... |
27 |
СПИСОК ЛИТЕРАТУРЫ ...................................................................... |
27 |
3
ОБЩИЕ СВЕДЕНИЯ
Цель работы − изучить основные понятия алгоритмического языка Object Pascal и операторы, которые используются для программирования линейных и разветвляющихся алгоритмов.
Object Pascal используется в качестве внутреннего языка программирования интегрированной среды разработки приложений Delphi. Основные отличия Object Pascal от языка программирования Pascal заключаются в том, что в Object Pascal имеются объектноориентированные свойства для работы с объектами и динамическая идентификация типа данных с возможностью доступа к описанию классов в компилируемом коде.
Все классы Object Pascal порождены от единственного родителя - класса TObject. Этот класс не имеет полей и свойств, но включает в себя методы самого общего назначения, обеспечивающие весь жизненный цикл любых объектов - от их создания до уничтожения.
Принцип наследования приводит к созданию ветвящегося дерева классов, постепенно разрастающегося при перемещении от класса TObject к его потомкам. Порожденный класс автоматически наследует поля, методы и свойства своего родителя и может добавлять к ним новые. Библиотека визуальных компонентов представляет собой иерархию классов, написанных на языке Object Pascal и объединенных в среде Delphi. Таким образом обеспечивается поэтапное создание объектов и классов, что дает возможность достаточно быстро разрабатывать приложения.
4
ОСНОВНЫЕ СИМВОЛЫ
Алфавит языка Object Pascal включает буквы, цифры, специальные символы, пробелы, слова.
Буквы – это буквы латинского алфавита: строчные от a до z, прописные от A до Z, а также знак подчеркивания «_». Между строчными и прописными буквами нет различия за исключением их использования в символьных и строковых выражениях.
Цифры – это арабские цифры от 0 до 9. Специальные символы – это символы
+ - * / = , ' . : ; < > [ ] ( ) { } ^ @ $ #
К специальным символам также относятся пары символов
< > < = > = : = (* *) (. .)
Пары символов нельзя разделять пробелами, если они используются как знаки операций отношения или ограничители комментария.
Пробелы – это символы, которые рассматриваются как ограничители идентификаторов, констант, чисел, зарезервированных слов.
Слова – это неделимые последовательности символов из алфавита языка, несущие в программе определенный смысл. Различают следующие виды слов: зарезервированные слова, стандартные идентификаторы, идентификаторы пользователя.
Зарезервированные слова – это ключевые слова, которые определены при разработке языка, например PROGRAM, BEGIN, VAR, END. Зарезервированные слова не могут быть переопределены и их нельзя использовать в программе в качестве идентификаторов.
Стандартные идентификаторы используются для объявления в программе имен констант, типов, процедур и функций, определенных при разработке языка, например: Pi, Integer, Real, Readln, Write, Sin, Exp. Стандартные идентификаторы при необходимости могут быть переопределены.
Зарезервированные слова и стандартные директивы в окне кода программы выделяются жирным шрифтом.
Идентификаторы пользователя - это имена констант, переменных, меток, типов, процедур, функций, полей, объектов, модулей, программ, определяемые пользователем при разработке программы.
5
Правила записи идентификаторов:
−идентификатор начинается всегда с буквы;
−идентификатор может состоять из букв латинского алфавита (как строчных, так и прописных), цифр, знака подчеркивания,
−никакие другие символы в записи идентификаторов не допустимы;
−в записи идентификаторов не допускается использование надстрочных и подстрочных индексов;
−имя идентификатора не должно совпадать с именами зарезервированных слов;
−длина идентификатора может быть произвольной, но значимыми являются только первые 63 символа.
Примеры записи идентификаторов пользователя: Alfa, Betta, fi, Sigma, a_1, a_2, c0, x1,y1.
СТРУКТУРА ПРОГРАММЫ
Программа состоит из заголовка, раздела описаний и раздела операторов:
{Заголовок программы} PROGRAM <имя программы>; {Раздел описаний}
LABEL <списокметок>;
CONST <имя константы> = <значение константы>; TYPE <имя типа> = <описание типа>;
VAR <список имен переменных> : <имя типа>; {Раздел операторов}
BEGIN
<оператор 1>; <оператор 2>;
…
<оператор N>
END.
Заголовок состоит из зарезервированного слова PROGRAM, за которым следует имя программы (идентификатор пользователя).
Раздел описаний содержит определение всех идентификаторов, используемых в разделе операторов. В разделе описаний объявляются идентификаторы меток (LABEL), констант (CONST), типов и объектов (TYPE), переменных (VAR), процедур и функций (указывается заголовок и тело процедуры или функции).
6
Разделы могут следовать друг за другом в любом порядке, встречаться в разделе описаний несколько раз или вообще отсутствовать.
Раздел операторов состоит из последовательности исполняемых операторов. Раздел операторов заключается в операторные скобки: начинается с зарезервированного слова BEGIN и заканчивается зарезервированным словом END.
Конец оператора или описания отмечается разделителем «;». Этот разделитель позволяет записывать несколько операторов в одной строке. Допускается перенос с одной строки на другую разделов описаний и операторов. Не разрешается разделять зарезервированные слова, идентификаторы, константы и составные символы.
Конец программы отмечается символом «.». Текст программы, размещенный за символом «.», компилятором не обрабатывается.
В программе допускается использование комментариев для записи пояснительного текста. Комментарий заключается в фигурные скобки и может содержать произвольную последовательность символов, включая буквы русского алфавита. Комментарий игнорируется компилятором, поэтому может располагаться в любом месте программы.
ДАННЫЕ
Данные – это величины, значения которых определены по условию задачи или вычисляются в процессе ее выполнения.
Различают следующие виды данных: константы, переменные.
Константы
Константы – это постоянные величины, которые не изменяют своего значения в процессе выполнения программы. Различают следующие виды констант: числовые, логические, символьные, строковые.
Числовые константы записываются в шестнадцатеричной или десятичной системах счисления.
Вшестнадцатеричной системе счисления перед числовым значением указывается знак $, например: $12F, $A4C.
Вдесятичной системе счисления числовые константы могут быть записаны в форме с фиксированной точкой или в форме с плавающей точкой.
7
Вформе с фиксированной точкой целые числа записываются со знаком или без него (знак + можно опускать) и принимают значения от -2147483648 до +2147483647, например: -100; 1230. Если целочисленная константа выходит за указанные границы, компилятор выдает сообщение об ошибке.
Вещественные числа записываются со знаком или без него (знак
+можно опускать) с использованием десятичной точки, которая отделяет целую часть числа от дробной, например: -7.2; 18.45.
Вформе с плавающей точкой целые или вещественные числа записываются со знаком или без него с использованием мантиссы и экспоненциальной части. Мантисса содержит все цифры в записи числа. Экспоненциальная часть содержит символ Е (десятичное основание), за которым следуют знаки «±» и десятичный порядок, который показывает насколько разрядов необходимо осуществить сдвиг влево или вправо, чтобы получить естественное представление числового значения, например: 57E-04, -0.723E+05.
Логическая константа – это величина, которая может принимать значение True (истина) или False (ложь).
Символьная константа – это произвольный символ, заключенный в апострофы, например: ' f ', ' Б ', ' 5 '.
Строковая константа – это последовательность произвольных символов, заключенная в апострофы, например: ' Исходные данные: ', ' x = ', ' Результат: '.
Значения констант могут быть заданы предварительно в разделе описания констант.
Формат описания констант:
CONST < идентификатор > = < выражение >;
Пример описания констант:
CONST g = 9.81;
Ln10 = 2.302585092994; f = False;
c = ' * ';
Переменные
Переменные – это величины, которые могут изменять свои значения в процессе выполнения программы. Все переменные, используемые в программе, обязательно должны быть описаны в разделе описания переменных. Для описания необходимо указать идентификатор переменной и тип.
8
Тип определяет форму представления данного в памяти компьютера, множество допустимых значений и множество допустимых опреаций над величинами этого типа.
Простые типы позволяют описать данные следующих типов: Integer - целочисленные данные; длина 2 байта; диапазон
значений от -32768 до +32767; данные представляются точно;
Real – вещественные данные; длина 6 байт; диапазон значений модуля от 2.9Е-39 до 1.7Е+38; точность представления данных 11-12 значащих цифр;
Char – символьные данные; длина 1 байт; диапазон значений кодов символов от 0 до 255;
String – строка символов; длина Мах+1 байт, где Мах – максимальное число символов в строке (Мах ≤ 255);
Boolean – логический тип; длина 1 байт; имеет два значения: False (ложь) и True (истина).
Формат описания переменных:
VAR < список идентификаторов > : < имя типа > ;
Пример описания переменных:
VAR A, B, X: Real; K, L: Integer; F: Boolean; С: Char;
ВЫРАЖЕНИЯ
Основными видами данных, из которых формируется исполняемая часть программы, являются константы, переменные и обращения к функциям. Данные характеризуются своими значениями и принадлежат к определенному типу.
Выражения позволяют задавать действия, которые необходимо выполнить над данными. В общем случае выражение состоит из операндов, операций и скобок.
Операнды – это данные, над которыми выполняются действия. Операндами могут быть константы, переменные, обращения к функциям.
Операции – это действия, которые нужно выполнить над операндами. Порядок выполнения операций в выражении называется приоритетом. Выполнение каждой операции происходит с учетом ее приоритета (таблица 1).
9
Таблица 1 – Приоритет операций
Вид операции |
Обозначение |
Приоритет |
|
операции |
|
Унарная операция |
@, not |
Первый (высший) |
Операции типа умножения |
*, /, div, mod, and |
Второй |
Операции типа сложения |
+, -, or, xor |
Третий |
Операции отношения |
=, <>, <, >, <=, >= |
Четвертый (низший) |
Порядок выполнения нескольких операций одинакового приоритета устанавливается компилятором из условия оптимизации кода программы: операции равного приоритета всегда вычисляются слева направо. Изменить порядок выполнения действий можно с помощью круглых скобок.
Скобки – позволяют изменить порядок выполнения операций: действия заключенные в скобки имеют наивысший приоритет. В записи выражений допускается использование только круглых скобок. Количество скобок не ограничено, но должен соблюдаться их баланс: число открывающихся скобок должно быть равно числу закрывающихся скобок.
Тип выражения определяется типом операндов и видом применяемых к ним операций.
Различают следующие виды выражений: арифметические выражения, выражения отношения, логические выражения.
Арифметические выражения
Арифметические выражения позволяют выполнить арифметические операции над данными целочисленного (Integer) и вещественного (Real) типа (таблица 2).
Операция возведения в степень отсутствует, однако, используя
эквивалентные математические преобразования ( ax = ex ln a ), эту операцию можно реализовать с помощью стандартных математических функций (таблица 3).
В таблице 3 приведены обращения к стандартным математическим функциям, которые реализуют наиболее часто встречающиеся математические действия и операции. Аргумент стандартной функции всегда заключается в круглые скобки.
Результат выполнения арифметической операции, в зависимости от типа операндов, может принимать значение целочисленного (Integer) или вещественного (Real) типа.
10