W Cat - Язык программирования Euphoria. Справочное руководство
- Название:Язык программирования Euphoria. Справочное руководство
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
W Cat - Язык программирования 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 имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.
[Материал из Википедии]
Язык программирования Euphoria. Справочное руководство - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
-- (атрибуты зависят от платформы)
put_screen_char(1, 1, {'A', 152, 'Z', 131})
См. также:
get_screen_char, display_text_image
puts
Синтаксис:
puts(fn, x)
Описание:
Выводит в файл или на устройство fn единственный байт (атом) или ряд байтов. Выводятся только младшие 8 битов каждой из величин, подаваемых в процедуру. Если fn - экран, вы увидите вывод символов текста.
Комментарии:
Когда выводится ряд байтов, внутри ряда не должно быть вложенных рядов. Этот ряд должен состоять только лишь из атомов. (В типовом случае ряд кодов ASCII).
Избегайте наличия нулей среди кодов, выводимых на экран или стандартный выход. Такой вывод может быть усечён.
Не забывайте, что если файл для вывода был открыт в текстовом режиме, DOS и Windows будут заменять \n (10) на \r\n (13 10). Открывайте файл в двоичном режиме, если вам не нужны подобные услуги.
Пример 1:
puts(SCREEN, "Введите своё имя: ")
Пример 2:
puts(output, 'A') -- на вывод будет послан единственный байт 65
См. также:
printf, gets, open
rand
Синтаксис:
x2 = rand(x1)
Описание:
Выдаёт случайное целое в пределах от 1 до x1, где x1 может быть от 1 до наибольшей допустимой положительной величины типа integer (1073741823).
Комментарии:
Данная функция применима к атому или ко всем элементам ряда.
Пример:
s = rand({10, 20, 30})
-- s может быть: {5, 17, 23} или {9, 3, 12} и т.д.
См. также:
set_rand
read_bitmap
Синтаксис:
include image.e
x = read_bitmap(st)
Описание:
Читает файл изображения в ряд. st является именем .bmp-файла - "биткарты". Файл должен быть именно в формате bitmap. Поддерживается большинство общих вариаций этого формата. Если файл прочитан успешно, результатом будет 2-элементный ряд. Первым элементом будет палитра, содержащая величины интенсивностей цветов в диапазоне от 0 до 255. Вторым элементом будет 2-х мерный ряд, содержащий собственно пиксельно-графическое изображение. Вы можете подать полученную палитру в процедуру all_palette() (после деления её на 4 для правильного масштабирования). Ряд с изображением может быть подан в процедуру display_image() для вывода на экран.
Поддерживаются биткарты с 2, 4, 16 или 256 цветами. Если файл имеет негодный формат, вместо изображения выдаётся код ошибки (atom):
global constant BMP_OPEN_FAILED = 1,
BMP_UNEXPECTED_EOF = 2,
BMP_UNSUPPORTED_FORMAT = 3
Комментарии:
Необходимые вам изображения в формате bitmap вы можете создавать, используя графический редактор Paintbrush из пакета Windows или многие другие графические программы. Эти изображения затем могут быть включены в ваши программы, написанные на Euphoria.
Пример:
x = read_bitmap("c:\\windows\\arcade.bmp")
-- примечание: двойная косая черта в адресе файла необходима,
-- чтобы в операционную систему была выдана штатная одинарная
Пример программы:
demo\dos32\bitmap.e x
См. также:
palette, all_palette, display_image, save_bitmap
register_block
Синтаксис:
include machine.e (or safe.e)
register_block(a, i)
Описание:
Регистрирует (добавляет) участок памяти в списке безопасных блоков, поддерживаемом библиотекой safe.e(отладочная версия machine.e). Блок начинается с адреса a. Длина блока составляет i байтов.
Комментарии:
Данная процедура предназначена только для отладочных целей. Библиотека safe.eрегистрирует и отслеживает блоки памяти, которые вашей программе разрешено использовать в подпрограммах peek(), poke(), mem_copy() и т.п. Процедура нормально работает только с теми участками памяти, которые выделены вами для своих целей путем выполнения команд Euphoria allocate() или allocate_low() и которые еще не освобождены с помощью команд Euphoria free() или free_low(). В некоторых случаях вы можете затребовать добавочные, внешние, участки памяти, например, в результате вызова функции Си. Если вы отлаживаете вашу программу с использованием safe.e, вы должны также регистрировать эти внешние участки памяти, иначе safe.eбудет препятствовать вашему доступу к ним. Когда вы закончите использование внешнего блока, вы сможете отменить его регистрацию с помощью команды unregister_block().
Когда вы включаете machine.e, у вас вызываются другие версии процедур register_block() и unregister_block(), которые не производят никаких операций. Подобный приём делает простыми и лёгкими переходы между отладочным и штатным режимами исполнения вашей программы.
Пример :
atom addr
addr = c_func(x, {})
register_block(addr, 5)
poke(addr, "ABCDE")
unregister_block(addr)
См. также:
unregister_block, safe.e
remainder
Синтаксис:
x3 = remainder(x1, x2)
Описание:
Вычисляет остаток от деления x1 на x2. Результат будет иметь тот же знак, что и x1, а величина результата будет меньше, чем величина x2.
Комментарии:
Аргументы, подаваемые в эту функцию, могут быть атомами или рядами. В случае рядов применяются правила действий с рядами.
Пример 1:
a = remainder(9, 4)
-- a будет равно 1
Пример 2:
s = remainder({81, -3.5, -9, 5.5}, {8, -1.7, 2, -4})
-- s будет равно {1, -0.1, -1, 1.5}
Пример 3:
s = remainder({17, 12, 34}, 16)
-- s будет равно {1, 12, 2}
Пример 4:
s = remainder(16, {2, 3, 5})
-- s будет равно {0, 1, 1}
См. также:
floor
repeat
Синтаксис:
s = repeat(x, a)
Описание:
Создаёт ряд длины a, где каждый элемент является x.
Комментарии:
Когда вы повторяете с помощью данной функции ряд или число с плавающей точкой, интерпретатор фактически не создаёт множественные копии в памяти. Напротив, единственная копия помечается числом экземпляров.
Пример 1:
repeat(0, 10) -- {0,0,0,0,0,0,0,0,0,0}
Пример 2:
repeat("JOHN", 4) -- {"JOHN", "JOHN", "JOHN", "JOHN"}
-- интерпретатор создаст только одну копию "JOHN"
-- в памяти
См. также:
append, prepend, оператор формирования ряда
reverse
Синтаксис:
include misc.e
s2 = reverse(s1)
Описание:
Оборачивает порядок элементов в ряде.
Комментарии:
Создаётся новый ряд, в котором элементы высшего уровня имеют порядок, обратный по отношению к исходному ряду.
Пример 1:
reverse({1,3,5,7}) -- {7,5,3,1}
Пример 2:
reverse({{1,2,3}, {4,5,6}}) -- {{4,5,6}, {1,2,3}}
Пример 3:
reverse({99}) -- {99}
Пример 4:
reverse({}) -- {}
См. также:
append, prepend, repeat
routine_id
Синтаксис:
i = routine_id(st)
Описание:
Функция выдаёт целое число i, известное как номер(идентификатор) подпрограммы, который присваивается процедуре или функции Euphoria, уже определённой программистом. Имя подпрограммы задаётся символьным рядом st. Если подпрограмма с таким именем ещё не определена, выдаётся -1.
Комментарии:
Полученный с помощью данной функции номер подпрограммы может подаваться в call_proc() или call_func() для непрямого (косвенного) вызова подпрограммы с именем st.
Подпрограмма с именем st должна быть видимой, т.е. доступной для вызова в той точке вашей программы, где вызвана функция routine_id() для получения номера подпрограммы. Непрямые вызовы подпрограмм по неким неизвестным пока их номерам могут появляться в программе ранее собственно определения подпрограмм, но конкретное численное значение каждого номера может быть выработано только после определения конкретной подпрограммы - внимательно просмотрите пример 2 ниже.
Читать дальшеИнтервал:
Закладка: