русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ГРАФИКА


Дата добавления: 2014-11-27; просмотров: 637; Нарушение авторских прав


Модули. Падающие снежинки

 

Модули - это отдельные файлы, содержащие дополнительные процедуры. Дело в том, что сам язык Паскаль имеет довольно ограниченное количество процедур и функций, они не позволяют производить некоторые действия. Для этого и существуют модули - они содержат в себе действия, расширяющие язык. При этом все процедуры в модулях собраны по тематическим группам. Например, модуль Graph содержит функции работы с графикой - построение линий, окружностей, многоугольников, дуг, рисование точек и т.д. Модуль DOS - позволяет обращаться к системным средствам MS-DOS, таким как чтение/удаление/создание каталогов, обращение к самой системе. Модуль CRT - позволяет обращаться к средствам консоли (клавиатура+экран): перемещать курсор в любое положение, очищать экран, менять цвет букв и фона, читать и опрашивать клавиатуру (в чем разница смотри внизу страницы), создавать текстовые окна и мн. другое.

Сами модули хранятся во внешних файлах, которые имеют расширение ".tpu" - Turbo Pascal UNIT (англ. "Модуль турбо паскаля"). Однако не всегда этот файл может существовать. К примеру, использование модуля Graph требует наличия файла graph.tpu, а вот использование модуля Crt обходиться и без файла crt.tpu. Почему, спросите вы? Дело в том, что процедуры этого модуля находятся в т.н. "Системном модуле", иначе говоря в файле "turbo.tpl". Этот файл содержит в себе все внутренние функции Турбо Паскаля и некоторых его модулей.

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



Program UsesCRT;

uses Crt;

Begin

...

end.

Теперь мы можем использовать процедуры из этого модуля. Далее я представлю программу, реализующую это, но сначала опишу новые процедуры из модуля CRT, которые будут в ней использоваться. Обратите внимание на переводы названий процедур. Меня часто просят делать это из-за проблем с английским. Что ж, думаю это не лишнее.

1: Процедура ClrScr, модуль: CRT. (сокр. от англ. Clear Screen - очистка экрана). О процедуре см. ниже. Эта процедура очищает экран.

2: Процедура GotoXY(X, Y: Byte;), модуль: CRT.

Эта продедура осуществляет переход на указанную переменными X и Y позицию экрана. При этом номер строки - это Y, а номер позиции в строке - это X. Экран имеет 25 строк по 80 символов в каждой. То есть максимально можно сделать следующее:

GotoXY(80,25);

3: Процедура Delay(A: Word;), модуль: CRT. (анг. "Задержка");

Эта процедура выполняет задержку программы на указанное количество миллисекунд. Указывается оно параметров A, который, не может быть отрицательным. Используется эта процедура при необходимости замедлить выполнение программы - например, в программе "Снежинки" она тормозит сам ход снегопада - без ее использования все выполнялось бы слишком быстро.

4: Функция ReadKey: Char;, модуль: CRT.

Эта функция возвращает от своей работы последнюю нажатую клавишу. Очень похоже на работу Readln, только не ждет нажатия <Enter> и завершается сразу же при нажатии клавиши. При этом в переменную Char, к которой присваивается эта функция, заносится введенный символ.

Следующая функция из модуля CRT, которая понадобится:

5: Функция KeyPressed: Boolean;, модуль: CRT.

Эта функция возвращает TRUE если была нажата клавиша. Выше отмечалась разница между "чтением" клавиатуры и "опрос" клавиатуры. Вот здесь как раз и используется эта разница: KeyPressed - это опрос клавиатуры. Readln - это чтение. (В модуле Crt также есть похожая функция - ReadKey). Разница здесь в том, что при чтении клавиатуры программа ждет, пока с нее не будут введены данные. При опросе нет ожидания и если клавиша сразу не была нажата, то программа продолжает свою работу. Получше вы сможете разобраться когда будете использовать эту функцию.

Ну и завершающий этап перед самим текстом программы - это новый раздел - const. В нем описываются константы, используемые в программе. Далее все понятно на наглядном примере. Помните, что так можно описывать и строку и символ и даже массив:

Const

S='Here is string.'; { Константа - строка }

A: Array[1..5] of Char = ('a','b','c','d','e'); { Массив }

Итак, программа:

{ СHЕЖИHКИ }

uses crt;

const n=79;

Var

x:array[1..n] of byte;

i,k:byte; c:char;

Begin

clrscr;

for i:=1 to n do

begin

x[i]:=0;

end;

repeat

k:=random(80);

if x[k]=0 then x[k]:=1;

for i:=1 to n do

begin

if x[i]>0 then

begin

gotoxy(i,x[i]);

write(' ');

x[i]:=x[i]+1;

gotoxy(i,x[i]);

write('*');

if x[i]>23 then x[i]:=0;

end;

end;

delay(100);

until keypressed;

end.

При выполнении этой программы обратите внимание на Delay, чтобы добиться лучшего эффекта, установите его соответствующим образом, в зависимости от компьютера. К примеру, на Pentium III 800 это дело работает только с параметром Delay(2000). Меньше - слишком быстро.

 



<== предыдущая лекция | следующая лекция ==>
Программки для разбора | Процедура CIrScr


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.1 сек.