Высокоуровневые методы информатики и программирования 1.

advertisement
Высокоуровневые методы
информатики и
программирования
1.
2.
Язык программирования высокого
уровня Pascal
Объектно-ориентированное
программирование
История развития языка Pascal
• 1967 г. Николаус Вирт на базе языка Algol начинает разработку
нового языка программирования, который назвал его в честь
Блеза Паскаля
• 1979 г. Британский стандарт языка программирования Pascal
BS6192
• 1982 г. международный стандарт языка ISO 7185
• 1983 г. фирма Borland выпускает Turbo Pascal версии 1.0
• 1992 г. фирма Borland выпустила два пакета: Borland Pascal 7.0
и Turbo Pascal 7.0
• последующее развитие Pascal привело к появлению языка
Object Pascal, который впоследствии стал основой для создания
Delphi
• 2006 г. фирма Borland выделяет разработчиков Delphi в
отдельную компанию CodeGear
• Аналогом Delphi для операционной системы Unix является
Kylix
Структура языка Pascal
Алфавит
• фиксированный набор основных
символов, из которых должен состоять
любой текст на этом языке
Синтаксис • правила построения фраз
правил истолкования
Семантика • система
отдельных языковых конструкций
Алфавит языка Pascal
• прописные (A…Z) и строчные (a…z) буквы
латинского алфавита
• знак подчеркивания ( _ )
• цифры (0…9)
• специальные знаки (. : ; ' ^ $ # @ ( ) [ ] { } = +
- * / > <)
• пробельные символы
Лексемы
Составные
символы
Символы
Лексемы
зарезервированные
(ключевые) слова
имена
(идентификаторы)
Составные символы
образуются из комбинации специальных
символов:
• := (присвоение)
• .. (диапазон значений)
• <> (не равно)
• <= (меньше или равно)
• >= (больше или равно)
• (* и *) (альтернатива фигурным скобкам)
• (. и .) (альтернатива квадратным скобкам)
Зарезервированные (ключевые) слова
являются составной частью языка, имеют
фиксированное написание и однозначно
определенный смысл, который не может быть
изменен
• Program
• Begin
• End
• If
• Else
•…
Правилам составления имен
(идентификаторов)
1. может состоять из букв латинского
алфавита, цифр и знака подчеркивания
2. не может содержать специальные знаки
3. не может начинаться с цифры
4. не может совпадать ни с одним из
зарезервированных слов
5. длина может быть произвольной, но
значащими считаются первые 63 символа
В языке Pascal при написании
зарезервированных слов и идентификаторов
игнорируется различие в высоте букв
• Name
• NAME
• name
Типы данных
• Тип данных определяет внутреннее
представление данных, диапазон их
значений и допустимые действия над ними
• Каждое выражение в программе имеет
определённый тип
Языки
программирования
Слабо
типизируемые
статически
типизируемые
динамически
типизируемые
Сильно
типизируемые
Строго
типизируемые
Стандартные
типы данных
Пользовательские
типы данных
предопределены
разработчиками
языка
определяются
программистом
в программе, на
основе
стандартных
Классификация типов данных
в языке Pascal
Порядковые
Простые
Структурированные
Логический
Вещественные
Массивы
Записи
Указатели
Строковые
Процедурные
Целые
Множества
Файлы
Объекты
Символьный
Перечисляемые
Тип-диапазон
Целочисленные типы данных
Shortint
Integer
Longint
Byte
Word
Cardinal
Smallint
Int64
Longword
Диапазон
-128..127
-32768..32767
-2147483648..2147483647
0..255
0..65535
1
2
4
1
2
Диапазон
также
-2147483648..2147483647
также
также
также
0..4294967295
-32768..32767
-263 .. 263-1
0..4294967295
Размер
(байт)
Тип
Object Pascal
Размер
(байт)
Turbo Pascal
4
4
2
8
4
Вещественные типы данных
Real
Single
Double
Extended
Comp
Real48
Currency
6
4
8
10
8
11-12 -5.0х10324..1.7х10308
7-8
также
15-16
также
19-20 -3.6x104951.. 1.1x104932
19-20 -263+1 .. 263-1
-2.9x1039.. 1.7x1038
-922337203685477.5808
922337203685477.5807
Точность
-2.9x1039.. 1.7x1038
-1.5x1045..3.4x1038
-5.0x10324..1.7x10308
-3.4х104932..1.1х104932
-9.2х1018..9.2х1018
Диапазон
Размер
(байт)
Диапазон
Точность
Тип
Object Pascal
Размер
(байт)
Turbo Pascal
8
15-16
10
8
6
8
19-20
19-20
11-12
19-20
• Логический тип (Boolean) занимают в памяти 1
байт и могут принимать два значения: False (ложь)
или True (истина).
• Символьный тип (Char) позволяет работать с
символами, которые записываются двумя
способами: в одинарных кавычках или по их ASCII
коду, например 'b', 'Д', '*' или #98, #132, #42. Под
каждый символов отводится 1 байт.
• Указательный тип (Pointer) представляет собой
адрес в памяти компьютера.
• Строковый тип (String) представляет собой строку
символов и занимает Max+1 байт, где Max –
максимальное количество символов в строке.
Строковые типы данных, доступные в Delphi
Тип
ShortString
AnsiString
WideString
Максимальная
длина (символов)
Занимаемая
память
Размер
символа
(байт)
255
~231
~230
От 2 до 256 байт
От 4 байт до 2 Гб
От 4 байт до 2 Гб
1
1
2
Действия, выполняемые над
данными
• Арифметические действия выполняются над
данными вещественного и целого типов: +, –, *, /,
DIV, MOD.
• Операции отношения (сравнения) выполняются
над данными вещественного , целого типов ,
строками и символами: =, <>, <, >, <=, >=. Результат
операции сравнения имеет логический тип.
• Логические операции применимые к данным
логического и целого типов: NOT – логическое НЕ,
AND – логическое И, OR – логическое ИЛИ, XOR исключающее ИЛИ. Логические операции над
данными дают результат логического типа.
Логические операции
A
NOT A
B
NOT B A AND B A OR B A XOR B
False
True
False
True
False
False
False
False
True
True
False
False
True
True
True
False
False
True
False
True
True
True
False
True
False
True
True
False
Выражения
• унарные операции
b:= NOT a;
• бинарные операции
операнды
выражение
Знак
операции
d:=b* b – 4 * a * c;
d > (a - b) / c ;
Правила составления выражений в языке Pascal
1. два символа арифметических операций не должны
стоять рядом; исключение составляет знак "-" (минус)
перед отрицательной константой
2. нельзя опускать знак умножения
3. круглые скобки определяют очередность выполнения
операций
4. число левых и правых скобок должно быть одинаково
5. при отсутствии скобок вычисление выражения
выполняется согласно приоритету операций:
• унарные операции: NOT, +, • операции типа умножения: *, /, DIV, MOD, AND
• операции типа сложения: +, -, OR
• операции отношения =, <, >, <=, >=, <>
x>=0 AND x<12
Верная запись:
(x>=0) AND (x<12)
Совместимость типов
•
•
•
•
оба типа одинаковые
оба типа вещественные
оба типа целочисленные
оба типа – поддиапазоны одного (другого)
типа
• оба типа образованы от одного исходного
типа
• один тип является поддиапазоном другого
Структура программы на языке Pascal
• Нововведением в Delphi является понятие
проекта – описания файловой структуры
исходного текста программного продукта
• Кроме файлов с исходными текстами, в
проект могут входить файлы ресурсов,
подключаемых к программе
• Описание проекта находится в основной
части программы, генерируется средой
автоматически (файле с расширением dpr)
Программа на языке Pascal состоит из 3
разделов:
Program Name; {Заголовок программы}
{Раздел описаний}
Begin
{Раздел операторов}
End.
Для обозначения конца оператора используется
разделитель – точкой с запятой (;)
Комментарий:
• {Это комментарий}
• (*Это тоже комментарий*)
в Delphi также
• // До конца строки – комментарий
Ключи компиляции:
$
букваключ
+
или
–
• {$E+} – эмулировать математический
сопроцессор
• {$N+} – использовать математический
сопроцессор
• {$R+} – проверять выход за границы диапазонов
Составной оператор
Begin
…
…
End;
Begin
…
Begin
…
End;
…
End;
Раздел описаний
•
•
•
•
•
•
•
внешних модулей (Uses)
меток (Label)
типов (Type)
констант (Const)
переменных (Var)
функций (Function)
процедур (Procedure)
Подраздел описания внешних модулей
• Внешние модули – это наборы констант,
типов данных, переменных, процедур и
функций, которые можно использовать в
программе
• Подключение модуля к программе:
Например:
Uses имя_модуля;
Uses CRT;
Подраздел описания меток
• Метка – точка перехода, используемая в
операторе безусловного перехода
• Описание меток:
Label метка_1, метка_2 … метка_N;
• В качестве меток могут использоваться целые
числа без знака (от 0 до 9999):
Label 1, 77, 190;
Подраздел описания типов
Перечислимый
• Type имя_типа = (значение_1, значение_2 …
значение_N);
• Type Season = (winter, spring, summer, autumn);
Интервальный
• Type имя_типа = (нач_значение ..
кон_значение);
• Type Hours = (0 .. 23);
Подраздел описания констант
• Константа - объект программы, который не
может изменять своего значения
• Описание константы:
Const имя = значение;
Const
a = 17;
b = 3.14;
c = ‘A’;
Text = ‘Pascal’;
Flag = False;
{целый тип}
{вещественный тип}
{символ}
{строка}
{логический тип}
Подраздел описания переменных
• Переменная – объект программы, который
может изменять свое значение в процессе
выполнения
• Описание переменных:
Var имя: тип;
Var
a: Integer;
b: Real;
c, d: Char;
Text: String;
Flag: Boolean;
{целый тип}
{вещественный тип}
{символ}
{строка}
{логический тип}
Подразделы описания процедур
• Описываются процедуры, используемые в
программе
Procedure имя (список параметров);
Label
Const
Type
Var
Procedure
Function
Begin
…
End;
Подразделы описания функций
• Описываются функции, используемые в
программе
Function имя (список параметров): тип
результата;
Label
Const
Type
Var
Procedure
Function
Begin
…
End;
Download