72197

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

Лекция

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

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

Русский

2014-11-19

42.5 KB

6 чел.

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

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


 

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

68207. АГРОЕКОЛОГІЧНЕ ОБҐРУНТУВАННЯ ЗАХОДІВ ПОЛІПШЕННЯ ЯКОСТІ ПИТНОЇ ВОДИ ДЕЦЕНТРАЛІЗОВАНОГО ВОДОПОСТАЧАННЯ 1.1 MB
  Забруднювачі з ґрунту безпосередньо впливають на хімічний склад суміжних середовищ у тому числі й води підземних джерел. Оскільки ґрунтові води не захищені водотривкими породами а їх живлення відбувається в результаті фільтрації атмосферних опадів через інколи незначний 15–2 м завтовшки...
68208. ТЕХНОЛОГІЯ СОУСІВ ЯГІДНИХ З ВИКОРИСТАННЯМ ПРИРОДНОЇ НЕТРАДИЦІЙНОЇ СИРОВИНИ 975.5 KB
  Слід підкреслити що останнім часом все більшого розповсюдження у ресторанному господарстві набуває креативна кухня яка характеризується додаванням до страв з м’яса риби птиці дичини солодких соусів з плодів та ягід асортимент яких обмежується вишневим чорносмородиновим сливовим соусами...
68209. ФОРМУВАННЯ ГОТОВНОСТІ МАЙБУТНЬОГО ВЧИТЕЛЯ ПОЧАТКОВИХ КЛАСІВ ДО ПЕДАГОГІЧНОГО МОДЕЛЮВАННЯ 290 KB
  Нові: знання методів моделювання та застосування моделей зокрема до процесів об’єктів і суб’єктів навчання і виховання; уміння визначати доцільність застосування методів педагогічного моделювання до розв’язування педагогічних задач; здатність до освоєння сучасних в тому числі заснованих на застосуванні...
68210. СЕРЕДНЬОШРИФТОВЕ ЧЕТВЕРОЄВАНГЕЛІЄ: ЛІНГВІСТИЧНИЙ І ПАЛЕОГРАФІЧНИЙ АНАЛІЗ 176.5 KB
  Досягнення цієї мети передбачає виконання таких завдань: проаналізувати безвихідні дофедорівські книговидання в контексті проблеми дофедорівського книгодрукування на східнослов’янських землях; окреслити місце середньошрифтового Євангелія серед безвихідних видань...
68211. Оптимізація діагностики і лікування хронічного біліарного панкреатиту у хворих з ожирінням 196 KB
  Мета дослідження: підвищити якість діагностики і ефективність лікування біліарного ХП у хворих із ожирінням. Для досягнення цієї мети були поставлені наступні завдання: Проаналізувати клінічні прояви біліарного ХП у хворих із ожирінням.
68212. ЕКСПОРТНИЙ ПОТЕНЦІАЛ ПІДПРИЄМСТВ ЛІСОПРОМИСЛОВОГО КОМПЛЕКСУ 662 KB
  Розвиток світового господарства у теперішній час вирізняється посиленням глобалізаційних процесів, які зумовили трансформацію моделей міжнародного співробітництва, зміну структури об’єктів і суб’єктів світового ринку
68213. ДЕРЖАВНА ПОЛІТИКА РОЗВИТКУ ІННОВАЦІЙНОГО ПОТЕНЦІАЛУ РЕГІОНІВ УКРАЇНИ 324.5 KB
  Курс на інноваційний розвиток в Україні визначає перехід економіки до нового якісного рівня. Він супроводжується активізацією інноваційної діяльності, яка сприяє реорганізації економіки на основі розвитку наукоємних виробництв, запровадження у виробництво прогресивних...
68214. СОЦІАЛЬНИЙ КАПІТАЛ ЯК ЧИННИК ПРОФЕСІЙНОЇ СОЦІАЛІЗАЦІЇ ПРАВООХОРОНЦІВ 225 KB
  Проте на жаль потенціал соціального капіталу в її реалізації практично не використовується. Тому в даній дисертації вперше пропонується комплексно розглянути феномен соціального капіталу правоохоронців та визначити можливості його використання для оптимізації процесу їх професійної соціалізації.
68215. СУЛЬФАТРЕДУКУЮЧІ, ТІОНОВІ, ДЕНІТРИФІКУЮЧІ БАКТЕРІЇ В ПРИБЕРЕЖНІЙ ЗОНІ ЧОРНОГО МОРЯ І ЇХНЯ РОЛЬ У ТРАНСФОРМАЦІЇ НАФТОВИХ ВУГЛЕВОДНІВ 532.5 KB
  В 80х роках минулого сторіччя у відділі морської санітарної гідробіології Інституту біології південних морів НАН України вивчали деякі групи анаеробних бактерій біля узбережжя Криму та в західній частині Чорного моря Миронов 1988.