Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Реализация линейных алгоритмов на языке Object Pascal




Проиллюстрированная выше программа «Приветствие» даёт представление о структуре проекта в Delphi, методах работы с визуальными элементами управления и т.д. Однако, для выполнения сложных преобразований необходимо создавать программы на алгоритмическом языке Object Pascal, который имеет много общего, хотя и не полностью совпадает с распространённым в настоящее время языком программирования TurboPascal.

Текст программы - последовательность строк, состоящих из символов, образующих алфавит языка. Каждая строка завершается специальными управляющими символами, не входящими в алфавит. Алфавит языка включает

1. символы, используемые для составления идентификаторов и служебных слов. Это

1.1. заглавные и строчные латинские буквы и символ подчёркивания «_», который считается буквой;

1.2. арабские цифры 0,1,2...,9;

2. специальные символы, используемые для конструирования знаков операций, выражений, комментариев, а также как синтаксические разделители : +-*.=<>.,;:@’()[]{}#$^

3. «неиспользуемые» символы - символы, имеющие ASCII коды от 128 до 255 (русские буквы, !,% и т.д.), которые могут использоваться только при создании комментариев и строковых констант;

4. зарезервированные слова, которые нельзя использовать в качестве вводимых в программу идентификаторов (begin, end, program.....).

Идентификаторы (имена) вводятся для обозначения переменных, констант и ряда др. элементов программы. Идентификатор - последовательность букв и цифр, начинающаяся с буквы. Имеются стандартные идентификаторы, обозначающие предопределённые объекты. Комментарии - произвольная последовательность символов (включая русские буквы), заключённая в фигурные скобки { }. Если непосредственно после открывающейся фигурной скобки следует символ $, а за ним одиночная латинская буква, такая структура определяет режим компиляции программы и называется директивой компилятора. Например, {$AppType Console} – переход в режим создания консольных приложений, т.е. программ, не имеющих графического интерфейса.

 

§ 5 Общая структура программы

Правильная программа, написанная на каком-либо алгоритмическом языке, представляет собой формальную запись некоторого алгоритма и состо­ит из двух частей: описания последовательности действий, которые необходи­мо выполнить для решения поставленной задачи, и описания данных, с кото­рыми оперируют действия, причём описания данных предшествуют описаниям дей­ствий. Кроме того, программа, написанная на языке Pascal, имеет заголовок, рассматриваемый как ком­мен­та­рий, а заканчивается оператором «END.»

Объекты, вводимые посредством описаний и определений, имеют различную природу и могут быть разбиты на 5 классов:

· Метки (LABEL 4, 77, 90;);

· Константы (CONST A=250;);

· Типы (TYPE

YEAR=1900..2000;

MONTH=(JAN,FAB,MAR,APR,MAY,JUN,JUL,AUG…..);

· Переменные (VAR

I,J: INTEGER;

L: REAL;);

· Процедуры и функции (Все используемые процедуры и функции пользователя должны быть объявлены до начала входа в основную программу).

Описание меток вводит совокупность идентификаторов и/или целых чисел, предназначенных для организации последовательности вычислений. Посредством меток можно указать те операторы, на которые будет передано управление из других точек программы.

Определение констант задаёт идентификаторы, являющиеся синонимами некоторых значений.

Определение типов предназначено для задания конкретных множеств значений. Некоторые типы, называемые стандартными, не требуют описаний в программе пользователя.

Описание переменных вводит совокупность данных, с которыми производятся действия. Переменная обозначается идентификатором (именем). С каждой переменной связывается её тип, определяющий множество допустимых значений и набор допустимых операций.

Описание процедуры или функции определяет часть программы как отдельную синтаксическую единицу и сопоставляет с ней имя. Впоследствии действия, сосредоточенные в процедуре, могут быть выполнены посредством указания имени этой процедуры.

Описания и определения объектов могут следовать в произвольном по­рядке. Необходимые для решения задачи действия описываются с использова­нием последовательности операторов, заключённой между служебными слова­ми begin и end. Оператор определяет конкретные действия или описывает характеристики и значения данных. Запись оператора обычно включает одно служебное слово, набор выражений, определяющих параметры оператора и набор операндов, т.е. констант и переменных, над которыми производятся преобразования. Совокупность описаний и определений и следующая за ней последовательность операторов называется блоком.

При программировании в среде Delphi пользователь, как правило, создаёт только процедуры обработки событий или подпрограммы. Многие описания при этом создаются автоматически в процессе введения в форму тех или иных визуальных элементов. Процедура имеет ту же структуру, что и программа - в начале процедуры имеется заголовок, затем следуют раздел описаний локальных объектов, т.е. объектов, определённых только внутри данной процедуры, и раздел операторов, завершающийся оператором «END;».

 

§ 6 Система типов языка Object Pascal

Object Pascal является языком строгой типизации. Это значит, что переменным, объявленным с некоторым конкретным типом, могут присваиваться значения только этого типа и, следовательно, выделяется необходимое количество памяти для их хранения и определены действия, выполняемые над ними. Количество стандартных типов Object Pascal больше, чем в TurboPascal, однако, между системами типов указанных языков нет противоречий. Кроме того, на основе стандартных типов пользователь имеет возможность создавать собственные типы. Для работы с числами используются две стандартных группы типов. Названия и характеристики некоторых числовых типов приведены в таблице 1.


Табл. 1

Тип Диапазон К-во цифр Формат, к-во байт
ЦЕЛЫЕ
shortint -127…128   Знаковый, 1
smallint -32768…32767   Знаковый, 2
integer -32768…32767   Знаковый, 2
longint -2147483648…2147483647   Знаковый, 4
byte 0…255   Беззнаковый, 2
word 0…65535   Беззнаковый, 4
ВЕЩЕСТВЕННЫЕ
real 2.9*10-39 …1.7*10+38 11-12  
single 1.5*10-45…3.4*10+38 7-8  
double 5*10-324… 1.7*10+308 15-16  
extended 3.4*10-4932… 1.1*10+4932 19-20  

 

Значения целых типов в программе могут изображаться двумя способами: в десятичном виде и в шестнадцатеричном виде. В последнем случае цифры старше 9 обозначаются латинскими буквами от A до F, а перед числом ставится знак “$”. Пример $F1 à 241.

Действительные числа могут быть представлены двумя формами записи:

1. 17.384 или 0.5 – с фиксированной точкой;


2.

 

 


3. 6Е-3à3.6х10-3 – с плавающей точкой.

Синтаксическая диаграмма вещественного числа с фиксированной или плавающей точкой

ВЕЩЕСТВЕННОЕ ЧИСЛО   ПОРЯДОК

 

Над целыми и вещественными значениями допустимы операции сравнения и следующие арифметические операции:

1) 4 арифметические действия, имеющие привычный смысл и обозначаемые следующими символами:

a) + сложение;

b) - вычитание;

c) * умножение;

d) / деление;

2) две дополнительные операции «типа деления», обозначаемые служебными словами:

a) div деление нацело (с отбрасыванием дробной части);

b) mod взятие остатка от целочисленного деления.

При применении к целым значениям все перечисленные операции (кроме деления) дают целый результат. Если хотя бы один операнд вещественный, результат всех перечисленных операций (кроме целочисленного деления) вещественный. Для выражения присваивания некоторой величине заданного значения используется символ «:=». Например, А:=5, В:=А, С:=А+В.

Язык программирования Object Pascal поддерживает три символьных типа ansichar, widechar и char. Типы ansichar и char используется для описания печатаемых и служебных символов, которые кодируются числами от 0 до 255. Символы типа widechar кодируются числами от 0 до 65535, причём первые 256 символов этого типа совпадают с символами ansichar и char.

Последовательности символов (символьные массивы), называемые строками, могут быть описаны с использованием какого-либо из трёх стандартных строковых типов shortstring, longstring, widestring. Тип shortstring представляет собой статически размещаемые в памяти компьютера строки длиной от 0 до 255 символов. Тип longstring представляет собой динамически размещаемые в памяти компьютера строки длина которых ограничена только объёмом свободной памяти. Тип widestring представляет собой динамически размещаемые в памяти компьютера строки длина которых ограничена только объёмом свободной памяти, однако, в отличие от строки типа longstring каждый символ кодируется 16 битами. Допускается для обозначения типа shortstring использование идентификатора string, который определён в языке TurboPascal. Для обозначения величин символьных и строковых типов используются символы или последовательности символов, заключённые между двух апострофов (‘x’ – символ, ‘xyz’ - строка). Пустая строка обозначается следующим образом ‘’. Если символ не имеет графического представления, его можно представить в виде решётки, за которой следует код нужного символа. Пример: #7 - подача звукового сигнала. Переход к новому параграфу в Windows имеет код 13.

Для символов и строк допускаются операции сравнения. Из двух сравниваемых символов большим считается тот, который имеет большее значение числового кода. Например, ‘1’<’2’; ‘5’>’4’; ‘a’<’b’; ‘d’>’c’. При сравнении строк в языке Pascal действуют следующие правила:

1. Более короткая строка всегда меньше более длинной.

2. Если длины сравниваемых строк равны, то происходит поэлементное сравнение символов этих строк слева направо по правилам сравнения символов.

