Здесь показаны различия между двумя версиями данной страницы.
| Следующая версия | Предыдущая версия | ||
|
subjects:programming:pascal:start [2018/05/31 21:23] ¶ создано |
subjects:programming:pascal:start [2023/09/06 16:44] (текущий) ¶ [Разделы:] |
||
|---|---|---|---|
| Строка 8: | Строка 8: | ||
| Паскаль, в первоначальном виде, представляет собою чисто процедурный язык и включает множество структур и конструкций с зарезервированными словами наподобие ''if'', ''then'', ''else'', ''while'', ''for'', и т. д. | Паскаль, в первоначальном виде, представляет собою чисто процедурный язык и включает множество структур и конструкций с зарезервированными словами наподобие ''if'', ''then'', ''else'', ''while'', ''for'', и т. д. | ||
| Тем не менее, Паскаль также содержит большое количество возможностей для структурирования информации и абстракций. | Тем не менее, Паскаль также содержит большое количество возможностей для структурирования информации и абстракций. | ||
| - | В современных диалектах (''Free Pascal'') доступны такие операции, как перегрузка операторов и функций. | + | Реализации Паскаля могут отличаться друг от друга стандартными модулями и возможностями (''т.е. имеются диалекты''). |
| - | =====Стандартные функции===== | + | В современных диалектах (например: ''Free Pascal'') доступны такие операции, как перегрузка операторов и функций. |
| - | |Функция|Описание|Пример|| | + | В учебных заведениях всё чаще встречается ''PascalABC.NET''. |
| - | ^Простые типы данных^^^^ | + | |
| - | ^DEC(N)|Уменьшение N|<code pascal>DEC(6);//=5</code>|| | + | |
| - | ^INC(N)|Увеличение N|<code pascal>INC(5);//=6</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>|| | + | |
| - | ^Другое^^^^ | + | |
| - | ^Randomize|Инициализация генератора случайных чисел (обычно, в начале программы, сразу после ''begin'')|<code pascal>Randomize;</code>|| | + | |
| - | ^Random|Генерация случайного числа|<code pascal>a:=random(1000);//a от 0 до 999</code>|| | + | |
| - | =====Типы данных===== | + | ===== Структура программы ===== |
| - | Можно выделить следующие типы данных: | + | <code pascal>program <название программы>; |
| - | * Простые типы | + | uses |
| - | * Целые типы -- SHORTINT, INTEGER, LOGINT, BYTE, WORD; | + | <модули>; |
| - | * Логический тип -- BOOLEAN | + | label |
| - | * Перечисляемые типы (определяются программистом через TYPE) | + | <список меток>; |
| - | * Тип-диапазон <code pascal>TYPE NUM = -10..10;</code> | + | const |
| - | * Символьный тип -- CHAR | + | <константы>; |
| - | * Вещественные типы -- REAL, SINGLE, DOUBLE, EXTENDED, COMP; | + | type |
| - | * Текстовая строка -- STRING; | + | <описание типов> |
| - | * Структурированные типы | + | var |
| - | * Массив<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 | + | <функции> |
| - | =====Ввод, Вывод сообщений в консоли:===== | + | begin |
| - | INPUT, OUTPUT - работа с файлами | + | <главный код>; |
| + | end.</code> | ||
| - | Чтение: | + | ===== Разделы: ===== |
| - | <code pascal>READ (A, B, C); | + | * [[.standard_functions]] |
| - | //123 2345 -56 <Enter>| | + | * [[.variable]] |
| - | + | * [[.stream]] | |
| - | READLN(A, B, C); | + | * [[.begin-end]] |
| - | //123 2345 -56 <Enter> | + | * FIXME Массивы:[[.array]] |
| - | |</code> | + | * [[.functions]] |
| - | + | * [[.file]] | |
| - | Запись: | + | * Модули: |
| - | <code pascal> | + | * [[.pascalabc:graphabc]] |
| - | WRITE(); | + | * [[.pascalabc:school]] |
| - | WRITE(J:8, I:12); // Указание позиций вывода | + | * FIXME ООП:[[.oop]] |
| - | WRITELN(); // WRITE + перевод строки | + | * FIXME Пример простой программы:[[.example]] |
| - | </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 | + | |
| - | =====Функции===== | + | |
| - | FIXME | + | |
| - | =====Работа с файлами===== | + | |
| - | Файлы бывают 3-х видов: | + | |
| - | * текстовые файлы | + | |
| - | * типизированные файлы | + | |
| - | * нетипизированные файлы. | + | |
| - | + | ||
| - | ==== Открытие текстового файла для чтения ==== | + | |
| - | <code pascal> | + | |
| - | Program readtextfile; | + | |
| - | Uses crt; | + | |
| - | var | + | |
| - | fl:text; // Для связи программы с текстовым файлом. Файловые переменные, предназначенные для работы с текстовыми файлами, должны иметь тип данных Text. | + | |
| - | str:string; // Будем использовать для чтения строк из файла. | + | |
| - | begin | + | |
| - | clrscr; | + | |
| - | assign (fl, 'programs\text.txt'); // Теперь посредством файловой переменной «fl» мы можем управлять файлом «text.txt». | + | |
| - | reset (fl); // Инициация файла – это открытие файла для чтения, записи либо для чтения и записи одновременно. Процедура Reset говорит нам о том, что файл открывается только для чтения. | + | |
| - | read (fl,str); // Для того чтобы получить доступ к записям, хранящимся в файле, используются процедуры Read, Readln, Write, Writeln. В результате действия процедуры Read из файловой переменной «fl» будет прочитана информация и эта информация будет записана в строковую переменную «str». | + | |
| - | write(str); // Вывод на экран. | + | |
| - | close(fl); // Стандартная процедура закрытия файла. | + | |
| - | readln; | + | |
| - | end. | + | |
| - | </code> | + | |
| - | FIXME | + | ===== Полезно ===== |
| - | =====ООП===== | + | * [[https://pascalabc.net/downloads/pabcnethelp/index.htm|ОнЛайн справка PascalABC.NET]] |
| - | FIXME | + | |
| - | =====Пример простой программы===== | + | |
| - | FIXME | + | |
Записаться на занятия к репетитору