Учебник по autoit 2. Версия 7

Я написал так или иначе два авторских листа ущербного учебника.Почему я считаю,что составленный учебник ущербный?Всё основано на том,что я давно принижению себя и нужно изжить этот момент,но я пока не знаю как.Теперь же я хочу продолжить ущербный учебник - сделать вторую часть.Смогу ли я написать еще один авторский лист и появятся ли новые технические идеи,которые можно реализовать на autoit.
Autoit - хороший язык программирования,но единственный его минус в том,как говорил в первой части учебника,что он имеет интерпретатор,который работает только в windows.
Интересно,может ли autoit выполняться  в линукс под вайном - wine?

В первой части учебника я не использовал тайм-аут функции Msgbox.
Данная autoit-программа простая,но она в наглядной форме показывает использование тайм-аута и приращение целочисленной переменной.
#include <MsgBoxConstants.au3>
Local $counter = 0
While 1
MsgBox($MB_SYSTEMMODAL, "Отображение счётчика", $counter,1)
$counter = $counter + 1
if $counter > 10 then Exit
WEnd

Раньше я считал,что объёмные тексты говорят об уме,но сейчас я склоняюсь к мысли,что объём неважен,а необходимо качество.
Чтобы твой читатель действительно чему-либо у тебя научился - нужно писать не количественно,а качественно.
Любая интересная подача материала  должна быть логически-обоснованной и строится от легкого уровня к сложному уровню.Но это к идеале!

В языках программирования существует такое понятие,как область видимости переменной.В autoit явно определять области видимости можно с помощью оператором Local и Global.


#include <MsgBoxConstants.au3>
Local $number_1 = 1
Global $number_2 = 2

MsgBox($MB_SYSTEMMODAL, "$number_1", $number_1)
MsgBox($MB_SYSTEMMODAL, "$number_2", $number_2)

В данном случае операторы Local и Global действуют идентично и ничем в общем сильно не отличаются.

Я привёл некоторый тест областей видимостей.

Файл TestScript.au3
#include <MsgBoxConstants.au3>
#include "GlobalFile.au3"
Local $number_1 = 3

MsgBox($MB_SYSTEMMODAL, "$number_1", $number_1)
MsgBox($MB_SYSTEMMODAL, "$number_2", $number_2)


Файл  GlobalFile.au3
Local $number_1 = 1
Global $number_2 = 2

Переменная $number_1 из файла TestScript.au3 перекрывает переменную $number_1 из файла  GlobalFile.au3.Присвоение переменной $number_1 значения из файла TestScript.au3 берёт верх над присвоением в файле GlobalFile.au3.Этот пример описывает один из механизмов области видимости.На самом деле писать большие программы используют в своей работе области видимости,так как это очень удобно для реализации алгоритмов.

Файл TestScript.au3
Global $number = 1
#include <MsgBoxConstants.au3>
#include "LocalFile.au3"
MsgBox($MB_SYSTEMMODAL, "$number", $number)


Файл  LocalFile.au3
Local $number = 2
MsgBox($MB_SYSTEMMODAL, "$number", $number)

Переменная $number из файла TestScript.au3 переопределяется переменной из файла  LocalFile.au3.Поэтому я пока не вижу разницы работы операторов Local и Global.Локальная переменная одного файла не должна перекрывать глобальную переменную из главного файла.Но из теста понятно,что это не относится к интерпретатору autoit.

Иными словами,переопределение зависит от того,в каком месте находится оператор Local c переменной.Только второе присвоение и будет определять значение.

Эти два последних примера хоть и являются почти одинаковыми,но помогли мне сделать вывод о том,как работают операторы Local и Global.Возможно я что-то упустил или не так понял,но эти два оператора имеют одинаковую фунциональность.

При создании программ конечно необходимо использовать переменные и смотреть за тем,какие они принимают значения по ходу выполнения того или иного алгоритма.

Операторы сравнения - больше,меньше,равно,больше или равно,меньше или равно,не равно являются одними из главных конструкций языков программирования.Можно сказать,что эти понятия изучаются в начальной школе и являются интуитивно понятными,поэтому особых сложностей в использовании операторов сравнения возникнуть не должно.


Рецензии