Л-2 Перв знакомст. Типизация данных.pptx
- Количество слайдов: 33
Языки и технологии программирования Основы процедурного программирования. Object Pascal Курс лекций для студентов 1 -го курса факультета Ми. И Лектор Олейников Борис Васильевич
Лекция 2. Первое знакомство с языком Object Pascal Содержание Среда Delphi. Консольный режим использования. Основные понятия и конструкции языка Структура программы Типизация данных в языке Простые стандартные типы данных и средства работы с ними Основные операторы
Стартовая панель
Заготовка программы
Итак, основные понятия Программа Набор команд на языке программирования Компиляция Перевод программы (целой) на маш. язык Оператор Предложение на языке программирования Идентификатор Имя выбираемое программистом Допустимый для языка набор символов Алфавит
Алфавит Паскаля состоит из букв, цифр и спецсимволов. Между группами алфавита используются разделители Буквы можно использовать прописные и строчные. Транслятор их не различает, то есть VAR, var, Va. R – одно слово. Идентификатор начинается с буквы и может содержать цифры и символ подчеркивания. Различаются первые 63 символа. Идентификатор не может быть зарезервированным словом.
Структура программы Заголовок program <имя>; Раздел используемых модулей uses <список имен модулей>; Раздел объявления меток label <имя>; Раздел объявления констант const <имя>=<значение>; Раздел объявления типов type <имя>=<тип>; Раздел объявления переменных var <имя> : <тип>; Раздел объявления процедур Описание всех используемых процедур и функций; exports <экспортируемые имена>; Раздел экспортируемых имен Тело программы begin ……………. .
Пример программы Program my_first; Const s=‘my first program’ Begin Writeln (s); End.
Типы данных (1) Любые данные, т. е. константы, переменные, значения функций или выражения, в Паскале характеризуются своими типами. Тип определяет множество допустимых значений, которые может иметь тот или иной объект, а также множество допустимых операций, которые применимы к нему. Кроме того, тип определяет также и формат внутреннего представления данных в памяти ПК. Выделяют Простые типы Составные (структурированные) типы Специальные типы Возможность совместимости и преобразования типов
Типы данных (2) Рис. 4. 1. Структура типов данных
Типы данных (3) В Паскале предусмотрен механизм создания новых типов данных, благодаря чему общее количество типов, используемых в программе, может быть сколь угодно большим.
Целые типы данных (4) Тип Диапазон Формат Short. Integer -128 … 127 -32768. . . 32767 -2147483648 Знаковый Размер в байтах 1 2 Знаковый 4 Long. Int . 2147483647 Byte 0. . 265 Без 1 Word 0. . 65535 Без 2
Станд. Проц. и функ. Для цел. типов Обращение Тип результата abs (x) x chr(b) Char dec (vx[, i] ) - Уменьшает значение vx на i, а при отсутствии i -на 1 inc(vx[, i] ) - Увеличивает значение vx на i, а при отсутствии i - на 1 Hi(i) Byte Hi(w) To же Lo(i) " Возвращает младший байт аргумента Lo (w) " То же odd(l) Boolean Random (w) Как у параметра sgr (x) X Возвращает квадрат аргумента swap ( i ) Integer Меняет местами байты в слове swap (w) Word Действие Возвращает модуль х Возвращает символ по его коду Возвращает старший байт аргумента То же Возвращает True, если аргумент - нечетное число Возвращает псевдослучайное число, равномерно распределенное в диапазоне 0. . . (w-l)
Перечислимый тип (1) Перечисляемый тип задается перечислением тех значений, которые он может получать. Каждое значение именуется некоторым идентификатором и располагается в списке, обрамленном круглыми скобками, например: typе colors =(red, white, blue); Применение перечисляемых типов делает программы нагляднее. Соответствие между значениями перечисляемого типа и порядковыми номерами этих значений устанавливается порядком перечисления: первое значение в списке получает порядковый номер 0, второе - 1 и т. д. Максимальная мощность перечисляемого типа составляет 65536 значений,
Перечислимый тип (2) Между значениями перечисляемого типа и множеством целых чисел существует однозначное соответствие, задаваемое функцией ORD(X). Переменные любого перечисляемого типа можно объявлять без предварительного описания этого типа, например: var col: (black, white, green);
Тип диапазон (1) Тип-диапазон есть подмножество своего базового типа, в качестве которого может выступать любой порядковый тип, кроме типа-диапазона. Тип-диапазон задается границами своих значений внутри базового типа: <мин. знач. >. . <макс. знач. > Здесь <мин. знач. > - минимальное значение типадиапазона; <макс. знач. > - максимальное его значение. Например: type digit = '0'. . '9'; dig 2= 48. . 57; Тип-диапазон необязательно описывать в разделе TYPE, а можно указывать непосредственно при объявлении переменной
Станд. функции для типа диапазон НIGН(Х) - возвращает максимальное значение типа-диапазона, к которому принадлежит переменная X; LOW(X) -возвращает минимальное значение типа-диапазона
Логический тип. Значениями логического типа может быть одна из предварительно объявленных констант FALSE (ложь) или TRUE (истина). Поскольку логический тип относится к порядковым типам, его можно использовать в операторе счетного типа, например: var 1 : Boolean; begin for 1 : = False to True do. .
Станд. функции для логического типа ord(False) = 0; ord(True) = 1; False < True; succ(False)= True; pred(True) = False.
Символьный тип. Значением символьного типа является множество всех символов ПК. Каждому символу приписывается целое число в диапазоне 0. . . 255. Это число служит кодом внутреннего представления символа, его возвращает функция ORD. Для кодировки используется код ASCII (American Standard Code for Information Interchange - американский стандартный код для обмена информацией). Или UNICODE (универсальный код)
Станд функции для симв. типа К типу CHAR применимы операции отношения, а также встроенные функции: СНR(В) - функция типа CHAR; преобразует выражение В типа BYTE в символ и возвращает его своим значением; UPCASE(CH) - функция типа CHAR; возвращает прописную букву, если СН строчная латинская буква, в противном случае возвращает сам символ СН, например:
Вещественные типы данных (5) Тип Диапазон REAL 2. 9 E-39 1. 7 E 38 1. 5 E-45 3. 4 E 38 5 E-324 1. 7 E 308 3. 41. 1 E 4932 -2^63+1 2^63 -1 SINGLE DOUBLE EXTENDED COMP Значащих цифр 12 Размер в байтах 6 7 4 16 8 20 10 20 8
Запись вещ числа Вещественное число в Паскале занимает от 6 до 10 смежных байт и имеет следующую структуру в памяти ПК: sem Здесь s - знаковый разряд числа; е - экспоненциальная часть; содержит двоичный порядок; m - мантисса числа. Мантисса m имеет длину от 23 (для SINGLE) до 63 (для EXTENDED) двоичных разрядов, что и обеспечивает точность 7. . . 8 для SINGLE и 19. . . 20 для EXTENDED десятичных цифр. Десятичная точка (запятая) подразумевается перед левым (старшим) разрядом мантиссы, но при действиях с числом ее положение сдвигается влево или вправо в соответствии с двоичным порядком числа, хранящимся в экспоненциальной части, поэтому действия над вещественными числами называют арифметикой с плавающей точкой (запятой).
Станд мат функ для вещ типа (1) Обра щени е Тип параме тра Тип резул abs (x) Real, Integer Тип арг Аrс. Та n (х) Real cos (х) To же То же ехр (х) " " Примечание Модуль аргумента Арктангенс ( значение в радианах) Косинус, угол в радианах Экспонента
Станд мат функ для вещ типа (2) frас (х) " " Дробная часть числа int(x) " " Целая часть числа ln(x) " " Логарифм натуральный Pi - " л = 3. 141592653. . . Random - " Псевдослучайное число, равномерно распределенное в диапазоне 0. . . [1] Random(x) Integer Randomize - - sin(x) Real sqr (x) To же То же Квадрат аргумента sqrt (x) " " Корень квадратный Псевдослучайное целое число, равномерно распределенное в диапазоне 0. . . (х-1) Инициация генератора псевдослучайных чисел Синус, угол в радианах
Выражения. Операторы Выражения, порядок и приоритеты выполнения Арифметические выражения - на основе использования скобок, операций арифметики: +, -, *, / и стандартных функций для переменных простых типов – см. выше; Логические выражения - на основе использования скобок, операций сравнения: =, >, <, >=, <> и логических операций: and, or, not, xor; Простые операторы Оператор присвоения - : = Пустой оператор Оператор безусловного перехода goto Оператор вызова процедуры <имя проц. >(<параметры>), в качестве вызываемых процедур могут быть (см. далее): - Процедуры ввода-вывода; - Процедуры, управляющие ходом выполнения; - Стандартные процедуры, для работы с данными; - Пользовательские процедуры. Составные операторы (см. далее).
Составные операторы (1) Блочный оператор begin ……. . end; Условный оператор – if <логич. выраж. > then <действие 1> else <действие 2>
Составные операторы (2) Операторы цикла по счетчику (for) for i: =a 1 to an do begin ……. end; или for i: =an downto a 1 do begin ……. end; где a 1 и an могут быть не только некоторыми значениями, но и выражениями порядкового типа.
Составные операторы (3) Операторы цикла с предусловием while <условие> do begin ……. . end; Оператор цикла с постусловием repeat ……… until <условие>;
Составные операторы (4) Оператор выбора (оператор многозначного условия) var S: <тип>; case S of s 1: <действие 1>; s 2: <действие 2>; …………. sn: <действие n>; else <действие n+1> end; Где S (переключатель условия) может быть как переменной, так и выражением порядкового типа. Si-е могут быть и диапазонами значений, принимаемых S
Составные операторы (5) Оператор присоединения – with <имя записи> do begin ……. . end; Оператор обраб. исключит. ситуаций try …… exept ; (finally) end;
Процедуры ввода-вывода Чтения или ввода (по умолчанию с клавиатуры): read(x, y, z); readln; Записи или вывода (по умолчанию на экран): write(x, y, z); writeln; Количество вводимых-выводимых значений от 1 до n разного типа.
Управляющие процедуры. Директивы компилятору Выхода из цикла - break; Продолжения цикла - continue; Выхода из процедуры – exit; Выхода из программы – halt [(<код завершения>)]; Директивы компилятору {$. . . } или слово-указание в заголовке процедуры после списка параметров
Л-2 Перв знакомст. Типизация данных.pptx