Выражения, операнды, операции




Пример простой программы

Решение квадратного уравнения:

Проект:

Ввести параметры уравнения;

Вычислить дискриминант D;

Если D>0

Вычислить и выдать два разных корня x1 и x2

Иначе

Если D=0

Вычислить и выдать один корень x1

Иначе

Выдать сообщение об отсутствии действительных корней.

Программа на языке Pascal:

Program KvUr;

Var

a, b, c, D, x1, x2: Real;

Begin

Read (a, b, c);

D:= b * b – 4.0* a * c;

If (D > 0)

then

begin

x1:= (- b - sqrt(D)) / (2.0* a);

x2:= (- b + sqrt(D)) / (2.0* a);

write(‘ x1= ’, x1, ‘ x2= ’, x2)

end

else

If (D = 0)

then

begin

x1:= - b / (2.0* a);

write (‘ x1=x2= ’, x1)

end

else

write (‘Уравнение корней не имеет’)

end.

1 Основные (базовые) элементы языка

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

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

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

§ букв,

§ цифр,

§ специальных символов.

1) Буквы: прописные (от A до Z) и строчные (от a до z) буквы латинского алфавита и знак подчеркивания _ (русские буквы можно использовать только в комментариях, в качестве значений символьных и строковых переменных, значений элементов множеств, элементов текстовых файлов, строковых констант).

2) Цифры: арабские цифры от 0 до 9 (при использовании шестнадцатеричных чисел используются также цифры от 10 до 15, обозначаемые латинскими буквами от A или a до F или f).

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

 

Комбинации специальных символов могут образовывать составные символы::= (присваивание), <> (не равно),.. (диапазон значений), <= (меньше или равно), >= (больше или равно), (* и *) — альтернатива { и }, (. и.) — альтернатива [ и ].

Словарь языка

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

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

 

absolute else inline procedure unit
and end interface program until
array external interrupt record uses
begin file label repeat var
case for mod set virtual
const forward nil shl while
constructor function not shr with
destructor goto object string xor
div if of then  
do implementation or to  
downto in packed type  

 

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

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

Правила написания идентификаторов:

‹ латинская буква или _ › ‹ последовательность латинских букв, цифр и _ ›

1) Идентификатор начинается буквой или символом подчеркивания (исключение составляют идентификаторы меток, которые могут начинаться и с цифры, и с буквы). Далее идентификатор может состоять из букв, цифр и знака подчеркивания (пробелы, точки и другие специальные символы недопустимы). При написании идентификаторов можно использовать как прописные, так и строчные буквы, однако Паскаль не различает прописные и строчные буквы, поэтому записи Writeln, WRITELN, WriteLn эквивалентны.

2) Между двумя идентификаторами должен быть, по крайней мере, один разделитель.

3) Максимальная длина идентификатора — 127 символов, но значимы только первые 63 символа.

4) Идентификаторы нужно делать «осмысленными» (значимыми). Для создания идентификаторов, состоящих из двух слов, можно воспользоваться большими буквами (например, ReadText) или символом подчеркивания (Read_Text) (это гораздо лучше, чем RT).

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

6) Следует избегать для обозначения разных идентификаторов сходных слов по звучанию или написанию (phone, fone, AXI0, AX1O).

7) Числа лучше ставить в конце: Label12.

8) Очень удобно использовать префикс: MasterRecord, MasterFile.

Данные

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

Константы можно разделить на используемые в явном виде и объявляемые в разделе определения констант.

1) Константы, используемые в явном виде:

a) целые числа: 0, 11, -15 (десятичная система); $15, $B800, $FFFF (шестнадцатеричная);

b) вещественные числа: 1.0, 12.4, -0.01 (с десятичной точкой) — записи 1. и.1 неверны — необходимо указывать 1.0 и 0.1; 0.5E-05, -0.8E+02 (с указанием порядка);

c) символьные и строковые: ‘A’, ‘Pascal’, ‘аргумент X=’, ‘об’’явление’.

2) Константами, объявляемыми в разделе определения констант, называются элементы данных, значения которых установлены в описательной части программы и в процессе выполнения программы не изменяются. Формат описания таких констант:

Const {зарезервированное слово}

Идентификатор = значение;

Например,

Const

Max = 1000;

Password = ‘Sezam’;

Otvet = ‘Верно!’;

A = 13;

B = 12.5;

Ch1 = ‘%’;

Кроме того, в языке Pascal предусмотрены так называемые

3) Типизированные константы (промежуточное звено между константами и переменными) — переменные с начальным значением. Каждой типизированной константе ставится в соответствие имя, тип и начальное значение. Описание типизированных констант:

Const

Идентификатор: тип = значение;

Например,

Const

Year: integer =2004;

Предусмотрены

4) зарезервированные константы:

Идентификатор Тип Значение Описание
Pi Real 3.1415926536 Число “ПИ”
True Boolean True Истина
False Boolean False Ложь
Maxint Integer   Максимальное целое число

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

Var

Идентификатор: тип;

Например,

Var

a, b, c: real;

Типы данных

Тип — это множество значений, которые могут принимать «объекты» программы, и совокупность операций, допустимых над этими значениями.

Типы Скалярные Стандартные Целые

Определенные Вещественные

пользователем Логический

Структурированные Массивы Символьный

Указатели Записи Перечисляемый

Процедурные Множества Тип-диапазон

Объекты Файлы

Строки

Целые типы. Диапазон возможных значений целых типов зависит от их внутреннего представления.

Тип Название Длина, байт Диапазон значений
Byte Длиной в байт   0..255
ShortInt Короткое целое   -128..127
Word Длиной в слово   0..65535
Integer Целое   -32768..32767
LongInt Длинное целое   -2 147 483 648..2 147 483 647

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

Тип Название Длина, байт Кол-во цифр мантиссы Диапазон десятичного порядка
Real Вещественный   11..12 -39..38
Single С одинарной точностью   7..8 -45..38
Double С двойной точностью   15..16 -324..308
Extended С повышенной точностью   19..20 -4932..4932
Comp Сложный   10..20 -2*1063+1..2*1063-1

Логический тип (Boolean). Значениями логического типа может быть одна из констант False или True.

Символьный тип (Char). Значениями символьного типа является множество всех символов ПК. Для кодировки используется код ASCII (American Standard Code for Information Interchange — американский стандартный код для обмена информации).

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


Формат задания такого типа:

Type

имя типа = тип значений;

Var

идентификатор: имя типа;

Например,

Type

Colors = (black, red, white);

Var

Col: colors;

Переменные перечисляемого типа можно объявлять без предварительного описания типа:

Var

Col: (black, red, white);

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

минимальное значение..максимальное значение

Пример:

Type

Digit = ’0’..’9’;

Dig2 = 48..57;

Var

D1: Digit;

D2: Dig2;

Тип-диапазон можно непосредственно указывать при объявлении переменной.

Пример:

Var

Date: 1..31;

Month: 1..12;

Выражения, операнды, операции

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


Операции делятся на 4 категорий согласно приоритету:

1) унарный минус, NOT — логическое отрицание;

2) операции группы умножения — * (умножить), MOD (деление по модулю), DIV (целочисленное деление), / (деление), AND (логическое «и»);

3) операции группы сложения: + (сложение), - (вычитание), OR (логическое «или»);

4) операции отношения: = (равно), <> (не равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно), IN (проверка принадлежности множеству).

Пример:

F:= 2*sin(x) + 3/sqrt(1 + x * x);

Операции целочисленной арифметики

Целочисленное деление (Div) — возвращает целую часть частного, дробная часть отбрасывается. Результат целочисленного деления всегда равен нулю, если делимое меньше делителя.

Деление по модулю (Mod) — возвращает остаток, полученный в результате целочисленного деления.

Примеры:

11 div 5 = 2; 2 div 3 = 0

11 mod 5 = 1; 14 mod 5 = 4

Таблица истинности для логических операций

Операция Пример Значение A Значение B Результат
Not Логическое отрицание Not A True False   False True
And Логическое умножение A and B True True False False True False True False True False False False
Or Логическое сложение A or B True True False False True False True False True True True False
Xor Исключающее или A xor B True True False False True False True False False True True False

Стандартные математические функции:

abs(x) — |x|,

arctan(x) — arctg x,

cos(x) — cos x,

exp(x) — ex,

int(x) — целая часть выражения x,

frac(x) — дробная часть выражения x,

ln(x) — ln x,

sin(x) — sin x,

sqr(x) — x2,

sqrt(x) — .

Скалярные функции обрабатывают данные любого скалярного типа, кроме вещественного.

Pred (S) — возвращает элемент, предшествующий S.

Succ (S) — возвращает значение, следующее за S.

Odd (I) — возвращает значение булевского типа, равное True, если I — нечетное, и False, если I — четное.

Функции преобразования типов:

1. Round (X) – возвращает значение X, округленное до ближайшего целого числа, результат имеет целочисленный тип.

2. Trunc (X) – возвращает ближайшее целое число меньшее или равное X, если X 0, большее или равное X, если X <0. Результат имеет целочисленный тип.

3. Chr (I) — возвращает символ стандартного кода обмена информацией с номером, равным значению I.

4. Ord (S) — возвращает порядковый номер значения S в множестве, определенном типом S.

Пример:

Round (3.7) результат 4

Round (-46.317) результат -46

Trunc (3.7) результат 3

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

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


Program имя_программы;

 

{ РАЗДЕЛ ОПИСАНИЙ: }

 

Uses {подключаемые модули}

Имя1, имя2;

Label {объявление глобальных меток}

…;

Const {объявления глобальных констант}

…;

Type {объявления глобальных типов}

…;

Var {объявления глобальных переменных }

…;

 

Procedure {описание процедур }

Тело процедуры;

 

Function {описание функций}

Тело функции;

 

{ РАЗДЕЛ ОПЕРАТОРОВ:}

 

Begin

операторы {операторы глобального блока}

End.

Любой из разделов, кроме раздела операторов может отсутствовать. В любом месте программы могут содержаться комментарии, которые заключаются в { } или (* *). Разделы описаний (кроме uses) могут встречаться произвольное число раз и в произвольном порядке. Раздел uses (если он есть) всегда располагается после заголовка.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: