Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования Euphoria. Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΎΠ΅ руководство». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 32

Автор W Cat

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1:


rate = 7.875

printf(myfile, "The interest rate is: %8.2f\n", rate)


The interest rate is: 7.88


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2:


name="John Smith"

score=97

printf(1, "%15s, %5d\n", {name, score})


John Smith, 97


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3:


printf(1, "%-10.4s $ %s", {"ABCDEFGHIJKLMNOP", "XXX"})


ABCD $ XXX


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 4:


printf(1, "%d %e %f %g", 7.75) -- ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ…


7 7.750000e+000 7.750000 7.75


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

sprintf, puts, open


profile


Бинтаксис:

profile(i)

ОписаниС:

Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΠ»ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ профилирования Π²ΠΎ врСмя исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Команда дСйствуСт Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΎΠ±ΠΎΠΈΡ… ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ, профиля ΠΊΠΎΠΌΠ°Π½Π΄ (ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) ΠΈ профиля Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Если i Ρ€Π°Π²Π½ΠΎ 1, ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, гСнСрируСтся ΠΎΡ‚Ρ‡Ρ‘Ρ‚. Если i Ρ€Π°Π²Π½ΠΎ 0, ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, ΠΎΡ‚Ρ‡Ρ‘Ρ‚ Π½Π΅ создаётся.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

По ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ "with profile" ("с ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ") ΠΈΠ»ΠΈ "with profile_time" ("с ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ") ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ автоматичСски. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ profile(0), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π·Π°Ρ‚Π΅ΠΌ profile(1) для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ профилирования ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Ρ‚ΠΎΠΌ мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, начиная с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1:


with profile_time

profile(0)

...

procedure slow_routine()

profile(1)

...

profile(0)

end procedure


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

trace, profiling, special top-level statements


prompt_number


Бинтаксис:

include get.e

a = prompt_number(st, s)

ОписаниС:

ΠŸΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ввСсти число с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. st являСтся тСкстовой строкой с ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, которая отобраТаСтся Π½Π° экранС. s являСтся рядом, состоящим ΠΈΠ· Π΄Π²ΡƒΡ… Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ {мСньшая, большая}, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΏΡ€Π°Π²Π΅ ввСсти. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ ΠΈΠ· этого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ повторяСтся. s ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустым рядом, {}, Ссли ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π΅Ρ‚.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

Если данная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° слишком проста ΠΈ Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ вашим потрСбностям, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ· Π½Π΅Ρ‘ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π±ΠΎΠ»Π΅Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1:


age = prompt_number("Бколько Π²Π°ΠΌ Π»Π΅Ρ‚? ", {0, 150})


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2:


t = prompt_number("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΏΠΎ ЦСльсию:\n", {})


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

get, prompt_string


prompt_string


Бинтаксис:

include get.e

s = prompt_string(st)

ОписаниС:

ΠŸΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ввСсти строку тСкста. st Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя тСкст ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Π½Π° экранС. Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Π²Ρ‘Π» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, размСщаСтся Π² рядС s Π·Π° Π²Ρ‹Ρ‡Π΅Ρ‚ΠΎΠΌ Π»ΡŽΠ±Ρ‹Ρ… слуТСбных символов ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Π΅Π΄Π΅Ρ‚ control-Z (ΠΌΠ΅Ρ‚ΠΊΠ° ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π°), s ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "" - пустого ряда.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


name = prompt_string("Как вас Π·ΠΎΠ²ΡƒΡ‚? ")


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

gets, prompt_number


put_screen_char


Бинтаксис:

include image.e

put_screen_char(i1, i2, s)

ОписаниС:

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ноль ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ символов Π½Π° экран вмСстС с ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ. i1 опрСдСляСт строку, Π° i2 - ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ, Π³Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π²Π΅Π΄Π΅Π½ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· символов. Ряд s выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: {ascii-ΠΊΠΎΠ΄1, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚1, ascii-ΠΊΠΎΠ΄2, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚2, ...}. КаТдая ΠΏΠ°Ρ€Π° элСмСнтов ряда описываСт ΠΎΠ΄ΠΈΠ½ символ. Атом ascii-ΠΊΠΎΠ΄ содСрТит ΠΊΠΎΠ΄ ASCII символа. Атом Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ†Π²Π΅Ρ‚Π΅ символа, Ρ†Π²Π΅Ρ‚Π΅ Ρ„ΠΎΠ½Π° ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎ-зависимыС Π΄Π°Π½Π½Ρ‹Π΅, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ внСшним Π²ΠΈΠ΄ΠΎΠΌ символа Π½Π° экранС.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

Π”Π»ΠΈΠ½Π° s Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚Π½Π° 2. Если s ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ 0, Π½Π° экран Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ. Π‘ΠΎΠ»Π΅Π΅ быстро выводятся нСсколько символов Π² ΠΎΠ΄Π½ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ put_screen_char(), Ρ‡Π΅ΠΌ ΠΏΠΎΠΎΡ‡Π΅Ρ€Ρ‘Π΄Π½ΠΎ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π½Π° Π²Ρ‹Π·ΠΎΠ².

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


-- записываСт AZ Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ ΡƒΠ³ΠΎΠ» экрана

-- (Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ зависят ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹)

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.ex

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

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})