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

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

Автор W Cat

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡƒΡŽ вашим ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ пСрСнСсСн Π½Π° диск ΠΏΡ€ΠΈ использовании Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ памяти. Π‘ΠΌ. lock_memory().

ΠΠ°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ„Π°ΠΉΠ»Π° demo\dos32\hardint.ex, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ собствСнный ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ прСрывания.

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° машинном ΡƒΡ€ΠΎΠ²Π½Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ свои собствСнныС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ set_vector() с дальним адрСсом, Π²Ρ‹Π΄Π°Π½Π½Ρ‹ΠΌ get_vector(), Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ исходный ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ.

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


set_vector(#1C, {code_segment, my_handler_address})


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

demo\dos32\hardint.ex

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

get_vector, lock_memory, allocate


sin


Бинтаксис:

x2 = sin(x1)

ОписаниС:

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ синус x1, Π³Π΄Π΅ x1 Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΎ Π² Ρ€Π°Π΄ΠΈΠ°Π½Π°Ρ….

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

Данная функция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π° ΠΊ Π°Ρ‚ΠΎΠΌΡƒ ΠΈΠ»ΠΈ ΠΊΠΎ всСм элСмСнтам ряда.

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


sin_x = sin({.5, .9, .11})

-- sin_x Ρ€Π°Π²Π΅Π½ {.479, .783, .110}


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

cos, tan


sleep


Бинтаксис:

include misc.e

sleep(i)

ОписаниС:

ΠŸΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ исполнСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° i сСкунд.

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

Под WIN32 ΠΈ Linux/FreeBSD опСрационная систСма Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ. Под DOS32 ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒ занятый Ρ†ΠΈΠΊΠ» Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ i сСкунд, Π²ΠΎ врСмя ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Π½ΠΎ Π½Π° ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠΉ основС Π·Π° ΠΎΠ±Π»Π°Π΄Π°Π½ΠΈΠ΅ процСссором.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ многозадачности приостанавливаСтся вся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкущая Π·Π°Π΄Π°Ρ‡Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ task_schedule(task_self(), {i, i}), Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ task_yield().

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


puts(1, "ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π½Π° 15 сСкунд ...\n")

sleep(15)

puts(1, "ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π°.\n")


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

lock_file, abort, time


sort


Бинтаксис:

include sort.e

s2 = sort(s1)

ОписаниС:

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ряд s1 Π² порядкС возрастания, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ быстрый Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортировки. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ s1 ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ любой смСсью Π°Ρ‚ΠΎΠΌΠΎΠ² ΠΈΠ»ΠΈ рядов. Атомы ΠΈΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄ рядами, Π° ряды ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² "Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ" порядкС, Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ сначала сортировка выполняСтся ΠΏΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ элСмСнтам (полям), Π·Π°Ρ‚Π΅ΠΌ, Ссли ΠΏΠ΅Ρ€Π²Ρ‹Π΅ эквивалСнтны, ΠΏΠΎ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΈ Ρ‚.Π΄. Π’Ρ‹Π΄Π°Ρ‘Ρ‚ отсортированный ряд.

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


x = 0 & sort({7,5,3,8}) & 0

-- x становится Ρ€Π°Π²Π½Ρ‹ΠΌ {0, 3, 5, 7, 8, 0}


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


y = sort({"Smith", "Jones", "Doe", 5.5, 4, 6})

-- y Ρ€Π°Π²Π½ΠΎ {4, 5.5, 6, "Doe", "Jones", "Smith"}


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


database = sort({{"Smith", 95.0, 29},

{"Jones", 77.2, 31},

{"Clinton", 88.7, 44}})


-- 3 "записи" Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄ΡƒΡ‚ отсортированы ΠΏΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ "полю",

-- Ρ‚.Π΅. ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. Π’Π°ΠΌ, Π³Π΄Π΅ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ поля (элСмСнты) эквивалСнтны,

-- сортировка Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ полю ΠΈ Ρ‚.Π΄.

-- послС сортировки Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π²ΠΈΠ΄:

{{"Clinton", 88.7, 44},

{"Jones", 77.2, 31},

{"Smith", 95.0, 29}}


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

custom_sort, compare, match, find


sound


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

DOS32

Бинтаксис:

include graphics.e

sound(i)

ОписаниС:

Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ систСмный Π³Ρ€ΠΎΠΌΠΊΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒ (Π·Π²ΡƒΠΊΠΎΠΈΠ·Π»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ) PC Π½Π° частотС i Π“Ρ†. Если ΠΏΠΎΠ΄Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ i, Ρ€Π°Π²Π½Ρ‹ΠΉ 0, Π³Ρ€ΠΎΠΌΠΊΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½.

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

Под WIN32 ΠΈ Linux/FreeBSD Π·Π²ΡƒΠΊΠΈ этой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ.

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


sound(1000) -- Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΉ высокий Ρ‚ΠΎΠ½ частотой 1000 Π“Ρ†


sprint


Бинтаксис:

include misc.e

s = sprint(x)

ОписаниС:

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ прСдставлСниС x ΠΊΠ°ΠΊ символьной строки. Π­Ρ‚ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ print(fn, x), Π½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ производится Π½Π΅ Π² Ρ„Π°ΠΉΠ» ΠΈ Π½Π΅ Π½Π° устройство (экран), Π° Π² ряд. x ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Euphoria. The representation of x as a string of characters is returned. This is exactly the same as print(fn, x), except that the output is returned as a sequence of characters, rather than being sent to a file or device. x can be any Euphoria object.

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

Атомы, содСрТащиСся Π² x, Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ максимум с 10 Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΠΌΠΈ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ print().

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


s = sprint(12345)

-- s Ρ€Π°Π²Π½ΠΎ "12345"


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


s = sprint({10,20,30}+5)

-- s Ρ€Π°Π²Π½ΠΎ "{15,25,35}"


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

print, sprintf, value, get


sprintf


Бинтаксис:

s = sprintf(st, x)

ОписаниС:

Π­Ρ‚Π° функция Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ printf(), Π½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ производится Π½Π΅ Π² Ρ„Π°ΠΉΠ» ΠΈ Π½Π΅ Π½Π° устройство (экран), Π° Π² ряд. Ряд st являСтся строкой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, x - Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° ΠΈΠ»ΠΈ ряд, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. printf(fn, st, x) являСтся эквивалСнтом для puts(fn, sprintf(st, x)).

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

НСкоторыС Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ примСнСния sprintf():

1. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ чисСл Π² строки.

2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ строк для ΠΏΠΎΠ΄Π°Ρ‡ΠΈ Π² system().

3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄Π°Π½Ρ‹ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΎΠ±Ρ‰ΠΈΡ… сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….

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


s = sprintf("%08d", 12345)

-- s Ρ€Π°Π²Π½ΠΎ "00012345"


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

printf, value, sprint, get, system


sqrt


Бинтаксис:

x2 = sqrt(x1)

ОписаниС:

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ x1.

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

Данная функция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π° ΠΊ Π°Ρ‚ΠΎΠΌΡƒ ΠΈΠ»ΠΈ ΠΊΠΎ всСм элСмСнтам ряда.

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΈΠ· ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ числа Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с сообщСниСм ΠΎΠ± ошибкС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ исполнСния.

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


r = sqrt(16)

-- r Ρ€Π°Π²Π½ΠΎ 4


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

log, power


system


Бинтаксис:

system(st, i)

ОписаниС:

ΠŸΠΎΠ΄Π°Ρ‘Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку st Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы для Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ исполнСния. АргумСнт i Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для указания способа возвращСния ΠΈΠ· Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ system():

Когда i Ρ€Π°Π²Π½ΠΎ 0, ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ графичСский Ρ€Π΅ΠΆΠΈΠΌ восстанавливаСтся ΠΈ экран очищаСтся.

Когда i Ρ€Π°Π²Π½ΠΎ 1, выдаётся Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ сигнал ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΆΠ΄Π΅Ρ‚ наТатия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΡƒ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ графичСский Ρ€Π΅ΠΆΠΈΠΌ.

Когда i Ρ€Π°Π²Π½ΠΎ 2, графичСский Ρ€Π΅ΠΆΠΈΠΌ Π½Π΅ восстанавливаСтся ΠΈ экран Π½Π΅ очищаСтся.

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

i = 2 Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° извСстно, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°, выполняСмая system(), Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ графичСский Ρ€Π΅ΠΆΠΈΠΌ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Euphoria ΠΊΠ°ΠΊ ΠΌΠΎΡ‰Π½Π΅ΠΉΡˆΠΈΠΉ "ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ" (.bat) язык, задавая Π½ΡƒΠΆΠ½Ρ‹Π΅ Π²Π°ΠΌ Π²Ρ‹Π·ΠΎΠ²Ρ‹ system() ΠΈ system_exec().

system() запускаСт Π½ΠΎΠ²ΡƒΡŽ копию ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄ DOS ΠΈΠ»ΠΈ Linux/FreeBSD.

system() позволяСт Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ стандартных Π²Ρ…ΠΎΠ΄Π° ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π°, задавая Π΅Π³ΠΎ Π² строкС st.

Под DOS32 ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Euphoria стартуСт Π±Π΅Π· использования Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ памяти, Π½ΠΎ послС старта Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π΅Ρ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Если для исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ памяти пСрСстанСт Ρ…Π²Π°Ρ‚Π°Ρ‚ΡŒ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°Ρ‡Π½Ρ‘Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ остатки стандартной памяти. ΠŸΡ€ΠΈ исчСрпании ΠΈ стандартной памяти начнётся использованиС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ памяти, Ρ‚.Π΅. пСрСсылка ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° диск. Команда DOS, запущСнная Π½Π° исполнСниС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ system(), прСрвётся, Ссли для Π΅Ρ‘ исполнСния окаТСтся нСдостаточно стандартной памяти. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ситуаций, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΡ‘ΠΌ стандартной (Π½ΠΈΠΆΠ½Π΅ΠΉ) памяти, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:


SET CAUSEWAY=LOWMEM:xxx


Π³Π΄Π΅ xxx Π΅ΡΡ‚ΡŒ число K (ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚) стандартной памяти, ΠΎΡ‚Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π² Ρ€Π΅Π·Π΅Ρ€Π² DOS. Π Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π΄ΠΎ запуска вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· вашСго Ρ„Π°ΠΉΠ»Π° autoexec.bat ΠΈΠ»ΠΈ ΠΈΠ· .bat-Ρ„Π°ΠΉΠ»Π°, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π΅Π³ΠΎ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. НапримСр:


SET CAUSEWAY=LOWMEM:80

ex myprog.ex


По Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ 80K стандартной памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… достаточно для исполнСния простых ΠΊΠΎΠΌΠ°Π½Π΄ DOS Π²Ρ€ΠΎΠ΄Π΅ COPY, MOVE, MKDIR ΠΈ Ρ‚.ΠΏ., Ссли Π²Ρ‹ ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΎΠ΄Π°Π΄ΠΈΡ‚Π΅ ΠΈΠ· своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ myprog.ex.

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


system("copy temp.txt a:\\temp.bak", 2)

-- Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ ΠΊΠΎΡΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ Π² вашСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² DOS

-- ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π»Π°ΡΡŒ ΡˆΡ‚Π°Ρ‚Π½Π°Ρ одинарная


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


system("ex \\test\\myprog.ex outdata", 2)

-- исполняСтся myprog, ΠΏΡ€ΠΈ этом Π΅Ρ‘ стандартныС Π²Ρ…ΠΎΠ΄ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄

-- ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹


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

system_exec, dir, current_dir, getenv, command_line


system_exec


Бинтаксис:

i1 = system_exec(st, i2)

ОписаниС:

ΠŸΡ‹Ρ‚Π°Π΅Ρ‚ΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π·Π°Π΄Π°Π½Π½ΡƒΡŽ Π² строкС st. Ряд st Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ запуска исполняСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Π² i1 Π±ΡƒΠ΄Π΅Ρ‚ записан ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ послС Π΅Ρ‘ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ. Если запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½, функция system_exec() Π²Ρ‹Π΄Π°Ρ‘Ρ‚ -1. Π’ i2 Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ ΠΊΠΎΠ΄, Π΄Π°ΡŽΡ‰ΠΈΠΉ способ дСйствий с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ графичСским Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‹Π·Π²Π°Π½Π½ΠΎΠΉ system_exec(). Π­Ρ‚ΠΈ ΠΊΠΎΠ΄Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π΅ ΠΆΠ΅ самыС значСния, Ρ‡Ρ‚ΠΎ ΠΈ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ system():

Когда i2 Ρ€Π°Π²Π½ΠΎ 0, восстанавливаСтся ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ графичСский Ρ€Π΅ΠΆΠΈΠΌ ΠΈ экран очищаСтся.

Когда i2 Ρ€Π°Π²Π½ΠΎ 1, подаётся Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ сигнал, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΆΠ΄Ρ‘Ρ‚ наТатия Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΏΠ΅Ρ€Π΅Π΄ восстановлСниСм ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ графичСского Ρ€Π΅ΠΆΠΈΠΌΠ°.

Когда i2 Ρ€Π°Π²Π½ΠΎ 2, графичСский Ρ€Π΅ΠΆΠΈΠΌ Π½Π΅ восстанавливаСтся ΠΈ экран Π½Π΅ очищаСтся.