Читаем Язык программирования Euphoria. Справочное руководство полностью

Если бы укороченная проверка была применена здесь, мы бы получили x равным 1, а интерпретатор даже не взглянул бы на {1,2,3,4,5}. Это было бы неправильным решением. Укороченная проверка может использоваться в командах if/elsif/while, поскольку там нас заботит лишь общий результат в виде да/нет, а этим командам только и нужен именно атом, как результат вычисления выражения для проверяемого условия.

<p>2.5.5 команда for (для, от)</p>

С помощью команды for устанавливается специальный цикл вычислений с управляющей переменной цикла, которая пробегает ряд значений, начиная от первой заданной величины, вверх или вниз до некоторой последней величины, то есть,

for i = 1 to 10 do

? i -- ? - это короткая форма для print()

end for

-- дробные числа также разрешены

for i = 10.0 to 20.5 by 0.3 do

for j = 20 to 10 by -2 do -- счёт вниз

? {i, j}

end for

end for

Переменная цикла объявляется автоматически и существует до конца циклических вычислений, предусмотренных данным циклом. Вне тела команды цикла переменная цикла не имеет величины и даже не может считаться объявленной. Если вам необходима её последняя величина, присвойте её величину некоторой заранее объявленной обычной переменной перед выходом из цикла. Компилятор не позволяет никаких присваиваний переменной цикла. Начальная величина, конечная величина и величина шага все должны быть атомами. Если величина шага не указана, считается, что шаг равен +1. Конечная величина и величина шага устанавливаются при входе в цикл и во время цикла никак не могут быть изменены. См. также о сцене переменной цикла в разделе 2.4.2 Сцена (область видимости).

<p>2.5.6 команда return (выдать, вернуться)</p>

Команда return приводит к немедленному выходу из подпрограммы. Если подпрограмма является функцией или типом, в команде должна быть предусмотрена выдаваемая такой подпрограммой величина. То есть,

return

return {50, "FRED", {}}

<p>2.5.7 команда exit (выйти)</p>

Команда exit может использоваться в цикле while или в цикле for. Она вызывает немедленное прерывание цикла с передачей управления первой команде, следующей после тела цикла. То есть,

for i = 1 to 100 do

if a[i] = x then

location = i

exit

end if

end for

Очень часто также можно видеть следующий вариант использования этой команды:

constant TRUE = 1

while TRUE do

...

if some_condition then

exit

end if

...

end while

То есть, это "бесконечный" цикл while, который прерывается командой exit в некоторой характерной точке в теле цикла.

Примечания о производительности: В Euphoria этот бесконечный тип цикла оптимизирован. Во время прогона программы никакие повторные проверки истинности выражения в команде while уже не выполняются, а совершается простой безусловный переход от end while обратно к первой команде внутри тела цикла. Если вам случится попасть в настоящий бесконечный цикл с интерпретатором ex.exe, когда не выполняются операции ввода/вывода, знайте, что простого пути остановить этот цикл не существует. Вы должны будете одновременно нажать клавиши Control-Alt-Delete, чтобы перезагрузиться под DOS, или прервать свой сеанс DOS под Windows. Если программа имела файлы, открытые на запись, будет полезно после перезагрузки запустить scandisk, чтобы проверить исправность своей файловой системы. Только если ваша программа ожидает ввода с клавиатуры, комбинация Control-c может прервать её исполнение (если вами не была выдана команда allow_break(0)).

С интерпретаторами exw.exe или exu комбинация control-c всегда работает и немедленно прервёт вашу программу, если у вас есть в этом необходимость.

<p>2.6 Специальные команды высшего уровня</p>

Перед тем, как исполнять любую из ваших команд, интерфейсный блок интерпретатора Euphoria быстро читает всю вашу программу полностью от начала и до конца. Все ваши команды проверяются синтаксически и преобразуются в низкоуровневый код на промежуточном языке (IL). Затем исполнительный блок интерпретатора немедленно приступает к исполнению кода IL, размещённого в оперативной памяти. Биндер/шроудер записывает код IL в файл .il на диск для последующих немедленных исполнений с отдельным исполнительным блоком. Транслятор преобразует код IL в код C и записывает программу C на диск. Во всех этих трёх методах преобразования текста исходного кода Euphoria используется один и тот же интерфейсный блок (написанный на Euphoria).

Перейти на страницу:

Все книги серии Euphoria

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

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 имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.[Материал из Википедии]

Коллектив авторов

Программирование, программы, базы данных

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных