Простейшие конструкции языка Pascal
Синтаксис и семантика языка программирования
Простейшие конструкции языка
Алфавит языка Pascal:
Разделители
Структура программы на языке Pascal
Примеры программ
Данные. Типы данных
Примеры данных
Переменная
Идентификаторы
Константы
Виды констант (литералов):
Операции обмена данными
Пример
Тип данных
Тип данных –
Тип данных –
Типы данных
Типы данных
Для чего среди простых типов выделен отдельный класс порядковых типов?
Целые типы данных
Операции над целочисленными типами
Формат числовых данных
Вещественные типы:
Формат вывода вещественных данных
Формат вывода данных
Числовые погрешности
Числовые погрешности
Преобразование типов
Пользовательские и стандартные типы данных
Выражение – это правило (формула) для вычисления нового значения.
Арифметические выражения
Стандартные функции:
Логические выражения
Логические операции
Операция AND (логическое И, логическое умножение)
Операция OR (логическое ИЛИ)
Операция XOR (логическое ЛИБО, ЛИБО)
1.47M
Category: programmingprogramming

Простейшие конструкции языка Pascal. Лекция № 2

1. Простейшие конструкции языка Pascal

Лекция №2

2. Синтаксис и семантика языка программирования

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

3. Простейшие конструкции языка

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

4. Алфавит языка Pascal:

Строчные и прописные буквы латинского
алфавита a..z, A..Z и знак подчеркивания _;
Цифры 0..9;
Специальные знаки . , + - * / : ; < > { } [ ] ( ) ^ @
# <= >= := (* *);
Служебные слова end, begin, сase, write, …,
которые нельзя использовать в программе в
каком-либо другом качестве.

5. Разделители

Пробел, ( ), [ ], +, - , * , / , < , > , =
,:,;
Пример
Write(A[i]+A[i+1]);
If
d>15
then
d:=d-1;

6. Структура программы на языке Pascal

PROGRAM <имя программы>;
USES <Список библиотек (модулей)>;
TYPE <Описание типов данных>;
CONST <Описание констант программы>;
VAR <Описание переменных>;
<Описание процедур и функций>;
BEGIN
<Последовательность операторов алгоритма>
END.
Описательная
часть программы
Исполнительная
часть программы

7. Примеры программ

