Читаем Язык программирования Euphoria. Справочное руководство полностью

Когда ваша программа завершается, последний цвет, выбранный вами для текста и выводившийся на экран, сохраняется в действии. Поэтому вам может понадобиться напечатать что-то, можно просто '\n', в белом цвете (WHITE), чтобы восстановить белый цвет текста операционной системы, особенно, если курсор находится в нижней строке экрана в готовности к прокрутке вверх.

Пример:

text_color(BRIGHT_BLUE)

См. также:

bk_color

text_rows

Платформа:

DOS32, WIN32

Синтаксис:

include graphics.e

i2 = text_rows(i1)

Описание:

Устанавливает число строк на экране в текстовом режиме, если заданное значение i1 возможно. i2 принимает значение действительного нового числа строк.

Комментарии:

Число строк 25, 28, 43 и 50 поддерживается большинством видеоплат.

См. также:

graphics_mode

tick_rate

Платформа:

DOS32

Синтаксис:

include machine.e

tick_rate(a)

Описание:

Задаёт число прерываний в секунду от таймера. Тем самым устанавливается точность библиотечной функции time() и частота дискретизации при профилировании времени.

Комментарии:

tick_rate() игнорируется под WIN32 и Linux/FreeBSD. Дискретность счёта времени под WIN32 всегда равна 100 прерываниям в секунду.

На PC прерывания от таймера идут обычно с частотой 18.2 прерываний в секунду. tick_rate() позволяет вам увеличить эту частоту, но не уменьшить её.

tick_rate(0) восстановит нормальную частоту 18.2. Euphoria восстанавливает нормальную частоту автоматически при завершении вашей программы, даже при аварийной остановке по обнаруженной ошибке.

Когда программа исполняется в окне DOS с частотой таймера иной, чем 18.2, функция time() не будет убегать вперед, если данное окно не является активным окном.

С частотой таймера, отличающейся от 18.2, функция time() под DOS занимает примерно 1/100 от обычного времени её исполнения. Под Windows и FreeBSD функция time() всегда исполняется очень быстро.

До тех пор, пока ex.exe исполняется, система будет поддерживать правильное время дня. Но если произойдет отказ ex.exe (т.е. вы увидите сообщение об ошибке "CauseWay..."), когда частота таймера установлена высокая, вам (или вашему пользователю) может потребоваться перезапуск машины, чтобы восстановить правильную исходную частоту. Если не сделать этого, системное время будет быстро опережать реальное. Эта проблема не свойственна Windows 95/98/NT и имеет место только под DOS или Windows 3.1. Но вы всегда можете вернуться к правильному времени, поддерживаемому батарейными часами вашей машины, перезагрузив машину.

Пример:

tick_rate(100)

-- time() идёт с шагом .01 секунды

-- вместо обычных .055 секунды

См. также:

time, time profiling

time

Синтаксис:

a = time()

Описание:

Выдаёт число секунд, прошедших от некоторого фиксированного момента в прошлом.

Комментарии:

Если вам нужно измерить, например, сколько времени ушло на выполнение какого-то участка кода вашей программы, найдите разность между двумя отсчетами time(), взятыми в начале и в конце данного участка кода.

Разрешение под DOS32 обычно около 0.05 секунды. Под WIN32 и Linux/FreeBSD разрешение около 0.01 секунды.

Под DOS32 вы можете улучшить разрешение, вызвав процедуру tick_rate() с необходимым параметром.

Под DOS32 период времени, который вы можете так измерить, ограничен 24 часами. После этого величина, выдаваемая time() будет переустановлена и начнётся новый счёт. Если, тем не менее, вы вызывали tick_rate(), и частота часов была выше обычной 18.2/сек, результат time() будет оставаться правильным намного дольше, так как в этом случае Euphoria обрабатывает прерывания от часов прямо и накапливает отсчёты в более ёмкой переменной, 32-битной.

Эмуляция DOS под Windows XP не вполне совершенна. Когда вы производите профилирование времени (with profile_time), функция time() может иметь погрешность до нескольких процентов. Эта проблема не имеет места под Windows ME/98/95.

На некоторых машинах функция time() может выдавать отрицательное число. Тем не менее, вы можете использовать разность отсчётов от time(), чтобы измерять истекшее время.

Пример:

constant ITERATIONS = 1000000

integer p

atom t0, loop_overhead

t0 = time()

for i = 1 to ITERATIONS do

-- время пустого цикла

end for

loop_overhead = time() - t0

t0 = time()

for i = 1 to ITERATIONS do

p = power(2, 20)

end for

? (time() - t0 - loop_overhead)/ITERATIONS

-- вычисление времени (в секундах) одного возведения в степень

См. также:

date, tick_rate

trace

Синтаксис:

with trace

trace(i)

Описание:

Перейти на страницу:

Все книги серии Euphoria

Язык программирования Euphoria. Справочное руководство
Язык программирования Euphoria. Справочное руководство

Euphoria (юфо'ри, также рус. эйфори'я, ра'дость) — язык программирования, созданный Робертом Крейгом (Rapid Deployment Software) в Канаде, Торонто. Название Euphoria — это акроним для «End-User Programming with Hierarchical Objects for Robust Interpreted Applications».Euphoria — интерпретируемый императивный язык высокого уровня общего назначения. C помощью транслятора из исходного кода на Euphoria может быть сгенерирован исходный код на языке Си, который в свою очередь может быть скомпилирован в исполнияемый файл или динамическую библиотеку при помощи таких компиляторов, как GCC, OpenWatcom и др. Программа Euphoria также может быть «связана» с интерпретатором для получения самостоятельного исполняемого файла. Поддерживается несколько GUI-библиотек, включая Win32lib и оберток для wxWidgets, GTK+ и IUP. Euphoria имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.[Материал из Википедии]

Коллектив авторов

Программирование, программы, базы данных

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных