Операторы языка Project Pascal

Автор: Пользователь скрыл имя, 03 Марта 2013 в 20:09, контрольная работа

Описание работы

Главную часть программы на языке Object Pascal составляет раздел операторов, в котором реализуется алгоритм решения поставленной задачи, т.е. именно в нем с предварительно описанными переменными, константами, значениями функций и т.п. выполняются определенные действия, позволяющие получить результат, ради которого создается программа.

Содержание

Введение

1. Операции и выражения

2. Операторы языка Object Pascal

3. Организация ввода-вывода

Выводы

Работа содержит 1 файл

project pascal.docx

— 170.45 Кб (Скачать)

Введение 
 
1. Операции и выражения 
 
2. Операторы языка Object Pascal 
 
3. Организация ввода-вывода 
 
Выводы 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЛИТЕРАТУРА

  1.  
    Марченко А.И., Марченко Л.А. Программирование в среде Turbo Pascal 7.0. – 8-е изд. – К.: ВЕК+, СПб.: КОРОНА принт, 2004.
  2.  
    Ставровский А.Б. Первые шаги в программировании. Самоучитель. – М.: «Вильямс», 2003.
  3.  
    Галисеев Г.В. Программирование в среде Delphi 7. Самоучитель. – М.: «Вильямс», 2004.

 

 

 

 

ВВЕДЕНИЕ

 
Главную часть программы на языке Object Pascal составляет раздел операторов, в котором реализуется алгоритм решения поставленной задачи, т.е. именно в нем с предварительно описанными переменными, константами, значениями функций и т.п. выполняются определенные действия, позволяющие получить результат, ради которого создается программа. 
 
Раздел операторов начинается ключевым словом ^ Begin (начало), затем следуют операторы языка, отделяемые друг от друга точкой с запятой. Завершают раздел ключевое слово End и точка. 
 
Операторы выполняются строго последовательно в том порядке, в котором они записаны в тексте программы в соответствии с синтаксисом и семантикой языка программирования. Некоторые операторы (перехода, условные) позволяют нарушить естественный последовательный порядок выполнения операторов. 
 
Целью лекции является изучение принципов использования выражений и операторов в программах на языке Object Pascal.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. ОПЕРАЦИИ И ВЫРАЖЕНИЯ

1.1. Приоритет операций и их  классификация

 
Выражение в программировании служит для определения порядка выполнения действий над элементами данных и состоит из операндов (констант, переменных, обращений к функциям), круглых скобок и знаков операций. 
 
По количеству операндов операции делятся на унарные и бинарные. Унарные операции имеют только один операнд, перед которым располагается символ операции. К унарным относятся: операции изменения знака «-» (минус) и сохранения знака «+» (плюс), а также логическое отрицание «not» (НЕ) и взятия адреса @, например,

 
Выражение

 
Результат

 
-7

 
-7

 
-(-9)

 
9

 
+5

 
5

 
not False

 
True


 
Остальные операции являются бинарными  и содержат два операнда, между  которыми ставится символ операции, например,

 
Выражение

 
Результат

 
5+7

 
12

 
(4-2)*5+10

 
20

 
True or False

 
True


 
По характеру выполняемых действий операции разделяются на следующие группы: 
 
1. Арифметические операции:

  •  
    унарные: +, -
  •  
    бинарные: +, -, *, /, div, mod

 
2. Операции отношения: 
 
=, <>, <, >, <=, >= 
 
3. Булевы (логические) операции: 
 
not, and, or, xor 
 
4. Поразрядные логические и сдвиговые операции: 
 
not, and, or, xor, shl, shr 
 
5. Строковая операция (конкатенация): 
 

 
6. Операции над множествами: 
 
+, -, *, in, <=, >= 
 
7. Операция взятия адреса: 
 

 
Последовательность выполнения операций в выражении определяется тремя факторами:

  •  
    приоритетом операций;
  •  
    порядком расположения операций в выражении;
  •  
    использованием скобок.

 
По приоритету все операции делятся на четыре группы (табл.1.1). 
 

 

 

Таблица 1.1. Приоритет операций

 
Приоритет

 
Операции

 
^ Категория операций

 
Первый (высший)

 
+ - not @

 
Унарные операции

 
Второй

 
* / div mod and shl shr

 
Бинарные операции типа умножения

 
Третий

 
+ - or xor

 
Бинарные операции типа сложения

 
Четвертый (низший)

 
= <> < > <= >= in

 
Бинарные операции отношения


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

1.2. Типы выражений

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

Арифметические выражения

 
Арифметическое выражение порождает целое или действительное значение. Наиболее простыми формами арифметических выражений являются: целая или действительная константа без знака; целая или действительная переменная; элемент массива целого или действительного типа; функция, принимающая целое или действительное значение. 
 
