03.02.2019
Новый выпуск журнала Автоматизация и программирование.
05.01.2019
Новый выпуск журнала Автоматизация и программирование.
25.12.2018
Новые видео и статья Процедура Delete.
20.12.2018
Новые видео и статья Особенности использования вложенных операторов.
15.12.2018
Новая задача Как преобразовать байт в килобайт.
Стандартные модули
![]() |
Основы программирования Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее... |
Любой язык программирования предоставляет стандартные модули, которые содержат описания наиболее часто используемых функций, констант, типов данных и т.п.
Free Pascal имеет в своём арсенале несколько десятков стандартных модулей практически на все случаи жизни. Ниже перечислены только основные из этих модулей. Список все модулей и всех подпрограмм, которые объявлены в этих модулях, вы можете найти в документации среды разработки.
Модуль | Описание |
CRT | Подпрограммы для работы с вводом-выводом в текстовом режиме |
DateUtils | Подпрограммы для работы с датой и временем |
Dos | Подпрограммы для работы с функциями DOS |
Graph | Подпрограммы для работы в графическом режиме |
KeyBoard | Подпрограммы для работы с клавиатурой |
Math | Математические функции |
Mouse | Подпрограммы для работы с мышью |
Printer | Подпрограммы для работы с принтером |
Strings | Подпрограммы для работы со строками |
StrUtils | Подпрограммы для работы со строками |
System | Основные подпрограммы общего назначения. Этот модуль не нужно подключать к вашей программе, так как он подключается автоматически. |
SysUtils | Дополнительные подпрограммы общего назначения. |
Video | Подпрограммы для работы с экраном в текстовом режиме |
WinCRT | Подпрограммы ввода-вывода |
x86 | Работа с портами ввода-вывода |
Описывать все функции и процедуры всех модулей я сейчас не буду. Слишком уж это утомительное занятие. Тем более, что полное описание есть в документации. Правда, документация на английском. Ну так я вас предупреждал неоднократно в начале пути - учите английский язык.
Хочу только обратить ваше внимание на один очень важный момент:
в разных модулях могут быть разные подпрограммы с одинаковыми именами Впрочем, не только подпрограммы, но и другие данные могут иметь одинаковые идентификаторы.
Например, функция ReadKey есть как в модуле CRT, так и в модуле WinCRT.
И если вы к вашей программе подключите оба этих модуля и используете в вашей программе функцию ReadKey, то результат может оказаться для вас неожиданным.
Проблема в том, что функции с именем ReadKey в модулях CRT и WinCRT, хотя и имеют одинаковые имена, но работают по разному. Функция из модуля WinCRT не будет работать в консольном приложении, и наоборот.
Но что же всё-таки произойдёт, если вы подключите оба модуля? Какая из этих функций будет выполняться? Ведь по имени вы их отличить не сможете.
А выполняться будет та функция, чей модуль подключен последним. Например, если вы сделаете так:
program su; uses CRT, WinCrt; begin ReadKey; //Выполняется функция из модуля WinCRT end.
то выполнится функция из модуля WinCRT.
А если вы сделаете так:
program su; uses WinCrt, CRT; begin ReadKey; //Выполняется функция из модуля CRT end.
то выполняться будет функция из модуля CRT.
Пожалуй, на этой оптимистичной ноте разговор о стандартных модулях мы закончим. А в следующем уроке мы создадим свой собственный модуль и научимся его использовать в своей программе.