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

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

Автор W Cat

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

Π’Π²ΠΎΠ΄ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ getc() буфСризируСтся, Ρ‚.Π΅. getc() Π½Π΅ обращаСтся ΠΊ диску Π·Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½Ρ‹ΠΌ символом. Напротив, большой Π±Π»ΠΎΠΊ символов сразу считываСтся Π² Π±ΡƒΡ„Π΅Ρ€, Π½ΠΎ ΠΈΠ· памяти Π±ΡƒΡ„Π΅Ρ€Π° символы Π²Ρ‹Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ.

Когда getc() Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ символы Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΈΠ΄Π½Ρ‹, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π½Π°ΠΆΠΌΡ‘Ρ‚ Enter. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π°Π±Ρ€Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ сочСтаниС control-Z трактуСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΊΠ°ΠΊ "ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°". Π’ этом случаС вмСсто ΠΊΠΎΠ΄Π° символа Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π½Π° -1.

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

gets, get_key, wait_key, open


getenv


Бинтаксис:

x = getenv(s)

ОписаниС:

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния DOS. Если пСрСмСнная с ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π² строковом рядС s, Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°, Π²Ρ‹Π΄Π°Π΅Ρ‚ -1.

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

Π’Π°ΠΊ ΠΊΠ°ΠΊ функция ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ряд, ΠΈΠ»ΠΈ Π°Ρ‚ΠΎΠΌ (-1), пСрСмСнная, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ объявлСна ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

И Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, ΠΈ выдаваСмая Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊ рСгистру Π±ΡƒΠΊΠ². Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это Π½Π° своСй систСмС.

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


e = getenv("EUDIR")

-- e Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ "C:\EUPHORIA" -- ΠΈΠ»ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, D:, E: ΠΈ Ρ‚.Π΄.


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

command_line


gets


Бинтаксис:

x = gets(fn)

ОписаниС:

Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ряд символов ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ с устройства fn (ΠΎΠ΄Π½Ρƒ строку, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ '\n'). ΠšΠΎΠ΄Ρ‹ символов Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΎΡ‚ 0 Π΄ΠΎ 255. ΠŸΡ€ΠΈ достиТСнии ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π° выдаётся Π°Ρ‚ΠΎΠΌ -1.

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

Π’Π°ΠΊ ΠΊΠ°ΠΊ функция Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΈΠ»ΠΈ ряд, ΠΈΠ»ΠΈ Π°Ρ‚ΠΎΠΌ (-1), Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ПослС чтСния строки тСкста с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π²Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ вывСсти символ окончания строки, '\n', Ρ‚.Π΅. ΠΏΠΎΠ΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ puts(1, '\n'), ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π˜Π½Π°Ρ‡Π΅ ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ Π½Π΅ начнётся ΠΎΡ‚ Π»Π΅Π²ΠΎΠ³ΠΎ края экрана, Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒΡΡ вслСд Π·Π° Ρ‚ΠΎΠΉ строкой, которая Π±Ρ‹Π»Π° Π²Π²Π΅Π΄Π΅Π½Π° с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. Волько ΠΏΡ€ΠΈ достиТСнии ΠΊΠΎΠ½Ρ†Π° послСднСй строки экрана опСрационная систСма автоматичСски ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Ρ‘Ρ‚ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΡƒ экрана ΠΈ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Ρ‚ курсор Π² Π½Π°Ρ‡Π°Π»ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки.

ПослСдняя строка Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ символа ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки '\n' Π² ΠΊΠΎΠ½Ρ†Π΅.

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Π½Π°Π±Ρ€Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ сочСтаниС control-Z трактуСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΊΠ°ΠΊ "ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°". Π’ этом случаС вмСсто ΠΊΠΎΠ΄Π° символа Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π½Π° -1.

Π’ Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… SVGA DOS ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅Π²Π΅Ρ€Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ курсора послС Π²Ρ‹Π·ΠΎΠ²Π° gets(0) для чтСния с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π²Π°ΠΌ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ сами, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ position().

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


sequence buffer

object line

integer fn


-- Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ тСкстовый Ρ„Π°ΠΉΠ» Π² ряд

fn = open("myfile.txt", "r")

if fn = -1 then

puts(1, "НС ΠΌΠΎΠ³Ρƒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ myfile.txt\n")

abort(1)

end if


buffer = {}

while 1 do

line = gets(fn)

if atom(line) then

exit -- -1 Π²Ρ‹Π΄Π°Π½Π° Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ„Π°ΠΉΠ»Π°

end if

buffer = append(buffer, line)

end while


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


object line


puts(1, "Как вас Π·ΠΎΠ²ΡƒΡ‚?\n")

line = gets(0) -- Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ стандартный Π²Ρ…ΠΎΠ΄ (ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ)

line = line[1..length(line)-1] -- удаляСт символ \n Π² ΠΊΠΎΠ½Ρ†Π΅

puts(1, '\n') -- Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ

puts(1, line & " - Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ имя.\n")


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

getc, puts, open


graphics_mode


ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°:

DOS32

Бинтаксис:

include graphics.e

i1 = graphics_mode(i2)

ОписаниС:

Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌ i2. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» graphics.e, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ имССтся список доступных ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Euphoria ΠΏΠΈΠΊΡΠ΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈ тСкстовых Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΠΎΠ². Если Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, i1 устанавливаСтся Π² 0, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС i1 устанавливаСтся Π² 1.

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

НСкоторыС Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ тСкстовыми, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Π½ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкст ΠΈ псСвдографика. Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΈΠΊΡΠ΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² Π½ΠΈΡ… Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ пиксСлы (элСмСнты Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ экрана), Π²Ρ‹Ρ‡Π΅Ρ€Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ, эллипсы ΠΈ Ρ‚.Π΄. ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ тСкст.

Для Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ возвращСния Π² срСду ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ цСлСсообразно ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΈΠ· пиксСльного Ρ€Π΅ΠΆΠΈΠΌΠ° Π² стандартный исходный тСкстовый Ρ€Π΅ΠΆΠΈΠΌ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π²Ρ‹Π·Π²Π°Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ graphics_mode(-1). Если графичСская ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ваш экран Π² ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ бСспорядочноС состояниС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ DOS CLS, Π° Ρ‚Π°ΠΊΠΆΠ΅ запустив ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ex.exe ΠΈΠ»ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ed.

НСкоторыС Π²ΠΈΠ΄Π΅ΠΎΠΏΠ»Π°Ρ‚Ρ‹ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π² состоянии ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… SVGA, хотя ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ этого Ρ€Π΅ΠΆΠΈΠΌΠ° Π²Ρ‹ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ i1, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌΡƒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ. Π”Π°Π½Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ Π±Π΅Π· тСстирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ стандартизация Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² SVGA ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π½ΠΎΠ²Π΅ΠΉΡˆΠΈΡ… Π²ΠΈΠ΄Π΅ΠΎΠΏΠ»Π°Ρ‚ Π΄Π°Π»Π΅ΠΊΠ° ΠΎΡ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ.

На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… WIN32 ΠΈ Linux/FreeBSD Euphoria исполняСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ graphics_mode(), для любого i2 выводя ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ консоль, Ссли этой консоли Π΅Ρ‰Ρ‘ Π½Π΅Ρ‚. Ѐункция всСгда Π²Ρ‹Π΄Π°Ρ‘Ρ‚ 0, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния, ΠΊΠ°ΠΊΠΎΠ΅ i2 Π² Π½Π΅Ρ‘ ΠΏΠΎΠ΄Π°Π½ΠΎ.

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


if graphics_mode(18) then

puts(SCREEN, "трСбуСтся Π³Ρ€Π°Ρ„ΠΈΠΊΠ° VGA!\n")

abort(1)

end if

draw_line(BLUE, {{0,0}, {50,50}})


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

text_rows, video_config


...

ΠΎΡ‚ H Π΄ΠΎ O


instance


ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°:

WIN32

Бинтаксис:

include misc.e

i = instance()

ОписаниС:

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

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

Π­Ρ‚ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ прСдставляСт собой число, Π²Ρ‹Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄Π°Π½ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Windows, Π²Ρ‹Π΄Π°ΡŽΡ‰ΠΈΠ΅ свСдСния ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ исполняСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Ρ‚.Π΅. ΠΎ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ запускаСт Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ экзСмпляра (ΠΎΠ±Ρ€Π°Π·Ρ†Π°) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ языкС Π‘ΠΈ это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ WinMain().

На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… DOS32 ΠΈ Linux/FreeBSD instance() всСгда Π²Ρ‹Π΄Π°Ρ‘Ρ‚ 0.

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

platform.doc


int_to_bits


Бинтаксис:

include machine.e

s = int_to_bits(a, i)

ОписаниС:

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ i ΠΌΠ»Π°Π΄ΡˆΠΈΡ… Π±ΠΈΡ‚ΠΎΠ² Π°Ρ‚ΠΎΠΌΠ° a ΠΊΠ°ΠΊ ряд Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΈ Π½ΡƒΠ»Π΅ΠΉ. Π’ этом рядС младшиС Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ ΠΈΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ. Для ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл выдаётся Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

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

, , and/or/xor/not

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСксированиС, сСчСниС, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ and/or/xor/not для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ряда, Ρ‚.Π΅. ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ рядами Π±ΠΈΡ‚ΠΎΠ² ΠΏΠΎ своСму ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ. ΠŸΡ€ΠΈ нСобходмости ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ осущСствлСны ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΈ цикличСскиС сдвиги Π±ΠΈΡ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ прСобразования.

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


s = int_to_bits(177, 8)

-- s Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ {1,0,0,0,1,1,0,1} -- "ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ" порядок


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

bits_to_int, and_bits, or_bits, xor_bits, not_bits, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° рядах


int_to_bytes


Бинтаксис:

include machine.e

s = int_to_bytes(a)

ОписаниС:

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ Π² ряд, состоящий ΠΈΠ· 4 Π±Π°ΠΉΡ‚ΠΎΠ². Π­Ρ‚ΠΈ Π±Π°ΠΉΡ‚Ρ‹ ΠΈΠ΄ΡƒΡ‚ Π² порядкС, прСдусмотрСнном Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… 386+, Ρ‚.Π΅. младший Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΠΉ Π±Π°ΠΉΡ‚ ΠΈΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ.

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

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ этой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄ засылкой 4 Π±Π°ΠΉΡ‚ΠΎΠ² Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π½Π° машинном языкС.

Π¦Π΅Π»ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. ΠŸΡ€ΠΈ этом Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π΄Π°Π½Ρ‹ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния для Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ Π±Π°ΠΉΡ‚ΠΎΠ², Π½ΠΎ послС засылки ΠΈΡ… Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ прСдставлСниС (Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅), принятоС Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… 386+.

Π­Ρ‚Π° функция Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ цСлочислСнныС Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ 32-Π±ΠΈΡ‚Π½Ρ‹Π΅ ΠΈ ΠΌΠ΅Π½Π΅Π΅. Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ младшиС 32 Π±ΠΈΡ‚Π°. Π’ΠΈΠΏ Ρ†Π΅Π»Ρ‹Ρ… Π² Euphoria ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 31 Π±ΠΈΡ‚Π°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΠΉΡ‚Π΅ ваши ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ Π°Ρ‚ΠΎΠΌ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½.

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


s = int_to_bytes(999)

-- s Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ {231, 3, 0, 0}


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


s = int_to_bytes(-999)

-- s Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ {-231, -4, -1, -1}


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

bytes_to_int, int_to_bits, bits_to_int, peek, poke, poke4


integer


Бинтаксис:

i = integer(x)

ОписаниС:

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ 1, Ссли x являСтся Ρ†Π΅Π»Ρ‹ΠΌ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΡ‚ -1073741824 Π΄ΠΎ +1073741823. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²Ρ‹Π΄Π°Ρ‘Ρ‚ 0.

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

Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° слуТит для объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° integer. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΈ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ, Π½Π΅ Ρ†Π΅Π»ΠΎΠ΅ Π»ΠΈ это число.

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


integer z

z = -1


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


if integer(y/x) then

puts(SCREEN, "y ΠΊΡ€Π°Ρ‚Π½ΠΎ x")

end if


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

atom, sequence, floor


length


Бинтаксис:

i = length(s)

ОписаниС:

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ Π΄Π»ΠΈΠ½Ρƒ ряда s. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ s Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΈΠΏΠ° ряд. Π’ случаС, Ссли s являСтся Π°Ρ‚ΠΎΠΌΠΎΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ исполнСния с остановкой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ сообщСния.

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

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ряда сохраняСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ для осущСствлСния быстрого доступа.

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


length({{1,2}, {3,4}, {5,6}}) -- 3