Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование(лекции).pdf
Скачиваний:
183
Добавлен:
14.02.2015
Размер:
1.89 Mб
Скачать

П.П.Кудрявцев. Курс лекций по дисциплине: "Информатика и программирование"

синтаксических диаграмм (рисунок 2).

Рисунок 2 Синтаксическая диаграмма понятия «двоичная цифра »

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

Понятие «двоичный код» как непустую последовательность двоичных цифр БНФ описывает так:

<двоичный код > : : = < двоичная цифра>|<двоичный код >< двоичная цифра>

Определение, в котором некоторое понятие определяется само через себя, называется рекурсивным. Рекурсивные определения характерны для БНФ.

Синтаксическая диаграмма двоичного кода представлена на рисунке 3.

Рисунок 3 Синтаксическая диаграмма понятия «двоичный код »

Возвратная стрелка обозначает возможность многократного повторения. Очевидно, что диаграмма более наглядна, чем БНФ. Синтаксические диаграммы были введены Н. Виртом и использованы для описания созданного им языка Паскаль.

Лекция 3. Основы программирования на языке Паскаль

Основные элемен ты программы и алфави т языка

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

1.26 латинских строчных и 26 латинских прописных букв: от «а» до «z» и от «А» до

«Z»

2._ подчеркивание

3.10 цифр: «0» до «9»

4.знаки операций:

+ - * / = <> < > <= >= := @ 5. ограничители:

. , ' ( ) [ ] (. .) { } (* *) .. : ; 6. спецификаторы:

^ # $

14

Лекция 3. Основы программирования на языке Паскаль

 

 

7. служебные (зарезервированные) слова:

 

 

ABSOLUTE

EXPORTS

LIBRARY

SET

ASSEMBLER

EXTERNAL

MOD

SHL

AND

FAR

NAME

SHR

ARRAY

FILE

NIL

STRING

ASM

FOR

NEAR

THEN

ASSEMBLER

FORWARD

NOT

TO

BEGIN

FUNCTION

OBJECT

TYPE

CASE

GOTO

OF

UNIT

CONST

IF

OR

UNTIL

CONSTRUCTOR

IMPLEMENTATION

PACKED

USES

DESTRUCTOR

IN

PRIVATE

VAR

DIV

INDEX

PROCEDURE

VIRTUAL

DO

INHERITED

PROGRAM

WHILE

DOWNTO

INLINE

PUBLIC

WITH

ELSE

INTERFACE

RECORD

XOR

END

INTERRUPT

REPEAT

 

EXPORT

LABEL

RESIDENT

 

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

Основными элементами программы на языке Паскаль являются:

операторы команды , определяющие структуру программы например( , операторы ветвления и зацикливания) или выполняющие какие-либо действия (например, арифметические операции или операции сравнения);

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

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

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

Идентификаторы должны представлять собой одно слово, состоящее из строчных или прописных латинских символов, причем строчные и прописные символы не различаются между собой. Также допустимо использование символа «подчеркивание»

15

П.П.Кудрявцев. Курс лекций по дисциплине: "Информатика и программирование"

(«_») и цифр в любом месте имени, за исключением его начала.

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

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

(* и *):

{ Комментарий } (* Комментарий *)

В Delphi, а также в FreePascal введена возможность использования однострочных комментариев, характерных для множества языков программирования. Такие комментарии начинаются двумя символами «слеш» и занимают всю оставшуюся строку:

// До конца строки комментарий

Струк тура программы на языке Паскаль

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

Program <имя программы>; Label <раздел меток>; Const <раздел констант>; Type <раздел типов>;

Var <раздел переменных>;

Procedure (Function) <раздел подпрограмм>;

Begin

<раздел операторов>

End.

Раздел операторов имеется в любой программе и является основным. Предшествующие разделы носят характер описаний и не все обязательно присутствуют в каждой программе.

ВDelphi, FreePascal в отличие от стандарта, возможно следующее:

отсутствие заголовка программы;

разделы Const, Type, Var, Label могут следовать друг за другом в любом порядке и встречаться в разделе описаний сколько угодно раз.

Концепция данных: прос тые т ипы данных

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

16

Лекция 3. Основы программирования на языке Паскаль

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

Любой тип данных определяет множество значений, которые может принимать та или иная переменная, и те операции, которые можно к ним применять. С каждой встречающейся в программе переменной должен быть сопоставлен один и только один тип. Каждый из типов должен строиться из элементарных, простых данных.

Рисунок 1 Схема типов данных

В Паскале существуют простые типы двух видов: порядковые (ординальные - «ordinal») типы и вещественный тип. Порядковый тип либо определяется программистом (в этом случае его называют перечисляемым типом или диапазоном), либо обозначается именем одного из трех предописанных порядковых типов Boolean, Integerили Char.Вещественный тип обозначается именем предописанного типа Real.

Рисунок 2 Схема простых типов данных

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

В таблице 1 представлена информация о простых типах данных, определенных в Паскале. Для вещественных типов в скобках указано количество сохраняемых значащих цифр мантиссы в десятичном представлении числа.

Идентификатор

Длина, байт

Диапазон (множество) значений

 

 

 

17

П.П.Кудрявцев. Курс лекций по дисциплине: "Информатика и программирование"

 

 

Целые типы

Integer

2

 

-32768...32767

 

 

 

 

Byte

1

 

0...255

 

 

 

 

Word

2

 

0...65535

 

 

 

 

Shortint

1

 

-128...127

 

 

 

 

Longint

4

 

-2147483648...2147483647

 

 

 

 

 

 

Вещественные типы

 

 

 

 

Real

6

 

2,9·10-39...1,7·1038 (11 - 12)

Single

4

 

1,5·10-45...3,4·1038 (7 - 8)

Double

8

 

5·10-324...1,7·10308 (15 - 16)

Extended

10

 

3,4·10-4932...1,1·104932 (19 - 20)

 

 

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

 

 

 

 

Boolean

1

 

true, false

 

 

 

 

 

 

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

 

 

 

 

Char

1

 

все символы кода ASCII

 

 

 

 

Арифме тические операции, функции, выражения

К арифметическим типам данных относятся группы вещественных и целых типов. К ним применимы арифметические операции и операции отношений.

Операции над данными бывают унарными (применимые к одному операнду) и бинарными (применимые к двум операндам). Унарная арифметическая операция одна. Это операция изменения знака. Ее формат:

- <величина>

Бинарные арифметические операции стандартного Паскаля описаны в Таблице 2. В ней I обозначает целые типы, R вещественные типы .

Таблица 2

Знак

Выражение

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

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

Операция

 

 

 

 

 

+

A + B

R, R

R

Сложение

 

 

I, I

I

 

 

 

I, R; R, I

R

 

 

 

 

 

 

-

A - B

R, R

R

Вычитание

 

 

I, I

I

 

 

 

I, R; R, I

R

 

 

 

 

 

 

*

A*B

R, R

R

Умножение

 

 

I, I

I

 

 

 

I, R; R, I

R

 

 

 

 

 

 

/

A/B

R, R

R

Вещественное деление

 

 

I, I

R

 

 

 

 

 

 

18

Лекция 3. Основы программирования на языке Паскаль

 

 

 

 

I, R; R, I

 

R

 

 

 

 

 

 

 

 

 

 

 

div

A div B

I, I

 

I

Целое деление

 

 

 

 

 

 

mod

A mod B

I, I

 

I

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

 

 

 

 

 

 

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

Таблица 3

Обращение

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

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

Функция

 

 

 

 

 

 

Pi

-

R

Число π = 3.1415926536Е+00

 

 

 

 

 

 

Abs(x)

I, R

I, R

Модуль аргумента x

 

 

 

 

 

 

Arctan(x)

I, R

R

Арктангенс x (радианы)

 

 

 

 

 

 

Cos(x)

I, R

R

Косинус x (x в радианах)

 

 

 

 

 

 

 

Exp(x)

I, R

R

ex - экспонента

 

 

Frac(x)

I, R

R

Дробная часть x

 

 

 

 

 

 

 

 

 

Int(x)

I, R

R

Целая часть x

 

 

 

 

 

 

 

 

Ln(x)

I, R

R

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

 

 

 

 

 

 

 

Random

 

R

Псевдослучайное

число

в

 

 

 

интервале [0, 1)

 

 

Random(x)

I

I

Псевдослучайное

число

в

 

 

 

интервале [0, x)

 

 

Round(x)

R

I

Округление

до

ближайшего

 

 

 

целого

 

 

 

Sin(x)

I, R

R

Синус x (x в радианах)

 

 

 

 

 

 

 

 

Sqr(x)

I, R

I, R

Квадрат x

 

 

 

 

 

 

 

 

Sqrt(x)

I, R

R

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

 

 

 

 

 

 

 

Trunc(x)

R

I

Ближайшее

целое,

не

 

 

 

превышающее x по модулю

 

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

Над данными типа Real, Integer, Char определены следующие операции отношения (сравнения):

= - равно;

<> - не равно;

< - меньше;

> - больше;

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

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

19