72197

Синтаксис и семантика языка Паскаль

Лекция

Информатика, кибернетика и программирование

Элементарные конструкции языка Паскаль включают в себя имена, числа и строки. Имена (идентификаторы) называют элементы языка - константы, метки, типы, переменные, процедуры, функции, модули, объекты. Идентификатор в Турбо Паскале может включать в себя: буквы латинского алфавита, цифры символ подчеркивания.

Русский

2014-11-19

42.5 KB

8 чел.

Описание каждого элемента языка задается его СИНТАКСИСОМ и СЕМАНТИКОЙ. Синтаксические определения устанавливают правила построения элементов языка. Семантика определяет смысл и правила использования тех элементов языка, для которых были даны синтаксические определения.

Рис 0

Элементарные конструкции языка Паскаль включают в себя имена, числа и строки.

Имена (идентификаторы) называют элементы языка - константы, метки, типы, переменные, процедуры, функции, модули, объекты. Идентификатор в Турбо Паскале может включать в себя:

- буквы латинского алфавита,

- цифры

- символ подчеркивания.

Строчные и прописные буквы не различаются (например, NAME, Name и name будет означать одно и то же).

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

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

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

Комментарии заключаются либо в скобки { ... }, либо в скобки вида (* ... *) и могут занимать любое число строк.

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

217  -45  8954  +483

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

28.6  0.65  -0.018  4.0

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

5Е12  -1.72Е9  73.1Е-16

В "переводе" такую запись следует понимать соответственно как:

5x1012  -1.72x109  73.1x10-16

Паскаль допускает запись целых чисел и фрагментов действительных чисел в форме с порядком в шестнадцатиричной системе счисления:

$7F  $40  $ABC0

Строки в языке Паскаль - это последовательность символов, записанная между апострофами.

Порядковые типы, выделяемые из группы простых типов, характеризуются следующими свойствами:

  •  все возможные значения порядкового типа представляют собой ограниченное упорядоченное множество;
  •  к любому порядковому типу может быть применена стандартная функция Ord, которая в качестве результата возвращает порядковый номер конкретного значения в данном типе;
  •  к любому порядковому типу могут быть применены стандартные функции Pred и Succ, которые возвращают предыдущее и последующее значения соответственно;
  •  к любому порядковому типу могут быть применены стандартные функции Low и High, которые возвращают наименьшее и наибольшее значения величин данного типа.

В языке Паскаль введены понятия эквивалентности и совместимости типов.

Два типа X1 и X2 являются эквивалентными (идентичными), если выполняется одно из двух условий:

  •  X1 и X2 представляют собой одно и то же имя типа;
  •  тип X2 описан с использованием типа X1 с помощью равенства или последовательности равенств.

Например:

type

 X1 = Integer;

 X2 = X1;

 X3 = X2;

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

В Турбо Паскаль ограничения на совместимость типов можно обойти с помощью приведения типов. Приведение типов позволяет рассматривать одну и ту же величину в памяти ЭВМ как принадлежащую разным типам. Для этого используется конструкция

Имя_Типа(переменная или значение)

Например, Integer('Z') представляет собой значение кода символа 'Z' в двухбайтном представлении целого числа.

trunc: real -> integer;

round: real -> integer;

val: string -> byte/integer/real;

chr: byte -> char;

ord: <порядковый_тип> -> longint;

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

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

Константа - это идентификатор, обозначающий некоторую неизменную величину определенного типа.

Целочисленные константы.

Вещественные константы.

Символьные константы.

Строковые константы.

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

Каждой типизированной константе ставится в соответствие имя, тип и начальное значение. Например:

year: integer = 2001;

symb: char = '?';

money: real = 57.23;

Математические операции

* / + - div mod

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

NOT - логическое отрицание ("НЕ")

AND - логическое умножение ("И")

OR - логическое сложение ("ИЛИ")

XOR - логическое "Исключающее ИЛИ"

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

> - больше

< - меньше

= - равно

<> - не равно

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

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

Приоритет операций

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

унарная операция not, унарный минус -, взятие адреса @

операции типа умножения:  *  /  div  mod  and

операции типа сложения:  +  -  or  xor

операции отношения:  =  <>  <  >  <=  >=  in

Порядок выполнения операций переопределить можно с помощью скобок.

Основные математические функции

Рис 3

Программа на языке Паскаль состоит из заголовка, разделов описаний и раздела операторов. Заголовок программы содержит имя программы, например:

Program PRIMER;

Описания могут включать в себя:

раздел подключаемых библиотек (модулей);

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

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

раздел описания типов;

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

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

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

program Primer; {вычисление суммы двух чисел}

uses Crt; {подключение модуля, необходимого для процедур

          очистки экрана и задержки}

//label

//const

var

 x,y,s: integer;

begin

 ClrScr; {очистка экрана}

 WriteLn('Введите через пробел два числа ');

 ReadLn(x,y);

 s := x + y;

 WriteLn('Сумма чисел равна ',s);

 ReadKey; {ожидание нажатия клавиши}

end.

Пример множественного выбора

case ch of

   'A'..'Z', 'a'..'z' : WriteLn('Буква');

   '0'..'9'           : WriteLn('Цифра');

   '+', '-', '*', '/' : WriteLn('Оператор');

   else WriteLn('Специальный символ')

end;

окончание лет год года

Оператор безусловного перехода

Помимо операторов условного перехода существует также оператор безусловного перехода goto. Формат:  goto метка

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

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