Для строк, кроме того, допускается операция конкатенации, обозначаемая знаком «+». Смысл конкатенации заключается в формировании новой строки в виде строк-операндов, расположенных последовательно. В отличие от сложения чисел, порядок следования операндов влияет на результат конкатенации. Например, ‘город’ + ‘ Москва ’ à ‘город Москва’, но ‘ Москва ’ + ‘город’ à‘Москва город’.

Булевский (логический) тип. В разделе описаний X, Y, Z: boolean;. Значения булевского типа (истина/ложь) обозначаются стандартными идентификаторами true (истина) и false (ложь) и занимают 1 байт памяти. Над значениями булевского типа допустимы операции сравнения, причём считается, что true > false. Кроме того, в Паскале имеются 4 стандартные логические операции, обозначаемые служебными словами:

· Not (Not A = Ā;) – логическое отрицание;

· And (A and B;) – логическое умножение (конъюнкция);

· Or (A or B;) – логическое сложение (дизъюнкция);

· Xor (A xor B;) - исключающее «или» (сложение по модулю 2).

Операция A B Результат
Not A 1 (true) - 0 (false)
0 (false) - 1 (true)
A and B 0 (false) 0 (false) 0 (false)
0 (false) 1 (true) 1 (true)
1 (true) 0 (false) 0 (false)
1 (true) 1 (true) 1 (true)
A or B 0 (false) 0 (false) 0 (false)
0 (false) 1 (true) 1 (true)
1 (true) 0 (false) 1 (true)
1 (true) 1 (true) 1 (true)
A хor B 0 (false) 0 (false) 0 (false)
0 (false) 1 (true) 1 (true)
1 (true) 0 (false) 1 (true)
1 (true) 1 (true) 0 (false)

 

Результатом каждой из логических операций является логическая величина. Для представления операций сравнения используются следующие символы:

= равно;

> больше;

< меньше;

>= больше или равно;

<= меньше или равно;

<> не равно.

ПримерA<B+1; C<=’B’ X<>true.

В зависимости от типа используемых операций выражения могут быть арифметическими, логическими (булевскими), строковыми. Реальные выражения могут включать как арифметические операции, так и операции сравнения и логические операции. Приоритеты выполнения операций каждого типа следующие.

Not

Mod Div And

Or

= < > <= >= <>

Чем выше строка, тем выше приоритет операции. Операции, стоящие в одной строке, имеют одинаковый приоритет и выполняются в порядке следования. Для изменения «естественного» порядка выполнения операций используются круглые скобки ().

Пример. Имеются 3 числа А, В, С. Проверить, можно ли построить треугольник, длины сторон которого равны указанным числам. Условия существования треугольника имеют вид A+B>C и A+C>B и C+B>A. Логические выражения, отражающие этот факт, будут иметь вид:

1) (A+B>C) AND (A+C>B) AND (C+B>A)

2) var A,B,C: real;

L1,L2,L3: boolean;

……………………

L1:=A+B>C;

L2:=A+C>B;

L3:=B+C>A;

L1 AND L2 AND L3; {выражение равно true, все три условия выполнены, и false, если не выполнено хотя бы одно из них}

……………………..

Выполнение операций в выражениях или операций сравнения требует, чтобы операнды имели совместимые типы. Типы совместимы, если выполняется хотя бы одно из следующих условий:

· Два типа эквивалентны, т.е. имеют один и тот же идентификатор.

· Оба типа являются либо целыми, либо вещественными.

· Один тип является базовым типом второго или оба типа имеют один и тот же базовый тип.

Важный частный случай – совместимость типов двух величин, стоящих в левой и в правой частях оператора присваивания (совместимость по присваиванию).

· Оба типа совместимыми дискретными или вещественными типами, и значения левой части попадают в диапазон возможных значений типа левой части.

· Тип левой части является вещественным, а тип правой части – целым.

Если в операторе присваивания не выполняется ни одно из перечисленных условий, то на этапе компиляции будет выдано сообщение об ошибке.

Приведенная выше информация о системе типов языка Object Pascal, очевидно, не является исчерпывающей. Рассматривались только стандартные скалярные типы данных (за исключением строк), т.е. значения данных определяются единственной величиной. Однако, этой информации достаточно для описания переменных, которые будут использованы при решении простых задач на языке Object Pascal.

Задание: Получить у преподавателя 1-ю индивидуальную задачу и создать программу её решения. Ввод исходных данных и вывод результата выполнить с использованием окон ввода и окон редактирования.

Отчёт по данной работе должен включать перечень использованных визуальных компонентов, описание свойств компонентов, изменённых при создании формы или изменяемых в процессе выполнения программы, описание событий, изменяющих ход выполнения программы, описание использованных в программе констант и переменных (указать их типы и диапазоны изменения), распечатку процедуры обработки каждого из указанных событий.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных