Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
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 | ||
Записаться на занятия к репетитору