Program Pr_1;
Begin
write('hello')
end.
Program Pr_2;
Var name:string;
Begin
write(‘Ваше имя?');
Readln(name);
write('hello, ‘,name)
end.

8. Данные. Типы данных

Информация
Входные
Выходные
данные
данные
Информация
Данные - это формализованное представление информации.
Данные - это информация, представленная в виде,
позволяющем запоминать, хранить, передавать или
обрабатывать её с помощью технических средств.
Данные – это информация об объекте или отношениях
объектов, выраженная в знаковой форме.

9. Примеры данных

Десятичные целые числа,
Двоичные числа,
дробные числа,
Вещественные числа,
текст,
логические значения true и false,
файлы,
графики,
матрицы,
схемы
различные математические, физические и
любые другие модели.

10. Переменная

Переменная - это объект программы, способный принимать и
хранить значения данных.
В процессе выполнения программы значения присваиваются
переменным чаще всего при выполнении оператора
присваивания или оператора ввода данных, при этом «старое»
значение переменной стирается.
a:=12/3;
Read(a);
Второе правило – для работы алгоритма
требуется память. В памяти размещаются
входные данные, с которыми алгоритм
начинает работать, промежуточные данные и
выходные данные, которые являются
результатом работы алгоритма. Память
является дискретной, т.е. состоящей из
отдельных ячеек. Поименованная ячейка
памяти носит название переменной

11.

Идентификаторы (имена) переменных
В именах МОЖНО использовать
• латинские буквы (A-Z)
заглавные и строчные буквы не различаются
• цифры
имя не может начинаться с цифры
• знак подчеркивания _
В именах НЕЛЬЗЯ использовать
• русские буквы
• пробелы
• скобки, знаки +, =, !, ? и др.
Какие имена правильные??
AXby R&B 4Wheel Вася
[QuQu] _ABBA A+B
“PesBarbos” TU154
11

12. Идентификаторы

идентификатор должен быть смысловой, т.е.
отражать физическую суть объекта,
запись идентификатора должна быть краткой.
FIO,
price,
plan
Summ_Inp,
Summ_Out

13. Константы

Константами называются элементы данных, значения
которых известны заранее и в процессе выполнения
программы не изменяются.
Константы используют в двух формах:
литералы (т.е. конкретные значения объектов программы)
именованные константы. Именованные константы
описываются в разделе const.
Const
min= –5; max=100;
Str=’end’;
Var a:real; flag:boolean; Center:integer;
Begin
a:=24.09;
flag:=true;
Center:=(max-min) div 2;

14. Виды констант (литералов):

Целые и вещественные десятичные числа
25,
6.12,
0.053е5
Шестнадцатеричные числа
$45;
Логические константы
true, false
Символьные константы
‘A’
#65 (соответствует символу ‘А’);
Строки
‘студент’
«нулевой» адрес оперативной памяти– nil.

15. Операции обмена данными

Входные
Выходные
Информация
Информация
данные
данные
Ввод данных с клавиатуры (в компьютер)
Read (<список ввода>);
ReadLn (<список ввода>);
{список ввода содержит
только переменные}
Вывод данных на экран осуществляется с помощью
операторов вывода:
write (<список вывода>);
{список вывода м.содерж.
writeLn (<список вывода>); перемен., строковые конст.,
арифм. и логич.
выражения}

16. Пример

Program Pr_1;
Var a,b: integer;
Begin
Print(‘Введите два числа’);
Readln( a,b);
{запрос на ввод данных}
{ввод данных в переменные}
write(‘ Ср. арифметическое чисел ’,a, ‘ и ’, b,’=‘, (a+b)/2);
End.
{список вывода, содержит строку, переменные и
арифметическое выражение}

17. Тип данных

Константы и переменные характеризуются типом данных,
который указывается при описании объектов в
соответствующих разделах (Const и Var), что
обусловлено тем, что при компиляции программы под
ресурсы программы выделяется область оперативной
памяти.
Каждый тип данных имеет свой идентификатор, который
указывается при описании объектов.
Var
Summ:Real;
a:integer;
c:char;
fl:boolean;

18. Тип данных –

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

19. Тип данных –

Название
типа
Целое
Короткое
целое
Байт
Длинное
целое
▪
▪
▪
▪
Идентификатор
типа
+, - ,
*, /,
mod, div,
And, or, xor, not
< , > , = , <>,
Integer
ShortInt
-2 147 483 648 .. 2 147 483 647
-128..127
Объем
занимаемо
й памяти
4
1
Byte
Int64
0..255
-9223372036854775808
1
8
.. 9223372036854775807
0 .. 18446744073709551615
8
5*10-324 .. 1.7*10308
6
Любой символ таблицы ASCII
Последовательность символов
типа Char
True, False
2
2б..2Гб
Длинное
Uint64
целое
Вещественное Real
Символ
Строка
Char
String
Логический
Boolean
Диапазон значений
1

20.

Переменные
Выделение
места в памяти
variable – переменная
тип – целые
var a, b, c: integer;
список имен
переменных
20

21. Типы данных

простые (скалярные)
Переменные простых
типов принимают
только одно
значение, которое
допускает диапазон
типа.
Структурные
Данные структурных типов
представляют собой
совокупность данных какоголибо типа, простого или
структурного.
Var a:byte;
S:char;
Begin
a:=25;
S:=’A’;
a:=2*a;
…
Массив Аrr:
(1, 1, 2, 3, 5, 8, 13, 21,
34)
Строка:
‘В лесу родилась ёлочка’
Запись Rec:
(‘Иванов Е.П.’, 1967, №8704
123456, ‘слесарь’)

22.

23. Типы данных

Простые типы в свою очередь делятся на порядковые и
вещественные.
Порядковые типы содержат конечное упорядоченное число
значений. Элементы порядкового типа упорядочены, то есть
каждый элемент типа имеет свой порядковый номер.
Поэтому к элементам порядковых типов применимы
следующие операции:
Ord(x) – определяет порядковый номер значения x в упорядоченной
последовательности значений типа, к которому принадлежит x.
Pred(x) – возвращает значение типа, предшествующее значению x.
Succ(x) – возвращает значение, следующее за значением x.

24.

Вещественные типы не могут относиться к группе
порядковых типов, так как в определенном
диапазоне чисел, даже в самом маленьком,
бесконечно много вещественных чисел и их
нельзя пронумеровать.
Между 2.5 и 2.6 располагается бесконечно много
чисел: 2.55, 2.50001 2.552, …. 2.59, 2.591 и
т.д.

25. Для чего среди простых типов выделен отдельный класс порядковых типов?

Дело в том, что некоторые конструкции языка
программирования допускают использование
только упорядоченных конечных множеств
значений.
К таким конструкциям относятся:
оператор выбора Case,
оператор цикла For.
Индексы элементов массива.
Элементы множества.

26. Целые типы данных

Имя типа
Тип
данных
Длина в
байт.
Диапазон значений типа
ShortInt
Короткое
целое
1
-128 ..127
Byte
Байт
1
0 ..255
Word
Слово
2
0 ..65 535
SmalIint
Целое
2
-32 768 ..+32 767
Integer,
LongInt
Целое
4
-2 147 483 648 ..+2 147 483647
Int64
Длинное
целое
8
-9223372036854775808
..9223372036854775807
8
0
18446744073709551615
Uint64
Biginteger
Ограничено только размером ОП

27. Операции над целочисленными типами

сложение (+),
вычитание (-),
умножение (*)
деление
(/)
Div (возвращает неполное частное)
Mod (возвращает остаток от деления).
15 Div 8=1,
т.к. 15=8*1+7
15 Mod 8=7
5 div 8=0,
т.к. 5=8*0+5
14 mod 2=0,
т.к. 14=2*7+0
-17 div 3= ?
-17 div (-3)= ?
-10 mod 4= ?

28. Формат числовых данных

Формат с
фиксированной
запятой
Целые числа
23
-125
[23]пк=00010111
[-125]дк=10000011
Формат с
плавающей запятой
Вещественные числа
Нормализованная форма
27,03=0,2703*102
0,0003=0,3*10-3
0,0000107=0,107*10-4;
1000000=0,1*107
A = ma * q
1
m 1.
q
Pa
,

29. Вещественные типы:

Длина
внутрен.
представ.
Название
Обозначение
Кол-во
дес.
значящих
цифр
Диапазон изменения
порядка
4
Одинарной
точности
Single
7-8
-45..+38
8
Двойной
точности
Real,
Double
15-16
-324..+308
Decimal
28-29
-79228162514264337593543950335
..
79228162514264337593543950335
10
Во внутреннем представлении мантисса и порядок
вещественных чисел хранятся раздельно, причем
количество разрядов под мантиссу и порядок
регламентируется типом числа.

30. Формат вывода вещественных данных

Веществен.
число
X:=450
X:=0.0012
X:=5.9709
Экспоненциальный
формат вывода
4.5000000000Е+02
1.2000000000Е-03
5.9709000000Е+00
формат
вывода
X:3:0
X:6:4
X:6:4

31. Формат вывода данных

Writeln(‘САША’:7);
Writeln(450:7);
Writeln(12.07:7:2);
Writeln(17.07:5:3);
_ _ _ Саша
_ _ _ _450
_ _ 12.07
12.070

32. Числовые погрешности

Количество цифр в мантиссе определяет точность,
с которой может быть представлено число.
Пример
Var S:real;
begin
S:=0;
While S<>1 do
S:=S+0.1;
Writeln('s=',S);
end.

33. Числовые погрешности

Погрешность возникает при обработке очень больших и
очень маленьких вещественных чисел. Сложение
большого числа с маленьким может быть равно
большому числу, т.е. X+Y=X.
Результат умножения двух очень маленьких чисел может
оказаться столь мал, что будет равен 0. И наоборот,
если умножить два очень больших числа, результат
может оказаться слишком большим, чтобы его можно
было представить верно.

34. Преобразование типов

При решении некоторых задач вещественные данные необходимо
преобразовать в целочисленные данные. В таких случаях
используют функции преобразования вещественных типов в
целочисленные
Функция
Результат
Round()
Округление вещественного числа до ближайшего
целого числа.
Trunc()
Выдает значение целого типа, отбрасывая дробную
часть числа.
Функция
X
Y
Y:=Round(X);
Y:=Trunc(X);
2.67
2.67
3
2

35. Пользовательские и стандартные типы данных

Стандартные типы данных имеют предопределенные
идентификаторы. Все остальные типы являются
пользовательскими и конструируются программистом в
разделе описания типов
TYPE
<идентификатор типа>=<структура типа>;
Примеры
Type Massiv= array [1..100] of integer; {тип массив}
Simbol=Set of char; {множественный тип символов}
Data=1..31;
{тип-диапазон}
Znak=(minus,plus,del,mult); {перечисляемый тип}
Var M:Massiv;
S1, S2:Simbol;

36. Выражение – это правило (формула) для вычисления нового значения.

Выражения строятся из операндов, операций и круглых скобок.
Операнды:
константы, переменные и функции.
Результат:
значение числового, логического типа, строка или множество.
Тип результата
определяется
Тип операций
Операции
типом операндов и
Арифметическ
ие операции
+, -, *, /, div, mod
a:=a mod 10;
Вещественного
или целого типа
Операции
отношения
<, >, <>, =, <=, >=
a<=10
Логического
типа (true, false)
Логические
операции
And, or, not, xor
(a<=N) and (a mod 2=0)
Логического
типа (true, false)
Строковая
операция
Конкатенация (+)
S:=‘ ‘+s1+’ ‘;
Строка
Операции над
множествами
+, -, *,
in (принад. элемта множеству)
[0,3..10]*[5,6]
c in [‘a’..’z’]
Множество
Логического
типа (true, false)
Операции над
указателями
@
P:=@adr
адрес
типом операций.
Примеры
Тип результата

37. Арифметические выражения

конструируются с помощью:
четырех арифметических операций: +, –, *, / ,DIV и MOD,
а также
стандартных функций, которые имеют наивысший
приоритет.
Алгебраическое выражение y =
на языке Pascal:
3 .4 + 2 x
5x2 − 1
Уровень
приоритета
Операции
1
Логические операции
1 Not,
2 And,
3 or, xor,
2
Операции
умножения/деления
*,/, div, mod,
3
Операции сложения
+, -,
4
Операции сравнения
<, >, <>, =, <=, >=, in
y:=(3.4+2*x)/(5*x*x-1)

38. Стандартные функции:

Записать на языке Pascal выражение:
ABS(x)
ARCTAN(x)
SIN(x)
COS(x)
EXP(x)
LN(x)
SQR(x)
SQRT(x)
ROUND(x)
TRUNC(x)
FRAC(x)
z=
sin
z=
tg
2
+ 0.4 x
x
6− x
3
+ x − 3x
6x

39. Логические выражения

Логические выражения чаще всего применяются в
управляющих операторах. Они конструируются с помощью
операций отношения (сравнения): =, <>, <, >, <=, >=
и логических операций And, Not, Or, Xor.
Результатом логического выражения является одно из
значений логического типа: true или false.
(-10>0)
(17 mod 2=0)
(X<>0)
(A[i]<max)
Ch=‘Y’
Key<>FIO
Не путать
операции
=
и
:=

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

Операция отрицания
(логическое НЕ)
Примеры логических выражений:
A
Not A
True
False
False
True
Not (a<0)
Not(a mod 2=0)
While not (a>0)do
readln(a);

41. Операция AND (логическое И, логическое умножение)

AND используется в случае, когда
необходимо выполнение
нескольких условий
одновременно.
Примеры логических выражений:
1)
(а mod 10<5)and(a>0)
2)
(a mod 2=0)and(a>0)
If
A
B
A and B
True
True
True
False
true
False
True
false
False
false
False
false
(a=b) and (a=c) then
writeln (‘равносторонний’);

42. Операция OR (логическое ИЛИ)

Используется в случае, когда необходимо
выполнение хотя бы одного из
нескольких условий.
Примеры логических выражений:
1)
(x=3)or(a=-3)
2)
(a mod 2=0)or(a>0)
3)
(a+b<=c) or (a+c<=b) or (b+c<=a)
If
A
B
A or B
true
true
True
false
true
True
true
false
True
false
False
false
(a=b) or (a=c) or (b=c) then
writeln (‘равнобедренный’);

43. Операция XOR (логическое ЛИБО, ЛИБО)

Используется в случае, когда
необходимо выполнение строго
одного из двух условий.
Примеры логических выражений:
A
B
A xor B
True
True
false
False
true
True
1)
(a mod 2=0)xor(a>0)
True
false
True
2)
(x<0)xor (y<0)
false
False
false
English     Русский Rules