02 Программирование на ЭВМ

There is still time to download: 30 sec.



Thank you for downloading from us :)

If anything:

  • Share this document:
  • Document found in the public.
  • Downloading this document for you is completely free.
  • If your rights are violated, please contact us.
Type of: pdf
Founded: 21.03.2020
Added: 01.05.2020
Size: 1.04 Мб

Программирование на ЭВМ
Лекция 2.
Основные элементы языка Pascal
Доцент, к. т. н. Исаев А. В.
avisz@yandex.ru
Ауд. 7 или 234

Алфавит языка Pascal
В алфавит языка Pascal входят четыре группы
символов. Первые три из них составляют
стандарт языка:
1. Буквы латинского алфавита A…Z, a…z
2. Арабские цифры 0…9
3. Специальные символы . , : ; ( ) [ ] { } * - + / \ _ ^
' = < > # $ & @ %
4. Нестандартная группа — символы
национальных алфавитов ( русский,
греческий, арабский…)

Элементы программы на языке Pascal
Из символов алфавита языка Pascal образуются
слова, обозначающие следующие элементы
программы:

1. Ключевые слова ;
2. Идентификаторы, которыми обозначаются:
2.1 Типы данных;
2.2 Константы;
2.3 Переменные;
2.4 Имена подпрограмм;
….
3. Комментарии ;
4. Элементы выражений (операторы и операнды)
5. Другие…

Ключевые слова
• Ключевые слова (служебные,
зарезервированные слова) указывают
программе на необходимость выполнения
определенных действий.
• Могут использоваться ТОЛЬКО для этих
целей.
• Существует несколько десятков ключевых
слов ( program , begin , end , if ,
then , else , for , to и т. д.).

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

Требования к идентификаторам
1. Идентификаторы могут состоять из:
– латинских букв,
– арабских цифр
– знака подчеркивания.
2. Первым символом идентификатора
обязательно должна быть буква.

Идентификаторы в языке Pascal
• Корректные идентификаторы:
b
y1
Z_start
My_Program
• Некорректные идентификаторы:
1x
x -1
*@$&
Диаметр_1

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

Стандартные и пользовательские
типы данных
• Стандартные типы данных «зашиты» в
стандарте языка: логические, символьные,
целочисленные, вещественные и др.
• На основе стандартных типов данных можно
создавать собственные (пользовательские )
типы данных. Например, массивы с заранее
определенной структурой.
• Новые типы данные описываются в секции
type раздела описаний (см. далее в разделе
« Структура программы на Pascal »).

Характеристики
наиболее часто
используемых
стандартных типов
данных языка Pascal

+ - * /
<
>
>=
<=
=
<>
+ - * div mod
<
>
>=
<=
=
<>

Стандартные типы данных
• Порядковые (целочисленные) типы:
integer , byte, word и т.д.;

• Вещественные (с плавающей точкой) типы:
real , extended и т.д.;

• Логический тип:
boolean

• Символьные типы:
char и т.д.;

• Строки:
string

• Структурированные:
array , record и т.д.

Константы
• Константы — неизменяемые, постоянные величины
соответствующего типа.

• Логическая константа : слово true или false.
• Символьная константа : любой символ ПК, заключенный
в апострофы.

Если нужно записать сам знак апострофа, то он
удваивается: ' '
• Можно записывать символы с указанием его
внутреннего кода, при этом перед кодом ставится
символ #
Например: #13 (знак перевода строки).

Константы
• Целочисленные константы записываются со знаком
(+ или – ) или без него.
• Вещественные константы — со знаком или без него
с использованием десятичной точки (НЕ запятой!!! )
и/или экспоненциальной части.
• Символ e или E означает десятичный порядок и
имеет смысл "умножить на 10 в степени".
• Например:
3.14 E 5 означает 314 000
- 25 e - 2 означает - 0.25

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

