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

3. Использование ряда, состоящего из номеров подпрограмм, для создания команды переключения по условиям.

4. Установка объектно-ориентированной системы.

5. Обеспечение работы с call_back() - см. platformr.doc.

Обратите внимание, что функции Си, вызов которых возможен в Euphoria, также имеют свои номера подпрограммы - см. define_c_proc() и define_c_func().

Пример 1:


procedure foo()

puts(1, "Hello World\n")

end procedure


integer foo_num

foo_num = routine_id("foo")


call_proc(foo_num, {}) -- то же самое, что и вызов foo()


Пример 2:


function apply_to_all(sequence s, integer f)

-- функция применяется ко всем элементам ряда

sequence result

result = {}

for i = 1 to length(s) do

-- мы уже можем предусмотреть здесь вызов, например,

-- add1() через некоторый, пока неизвестный, номер f,

-- хотя определение самой add1() и численное значение

-- номера f появятся по ходу программы позже

result = append(result, call_func(f, {s[i]}))

end for

return result

end function


function add1(atom x)

return x + 1

end function

-- функция add1() теперь видна, поэтому мы можем запросить

-- для неё номер подпрограммы, который подаётся затем в

-- ранее определённую функцию apply_to_all(), которая,

-- на момент её определения, ещё ничего "не знала" о функции

-- add1(), но уже предусматривала вызов некой, неизвестной

-- тогда, функции по её номеру f.

? apply_to_all({1, 2, 3}, routine_id("add1"))

-- отображается {2,3,4}


См. также:

call_proc, call_func, call_back, define_c_func, define_c_proc, platformr.doc


...

от S до T


save_bitmap


Синтаксис:

include image.e

i = save_bitmap(s, st)

Описание:

Создаёт bitmap-файл (.bmp) из 2-х элементного ряда s. Ряд st является именем .bmp-файла. s[1] является палитрой:

{{r,g,b}, {r,g,b}, ..., {r,g,b}}

Каждая из величин r, g, или b должна быть в диапазоне от 0 до 255. s[2] является двумерным рядом рядов, содержащих пиксельно-графическое изображение. Ряды, содержащиеся в s[2], должны все иметь одинаковую длину. s имеет тот же самый формат, что и величина, выдаваемая функцией read_bitmap().

Индикатор результата операции i может принимать одно из следующих значений:


global constant BMP_SUCCESS = 0,-- успех операции

BMP_OPEN_FAILED = 1,-- файл не открылся на запись

BMP_INVALID_MODE = 4 -- неверный графический формат

-- или неверный аргумент


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

Если вы использовали get_all_palette() для получения палитры перед вызовом этой функции, вы должны умножить величины интенсивностей на 4 перед вызовом save_bitmap().

Вы можете использовать save_image(), чтобы получить двумерный ряд для s[2], содержащий изображение.

Функция save_bitmap() вырабатывает файлы биткарт с 2, 4, 16, или 256 цветами, так что все они могут быть затем прочитаны с помощью read_bitmap(). Программа Paintbrush из пакета Windows и некоторые другие графические редакторы не поддерживают 4-х цветные биткарты.

Пример:


paletteData = get_all_palette() * 4

code = save_bitmap({paletteData, imageData},

"c:\\example\\a1.bmp")


См. также:

save_image, read_bitmap, save_screen, get_all_palette


save_image


Платформа:

DOS32

Синтаксис:

include image.e

s3 = save_image(s1, s2)

Описание:

Переписывает в ряд прямоугольное изображение с пиксельно-графического экрана. Результатом является двумерный ряд рядов, содержащий данные обо всех пикселах изображения. Вы можете затем снова вывести это изображение с использованием процедуры display_image(). Ряд s1 является 2-х элементным рядом {x1,y1}, задающим координаты верхнего левого угла изображения, s2 задаёт {x2,y2} - координаты правого нижнего угла.

Пример:


s = save_image({0,0}, {50,50})

display_image({100,200}, s)

display_image({300,400}, s)

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

Все книги серии 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 имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.[Материал из Википедии]

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

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

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

Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ

Эта книга представляет собой перевод третьего издания американского бестселлера Effective C++ и является руководством по грамотному использованию языка C++. Она поможет сделать ваши программы более понятными, простыми в сопровождении и эффективными. Помимо материала, описывающего общую стратегию проектирования, книга включает в себя главы по программированию с применением шаблонов и по управлению ресурсами, а также множество советов, которые позволят усовершенствовать ваши программы и сделать работу более интересной и творческой. Книга также включает новый материал по принципам обработки исключений, паттернам проектирования и библиотечным средствам.Издание ориентировано на программистов, знакомых с основами C++ и имеющих навыки его практического применения.

Скотт Майерс , Скотт Мейерс

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