Значение переменной или элемента массива должно быть определено до их появления в арифметическом выражении. Другие арифметические выражения составляются из вышеперечисленных простых форм путем применения круглых скобок и арифметических операций. 
 
Арифметические операции выполняют арифметические действия в выражениях над значениями операндов целого и вещественного типа (группы integer и real) и представлены в табл. 1.2.

Табл. 1.2. Арифметические операции

 
Знак операции

 
Операция и действие

 
Типы операндов

 
^ Тип результата

 
Унарные

 
+

 

 
Сохранение знака

 
integer 
 
real

 
integer 
 
real

 
-

 

 
Изменение знака

 
integer 
 
real

 
integer 
 
real

 
Бинарные

 
+

 
A+B

 
Сложение

 
integer 
 
real 
 
real, integer

 
integer 
 
real 
 
real

 
-

 
A-B

 
Вычитание

 
integer 
 
real 
 
real, integer

 
integer 
 
real 
 
real

 
*

 
A*B

 
Умножение

 
integer 
 
real 
 
real, integer

 
integer 
 
real 
 
real

 
/

 
A/B

 
Деление

 
integer 
 
real 
 
real, integer

 
real 
 
real 
 
real

 
div

 
A div B

 
Целочисленное деление

 
integer

 
integer

 
mod

 
A mod B

 
Остаток от деления

 
integer

 
integer

 
Поразрядные (битовые) булевские и сдвиговые операции

 
not

 
not A

 
Арифметическое НЕ

 
integer

 
integer

 
and

 
A and B

 
Арифметическое И

 
integer

 
integer

 
or

 
A or B

 
Арифметическое ИЛИ

 
integer

 
integer

 
xor

 
A xor B

 
Арифметическое исключающее ИЛИ

 
integer

 
integer

 
shl

 
A shl B

 
Целочисленный сдвиг влево

 
integer

 
integer

 
shr

 
A shr B

 
Целочисленный сдвиг вправо

 
integer

 
integer


 
Следует только помнить, что если операнды принадлежат к различным типам, то тип результата будет более  охватывающим. 
 
^ Операции сложения (+) и вычитания (-) выполняются так же, как и в обычных арифметических выражениях. Допускается смешение типов integer и real в одном выражении, например: 
 
Выражение Результат 
 
34+17.09 51.09 
 
5-43 -38 
 
67+(-12+6.05) 61.05 
 
Операции умножения (*) и деления (/) имеют наивысший приоритет и выполняются с данными типа integer и real, причем тип результата операции деления (/) всегда будет вещественным. 
 
Выражение Результат 
 
134*12 1608 
 
1.22*3.05 3.72 
 
997/4 249.25 
 
Целочисленное деление (div) отличается от обычной операции деления тем, что возвращает целую часть частного, дробная часть отбрасывается. Перед выполнением операции оба операнда округляются до целых значений. Результат целочисленного деления всегда равен нулю, если делимое по модулю меньше делителя. 
 
Выражение Результат 
 
11 div 5 2 
 
2 div 3 0 
 
-13 div 4 -3 
 
25 div –6 -4 
 
-13 div –4 3 
 
^ Деление по модулю (mod) восстанавливает остаток, полученный при выполнении целочисленного деления. 
 
Выражение Результат 
 
14 mod 5 4 
 
-13 mod 4 -1 
 
13 mod –4 1 
 
-13 mod –4 -1 
 
В арифметические выражения могут включаться стандартные функции, определенные в языке. Перечень некоторых таких функций приведен в табл. 1.3. 
 
Таблица 1.3. Арифметические функции и процедуры

 
Функция, процедура

 
Обозначение

 
^ Тип аргумента

 
Тип результата

 
Примеры

 
Выражение

 
Результат

 
Абсолютное значение, |x|

 
Abs(х)

 
Integer 
 
Real

 
Integer 
 
Real

 
Abs(-56)  
 
Abs(-2*0.15)

 
56 
 
3.00000000000000Е-0001

 
Арктангенс, arctg(x)

 
ArcTan(x)

 
Integer 
 
Real

 
Real 
 
Real

 
ArcTan(1)*180/Pi

 
4.50000000000000E+0001

 
Косинус, cos(x)

 
Cos(х)

 
Integer 
 
Real

 
Real 
 
Real

 
Cos(60*Pi/180)

 
5.00000000000000E-0001

 
Экспонента, ex

 
Exp(x)

 
Integer 
 
Real

 
Real 
 
Real

 
Exp(1) 
 
Exp(-1.5*2)

 
2.71828182845905E+0000 
 
4.97870683678639E-0002

 
Натуральный логарифм, ln(x)

 
Ln(x)

 
Integer 
 
Real

 
Real 
 
Real

 
Ln(3) 
 
Ln(0.12*10)

 
1.09861228866811E+0000 
 
1.82321556793955E-0001

 
pЧисло

 
Pi

 

 

 
Real

 
Pi

 
3.14159265358979E+0000

 
Синус, sin(x)

 
Sin(x)

 
Integer 
 
Real

 
Real 
 
Real

 
Sin(30*Pi/180)

 
5.00000000000000E-0001

 
Возведение в квадрат, х2

 
Sqr(х)

 
Integer 
 
Real

 
Integer 
 
Real

 
Sqr(4) 
 
Sqr(10.25)

 
16 
 
1.05062500000000E+0002

 
Квадратный корень

 
Sqrt(x)

 
Integer 
 
Real

 
Real 
 
Real

 
Sqrt(16) Sqrt(Sin(30*Pi/180))

 
4.00000000000000E+0000 
 
7.07106781186548E-0001

 
Дробное, представляющее целую часть вещественного

 
Int(х)

 
Integer 
 
Real

 
Real 
 
Real

 
Int(123) 
 
Int(123.448) 
 
Int(-345.555)

 
1.23000000000000E+0002 
 
1.23000000000000E+0002 
 
-3.45000000000000E+0002

 
Дробное, представляющее дробную часть вещественного

 
Frac(x)

 
Integer 
 
Real

 
Real 
 
Real

 
Frac(1.7) 
 
Frac(-25.14) 
 
Frac(-17)

 
7.00000000000000E-0001 
 
-1.40000000000000E-0001 
 
0.00000000000000E+0000

 
Целое, полученное отбрасывания дробной  части

 
Trunc(x)

 
Integer 
 
Real

 
Integer 
 
Integer

 
Trunc(123) 
 
Trunc(123.448) 
 
Trunc(-347.513)

 
123 
 
123 
 
-347

 
Целое, полученное путем округления вещественного

 
Round(x)

 
Integer 
 
Real

 
Integer 
 
Integer

 
Round(27.768) 
 
Round(35.432) 
 
Round(-24.815) 
 
Round(-97.264)

 
28 
 
35 
 
-25 
 
-97

 
Случайное число из диапазона 0.. 0.99

 
Random

 

 

 
Real

 
Random

 
2.32830643653870E-0010

 
Целое случайное число из диапазона 0..I

 
Random(I)

 
Integer

 
Integer

 
Random(1000)

 
318


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

 
Функция

 
Значение функции

 
Chr(n)

 
Символ, код которого равен n

 
IntToStr(k)

 
Строка, являющаяся изображением целого k

 
FloatToStr(n)

 
Строка, являющаяся изображением вещественного n

 
FloatToStrF(n,f,k,m)

 
Строка, являющаяся изображением вещественного n. При вызове функции указывают: f — формат (способ изображения); k — точность (нужное общее количество цифр); m — количество цифр после десятичной точки

 
StrToInt(s)

 
Целое, изображением которого является строка s

 
StrToFloat(s)

 
Вещественное, изображением которого является строка s


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

 
X

 
Y

 
not X

 
X and Y

 
X or Y

 
X xor Y

 
0

 
0

 
1

 
0

 
0

 
0

 
0

 
1

 
1

 
0

 
1

 
1

 
1

 
0

 
0

 
0

 
1

 
1

 
1

 
1

 
0

 
1

 
1

 
0


 
Результат операции not: целочисленное значение, равное десятичному числу, которое соответствует поразрядно инвертированному двоичному представлению исходного операнда. 
 
Результат операции and (or, xor): целочисленное значение, равное десятичному числу, которое соответствует двоичному представлению поразрядно выполненной над исходными операндами логической операции И (ИЛИ, исключающее ИЛИ). 
 
Результат операции A shl В (A shr В): целочисленное значение, равное десятичному числу, полученному в результате поразрядного сдвига влево (вправо) двоичного представления операнда А на В разрядов. Освободившиеся при этом разряды заполняются нулями. 
 
Например, если А:=11; В:=2; то 
 
Десятичное значение Двоичное представление 
 
not А 244 11110100 
 
A and В 2 00000010 
 
A or В 11 00001011 
 
A xor В 9 00001001 
 
A shl В 44 00101100 
 
A shr В 2 00000010 
 
Для правильного написания арифметических выражений и исключения ошибок при получении результата рекомендуется соблюдать следующие ограничения и правила:

Информация о работе Операторы языка Project Pascal