2 Основы языка Delphi.ppt
- Количество слайдов: 46
Основы языка Delphi Программирование
Алфавит Буквы: a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z _ Цифры: 0 1 2 3 4 5 6 7 8 9 Специальные символы: + - * / = < > [ ] , . : ; ' ( ) { } @ # $ & ^ Составные символы: <= >= . . (. . ) (* *) // : = Русские буквы используются только в качестве данных или при написании комментария к программе.
Числа Целые числа состоят из цифр и знака + или – 0 +17 -39 Запись вещественного числа в форме с фиксированной точкой: 0. 05 -133. 5 Запись вещественного числа в форме с плавающей точкой: 7. 13 E+14 1. 7 E-5 В этой форме число, стоящее перед буквой E, умножается на 10 в степени, указанной после буквы E. Шестнадцатеричные числа: $F (десятичное число 15) $10 (десятичное число 16)
Слова-идентификаторы Идентификаторы - неделимые последовательности символов алфавита. Идентификатор начинается с буквы и не должен содержать пробелов. После первого символа допускаются буквы и цифры. Символ подчеркивания считается буквой. Длина идентификатора может быть любой, но значимы только первые 255 символов. ПР: Right. Name E_mail inches 5
Типы идентификаторов Зарезервированные (ключевые) слова составляют основу языка Delphi. Зарезервированные слова нельзя использовать в качестве имен, вводимых программистом для обозначения величин. Стандартные директивы интерпретируются либо как зарезервированные слова, либо как идентификаторы программиста в зависимости от контекста, в котором используются. Стандартные идентификаторы - это имена стандартных подпрограмм, типов данных языка Delphi, т. д. Идентификаторы программиста определяются программистом, т. е. вами, и носят произвольный характер.
Комментарии С помощью комментариев вы можете пояснить логику работы своей программы. Комментарий пропускается компилятором и может находиться в любом месте программы. Комментарием является: { Любой текст в фигурных скобках } (* Любой текст в круглых скобках со звездочками *) // Любой текст от двойной наклонной черты до // конца строки
Комментарии Если за символами { или (* сразу идет знак доллара $, то текст в скобках считается не комментарием, а директивой компилятора. Большинство директив компилятора являются переключателями, которые включают или выключают те или иные режимы компиляции, оптимизацию, контроль выхода значений из допустимого диапазона, переполнение, т. д. ПР: {$OPTIMIZATION ON} {$WARNINGS ON}
Тип данных показывает, какие значения принимают данные и какие операции можно с ними выполнять. Каждому типу данных соответствует определенный объем памяти, который требуется для размещения данных. Данные: целые и дробные числа, символы, строки, массивы, множества и др. Для описания каждого типа данных существует свой стандартный идентификатор: для целых — Integer, для дробных — Real, для строк — string и т. д.
Классификация типов данных Простые типы данных: целочисленные, символьные, булевские, перечисляемые и интервальные типы данных. Подразделяются на порядковые и вещественные типы данных. Временной тип данных. Для представления значений даты и времени; Строковые типы данных. Для представления последовательностей из символов. Составные типы данных (структурированные): массивы, множества, записи, файлы, классы и ссылки на классы. Формируются на основе всех остальных типов.
Классификация типов данных Процедурные типы данных. Для манипулирования процедурами и функциями как данными программы. Указательные типы данных. Хранят адреса других данных, с их помощью организуются различные динамические структуры: списки, деревья и т. д. Тип данных с непостоянным типом значений. Для представления значений, тип которых заранее неизвестен.
Фундаментальные и обобщенные типы Некоторые предопределенные типы данных делятся на фундаментальные и обобщенные типы. Данные фундаментальных типов имеют неизменный диапазон значений и объем занимаемой памяти на всех моделях компьютеров. Данные обобщенных типов на различных моделях компьютеров могут иметь разный диапазон значений и занимать разный объем памяти. При программировании алгоритмов предпочтение следует отдавать обобщенным типам данных, поскольку они позволяют достичь максимальной производительности программ при переходе на другие модели компьютеров.
Фундаментальные целочисленные типы данных Тип данных Диапазон значений Байт Byte 0. . 255 1 Word 0. . 65535 2 Shortint – 128. . 127 1 Smallint – 32768. . 32767 2 Longint – 2147483648. . 2147483647 4 Longword 0. . 4294967295 4 Int 64 – 2^63. . 2^63 -1 8
Обобщенные целочисленные типы данных Тип данных Диапазон значений Байт Cardinal 0. . 4294967295 4* Integer – 2147483648. . 2147483647 4* ПРИМЕЧАНИЕ: * - количество байт памяти, требуемых для хранения переменных обобщенных типов данных, приведено для 32 -разрядных процессоров семейства x 86 Пример описания целочисленных данных: Var X, Y: Integer; Text. Length: Cardinal; File. Size: Longint;
Вещественные типы данных Тип данных Диапазон значений Мантисса Байт Real 5. 0*10^(– 324). . 15 -16 8* (обобщенный тип) 1. 7*10^308 Real 48 2. 9*10^(– 39). . 1. 7*10^38 11 -12 6 Single 1. 5*10^(– 45). . 3. 4*10^38 7 -8 4 Double 5. 0*10^(– 324). . 1. 7*10^308 15 -16 8 Extended 3. 4*10^(– 4932). . 1. 1*10^4932 19 -20 10 Comp – 9223372036854775808. . 19 -20 8 9223372036854775807 Currency – 922337203685477. 5808. . 19 -20 8 922337203685477. 5807
Временной тип данных Значения даты и времени представляются типом TDate. Time (тождественный типу Double). Целая часть элемента данных типа TDate. Time - количество дней, прошедших с полночи 30 декабря 1899 года. Дробная часть элемента данных типа TDate. Time - время дня. Значение Дата Время 0 30. 12. 1899 00: 00 0. 5 30. 12. 1899 12: 00 1. 5 31. 12. 1899 12: 00 -1. 25 29. 12. 1899 06: 00 35431. 0 1. 1. 1997 00: 00
Символьные типы данных Значения таких данных - символы Фундаментальные символьные типы данных: Ansi. Char - символ расширенной кодовой таблицы ANSI (один байт памяти) Wide. Char - символ кодовой таблицы Unicode (два байта памяти). Обобщенный символьный тип данных: Char - соответствует типу Ansi. Char Пример описания: var ch, a: char; Пример присваивания значения: ch: =‘М’;
Булевские типы данных Значения - константы True (истина) и False (ложь) Тип Байт данных Boolean 1 Byte. Bool 1 Word. Bool 2 Long. Bool 4 ПР: Var Flag: Boolean; Word. Flag: Word. Bool; Булевские типы данных применяются в логических выражениях и в выражениях отношения. Типы данных Byte. Bool, Word. Bool и Long. Bool - для совместимости с другими языками.
Определение новых типов данных Создание нового типа данных, тождественного уже существующему (компилятор не делает различий между новым и старым типами) Формат описания: type new. Type. Name = type; new. Type. Name – идентификатор программиста type – раннее определенный тип ПР: Type TUnicode = Wide. Char; // TUnicode тождественен типу // Wide. Char
Определение новых типов данных Создание нового типа данных, обладающих свойствами уже существующего типа данных, но не тождественный ему Формат описания: type new. Type. Name = type;
Перечисляемые типы данных Перечисляемый тип данных - список значений, которые может принимать переменная этого типа. Каждому значению поставлен в соответствие идентификатор, используемый в программе для указания этого значения. Пример определения перечисляемого типа данных: Type TDirection = (North, South, East, West); Пример объявления переменной соответствующего типа: Var Direction: TDirection;
Перечисляемые типы данных Пример использования: Direction : = North; За идентификаторами значений стоят целочисленные константы. По умолчанию, первая константа равна 0, вторая - 1 и т. д. Можно явно назначить значения идентификаторам: Type TSize. Unit = (Byte = 1, Kilobyte = 1024 * Byte, Megabyte = Kilobyte * 1024, Gigabyte = Megabyte * 1024);
Интервальные типы данных Интервальный тип данных задается двумя константами, ограничивающими диапазон значений для переменных данного типа. Обе константы принадлежат одному из стандартных порядковых типов (не вещественному и не строковому). Значение первой константы меньше значения второй. Пример определения интервального типа: Type TDigit = 0. . 9;
Данные константы переменные Данные имеют некоторое значение К данным в программе мы будем обращаться по имени
Константы - данные, которые получили значение и по своей природе изменяться не могут. Нетипизированные константы (формат объявления): const identifier = constant. Expression; identifier – корректный идентификатор constant. Expression – выражение, которое компилятор может вычислить без запуска программы (может включать: нумералы; истинные константы; строки; значения перечисляемых типов; специальные константы (true, false, nil); вызовы функций Abs. Chr. Hi, High. Length. Lo, Low. Odd. Ord, Pred. Round. Size. Of, Succ. Swap. Trunc).
Константы ПР: Const Min = 0; Max = 100; Center = (Max - Min) div 2; Beta = Chr(225); Num. Chars = Ord('Z') - Ord('A') + 1; Message = 'Out of memory'; Типизированные константы Формат объявления: const identifier: type = value; ПР: Const Percent: Double = 0. 15; File. Name: string = 'HELP. TXT‘; Типизированную константу можно рассматривать как переменную, инициализированную некоторым значением.
Переменные могут изменять значение в процессе работы программы Формат объявления: var identifier. List: type; identifier. List – список корректных идентификаторов, разделенных запятой type – любой тип ПР: Var Index: Integer; File. Name: string; Sum, Profit: Double;
Переменные В теле программы переменной можно присвоить значение. Для этого используется составной символ : = ПР: Sum : = 5000. 0; ercent : = 0. 15; Profit : = Sum * Percent;
Выражения Выражение задает порядок выполнения действий над данными и состоит из операндов, круглых скобок и знаков операций. Операнды - константы, переменные и вызовы функций. Операции - действия, выполняемые над операндами. ПР: Выражение (X + Y) / 2 Операнды X Y 2 Знаки операций + / Типы выражений: арифметические; логические; строковые Типы операций: арифметические; операции отношения; логические (булевские); строковые; операции получения адреса и другие
Арифметические операции выполняют арифметические действия над значениями операндов целочисленных и вещественных типов данных Операци Действие Тип операндов Тип результата я Целый, + Сложение вещественный Целый, – Вычитание вещественный Целый, * Умножение вещественный Целый, / Деление вещественный Вещественный Целочисленное Div деление Целый Mod Остаток от деления Целый ПР: ((5 -2)+4) div 2 Значение = 3
Операции отношения выполняют сравнение двух операндов и определяют, истинно значение выражения или ложно Выражени Операция Действие Результат е = Равно A = B True, если A = B <> Не равно A <> B True, если A < B или A > B < Меньше A < B True, если A < B > Больше A > B True, если A > B Меньше или <= равно A <= B True, если A < B или A = B Больше или >= равно A >= B True, если A > B или A = B ПР: 25 > 21 Значение = True 37 <= 4 Значение = False
Булевские операции Результат выполнения логических (булевских) операций - True или False. Операнды - данные типа Boolean Операци я Действие Выражение А В Результат Логическое not отрицание not A True. False False. True True. False and Логическое И A and B False True. False Логическое True. False True or ИЛИ A or B False True. False Исключаю- True. False. True xor щее ИЛИ A xor B False True. False ПР: not (25 > 21) Значение = False (37 <= 4) or (5>3) Значение = True
Приоритет выполнения операций При вычислении значений выражений одни операции выполняются раньше других в соответствии с приоритетом. Операция Приоритет Описание –, not Первый Унарный минус, отрицание *, /, div, mod, and Второй Операции типа умножение +, –, or, xor Третий Операции типа сложение =, <>, <, >, <=, >= Четвертый Операции отношения ПР: (4 + 25 / 5 >= 3) and (16 div 3 - 4 <2) Последовательность выполнения операций в выражении: / + >= div - < and Получаем логическое выражение (9 >= 3) and (1 < 2)
Математические функции Какое значение Тип значения Функция возвращает функции Такого же типа, как x (целое Abs(x) Модуль x или вещественное) Sin(x) sin x, где x угол в радианах Вещественное Cos(x) cos x, где x угол в радианах Вещественное arctg x, где x угол в Arc. Tan(x) Вещественное радианах Exp(x) Число e в степени x Вещественное Ln(x) ln x Вещественное Такого же типа, как x (целое Sqr(x) x^2 или вещественное) Sqrt(x) Квадратный корень из x Вещественное
Арифметические функции Тип значения Функция Какое значение возвращает функции Возвращает значение true, если целое число Odd(x) boolean x является нечетным, и false, если x четно Увеличивает значение числа x на y. Такого же типа, Inc(x, y) Если число y не указано, то увеличение как x происходит на 1. Уменьшает значение числа x на y. Такого же типа, Dec(x, y) Если число y не указано, то уменьшение как x происходит на 1. Возвращает случайное вещественное число Random Вещественное от 0 до 1. Возвращает случайное целое число z, такое Random(x) Целое что 0 z < x.
Примеры арифметических выражений Арифметическое выражение Нужное значение на языке программирования tg x sin(x)/cos(x) arcsin x arctan(x/sqrt(1 sqr(x))) x^n exp(n ln(x))
Порядковые типы: целые, логические, символьные, перечисляемые, интервальные Значения - ограниченное упорядоченное множество; К любому порядковому типу могут быть применены стандартные функции: Ord - возвращает порядковый номер конкретного значения в данном типе Pred и Succ - возвращают предыдущее и последующее значения соответственно Low и High - возвращают наименьшее и наибольшее значения величин данного типа
Примеры Обращение к Возвращаемое значение функции Ord( Ю ) 158 (код символа Ю ) Succ( Ю ) Я Pred( Ю ) Э Ord(true) 1 Ord(false) 0 Succ(false) True Pred(true) False
Примеры Обращение к Возвращаемое значение функции Ord(67) 67 Succ(67) 68 Pred(67) 66 Ord(-245) -245 Succ(-245) -244 Pred(-245) -246 32768 (самое маленькое значение целого числа Low(integer) типа integer в Паскале) High(boolean) true High(char) символ с кодом 255
Функции преобразования Тип значения Функция Какое значение возвращает функции Число, равное целой части числа x Trunc(x) (происходит отбрасывание дробной Целое части числа x) Frac(x) Число, равное дробной части числа x Вещественное Int(x) Число, равное целой части числа x Вещественное Число, равное результату округления Round(x) Целое числа x
Примеры применения функций преобразования x Trunc(x) Int(x) Round(x) 15. 2 15 1. 5 E+1 15. 8 15 1. 5 E+1 16 -15. 2 -15 -1. 5 E+1 -15. 8 -15 -1. 5 E+1 -16
Операторы READ и READLN используются для ввода значений переменных с клавиатуры в консольном режиме Формат описания: Read. Ln(A 1, A 2, . . . AK); Логика работы: • При выполнении процедуры Read. Ln происходит остановка в работе программы. • От пользователя требуется ввести K значений, отделяя их друг от друга пробелом или нажатием клавиши Tab. • По окончанию набора нужно нажать клавишу Enter • После этого переменным А 1, А 2, . . . , АК будут последовательно присвоены введенные значения.
Операторы READ и READLN Внимание! Типы вводимых значений и соответствующих переменных должны совпадать. Внимание! Переменные, образующие список ввода, могут принадлежать либо к целому, либо к действительному, либо к символьному типам. Процедура Read работает аналогично Read. Ln, но ее использование означает, что следующий ввод или вывод будет осуществляться в ту же строку, что и текущий.
Операторы WRITE и WRITELN Для вывода значений переменных, констант, выражений на экран в консольном режиме можно использовать процедуры Write. Ln и Write. Формат описания: Write. Ln(список_вывода); Список_вывода список констант (в том числе и строковых), имен переменных и выражений, перечисленных через запятую. Переменные, составляющие список вывода, могут относиться к целому, действительному, символьному или булевскому типам.
Операторы WRITE и WRITELN Логика работы: Оператор Write производит вывод значений констант, переменных и выражений списка в строку экрана. Оператор Write. Ln не только выводит данные на экран, но и осуществляет переход к началу следующей экранной строки.
Линейные программы Основные разделы программы: 1) Заголовок (не всегда обязателен): Program <имя программы>; 2) Разделы описаний (не обязательны): раздел подключаемых библиотек – модулей (Uses); раздел описания меток (Label); раздел описания констант (Const); раздел описания типов (Type); раздел описания переменных (Var); раздел описания процедур и функций. 3) Раздел операторов - составной оператор, заключенный между begin. . . . end.
Линейные программы ПР: Program Primer_1; var a, b, s: integer; d: real; begin Write. Ln( Введите через пробел два числа ); Read. Ln(a, b); s : = a+b; d : = a/b; Write. Ln( Сумма равна , s); Write. Ln( Частное от деления равно , d); end. Программа запрашивает с клавиатуры два числа, находит их сумму s, частное от деления d и выводит ответы.
2 Основы языка Delphi.ppt