Upload
johnda
View
70
Download
0
Embed Size (px)
DESCRIPTION
Высокоуровневые методы информатики и программирования. Язык программирования высокого уровня Pascal Объектно-ориентированное программирование. История развития языка Pascal. - PowerPoint PPT Presentation
Citation preview
Высокоуровневые методы информатики и программирования
1. Язык программирования высокого уровня Pascal
2. Объектно-ориентированное программирование
История развития языка 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
ПростыеПорядковыеЦелыеЛогическийСимвольный
ПеречисляемыеТип-диапазонВещественные
СтруктурированныеМассивыЗаписи
МножестваФайлы
ОбъектыУказателиСтроковые
Процедурные
Целочисленные типы данных
Тип
Turbo Pascal Object Pascal
ДиапазонРазме
р(байт)
Диапазон Размер(байт)
Shortint -128..127 1 такжеInteger -32768..32767 2 -2147483648..2147483647 4Longint -2147483648..2147483647 4 такжеByte 0..255 1 такжеWord 0..65535 2 такжеCardinal 0..4294967295 4Smallint -32768..32767 2Int64 -263 .. 263-1 8Longword 0..4294967295 4
Вещественные типы данных
Тип
Turbo Pascal Object Pascal
Диапазон
Размер
(байт)
Точность
ДиапазонРазме
р(байт)
Точность
Real -2.9x1039.. 1.7x1038 6 11-12 -5.0х10324..1.7х10308 8 15-16Single -1.5x1045..3.4x1038 4 7-8 такжеDouble -5.0x10324..1.7x10308 8 15-16 такжеExtended -3.4х104932..1.1х104932 10 19-20 -3.6x104951.. 1.1x104932 10 19-20Comp -9.2х1018..9.2х1018 8 19-20 -263+1 .. 263-1 8 19-20Real48 -2.9x1039.. 1.7x1038 6 11-12Currency -922337203685477.5808
922337203685477.58078 19-20
• Логический тип (Boolean) занимают в памяти 1 байт и могут принимать два значения: False (ложь) или True (истина).
• Символьный тип (Char) позволяет работать с символами, которые записываются двумя способами: в одинарных кавычках или по их ASCII коду, например 'b', 'Д', '*' или #98, #132, #42. Под каждый символов отводится 1 байт.
• Указательный тип (Pointer) представляет собой адрес в памяти компьютера.
• Строковый тип (String) представляет собой строку символов и занимает Max+1 байт, где Max – максимальное количество символов в строке.
Строковые типы данных, доступные в Delphi
Тип Максимальная длина (символов)
Занимаемая память
Размер символа
(байт)
ShortString 255 От 2 до 256 байт 1AnsiString ~231 От 4 байт до 2 Гб 1WideString ~230 От 4 байт до 2 Гб 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 ;
Правила составления выражений в языке Pascal1. два символа арифметических операций не должны
стоять рядом; исключение составляет знак "-" (минус) перед отрицательной константой
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…
Begin…Begin…End;…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 ConstTypeVarProcedureFunction Begin…End;
Подразделы описания функций• Описываются функции, используемые в программе
Function имя (список параметров): тип результата; Label ConstTypeVarProcedureFunction Begin…End;