Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
subjects:programming:pascal [2017/06/01 21:42] ¶ |
— (текущий) | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Pascal ====== | ||
- | **Паскаль** -- это императивный, структурированный компилируемый язык программирования. | ||
- | Часто используется в учебных заведениях в качестве "первого" языка. | ||
- | Является базой для ряда других языков. | ||
- | Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. | ||
- | |||
- | Паскаль, в первоначальном виде, представляет собою чисто процедурный язык и включает множество структур и конструкций с зарезервированными словами наподобие ''if'', ''then'', ''else'', ''while'', ''for'', и т. д. | ||
- | Тем не менее, Паскаль также содержит большое количество возможностей для структурирования информации и абстракций. | ||
- | В современных диалектах (''Free Pascal'') доступны такие операции, как перегрузка операторов и функций. | ||
- | |||
- | =====Стандартные функции===== | ||
- | |Функция|Описание|Пример|| | ||
- | ^Простые типы данных^^^^ | ||
- | ^DEC(N)|Уменьшение N|<code pascal>DEC(6);//=5</code>|| | ||
- | ^INC(N)|Увеличение N|<code pascal>INC(5);//=4</code>|| | ||
- | ^ORD(N)|Порядковый номер N|<code pascal>ORD(5);//=5 | ||
- | ORD('b');//=98</code>|| | ||
- | ^ODD(N)|Проверка N на чётность|<code pascal>ODD(5);//=True | ||
- | ODD(4);//=False</code>|| | ||
- | ^PRED(N)|Предшествующее значение N|<code pascal>PRED('b');//='a'</code>|| | ||
- | ^SUCC(N)|Последующее значение N|<code pascal>SUCC('B');//='C'</code>|| | ||
- | ^Целые типы данных^^^^ | ||
- | ^A DIV B|Целая часть от деления|<code pascal>14 DIV 3;//=4</code>|| | ||
- | ^A MOD B|Остаток от деления|<code pascal>14 MOD 3;//=2</code>|| | ||
- | ^TRUNC(X)|Получение целой части вещественного числа X|<code pascal>TRUNC(3.52);\\=3</code>|| | ||
- | ^ROUND(X)|Округление до целого вещественного числа X|<code pascal>ROUND(3.52);\\=4</code>|| | ||
- | ^Целые и вещественные типы данных^^^^ | ||
- | ^ABS(NX)|Абсолютная величина NX|<code pascal>ABS(-3);//=3</code>|| | ||
- | ^SQR(NX)|Квадрат числа NX|<code pascal>SQR(3);//=9</code>|| | ||
- | ^Вещественные типы данных^^^^ | ||
- | ^ARCTAN(X)|Арктангенс X|<code pascal></code>|| | ||
- | ^COS(X)|Косинус X|<code pascal>COS(PI/3);//=0.5</code>|| | ||
- | ^EXP(X)|e<sup>x</sup>|<code pascal></code>|| | ||
- | ^FRAC(X)|Дробная часть X|<code pascal>FRAC(3.52);//=0.52</code>|| | ||
- | ^INT(X)|Целая часть X|<code pascal>INT(3.52);//=3</code>|| | ||
- | ^LN(X)|Натуральный логорифм (по основанию e)|<code pascal></code>|| | ||
- | ^PI|Значение $\pi=3.1415926535897932385$|<code pascal></code>|| | ||
- | ^SIN(X)|Синус X|<code pascal></code>|| | ||
- | ^SQRT(X)|Квадратный корень из X|<code pascal>SQRT(9);//=3</code>|| | ||
- | ^Логические операнды^^^^ | ||
- | ^NOT|Отрицание|<code pascal></code>|| | ||
- | ^OR|Объединение, или логическое сложение|<code pascal></code>|| | ||
- | ^AND|Пересечение, или логическое умножение|<code pascal></code>|| | ||
- | ^XOR|Исключающее ИЛИ, или сложение по модулю два|<code pascal></code>|| | ||
- | |||
- | =====Типы данных===== | ||
- | Можно выделить следующие типы данных: | ||
- | * Простые типы | ||
- | * Целые типы -- SHORTINT, INTEGER, LOGINT, BYTE, WORD; | ||
- | * Логический тип -- BOOLEAN | ||
- | * Перечисляемые типы (определяются программистом через TYPE) | ||
- | * Тип-диапазон <code pascal>TYPE NUM = -10..10;</code> | ||
- | * Символьный тип -- CHAR | ||
- | * Вещественные типы -- REAL, SINGLE, DOUBLE, EXTENDED, COMP; | ||
- | * Текстовая строка -- STRING; | ||
- | * Структурированные типы | ||
- | * Массив<code pascal>M1 : ARRAY[1..10, 2..20] OF INTEGER;</code> | ||
- | * ASCII-строка-- PCHAR; | ||
- | * Запись (структура в Си) <code pascal>TYPE | ||
- | HUMAN = RECORD | ||
- | NAME : STRING; | ||
- | DATA : INTEGER; | ||
- | END;</code> Доступ к полям через имя_переменной.имя_поля. | ||
- | * Множество (из порядковых элементов и общее число меньше 255) <code pascal>M = SET OF ['a', 'b', '5', '!'];</code> | ||
- | * Файл | ||
- | * Текстовый файл -- TEXT; | ||
- | * Типизированные (FILE OF ''тип'') | ||
- | * файлы без типа (FILE) | ||
- | * Указатели | ||
- | * Тип-указатель-- POINTER | ||
- | * Процедурные типы (процедуры и функции допустимо использовать в качестве переменных) | ||
- | * Объекты | ||
- | |||
- | =====Объявление переменных:===== | ||
- | FIXME | ||
- | |||
- | =====Ввод, Вывод сообщений в консоли:===== | ||
- | INPUT, OUTPUT - работа с файлами | ||
- | |||
- | Чтение: | ||
- | <code pascal>READ (A, B, C); | ||
- | //123 2345 -56 <Enter>| | ||
- | |||
- | READLN(A, B, C); | ||
- | //123 2345 -56 <Enter> | ||
- | |</code> | ||
- | |||
- | Запись: | ||
- | <code pascal> | ||
- | WRITE(); | ||
- | WRITE(J:8, I:12); // Указание позиций вывода | ||
- | WRITELN(); // WRITE + перевод строки | ||
- | </code> | ||
- | |||
- | =====Структурированные операторы===== | ||
- | ==== BEGIN … END ==== | ||
- | Составной оператор ''BEGIN … END'' представляет собой совокупность последовательно выполняемых операторов, заключённых в операторные **скобки** ''BEGIN'' и ''END''. | ||
- | |||
- | ==== Выбор (условия) ==== | ||
- | === IF … THEN === | ||
- | <code pascal>IF True THEN <1>;</code> | ||
- | |||
- | <code pascal>IF True THEN <1> | ||
- | ELSE <2>;</code> | ||
- | |||
- | <code pascal>IF True THEN | ||
- | BEGIN | ||
- | <1.1> | ||
- | <1.…> | ||
- | END | ||
- | ELSE | ||
- | BEGIN | ||
- | <2.1> | ||
- | <2.…> | ||
- | END;</code> | ||
- | |||
- | === CASE … OF === | ||
- | <code pascal>CASE PARAMETR OF | ||
- | P1: <1>; | ||
- | P2: <…>; | ||
- | ELSE: <N> | ||
- | END;</code> | ||
- | |||
- | ====Циклы==== | ||
- | Во всех циклах можно использовать процедуры: ''BREAK'' , ''CONTINUE'' . | ||
- | |||
- | ===FOR … DO=== | ||
- | Общий вид: | ||
- | <code pascal>FOR I:=N1 TO N2 DO <1>;</code> | ||
- | Пример: | ||
- | <code pascal>FOR var i:=1 TO 5 DO | ||
- | write(i); | ||
- | //12345</code> | ||
- | :!:Пример **для уменьшения** значения: | ||
- | <code pascal>FOR var i:=5 DOWNTO 1 DO | ||
- | write(i); | ||
- | //54321</code> | ||
- | |||
- | ===REPEAT … UNTIL=== | ||
- | **Цикл с постусловием**, т.е. цикл будет гарантированно пройден минимум один раз, т.к. проверка осуществляется после каждого выполнения тела цикла. | ||
- | <code pascal>REPEAT | ||
- | <1> | ||
- | UNTIL <Условие>;</code> | ||
- | Цикл выполняется до тех пор, пока условие не станет истинным. | ||
- | |||
- | ===WHILE … DO=== | ||
- | Цикл с пред условием, т.к. проверка проводится до начала очередной итерации. | ||
- | <code pascal>WHILE <Условие> DO | ||
- | <1>;</code> | ||
- | |||
- | =====Массив:===== | ||
- | =====Функции===== | ||
- | =====ООП===== | ||
- | =====Пример простой программы===== | ||
- | FIXME |