Osnovy_informatiki_-_2_Paskal.ppt
- Количество слайдов: 26
Паскаль 2012/2013 учебный год
Общая структура программы [program <имя>; ] [< раздел подключения внешних модулей >] [<раздел описаний>] begin [ <операторы>] end. 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 2
Пример программы program first; // Программа вычисления длины окружности и площади круга // Автор: Чердынцева М. И. // Дата написания: 12. 09. 12 const Pi=3. 14; var r: real; // входные данные - радиус круга S, C: real; // выходные данные - площадь круга и длина окружности begin write ('Введите радиус окружности'); readln (r); S: =Pi*r*r; C: =2*Pi*r; writeln ('Длина окружности равна ', С); writeln ('Площадь круга равна ', S); end. 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 3
Лексемы Специальные символы знаки операций: : = >= = ограничители: ; , ( зарезервированные слова: begin end var l Идентификаторы (используются в качестве имен объектов программы). Max, new_name, _a 1 - идентификатор 3 dnews - не идентификатор l Константные значения (литералы) 3. 14 1 E-12 'Hello' l Комментарии l 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 4
Переменные и константы l Константы Именованные Pi l Неименованные 3. 14 2 'Введите радиус окружности' l 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 5
Типы данных integer (целое) 4 байта l Max. Int=231 -1 = 2147483647 l Min. Int= - 231 = -2147483648 l Операции: + - (унарные), + - *(бинарные), div mod (целочисленное деление), < >= <= = <> (отношения), and or xor not (побитовые), shl shr (сдвига) l 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 6
Типы данных byte (целое без знака) 1 байт l 0. . 255 l boolean (логический) 1 байт l False True l Операции: not and or xor l 2/14/2018 A B not A A and B A or B A xor B 0 0 1 0 0 1 1 1 0 0 0 1 1 0 Чердынцева М. И. , мехмат ЮФУ 7
Типы данных real (вещественный) 8 байт l Max. Double=1. 79769313486232 e+308 l Min. Double=4. 94065645841247 e-324 l Операции: + - (унарные), + - / * (бинарные), > < >= <= = <> (отношения) l 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 8
Типы данных char (символьный) 1 байт l ‘a’…’z’, ‘ 0’…’ 9’, … l Операции: < >= <= = <> (отношения) l string (строковый) 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 9
Преобразование типов l Неявное byte integer real l Явное trunk( real) integer round( real) integer 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 10
Раздел описаний l Описание констант l Описание типов l Описание переменных l Описание процедур и функций 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 11
Описание именованных констант <имя константы> = <значение>; или <имя константы> : <тип> = <значение>; const Pi = 3. 141592; Space = ' '; Proc. Name = 'Athlon'; r: real = 2; // типизированная константа 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 12
Описание переменных <список имен>: <тип>; или <имя>: <тип> : = <выражение>; или <имя> : = <выражение>; 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 13
Описание переменных В разделе описаний var i, j: integer; s: string; b: boolean; r 1, r 2: real; c: char; d: real : = 3. 7; s 1 : = 'Pascal forever'; 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 14
Описание переменных В коде программы (блочные переменные) begin var a: real; a: =0; var i, j: integer; var q: boolean; 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 15
Описание типов <имя типа> = <тип>; Раздел описания типов type myint = integer; arr 10 = array [1. . 10] of integer; ball = 2. . 5; 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 16
Описание подпрограмм l Подпрограммы – процедуры и функции l Описание подпрограммы связывает некоторое имя (идентификатор) с алгоритмом. Использование этого имени в программе означает выполнение алгоритма и возврат на продолжение выполнения программы 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 17
Описание подпрограмм Описание процедуры имеет вид: procedure <имя> [(<список параметров>)] ; [<раздел описаний> ] begin [<операторы>] end; l Описание функции имеет вид: function <имя> [(<список параметров)]: <тип>; [<раздел описаний >] begin <операторы > end; l 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 18
Область действия идентификатора (имени) l Любое используемое имя должно быть предварительно описано l Идентификаторы описываются в разделе описаний l Идентификаторы для переменных могут также описываться внутри блока l Пространство имен - область в программе, в которой имя должно иметь единственное описание 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 19
Область действия идентификатора (имени) l Область действия идентификатора (т. е. место, где он может быть использован) простирается от момента описания до конца блока, к которому он относится 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 20
Область действия идентификатора (имени) var x: real; begin x: =0; var i: integer; i: =1; end. 2/14/2018 для х для i Чердынцева М. И. , мехмат ЮФУ 21
Область действия идентификатора (имени) Блочные переменные, объявленные в конструкциях for и foreach действуют до конца конструкции var a: array of integer : = (3, 5, 7); for i: integer : = 1 to 3 do write(a[i]); writeln (‘Здесь i не действует’); foreach i: integer in a do write(i); 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 22
Область действия идентификатора (имени) Подпрограммы имеют пространство имен, вложенное в пространство имен программы или другой подпрограммы l Имена, определенные во вложенном пространстве, называются локальными l Имена из внешнего пространства имен называются нелокальными l Имена из пространства имен программы называются глобальными l 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 23
Область действия идентификатора (имени) Нелокальные и глобальные имена действуют в во вложенном пространстве, если не встретится идентификатор с тем же именем. Такой идентификатор, скрывает идентификатор, определенный во внешнем пространстве имен 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 24
Область действия идентификатора (имени) var i: integer; a: real; procedure p; var i: integer; begin i : = 5; a: =0; end; l Использование нелокальных имен в подпрограммах является опасным и может привести к ошибкам. 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 25
Область действия идентификатора (имени) l Переменные, описанные внутри блока, не могут иметь те же имена, что и переменные из раздела описаний этого блока var i: integer; begin var i: integer; // ошибка end. 2/14/2018 Чердынцева М. И. , мехмат ЮФУ 26
Osnovy_informatiki_-_2_Paskal.ppt