72197

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

Лекция

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

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

Русский

2014-11-19

42.5 KB

12 чел.

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

Рис 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.


 

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

50976. Усі уроки з природознавства. 1 клас. М.О. Володарська 5.18 MB
  Що потрібно знати про природу. Екскурсія. Ознайомлення з обєктами неживої та живої природи. Дослідження дрібних деталей предметів за допомогою лупи. Сонце та його значення для життя на Землі. Значення повітря для живої природи. Листяні та хвойні рослини. Дикорослі та культурні рослини. Дослідницький практикум. Як живуть мурахи. Тварини «живого куточка», хатні улюбленці. Дикорослі рослини рідного краю. Міні-проект. Як облаштувати джерело.
50977. Кадровый потенциал предприятия: оценка и направления эффективности его использования, на примере ООО «Межрайонная специализированная организация» 1.34 MB
  изучить теоретический базис системы управления кадровым потенциалом предприятия; рассмотреть методологические аспекты управления кадровым потенциалом; дать организационно-экономическую характеристику торгового предприятия ООО «Межрайонная специализированная организация»; проанализировать структуры кадрового потенциала торгового предприятия...