Порядок вычисления выражений

Введение

Система программирования Турбо Паскаль, разработанная американской корпорацией Borland, остается одной из самых популярных систем программирования в мире. Этому способствуют, с одной стороны, простота лежащего в ее основе языка программирования Паскаль, а с другой стороны – труд и талант сотрудников Borland во главе с создателем Турбо Паскаля Андерсом Хейлсбергом.

Придуманный, примерно в 1970 году, швейцарским ученым Никласом Виртом как средство для обучения студентов программированию, язык Паскаль стараниями А. Хейлсберга превратился в мощную современную профессиональную систему программирования, которой по плечу любые задачи.

Данное пособие основывается на версию – Турбо Паскаль 7.0

Пакет Турбо Паскаль 7.0 обладает ограниченными возможностями и позволяет работать только в обычном режиме MS DOS. Начинающему программисту целесообразно начать изучение языка и среды именно с этого пакета.

Турбо Паскаль включает в себя как язык программирования – одно из расширений языка Паскаль для ЭВМ типа IBM, так и среду, предназначенную для написания, запуска и отладки программ.

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

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

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

Алфавит языка

Программа записывается в соответствии с синтаксисом Паскаля и используется его алфавит.

Алфавит – совокупность допустимых в языке символов.

Латинские буквы

A,B,...,Z;

a,b,…,z;

Прописные и строчные буквы не различаются.

Арабские цифры

0,1,2,…, 9;

Специальные символы

| { } | [ ] | ( ) | ‘ | := | ; | : | = | , | .. | . | ^ | @ | # | $ |

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

Знаки операций предназначены для обозначения арифметических, логических или других действий (см. таблицы темы “”)

1.5.Служебные слова:

and, array,…,while, with, xor

Неиспользуемые символы

Некоторые символы, например: | % | & | и т.д. не используются в Турбо Паскале, но их можно использовать в комментариях и строках

Типы данных (простые)

Программа на Паскале делится на две части - это:

1. Описание данных, над которыми совершаются действия

2. Описание действий над данными

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

Под типом данных понимается множество допустимых значений этих данных, а также совокупность операций над ними.

В Турбо Паскале имеются следующие группы простых типов:

Целые типы

Тип Диапазон Формат Размер в байтах
Integer 215 Знаковый
Longint 231 Знаковый
Byte 28 Беззнаковый
Word 216 Беззнаковый
Shortint 27 Знаковый

В программе записывается как последовательность цифр со знаком или без.

Примеры:

+4; 168; -1245; +000;

Действительный (вещественный) тип

Real

Под хранение значений действительного типа отводятся ячейки длиной в 6 байт. В этих 6-ти байтах под хранение порядка отводится столько бит, сколько позволяет записать порядок (до 99). Остальные биты отводятся под хранение мантиссы, что обеспечивает точность в 12 -14 значащих цифр.

В программе может записываться в двух формах:

- естественная форма

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

Примеры:

+13.167; -0.0002;

- форма с порядком

MEp

m – мантисса – либо целое число, либо действительное в естественной форме.

Р – порядок – двузначное целое число (не более 99)

Е – десятичное основание степени

Пример:

3.123Е-; 1234Е12

Символьный тип

Char

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

Пример:

’1’; ’d’; ’#’;

3. Строковый тип

Для хранения данных строкового типа выделяются ячейки длиной 256 байт, 1-й байт содержит признак строки, поэтому длина строки не должна превышать 255 символов

В программе записывается, как последовательность символов, заключенных в апострофы.

Примеры:

’информатика’; ’******************’; ’35545767’;

Логический тип

Boolean

Для хранения данных логического типа выделяются ячейки длиной 1 байт. В программе записывается:

True - истина;

False - ложь.

Строковый тип (относится к структурным)

String

Для хранения данных типа String отводятся ячейки длиной 256 байт. 1-й байт содержит признак строки, поэтому длина строки не должна превышать 255 символов. В программе записывается, как последовательность символов, заключенных в апострофы.

Пример:

S:=’информатика’;

Задачи

1.К какому типу в Паскале относятся следующие последовательности символов?

а) –123; б) 0.003; в) ’d’; г)’1.245’; д) ’Учебник по информатике’; е) True

2.Как хранится в памяти компьютера следующая последовательность символов?

а)12; б)-34.02; в) ’s’

Сколько байт выделяется для хранения? Почему?

Выражения

Выражения определяют действия и порядок их выполнения при вычислении значений

Выражения в Паскале формируются из следующих элементов:

Константы

Константы – это величины, которые в ходе выполнения программы не изменяют свое значение. Они могут задаваться:

- в явном виде и тогда их вид определяет тип константы

Примеры:

17 - Integer; 3.14 - Real; ’h’ - Char; ’Tyrbo Pascal’ - String; True - Boolean

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

Примеры:

С1=17;

С2=3.14;

С3=’h’;

Переменные

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

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

Примеры:

Мах

Summa_1

Y_1

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

Пример структурированной переменной – таблица.

Стандартные функции

Стандартные функции служат для облегчения записи и обращения к наиболее часто используемым функциям обработки данных.

Имя функции Действие Тип аргумента Тип результата (значение функции)
Арифметические функции      
PI       Real
ABS(X) |X| Integer Real Integer Real
SQR(X) X2 Integer Real Integer Real
SIN(X) Sin x Integer Real Real
COS(X) Cos x Integer Real Real
EXP(X) Ex Integer Real Real
LN(X) Ln x Integer Real Real
SQRT(X)   Integer Real Real
ARCTAN(X) Arctg x Integer Real Real
Функции преобразования типов      
ORD(X) Преобразует любой порядковый тип в целый (можно узнать ASCII-коды символов) Любой порядковый тип Integer
CHR(X) Преобразует ASCII-коды в символ Integer Char
ROUND(X) Округление до ближайшего целого Real Longint
TRUNG(X) Целая часть числа Real Longint
Функции для величин порядкового типа      
PRED(X) Определение предыдущего значения Любой порядковый тип Значение функции того же типа, что и аргумент
SUCC(X) Определение следующего значения Любой порядковый тип Значение функции того же типа, что и аргумент
ODD(X) Проверяет величину X на нечетность Integer Boolean
Функции разнообразного назначения      
RANDOM[(X)] Формирует случайное число Word X - параметр, указывающий диапазон значений случайного числа Задан х - Word : 0<=Rez<x Не задан х – Real: 0.0<=Rez<1.0

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

- Арифметические операции

Знак Операция Тип операндов Тип результата
+ Сложение Целые Хотя бы один действительный Целый Действительный  
- Вычитание Целые Хотя бы один действительный Целый Действительный
* Умножение Целые Хотя бы один действительный Целый Действительный
/ Деление Целые или действительные Действительные
div Деление целых чисел Целые Целый
mod Остаток от деления целых чисел Целые Целый

- Операции отношения

Знак Операция Тип операндов Тип результата
= Равно Любой сравнимый тип (оба операнда должны быть одного типа) Логический
<> Не равно ----/----- ----/-----
> Больше ----/----- ----/-----
> Меньше ----/----- ----/-----
>= Больше или равно ----/----- ----/-----
<= Меньше или равно ----/----- ----/-----

- Логические операции

X Y X and Y X or Y X xor Y
False False False False False
False True False True True
True False False True True
True True True True False

Круглые скобки

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

Порядок вычисления выражений

Группа Типы действий Операции или элементы
Вычисления в круглых скобках ( )
Вычисление значения функции Функции
Операции подобные умножению *, / , div , mod, and
Операции типа сложения +, - , or, xor
Операции отношения = , <> , < , > , >= , <=, in

Пример:

(X>0) and (X<5)

В этом примере сначала выполняются 2 операции сравнения (операции 5-й группы), а затем логическая операция (операция 3 группы).

Задачи:

1.Какие из следующих последовательностей символов являются именами (идентификаторами)?

а) X; б)x1; в)Max; г)Symma_1; д)Kor 1; е)10_e; ж)Класс; з)R-1;

2.Найти значение функции:

а)Ord(’a’); б)Chr(125); в)Round(123.6); г)Trung(34.999); д)Pred(’Z’); е(Succ(1); ж)Odd(13);

3.Найти значение выражения:

а)17 Div 5; б)17 Mod 5; в)5>3; г)11<>11;

4.Какие из следующих последовательностей символов, являются выражениями, записанными по правилам Паскаля? К какому типу выражений они относятся? Из каких элементов состоят?

а)1; б)2-(Y Mod X)+Sqr(X); в)X2+Y4; г)2xy+15; д)(y>x) or (12=x); е)’11111+2222’;

Структура программы

Программа состоит из заголовка программы и блока программы

Заголовок:

Program <имя программы>;

<имя программы> - любой идентификатор.

Блок программы:

Состоит из 6-ти разделов, 5 из которых служат для описания данных, а 6-ой для описания действий над данными:

1. Раздел описания меток;

2. Раздел определения констант;

3. Раздел описания типов;

4. Раздел описания переменных;

5. Раздел описания процедур и функций;

6. Раздел операторов;

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

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

Раздел описания меток

Label <метки>;

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

Пример:

:

Label 1,3,15,155,Sum,Max;

:

155:A:=25+B;

Goto 155;

:

Те операторы, на которые нет передачи управления, не нужно снабжать метками.

Наши рекомендации