Подпрограммы
• Подпрограммы — специальным образом
оформленные фрагменты программы,
в значительной степени независимые от
остального текста программы.
• Два вида подпрограмм:
1. процедуры;
2. функции .
• Единственное их отличие — функции может
быть присвоено значение , а ее
идентификатор можно использовать вместе с
переменными и константами в выражениях.

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

Подпрограммы
• Существуют стандартные подпрограммы,
«зашитые» в стандарте языка (например,
процедуры ввода и вывода данных,
математические функции).
• Пользовательские подпрограммы
создаются программистом по строго
определенной структуре
(см. лекцию «Подпрограммы»).

Комментарии
• Служат пояснениями для программиста. Многострочные
комментарии обозначаются парами символов { } или (* *)
• Однострочные комментарии обозначаются символами //

// это однострочный комментарий


{ а это,
как можно b^_lv,
Многострочный }

(* и это –
Тоже
многострочный комментарий
*)

Структура программы на Pascal
Имя
программы Заголовок (обязательная часть)
Program ProgName ;
Раздел
описаний
список используемых библиотек (модулей)
uses

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

описание типов;
type

определение глобальных переменных;
var


определение процедур;
procedure


определение функций
function

Тело
программы
Операторы (обязательная часть).
begin



end.

Структура подпрограмм
• Подпрограммы (процедуры и функции )
имеют аналогичную структуру,
включающую в себя заголовок, раздел
описаний, тело подпрограммы.
• Единственное отличие – в заголовке
подпрограммы вместо слова program
пишется, соответственно, procedure или
function

Правило
• В любом месте программы можно
использовать лишь те элементы ,
которые были объявлены ранее
в разделе описаний .

Синтаксис и семантика
языка программирования
• Синтаксис языка программирования — набор
правил, описывающий комбинации символов
алфавита. Аналогия — синтаксис
человеческого языка, определяющий строение
связной речи.
• Синтаксису языка противопоставляется его
семантика . Семантика определяет смысловое
значение синтаксических конструкций.

Синтаксис и семантика
языка программирования
• Пример синтаксически правильной , но
семантически неверной записи:
X:=125/0;
Y:= 12.5 div 5;



Семантически
неверно!!!

Основные правила синтаксиса языка Pascal
1. Все строки программы заканчиваются символом ; (точка с
запятой).
2. После ключевых (зарезервированных) слов
символ ; никогда не ставится, за исключением слова end .
3. После последнего end программы стоит символ . (точка).
4. Каждой открывающей скобке должна соответствовать
закрывающая скобка:
() [] {}
5. Каждому begin (начало) должен соответствовать свой end
(конец).
6. Заглавные и строчные буквы в общем случае не различаются.
Различие между ними есть только в значениях строковых и
символьных переменных и констант.

Выражения
• В общем случае выражение состоит из
нескольких элементов ( операндов ) и знаков
операций .
Например:
x+y здесь операнды: x и y
знак операции : +

• Выражения могут состоять из одиночного
элемента (операнда).
• Например : x — тоже выражение.

Тип выражения
Тип выражения определяется типом
операндов, входящих в него, и зависит от
операций, выполняемых над ними.

Тип выражения
• Для операций сложения (+) , вычитания (— )
и умножения (*) :



• Для операции деления (/):
Операнд 1 Операнд 2 Результат
Integer Integer Real
Integer Real Real
Real Integer Real
Real Real Real
Операнд 1 Операнд 2 Результат
Integer Integer Integer
Integer Real Real
Real Integer Real
Real Real Real

Операции деления для
целочисленных типов
• При выполнении целочисленного деления
(операция div ) остаток от деления
отбрасывается. Например,
15 div 3  5; 18 div 5  3;
7 div 10  0.
• С помощью операции mod можно найти остаток
от деления одного целого числа на другое.
Например,
15 mod 3  0 ; 18 mod 5  3 ;
7 mod 10  7.