Пример

label 1;

begin

 ...

 goto 1;

 ...

 1: WriteLn('Переход к метке 1');

end.

Учтите! Само понятие структурного программирования и общепринятый стиль программирования на структурных языках НЕ ПРИВЕТСТВУЕТ применение меток и операторов перехода в программах. Это затрудняет понимание программы как автором, так и потребителями, кроме того, применение меток отрицательно сказывается на эффективности генерируемого кода.

  1.  Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней.

  1.  Написать программу угадывания (целых) чисел. Один из партнеров вводит в программу число, а второй должен отгадать это число. Причем на каждое предлагаемый вариант программа отвечает либо "больше", либо "меньше" до тех пор, пока число не будет отгадано.
  2.  Билет называется «счастливым», если в его номере сумма первых трех цифр равна сумме последних трех. Подсчитать число тех «счастливых» билетов, у которых сумма трех цифр равна 13.


 

А также другие работы, которые могут Вас заинтересовать

65209. РЕОЛОГІЧНІ ВЛАСТИВОСТІ АСФАЛЬТОПОЛІМЕРБЕТОНІВ ПРИ ДИНАМІЧНОМУ ДЕФОРМУВАННІ 236.5 KB
  Ефективне використання асфальтополімербетонів в значній мірі може бути забезпечене на стадії проектування за рахунок визначених реологічних властивостей і обліку його розрахункових характеристик.
65210. УДОСКОНАЛЕННЯ ТЕХНОЛОГІЇ ОДЕРЖАННЯ ЛЛЯНОЇ ТРЕСТИ ШЛЯХОМ ШТУЧНОГО ЗВОЛОЖЕННЯ 1.38 MB
  Метою дослідження є одержання високоякісного волокна льону за рахунок удосконалення традиційного технологічного процесу приготування трести шляхом обробки лляної соломи розчином меляси. Для досягнення поставленої мети необхідно було вирішити такі завдання...
65211. МОДЕЛІ ТА ЗАСОБИ ПІДВИЩЕННЯ ЕФЕКТИВНОСТІ ФУНКЦІОНУВАННЯ АДАПТИВНИХ ІНФОРМАЦІЙНО-УПРАВЛЯЮЧИХ СИСТЕМ ПРОМИСЛОВИХ ВИРОБНИЦТВ 336 KB
  Метою дисертаційної роботи є вирішення важливої науковотехнічної задачі підвищення ефективності функціонування та розвитку процесів оптимізації та адаптивного управління промислових виробництв сутність якої полягає в розробці теоретичних та методологічних основ...
65212. ВПЛИВ НЕЛІНІЙНИХ ПРУЖНИХ ХАРАКТЕРИСТИК НА ДИНАМІКУ РУХОМИХ ГНУЧКИХ ЕЛЕМЕНТІВ МАШИН 329.5 KB
  Найважливішими та найпоширенішими динамічними процесами які мають місце в енергетичних транспортних технологічних та інших системах є коливання. Отримати точні чи наближені аналітичні розвязки для них вдається тільки в окремих випадках а застосування компютерної техніки...
65213. ЗАКРІПЛЕННЯ ЗСУВОНЕБЕЗПЕЧНИХ ТЕРИТОРІЙ ЗА ДОПОМОГОЮ ЦЕМЕНТАЦІЇ ҐРУНТІВ ЗА БУРОЗМІШУВАЛЬНОЮ ТЕХНОЛОГІЄЮ 411.5 KB
  Використовується також поліпшення властивостей ґрунтів з метою штучного збільшення їх міцності. Серед цих методів інєкційна цементація ґрунтів застосовується частіше за інші але вона ефективна лише для тріщинуватих скельних порід щебенів і крупних пісків.
65214. УДОСКОНАЛЕННЯ МЕТОДІВ КОНТРОЛЮ ПОКАЗНИКІВ БЕЗПЕКИ У ТЕХНОЛОГІЇ ОЛІЄЖИРОВИХ ВИРОБНИЦТВ 514.5 KB
  Враховуючи зазначене вище удосконалення методів контролю показників безпеки в технології олієжирових виробництв розроблення перспективних методик та методів визначення органічних екотоксикантів пестицидів різних груп ПАВ консервантів та антиоксидантів...
65215. ОСОБЛИВОСТІ ДІЇ ТА ПІСЛЯДІЇ ІНСЕКТИЦИДІВ НА КОМАХ–ФІТОФАГІВ 204.5 KB
  Для досягнення поставленої мети виконувались такі завдання: оцінити порівняльну токсичність сучасних інсектицидів для комахфітофагів різних таксономічних груп; вивчити особливості фізіологічної післядії на комахфітофагів сучасних інсектицидів...
65216. Місцеве самоврядування як чинник розвитку сільських територій 173 KB
  Закріплене в Конституції України положення про визнання та підтримку державою місцевого самоврядування як права територіальної громади самостійно вирішувати питання місцевого значення створює сприятливі умови для активізації діяльності його органів щодо забезпечення розвитку сільських територій.
65217. Нерівноважна термодинаміка мартенситних перетворень в сплавах з термічно та магнітоіндукованим ефектами пам’яті форми 1.24 MB
  Окрім бездифузійності та жорстких орієнаційних співвідношень було відмічено ще низку особливостей цього типу фазових перетворень: Пертворення розповсюджується на широку область температур верхня межа якої була названа мартенситною точкою...