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

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

Уважаемые читатели!
Тут можно читать бесплатно Язык программирования Euphoria. Справочное руководство - W Cat. Жанр: Программирование. Так же Вы можете читать полную версию (весь текст) онлайн книги без регистрации и SMS на сайте Knigi-online.info (книги онлайн) или прочесть краткое содержание, описание, предисловие (аннотацию) от автора и ознакомиться с отзывами (комментариями) о произведении.
Описание онлайн-книги Язык программирования Euphoria. Справочное руководство - W Cat:
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. Справочное руководство - W Cat

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 29 30 31 32 33 34 35 36 37 ... 39

Пример 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 ниже.

Правильный номер подпрограммы, как только ему присвоено конкретное значение, будет работать в любом месте вашей программы при косвенных вызовах подпрограммы по этому её номеру через call_proc() / call_func().

Некоторые типовые применения номеров, вырабатываемых routine_id():

1. Указание на подпрограмму, которая в программе будет определена позже.

2. Создание подпрограммы, которая вызывает другую подпрограмму через численный аргумент - см. Пример 2 ниже.

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

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

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

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

Пример 1:

procedure foo()

puts(1, "Hello Worldn")

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)

-- записывает в ряд квадратный участок размером 51x51 из верхнего левого угла экрана,

-- а затем выводит его в позиции {100,200} и в позиции {300,400}

См. также:

display_image, save_text_image

save_screen

Платформа:

DOS32

Синтаксис:

include image.e

i = save_screen(x1, st)

Описание:

Сохраняет весь экран или прямоугольную область экрана в файле типа Windows bitmap - .bmp-файле. Чтобы записать в файл весь экран, подайте в функцию 0 для x1. Чтобы записать прямоугольную область экрана, x1 должен быть рядом двух рядов: {{topLeftXPixel, topLeftYPixel}, {bottomRightXPixel, bottomRightYPixel}}, где {topLeftXPixel, topLeftYPixel} равно {Xверхний левый, Yверхний левый}, а {bottomRightXPixel, bottomRightYPixel} равно {Xнижний правый, Yнижний правый}

Ряд st - имя вашего .bmp-файла, в который будет записана биткарта.

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

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

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

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

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

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

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

save_screen() работает только в пиксельно-графических режимах, но не в текстовых.

Пример 1:

-- записывается весь экран:

code = save_screen(0, "c:\example\a1.bmp")

Пример 2:

-- записывается часть экрана:

err = save_screen({{0,0},{200, 15}}, "b1.bmp")

См. также:

save_image, read_bitmap, save_bitmap

save_text_image

Синтаксис:

include image.e

s3 = save_text_image(s1, s2)

Описание:

Записывает в ряд прямоугольную область экрана в текстовом режиме. Результатом будет ряд рядов, содержащий символы ASCII и их атрибуты с экрана. Вы сможете затем перевывести этот текст с помощью процедуры display_text_image(). s1 является двухэлементным рядом вида {строка1, колонка1}, в котором определена позиция (знакоместо) верхнего левого символа. s2 - ряд вида {строка2, колонка2}, определяющий позицию (знакоместо) правого нижнего символа.

1 ... 29 30 31 32 33 34 35 36 37 ... 39
На этой странице вы можете бесплатно читать книгу Язык программирования Euphoria. Справочное руководство - W Cat бесплатно.
Похожие на Язык программирования Euphoria. Справочное руководство - W Cat книги

Оставить комментарий

Рейтинговые книги