Главная » Free Pascal

Обработка строковой информации Free Pascal

Добавлено Дата: 12 June, 2014 категория: Free Pascal

Free Pascal поддерживает работу со строковыми константами и переменными четырех типов: String, PChar, AnsiString и WideString.

Тип String (строка) появился в самой первой версии Паскаля. Строки такого

Читать »

Интегрированная среда FP IDE

Добавлено Дата: 12 June, 2014 категория: Free Pascal

Интегрированная среда FP IDE, разработка которой продолжается и в настоя- щее время, обеспечивает режим работы, напоминающий условия программирова- ния в средах Borland Pascal и Borland C++. После запуска программы fp.exe и набо- ра первых строк новой программы на экране появляется главное окно (рис. 3.1).

Читать »

Файлы управления работой системы FP IDE

Добавлено Дата: 11 June, 2014 категория: Free Pascal

Информация о конфигурации системы и параметрах, определяющих ее работу, сосредоточена в трех файлах:

± fp.dsk — файл, в котором запоминается конфигурация рабочего стола (desktop);

Читать »

Стандартные модули Free Pascal

Добавлено Дата: 10 June, 2014 категория: Free Pascal

В составе системы FP поставляется набор модулей, готовых к употреблению программами пользователей. Их общее количество превышает 40 единиц, однако лишь половина из них ориентирована на эксплуатацию под управлением Windows. И только порядка десятка могут стать повседневным инструментом большинства программистов. Список таких модулей приведен в табл. 11.1.

Читать »

Системы координат OpenGL Free Pascal

Добавлено Дата: 10 June, 2014 категория: Free Pascal

Процедуры OpenGL используют, как правило, пространственную систему ко- ординат, представленную на рис. 16.1. Ось z в ней направлена в сторону наблюда- теля. Вспомните об идее Z-буфера, когда точка, имеющая большую координату Z, заслоняет точку с меньшей координатой Z. Именно так решается проблема удале- ния невидимых участков при отображении пространственной сцены на плоскость экрана. Диапазон изменения любой пространственной координаты — от –1 до +1. Если реальные размеры конструируемых фигур не попадают в указанный интервал, можно воспользоваться различными способами проецирования объекта, его пере- мещением в пространстве или масштабированием.

Читать »

Синтаксис и семантика языка Free Pascal

Добавлено Дата: 9 June, 2014 категория: Free Pascal

Краткая справка по типам данных

± Формат объявления типа одиночных (скалярных) переменных:

type

имя_типа = тип;

var

имя_переменной : тип;

имя_переменной : имя_типа;

Читать »

Выделение локальной области на графическом экране Free Pascal

Добавлено Дата: 6 June, 2014 категория: Free Pascal

На графическом экране можно создать временное поле рисования с помощью процедуры SetViewPort:

SetViewPort(x1, y1, x2, y2, Clip);

Координаты точек (x1, y1) и (x2, y2) задают левый верхний и правый нижний углы прямоугольной области, которая с этого момента становится полем рисова- ния. В момент создания такой локальной области она чистится, а курсор перево- дится в начало локальной системы координат, т. е. в точку (x1, y1) полного графи- ческого экрана. Параметр Clip может принимать одно из двух значений — True или False. В первом случае включается режим отсечения, при котором результаты построений, выходящие за пределы установленной локальной области, на экране не отображаются. Во втором случае объекты, выходящие за пределы локального окна, на графическом экране рисуются (рис. 15.17) — листинг 15.11.

Читать »

Упрощение доступа к полям записи Free Pascal

Добавлено Дата: 6 June, 2014 категория: Free Pascal

Использование составных имен доставляет определенные неудобства для про- граммистов. Поэтому в Паскале был придуман способ сокращенного набора имен полей. Он заключается в том, что перед фрагментом программы, активно исполь- зующим имена полей, помещается специальный заголовок — оператор with с опускаемой добавкой.

Читать »

Адресные объекты Free Pascal

Добавлено Дата: 5 June, 2014 категория: Free Pascal

Как правило, любые объекты программы снабжаются индивидуальным име- нем (идентификатором), которое используется в тех случаях, когда мы собираем- ся извлечь значение объекта или заменить его новым значением. Однако в опер а- тивной памяти компьютера активные в данный момент объекты расположены в ячейках (байтах, словах, двойных или четверных словах), каждая из  которых имеет фиксированный адрес. Многие алгоритмические языки предоставляют программисту возможность узнать во время исполнения программы адрес того или иного активного объекта. Такая информация может оказаться более удобной при выполнении некоторых операций, например, при передаче данных в подпр о- граммы. Так как значение адреса занимает в памяти всего четыре байта, то пер е- дача адреса обходится дешевле, чем пересылка значения, занимающего в памяти гораздо больше места.

Читать »

Ханойские башни Free Pascal

Добавлено Дата: 5 June, 2014 категория: Free Pascal

Одной из самых интересных рекурсивных программ является компьютерная модель игры "Ханойские  башни".  Придумал  эту  игру  французский  математик Э. Люка. На деревянной подставке были установлены три иглы, на первую из кото- рых было насажено несколько дисков разного диаметра (рис. 9.8).

Читать »

Внешнее представление числовых констант

Добавлено Дата: 1 June, 2014 категория: Free Pascal

Почти в каждой программе, написанной на том или ином алгоритмическом языке, встречаются числовые константы, которые используются как операнды арифметических или логических выражений, как начальные значения переменных числового типа, как значения именованных числовых констант, как границы ин- дексов массивов и т. п. В любом из перечисленных случаев используется термин "литеральная константа", т. е. константа, записанная с помощью некоторого на-

Читать »

Символьные данные Free Pascal

Добавлено Дата: 1 June, 2014 категория: Free Pascal

К данным типа char относятся объекты, представленные в оперативной памяти восьмибитовыми двоичными кодами от 0 до 255.

Первую группу таких объектов с кодами от 0 до 31 относят к группе управляю- щих символов. Среди управляющих символов чаще других используются следую- щие:

Читать »

Операции над символами и фрагментами коротких строк Free Pascal

Добавлено Дата: 30 May, 2014 категория: Free Pascal

С операцией сравнения строк мы познакомились в программе sort_nam (см. лис- тинг 2.7). Но в словарях, где слова располагаются в лексикографическом порядке (т. е. по алфавиту), не делается разницы между большими и малыми буквами. Хоте- лось бы реализовать такой же подход и в программах. Однако в таблице ASCII коды всех малых букв русского и латинского алфавитов располагаются вслед за кодами больших букв, следовательно, в числовом эквиваленте код любой малой буквы больше кода соответствующей большой буквы. Для того чтобы нейтрализовать эту разницу, можно воспользоваться двумя способами. Во-первых, можно прибегнуть к одной из функций — UpCase или LowerCase, с помощью которых в тексте произво- дится замена всех букв на большие или малые. К сожалению, эта возможность рас- пространяется только на буквы латинского алфавита. Во-вторых, вместо обычных операций отношения (больше, меньше, равно) можно воспользоваться функцией сравнения строковых данных ShortCompareText(s1,s2), которая выполняет свою роль, игнорируя разницу между большими и малыми буквами. Эта функция возвра- щает целочисленный результат, который положителен, если s1>s2, равен нулю при s1=s2 и отрицателен, если s1<s2. Однако и эта функция приспособлена только для текстов, содержащих латинские буквы. В этом нетрудно убедиться, анализируя про- грамму com_str (листинг 5.5) и результаты ее работы (рис. 5.5).

Читать »

Управление цветом OpenGL Free Pascal

Добавлено Дата: 28 May, 2014 категория: Free Pascal

Библиотека OpenGL использует два разных подхода к окраске графических компонент. Первый, наиболее употребительный, основан на четырехкомпонентной цветовой палитре RGBA, в которой представлены интенсивности трех базовых цветов (R — красный, G — зеленый, B — синий) и уровень прозрачности (так на- зываемый альфа-канал). В большинстве графических систем, эксплуатируемых под управлением Windows, для хранения целочисленных значений этих компонентов выделяется по 8 двоичных разрядов (и это соответствует формату TrueColor — бо- гатейшей палитре с более чем 16 млн цветовых оттенков). В библиотеке OpenGL наряду с целочисленным форматом для задания интенсивностей базовых цветов широко используются вещественные значения из диапазона [0, 1]. Нулевое значе- ние соответствует минимальной интенсивности соответствующего компонента цвета, единичное — максимальной. Уровень прозрачности дает возможность рас- смотреть контуры изображений, поверх которых нарисованы новые объекты. Дос- тигается это путем смешения в определенных пропорциях старых красок со вновь накладываемыми. Нулевое значение параметра альфа соответствует абсолютной прозрачности свежего мазка, а единичное значение — абсолютной непрозрачности. Когда речь идет об отображении объекта на экране дисплея, для хранения кода цветности каждого элемента изображения (пиксела) в оперативной памяти или в видеопамяти выделяется 32 бита.

Читать »

Операции над целочисленными данными Free Pascal

Добавлено Дата: 27 May, 2014 категория: Free Pascal

Арифметические операции

Кроме четырех обычных операций сложения (a+b), вычитания (a-b), умноже- ния (a*b) и деления (a/b) в языке Free Pascal предусмотрены целочисленное деле- ние (a div b) и нахождение остатка от деления (a mod b). Результат всех приве- денных выше операций над целочисленными операндами a и b, за исключением операции деления (a/b) является целочисленным. Операция обычного деления (a/b) всегда дает вещественный результат. Этим Паскаль отличается от многих ал- горитмических языков. При условии, что оба операнда принадлежат одному и тому же целочисленному типу, существует вероятность, что результат операции может оказаться за пределами границ, допустимых для данного типа. Если при работе компилятора включен контроль за выходом из допустимого интервала ({$R+}), то такая ситуация будет зафиксирована как ошибочная. Если такой контроль отклю- чен, то скажется эффект "кольца", упомянутый ранее. Следующий пример демон- стрирует обе ситуации (листинг 4.2).

Читать »