Kniga-Online.club
» » » » W Cat - Язык программирования Euphoria. Справочное руководство

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

Читать бесплатно W Cat - Язык программирования Euphoria. Справочное руководство. Жанр: Программирование издательство неизвестно, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

Вы должны заблокировать память, занимаемую вашим обработчиком, чтобы быть уверенным, что он никогда не будет перенесен на диск при использовании виртуальной памяти. См. lock_memory().

Настоятельно рекомендуем изучить работу файла demodos32hardint.ex, прежде чем пытаться устанавливать собственный обработчик прерывания.

Вы должны хорошо знать программирование на машинном уровне, чтобы писать свои собственные обработчики прерываний.

Вы можете вызвать set_vector() с дальним адресом, выданным get_vector(), если возникла необходимость восстановить исходный оригинальный обработчик.

Пример:

set_vector(#1C, {code_segment, my_handler_address})

Пример программы:

demodos32hardint.ex

См. также:

get_vector, lock_memory, allocate

sin

Синтаксис:

x2 = sin(x1)

Описание:

Выдаёт синус x1, где x1 выражено в радианах.

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

Данная функция может быть применена к атому или ко всем элементам ряда.

Пример:

sin_x = sin({.5, .9, .11})

-- sin_x равен {.479, .783, .110}

См. также:

cos, tan

sleep

Синтаксис:

include misc.e

sleep(i)

Описание:

Приостанавливает исполнение программы на i секунд.

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

Под WIN32 и Linux/FreeBSD операционная система будет приостанавливать вашу программу и отдавать управление другим запущенным программам. Под DOS32 ваша программа будет исполнять занятый цикл в течение i секунд, во время которых другие программы могут выполняться, но на конкурентной основе за обладание процессором.

При работе в режиме многозадачности приостанавливается вся программа, а не только текущая задача. Чтобы приостановить текущую задачу, вы можете вызвать task_schedule(task_self(), {i, i}), а затем исполнить task_yield().

Пример:

puts(1, "Остановка на 15 секунд ...n")

sleep(15)

puts(1, "Остановка закончена.n")

См. также:

lock_file, abort, time

sort

Синтаксис:

include sort.e

s2 = sort(s1)

Описание:

Сортирует ряд s1 в порядке возрастания, используя быстрый алгоритм сортировки. Элементы s1 могут быть любой смесью атомов или рядов. Атомы идут перед рядами, а ряды сортируются в "алфавитном" порядке, так, что сначала сортировка выполняется по первым элементам (полям), затем, если первые эквивалентны, по вторым и т.д. Выдаёт отсортированный ряд.

Пример 1:

x = 0 & sort({7,5,3,8}) & 0

-- x становится равным {0, 3, 5, 7, 8, 0}

Пример 2:

y = sort({"Smith", "Jones", "Doe", 5.5, 4, 6})

-- y равно {4, 5.5, 6, "Doe", "Jones", "Smith"}

Пример 3:

database = sort({{"Smith", 95.0, 29},

{"Jones", 77.2, 31},

{"Clinton", 88.7, 44}})

-- 3 "записи" в базе данных будут отсортированы по первому "полю",

-- т.е. по имени. Там, где первые поля (элементы) эквивалентны,

-- сортировка будет производиться по второму полю и т.д.

-- после сортировки база данных примет вид:

{{"Clinton", 88.7, 44},

{"Jones", 77.2, 31},

{"Smith", 95.0, 29}}

См. также:

custom_sort, compare, match, find

sound

Платформа:

DOS32

Синтаксис:

include graphics.e

sound(i)

Описание:

Включает системный громкоговоритель (звукоизлучатель) PC на частоте i Гц. Если подать аргумент i, равный 0, громкоговоритель будет выключен.

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

Под WIN32 и Linux/FreeBSD звуки этой процедурой не генерируются.

Пример:

sound(1000) -- включается непрерывный высокий тон частотой 1000 Гц

sprint

Синтаксис:

include misc.e

s = sprint(x)

Описание:

Выдаёт представление x как символьной строки. Это точно то же самое, что и print(fn, x), но вывод производится не в файл и не на устройство (экран), а в ряд. x может быть любым объектом Euphoria. The representation of x as a string of characters is returned. This is exactly the same as print(fn, x), except that the output is returned as a sequence of characters, rather than being sent to a file or device. x can be any Euphoria object.

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

Атомы, содержащиеся в x, будут выведены максимум с 10 значащими цифрами, как и при помощи print().

Пример 1:

s = sprint(12345)

-- s равно "12345"

Пример 2:

s = sprint({10,20,30}+5)

-- s равно "{15,25,35}"

См. также:

print, sprintf, value, get

sprintf

Синтаксис:

s = sprintf(st, x)

Описание:

Эта функция делает точно то же самое, что и printf(), но вывод производится не в файл и не на устройство (экран), а в ряд. Ряд st является строкой формата, x - величина или ряд, подлежащие форматированию. printf(fn, st, x) является эквивалентом для puts(fn, sprintf(st, x)).

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

Некоторые типовые применения sprintf():

1. Преобразование чисел в строки.

2. Создание строк для подачи в system().

3. Создание форматированных сообщений об ошибках, которые могут быть поданы в обработчик общих сообщений об ошибках.

Пример:

s = sprintf("%08d", 12345)

-- s равно "00012345"

См. также:

printf, value, sprint, get, system

sqrt

Синтаксис:

x2 = sqrt(x1)

Описание:

Выдаёт квадратный корень x1.

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

Данная функция может быть применена к атому или ко всем элементам ряда.

Попытка извлечь квадратный корень из отрицательного числа вызовет аварийное завершение вашей программы с сообщением об ошибке времени исполнения.

Пример:

r = sqrt(16)

-- r равно 4

См. также:

log, power

system

Синтаксис:

system(st, i)

Описание:

Подаёт командную строку st в интерпретатор команд операционной системы для немедленного исполнения. Аргумент i необходим для указания способа возвращения из дочерней программы, запущенной командой system():

Когда i равно 0, предыдущий графический режим восстанавливается и экран очищается.

Когда i равно 1, выдаётся звуковой сигнал и программа ждет нажатия пользователя на клавишу, прежде чем восстановить предыдущий графический режим.

Когда i равно 2, графический режим не восстанавливается и экран не очищается.

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

i = 2 должно использоваться, только когда известно, что команда, выполняемая system(), не будет изменять графический режим.

Вы можете использовать Euphoria как мощнейший "пакетный" (.bat) язык, задавая нужные вам вызовы system() и system_exec().

system() запускает новую копию интерпретатора команд DOS или Linux/FreeBSD.

system() позволяет вам использовать из командной строки перенаправление стандартных входа и выхода, задавая его в строке st.

Под DOS32 программа Euphoria стартует без использования расширенной памяти, но после старта начинает её использовать. Если для исполнения программы расширенной памяти перестанет хватать, программа начнёт занимать остатки стандартной памяти. При исчерпании и стандартной памяти начнётся использование виртуальной памяти, т.е. пересылка кода и данных на диск. Команда DOS, запущенная на исполнение с помощью system(), прервётся, если для её исполнения окажется недостаточно стандартной памяти. Чтобы избежать подобных ситуаций, вы можете зарезервировать некоторый объём стандартной (нижней) памяти, выполнив команду:

SET CAUSEWAY=LOWMEM:xxx

где xxx есть число K (килобайт) стандартной памяти, отводимой в резерв DOS. Резервирование должно быть выполнено до запуска вашей программы. Вы можете производить резервирование из вашего файла autoexec.bat или из .bat-файла, запускающего вашу программу. Например:

SET CAUSEWAY=LOWMEM:80

ex myprog.ex

По данной команде будет зарезервировано 80K стандартной памяти, которых достаточно для исполнения простых команд DOS вроде COPY, MOVE, MKDIR и т.п., если вы их потом подадите из своей программы myprog.ex.

Пример 1:

system("copy temp.txt a:\temp.bak", 2)

-- не забывайте писать двойную косую черту в вашей команде, чтобы в DOS

-- передавалась штатная одинарная

Пример 2:

system("ex \test\myprog.ex outdata", 2)

-- исполняется myprog, при этом её стандартные вход и выход

-- перенаправлены

См. также:

system_exec, dir, current_dir, getenv, command_line

system_exec

Синтаксис:

i1 = system_exec(st, i2)

Описание:

Пытается выполнить команду, заданную в строке st. Ряд st должен содержать команду запуска исполняемой программы, возможно, с некоторыми параметрами командной строки. Если программа может исполняться, в i1 будет записан код возврата из программы после её завершения. Если запуск программы невозможен, функция system_exec() выдаёт -1. В i2 должен быть указан код, дающий способ действий с текущим графическим режимом после завершения программы, вызванной system_exec(). Эти коды имеют те же самые значения, что и для функции system():

Когда i2 равно 0, восстанавливается предыдущий графический режим и экран очищается.

Когда i2 равно 1, подаётся звуковой сигнал, программа ждёт нажатия на клавишу перед восстановлением предыдущего графического режима.

Когда i2 равно 2, графический режим не восстанавливается и экран не очищается.

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

W Cat читать все книги автора по порядку

W Cat - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


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

Отзывы читателей о книге Язык программирования Euphoria. Справочное руководство, автор: W Cat. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*