`
Читать книги » Книги » Компьютеры и Интернет » Программирование » W Cat - Язык программирования Euphoria. Справочное руководство

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

1 ... 29 30 31 32 33 ... 39 ВПЕРЕД
Перейти на страницу:

polygon

Платформа:

DOS32

Синтаксис:

include graphics.e

polygon(i1, i2, s)

Описание:

Вычерчивается многоугольник с 3-мя или более вершинами, заданными в s, на пиксельно-графическом экране с использованием цвета i1. Внутренняя область закрашивается, если i2 равно 1. Не закрашивается, если i2 равно 0.

Пример:

polygon(GREEN, 1, {{100, 100}, {200, 200}, {900, 700}})

-- вычерчивается сплошной зелёный треугольник.

См. также:

draw_line, ellipse

position

Синтаксис:

position(i1, i2)

Описание:

Перемещает курсор на строку i1, в колонку i2, верхний левый угол экрана соответствует строке 1, колонке 1. Символ, выводимый на экран после этой команды, появится именно в назначенном месте. position() сообщит об ошибке, если предпринимается попытка задания знакоместа за пределами экрана.

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

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

Система координат при отображении текста отличается от системы координат при отображении пикселов. Пикселы отображаются так, что верхний левый угол экрана соответствует координатам (x=0,y=0), а первая координата задает положение по горизонтали, слева направо. В пиксельно-графических режимах вы можете отображать и текст, и пикселы. Процедура position() устанавливает только строку и колонку для текста, положением пикселов она не управляет. Аналогичной процедуры для назначения следующей пиксельной позиции не существует.

Пример:

position(2,1)

-- курсор устанавливается в начало второй строки сверху

См. также:

get_position, puts, print, printf

power

Синтаксис:

x3 = power(x1, x2)

Описание:

Возводит x1 в степень x2, выдаёт результат.

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

Аргументами данной функции могут быть атомы или ряды. В последнем случае применяются правила операций на рядах.

Степени 2 вычисляются очень быстро.

Пример 1:

? power(5, 2)

-- печатается 25

Пример 2:

? power({5, 4, 3.5}, {2, 1, -0.5})

-- печатается {25, 4, 0.534522}

Пример 3:

? power(2, {1, 2, 3, 4})

-- {2, 4, 8, 16}

Пример 4:

? power({1, 2, 3, 4}, 2)

-- {1, 4, 9, 16}

См. также:

log, sqrt

prepend

Синтаксис:

s2 = prepend(s1, x)

Описание:

Присоединяет x к началу ряда s1. Длина s2 будет равна length(s1) + 1.

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

Если x атом, эта операция дает то же, что и s2 = x & s1. Если же x ряд, то результат будет иным.

Случай, когда s1 и s2 являются одной и той же переменной, обрабатывается очень эффективно.

Пример 1:

prepend({1,2,3}, {0,0}) -- {{0,0}, 1, 2, 3}

-- Сравните со сцеплением (конкатенацией):

{0,0} & {1,2,3} -- {0, 0, 1, 2, 3}

Пример 2:

s = {}

for i = 1 to 10 do

s = prepend(s, i)

end for

-- s будет равно {10,9,8,7,6,5,4,3,2,1}

См. также:

append, concatenation operator &, sequence-formation operator

pretty_print

Синтаксис:

include misc.e

pretty_print(fn, x, s)

Описание:

Печатает в файле или на устройстве fn объект x, используя скобки { , , , }, отступы и последовательные строки, чтобы показать структуру объекта x в удобном для вас представлении s.

Доступен ряд режимов печати, отличающихся представлением s. Подавайте вместо s {}, если хотите воспользоваться режимом по умолчанию (исходным), или задавайте свой любимый режим в элементах ряда s как указано ниже (в квадратных скобках номер элемента ряда s):

[1] показывать символы ASCII:

* 0: никогда

* 1: вместе с любыми целыми в диапазоне ASCII 32..127 (исходный)

* 2: подобно 1, плюс показывать как "строку", когда все целые ряда находятся в диапазоне ASCII

* 3: подобно 2, но показывать *только* буквы в кавычках, а не числа, для любых целых в диапазоне ASCII, а также символы пробела: t r n

[2] число отступов для каждого уровня вложения ряда - исходный: 2

[3] колонка, в которой начинается печать - исходный: 1

[4] область колонки, где начинается перенос строки - исходный: 78

[5] формат для вывода целых - исходный: "%d"

[6] формат для вывода чисел с плавающей точкой - исходный: "%.10g"

[7] минимальная величина кода для символов ASCII - исходный: 32

[8] максимальная величина кода для символов ASCII - исходный: 127

[9] максимальное число выводимых строк.

Если длина s меньше 8, все незаданные опции до конца ряда будут иметь величины по умолчанию, исходные, т.е. {0, 5} даст "никогда не показывать ASCII", плюс 5-символьный отступ, а все остальные величины будут исходными.

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

Отображение начнётся из текущей позиции курсора. Обычно вы ожидаете, что печать начинается в колонке 1, но чтобы так было при вызове pretty_print(), необходимо иметь курсор уже именно в первой колонке. Этого можно добиться, просто выведя символ 'n' перед вызовом pretty_print(). Если вы хотите, чтобы печать началась в другой колонке, вам нужно вызвать position() и задать необходимую величину для режима [3]. Тем самым будет обеспечено вертикальное выравнивание скобок в заданном столбце.

Задавая формат для вывода чисел, целых и с плавающей точкой, можно добавить некоторые украшения, т.е. "(%d)" или "$ %.2f".

Пример 1:

pretty_print(1, "ABC", {})

{65'A',66'B',67'C'}

Пример 2:

pretty_print(1, {{1,2,3}, {4,5,6}}, {})

{

{1,2,3},

{4,5,6}

}

Пример 3:

pretty_print(1, {"Euphoria", "Programming", "Language"}, {2})

{

"Euphoria",

"Programming",

"Language"

}

Пример 4:

puts(1, "word_list = ") -- курсор остановится в колонке 13

pretty_print(1,

{{"Euphoria", 8, 5.3},

{"Programming", 11, -2.9},

{"Language", 8, 9.8}},

{2, 4, 13, 78, "%03d", "%.3f"}) -- первые 6 из 8 подрежимов

word_list = {

{

"Euphoria",

008,

5.300

},

{

"Programming",

011,

-2.900

},

{

"Language",

008,

9.800

}

}

См. также:

?, print, puts, printf

print

Синтаксис:

print(fn, x)

Описание:

Выводит в файл или на устройство fn объект x со скобками { , , , }, чтобы показать (сохранить) его структуру.

Пример 1:

print(1, "ABC") -- выводится: {65, 66, 67}

puts(1, "ABC") -- выводится: ABC

Пример 2:

print(1, repeat({10,20}, 3))

-- выводится: {{10,20},{10,20},{10,20}}

См. также:

?, pretty_print, puts, printf, get

printf

Синтаксис:

printf(fn, st, x)

Описание:

Выводит x в файл или на устройство fn, используя строку формата st. Если x является рядом, то очередные элементы формата из st применяются к соответствующим элементам ряда x. Если x является атомом, тогда обычно st будет содержать единственный элемент формата, который будет применён к x, однако, если элементов формата несколько, каждый элемент формата будет применён к единственной величине x. Таким образом, printf() всегда ожидает точно 3 аргумента. Только длина последнего аргумента, содержащего выводимые величины, будет изменяться. Изменения могут происходить и в строке формата. Основные форматы:

%d - печатать атом как десятичное целое

%x - печатать атом как шестнадцатеричное целое. Отрицательные числа печатаются как двоичное дополнение, т.е. -1 будет выведено как FFFFFFFF

%o - печатать атом как восьмеричное целое

%s - печатать ряд как строку символов, или печатать атом как отдельный символ

%e - печатать атом как число с плавающей точкой в экспоненциальной форме

%f - печатать атом как число с плавающей точкой в форме с десятичной точкой, а не в экспоненциальной

%g - печатать атом как число с плавающей точкой в наиболее подходящем формате, исходя из величины числа

%% - печатать собственно символ '%'

К основным форматам может быть добавлена ширина полей, т.е. %5d, %8.2f, %10.4s. Число перед десятичной точкой даёт минимальную ширину поля. Число после десятичной точки даёт число точных знаков.

Если ширина поля отрицательная, т.е. %-5d, тогда величина будет выравниваться по левой границе поля внутри поля. Обычно выравнивание производится по правой границе поля. Если ширина поля начинается с нуля, т.е. %08d, поле будет спереди заполняться до заданной ширины нулями. Если ширина поля предваряется знаком '+', т.е. %+7d, тогда положительные величины будут начинаться со знака '+'.

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

Обратите внимание на следующую общую ошибку:

name="John Smith"

printf(1, "%s", name) -- ошибка!

В этом случае будет напечатан только первый символ имени, J, так как каждый из символов имени форматируется как отдельная величина. Чтобы вывести всё имя, вы должны вместо предыдущей дать команду:

name="John Smith"

printf(1, "%s", {name}) -- правильно

Теперь третий аргумент, поданный в printf(), является одноэлементным рядом, содержащим всё то, что должно быть отформатировано.

1 ... 29 30 31 32 33 ... 39 ВПЕРЕД
Перейти на страницу:

Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение W Cat - Язык программирования Euphoria. Справочное руководство, относящееся к жанру Программирование. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.

Комментарии (0)