Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лин и разветвл алгоритмы

.pdf
Скачиваний:
20
Добавлен:
27.05.2015
Размер:
507.73 Кб
Скачать

Министерство образования и науки Российской Федерации

Государственное образовательное учреждение высшего профессионального образования

«Сибирский государственный индустриальный университет»

Кафедра прикладной информатики

ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ

ИРАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ

В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