Примеры выражений
Переменные и их тип Выражение Результат
x, y, z: integer;
x:=3;
y:=10;
z:=x/y
Ошибка
(операция деления « / »
не определена для
порядкового типа данных)
x, y, z: real;
x:=3;
y:=10;
z:=x/y
0.33333333….
a, b, c: integer;
a:=10;
b:=3;
c:=a div b
3
a, b, c: integer;

a:=10;
b:=3;
c:=a mod b
1
a, b: real;
c: integer;
a:=10;
b:=3;
c:=a /b
// или c:=a div b
// или c:=a mod b
Ошибка: несовпадение
типов в левой и правой
части выражения

Приоритет операций в выражениях
1. Наивысший приоритет: логическое НЕ
not
2. Выражения в круглых скобках ( )
3. Операторы умножения/деления и конъюнкции
(логическое «И»):
and * / div mod
4. Операторы сложения/вычитания и дизъюнкции
(логическое «ИЛИ» и «исключающее ИЛИ»):
or xor + –
5. Операторы сравнения:
= < > <= >= <>

Примеры
A+B*C
(A+B)*C
not A+B*C
not (A+B*C)
(A+B) and (C+D)
(A>B) or (B A>B or B
Оператор присваивания в языке Pascal
В общем виде оператор присваивания
записывается так:
переменная := выражение;
Например:
a:=5;
b:=b+2;
z:=(10+q*p)/n;

Работа оператора присваивания в языке Pascal
1. Вычисляется значение выражения в правой
части присваивания.
2. Переменная, указанная в левой части, получает
вычисленное значение.
• Тип выражения обязан быть совместим по
присваиванию с типом переменных, входящих в
выражение! (см. выше «Тип выражения»)

Логические операции. Отрицание
• Отрицание
(логическое НЕ, оператор not )
• Обозначения: � или ¬ �
• На Паскале:
not a
• Это унарная операция, то есть
производимая над одним операндом.

Логические операции. Конъюнкция
Остальные логические операции бинарные (над
двумя операндами).
• Конъюнкция (логическое умножение, логическое И,
оператор and )
• Обозначения: � ∙ � ,� & � , � ⋀ �
• Например:
a . b означает « а и b » .

• На Паскале:
a and b

Логические операции. Дизъюнкция
• Дизъюнкция (логическое сложение,
включающее ИЛИ, либо просто ИЛИ,
оператор or )
• Обозначения: � + � , � �
• Например:
a + b означает « а или b »

• На Паскале:
a or b

Логические операции
• Сложение по модулю 2 (исключающее ИЛИ,
«либо… либо…»,
оператор xor )
• Обозначение : a ⊕ b .
• Например:
a ⊕ b означает «либо а , либо b »,

• На Паскале:
a xor b

Таблицы истинности
основных логических операций
a b a OR b
0 0 0
1 0 1
0 1 1
1 1 1
a b a XOR b
0 0 0
1 0 1
0 1 1
1 1 0
a b a AND b
0 0 0
1 0 0
0 1 0
1 1 1

Логические операции
Все эти операции могут применяться в
выражениях как логических, так и
арифметических. В любом случае операция
производится побитово , т. е. для каждого
знака операндов попарно.
Например, если
a = 0110101 1 2
b =00110 0 1 0 2
то a or b будет равно
01111011 2

Что сегодня изучили?
1. Алфавит языка Pascal;
2. Основные элементы программы на языке Pascal .
Ключевые слова, идентификаторы;
3. Синтаксис языка Pascal . Понятие семантики. Основные
правила синтаксиса.
4. Типы данных;
5. Константы, переменные.
6. Структура программы на языке Pascal ;
7. Логические типы данных. Таблицы истинности
8. Оператор присваивания в Pascal ;
9. Выражения. Понятия операнда и оператора. Тип
выражений;
10. Понятие приоритета операций;
11. Базовые операции в языке Pascal .

Спасибо за внимание!