Лабораторная работа №1 «Команды Tcl» Общие сведения о Tcl. Команды Tcl
Tcl — это аббревиатура от Tool Command Language. Команды выполняют различные действия, например: вывод строки, вычисление значения арифметического выражения или отображение компонентов (widget) на экране.
В Tcl в виде команд представляются все действия, даже присвоение значений переменным и определение процедур. Для вызова команд в языке Tcl предусмотрены достаточно простые синтаксические конструкции. Все сложные действия выполняет интерпретатор, реализующий команды. Команда Tcl записывается в следующем виде:
команда параметр1 параметр2 параметр3…
Команда может представлять собой либо встроенную команду Tcl, либо процедуру. Имя команды отделяется от параметров с помощью одного или нескольких пробелов или знаков табуляции; те же символы используются для разделения параметров. Символ конца строки или точка с запятой завершают команду. В процессе интерпретации Tcl осуществляет группировку (объединение нескольких слов в один параметр) и подстановку (замену переменных и вызовов вложенных процедур). Действия интерпретатора Tcl по обработке команд можно разделить на три этапа.
- Группировка параметров.
- Подстановка вложенных команд, переменных и символов, которым предшествует обратная косая черта.
- Вызов команды. Интерпретация параметров самой командой.
Основная программа Tcl/Tk называется wish. Её название расшифровывается как windowing shell. Эта программа позволяет создавать графические приложения и запускать их на любой платформе. Имя программы может отличаться в зависимости от конкретной системы. В Windows исполняемый файл этой программы называется wish.exe, в состав имени может так же входить номер версии. Tk добавляет к основному набору команд Tcl команды предназначенные для создания графических пользовательских интерфейсов. При запуске программа wish отображает окно, в котором содержится приглашение для ввода Tcl-команды. В качестве такого приглашения используется символ %. В ответ на приглашение вы можете ввести любую команду. Так же можно создать сценарий Tcl/Tk в виде независимого приложения.
Рассмотрим команду печатающую – « Hello, World!». Пример 1.
Пример 1.
puts stdout {Hello, World!}
=> Hello, World!(символ => не является частью данных возвращаемых командой)
В данном примере команде puts передаются два параметра: идентификатор потока ввода-вывода и строка. Команда puts записывает строку в поток, добавляя символ новой строки. Данный простой пример демонстрирует две следующие особенности Tcl.
- Параметры интерпретируются командой. В данном случае поток ввода/вывода идентифицируется с помощью имени stdout. Данное имя потока используется puts и другими командами ввода-вывода. Имя stderr определяет стандартный поток ошибок, а имя stdin — стандартный поток ввода.
- Фигурные скобки применяются для группировки нескольких слов в один параметр. В результате команда puts воспринимает слова Hello, World! как второй параметр. Скобки не являются частью значения. Фигурные скобки предназначены для предоставления дополнительной информации интерпретатору. Перед тем как значение будет передано команде, скобки удаляются. Посредством скобок группируются все символы, включая переводы строк и вложенные скобки.
Группировка оканчивается при появлении закрывающей фигурной скобки. Для группировки в Tcl также могут использоваться двойные кавычки.
Переменные. Для присвоения значений переменной используется команда set. Этой команде передаются два параметра: имя переменной и значение. Имя переменной может быть любой длины; регистр символов учитывается. В составе имени допустимы любые символы.
При написании Tcl-программ нет необходимости объявлять переменные перед их использованием.
Интерпретатор создает переменную в тот момент, когда ей необходимо впервые присвоить значение. Для того чтобы обратиться к значению переменной, надо указать перед ее именем символ $, как показано в следующем примере:
Пример 2.
set var 5
=> 5
set b $var
=> 5
Вторая команда set, содержащаяся в листинге, присваивает переменной b значение переменной var. В данном примере впервые встречается подстановка. Чтобы лучше понять, как выполняется вторая команда set, ее можно переписать, заменив $var значением переменной var:
set b 5
В действительности подстановка осуществляется несколько другими, более эффективными способами, что очень важно в том случае, когда значением переменной является длинная строка.
Подстановка команд. Помимо подстановки переменных, в Tcl используется подстановка команд. Вложенные команды помещаются в квадратные скобки. Интерпретатор Tcl воспринимает любую последовательность символов, находящуюся между открывающей и закрывающей квадратной скобкой, как команду.
В процессе интерпретации осуществляется замена выражения в квадратных скобках (включая сами скобки) результатом выполнения вложенной команды. Квадратные скобки выполняют те же функции, что и одинарные кавычки в некоторых оболочках, кроме того, такой подход позволяет работать с командами любого уровня вложенности:
Пример 3.
set len [string length foobar]
=> 6
В примере 3 приведенное ниже выражение представляет собой вложенную команду.
string length foobar
Данная команда возвращает длину строки “foobar”. При выполнении выражения в первую очередь выполняется вложенная команда. Затем осуществляется подстановка, в результате чего внешняя команда приобретает следующий вид:
set len 6
Если в составе внешней команды находится несколько вложенных команд, интерпретатор обрабатывает их слева направо. Закрывающая скобка является признаком конца очередной команды. Встретив ее, интерпретатор выполняет команду. Это надо учитывать в тех случаях, когда результат одной команды может влиять на выполнение другой.
Математические выражения. Сам по себе интерпретатор Tcl не вычисляет значения математических выражений. Он лишь выполняет группировку, подстановку и вызов команд.
Для разбора и вычисления значений математических выражений используется команда expr.
Пример 4.
expr 7.2 / 4
=> 1.8
Синтаксис выражений, передаваемых команде expr в качестве параметров, такой же, как и синтаксис выражений в языке C. Команда expr обрабатывает целые числа, числа с плавающей точкой и логические значения. Результатом выполнения логических операций является значение 0 (false) либо 1 (true). По необходимости целые числа преобразуются в значения с плавающей точкой. Восьмеричные числа начинаются с нуля (например, значение 033 равно целомучислу27). Шестнадцатеричные значения начинаются с символов 0x. В Tcl поддерживается представление чисел с плавающей точкой. В математических выражениях могут присутствовать ссылки на переменные и вложенные команды. В примере 5 посредством команды expr выполняется сложение значения переменной x с числом, равным длине строки “foobar”. В результате подстановки команде expr передается 6 + 7 и при выполнении команды set переменной len присваивается значение 13.
Пример 5.
set x 7
set len [expr [string length foobar] + $x]
=> 13
Средства обработки выражений поддерживают ряд встроенных функций, применяемых при проведении математических вычислений. В примере 6 вычисляется число pi.
Пример 6.
set pi [expr 2*asin(1.0)]
=> 3.1415926535897931
При реализации функции expr были приняты меры для обеспечения корректности значений и предотвращения нежелательных преобразований числовых значений в строковые. Разработчики программ, со своей стороны, могут повысить эффективность выполнения операции expr, применяя фигурные скобки для группировки выражений. Это связано с особенностями работы компилятора, преобразующего исходный текст в байтовый код. Пример 7, показывает вариант использования фигурных скобок для повышения быстродействия вычислений. Все выражения, содержащиеся в этом листинге, составлены корректно.
Пример 7.
expr {7.2 / 4}
set len [expr {[string length foobar] + $x}]
set pi [expr {2*asin(1.0)}]
Группировка с помощью фигурных скобок и двойных кавычек. Двойные кавычки и фигурные скобки используются для группировки нескольких слов в один параметр. Различие между ними состоит в том, что кавычки допускают подстановку в группе, а фигурные скобки запрещают ее.
Это правило действует по отношению к командам, переменным и последовательностям, начинающимся с обратной косой черты.
Пример 8.
set s Hello
=> Hello
puts stdout «The length of $s is [string length $s].»
=> The length of Hello is 5.
puts stdout {The length of $s is [string length $s].}
=> The length of $s is [string length $s].
При выполнении второй команды, приведенной в данном примере, интерпретатор Tcl, обрабатывая второй параметр puts, выполняет подстановку как значения переменной, так и команды. В третьей команде подстановка запрещена, поэтому строка выводится в том виде, в котором она указана в записи параметра.
На практике группировка с помощью фигурных скобок в основном выполняется тогда, когда подстановка параметра должна быть отложена на более позднее время либо вовсе не должна выполняться. В качестве примеров можно привести циклы, условные выражения и объявления процедур. Двойные кавычки чаще всего применяются в командах, подобных puts. Кавычки также часто используются в команде format. Эта команда выполняет те же функции, что и функция printf в языке C. Первый параметр команды format определяет формат вывода. В нем часто присутствуют специальные символы, например перевод строки, знаки табуляции и пробелы. Проще всего указать эти символы с помощью последовательностей, начинающихся с обратной косой черты (например, перевод строки можно представить как \n, а знак табуляции — как \t). Перед выполнением команды format последовательности, начинающиеся с обратной косой черты, должны быть преобразованы, поэтому для формирования параметра, определяющего формат, целесообразно использовать двойные кавычки.
Пример 9.
puts [format «Item: %s\ t%5.3f» $name $value]
В данном случае команда format используется для выравнивания при выводе значений переменных name и value с помощью символа табуляции. Выражения %s и %5.3f задают формат вывода остальных параметров команды. Заметьте, что символ \n, обычно указываемый при вызове команды printf языка C, здесь отсутствует. Он не нужен, так как команда puts сама добавляет символ перевода строки.
Особенности использования квадратных скобок. Квадратные скобки используются для подстановки команд и не выполняют группировку. Вместо этого вложенная команда, определяемая с помощью квадратных скобок, рассматривается как часть текущей группы. В приведенной ниже команде двойные кавычки формируют последний параметр, выполняя группировки, а результаты выполнения вложенной команды включаются в группу.
puts stdout «The length of $s is [string length $s].»
Если в состав параметра входит только вложенная команда, вам нет необходимости группировать элементы с помощью двойных кавычек, поскольку средства разбора Tcl рассматривают вложенную команду как единое целое.
puts stdout [string length $s]
В приведенном ниже выражении кавычки излишни.
puts stdout «[expr $x + $y]»
Группировка перед подстановкой. Интерпретатор Tcl выполняет разбор команды за один проход. В течение единственного прохода он принимает решение о группировке и подстановке. Группировка осуществляется перед подстановкой. Эту особенность интерпретатора Tcl необходимо иметь в виду при написании программ. Значения, полученные в результате подстановки, не влияют на группировку, так как решение о группировке было принято ранее.
Приведенный ниже пример демонстрирует влияние вложенных команд на группировку. Вложенная команда рассматривается как неразрывная последовательность символов, причем внутренняя структура этих символов не учитывается. При формировании параметров основной команды результаты подстановки включаются в текущую группу символов.
Пример 10.
set x 7; set y 9
puts stdout $x+$y=[expr $x + $y]
=> 7+9=16
В примере 10 второй параметр команды puts имеет следующий вид:
$x+$y=[expr $x + $y]
Пробелы в составе вложенной команды при группировке игнорируются. В тот момент, когда интерпретатор Tcl встречает левую квадратную скобку, подстановка некоторых переменных уже выполнена и сформирована следующая строка:
7+9=
При появлении левой квадратной скобки осуществляется рекурсивный вызов интерпретатора для выполнения вложенной команды. Перед выполнением expr подстановка переменных $x и $y уже выполнена. Результат выполнения команды expr включается вместо всей последовательности символов, находящихся между левой и правой квадратной скобкой. Поэтому команда puts получает в качестве второго параметра следующее значение:
7+9=16
Группировка выполняется перед подстановкой. В рассмотренном выше примере при обработке второго параметра команды puts решение о группировке принимается перед решением о подстановке. Даже если результат выполнения вложенной команды содержит пробелы или другие специальные символы, аргумент будет передан команде без учета специальных значений. Группировка и подстановка переменных соотносятся между собой так же, как группировка и подстановка команд. Пробелы или другие специальные символы в составе значений переменных не оказывают влияние на решение о группировке, так как это решение принимается еще тогда, когда значения переменных недоступны.
Если вы хотите, чтобы при выводе результатов выполнения команды символы + и = были отделены от чисел пробелами, вам надо явным образом сгруппировать параметр, используя двойные кавычки. При этом команда puts примет следующий вид:
puts stdout «$x + $y = [expr $x + $y]»
В данном случае для группировки используются кавычки. Это важно, так как в составе группы должна быть разрешена подстановка значений переменных и команды.
Примеры подстановки. Если в составе команды присутствует несколько подстановок, не разделенных пробелами или знаками табуляции, группировка выполняется по умолчанию. Использовать двойные кавычки в этом случае не обязательно. В приведенной ниже команде осуществляется конкатенация значений переменных a, b и c.
set concat $a$b$c
Если же вам необходимо разделить значения переменных пробелами, необходимо использовать кавычки.
set concat «$a $b $c»
В общем случае команды, помещенные в квадратные скобки, и ссылки на переменные можно указывать в любой позиции строки. В приведенном ниже примере имя команды определяется в результате выполнения другой команды.
[findCommand $x] параметр параметр
При работе с Tk имя компонента часто используется как имя команды.
$text insert end «Hello, World!»
Процедуры. Для определения процедур в Tcl используется команда proc. Единожды определенная Tcl-процедура может быть использована многократно, причем вызывается она точно так же, как и встроенная команда Tcl. Определение процедуры осуществляется с помощью следующего выражения:
proc имя список_параметров тело_процедуры
Первый параметр — это имя определяемой процедуры. В качестве второго параметра команды задается список параметров процедуры. Третий параметр — тело процедуры, включающее одну или несколько Tcl-команд.
В имени процедуры могут содержаться практически любые символы; регистр символов учитывается. В данном случае принято соглашение об именовании, согласно которому имена процедур начинаются с символа верхнего регистра, а имена переменных — с символа нижнего регистра. По мере развития Tcl все большее значение приобретает стиль программирования.
X`Пример 11.
proc Diag {a b} {
set c [expr {sqrt($a * $a + $b * $b)}]
return $c
}
puts «The diagonal of a 3, 4 right triangle is [Diag 3 4]»
=> The diagonal of a 3, 4 right triangle is 5.0
Процедура Diag, определенная в данном примере, вычисляет длину гипотенузы прямоугольного треугольника. В качестве параметров процедуре передаются длины катетов. Функция sqrt — одна из функций, поддерживаемых командой expr. Переменная c — это локальная переменная процедуры; она существует только при выполнении Diag. Переменная c в данном примере не обязательна; при необходимости можно было бы составить код процедуры, не используя переменных. В этом случае процедура выглядела бы следующим образом:
proc Diag {a b} {
return [expr {sqrt($a * $a + $b * $b)}]
}
Команда return возвращает результаты выполнения процедуры. В данном случае она не обязательна, так как интерпретатор Tcl по умолчанию возвращает значение последней команды в теле процедуры. Таким образом, процедура Diag может выглядеть так:
proc Diag {a b} {
expr {sqrt($a * $a + $b * $b)}
}
Обратите внимание на использование фигурных скобок. Скобка в конце первой строки является началом третьего параметра команды proc; этот же параметр является телом процедуры. Поскольку при разборе команды интерпретатор Tcl встречает открывающую фигурную скобку, он игнорирует специальное значение символов новой строки и читает текст до появления закрывающей скобки. Использование двойных кавычек для группировки даст тот же результат. Интерпретатор будет группировать символы, включая переводы строк, до появления второй двойной кавычки. В результате группировки формируется третий параметр proc, представляющий собой последовательность команд. В дальнейшем при выполнении процедуры символы перевода строки будут завершать команды.
Помещение тела процедуры в фигурные скобки дает еще один эффект: подстановка откладывается до тех пор, пока не начнется выполнение процедуры. Это очень важно, так как в данном примере переменные a, b и c будут определены лишь при вызове процедуры, поэтому в определении Diag выполнить подстановку этих переменных невозможно.
Команда proc предоставляет также дополнительные возможности, например, поддерживает различное число параметров и позволяет использовать значения параметров по умолчанию.
Пример вычисления факториала. Чтобы закрепить полученные знания, рассмотрим пример 12, в котором для вычисления факториала применяется цикл.
Пример 12.
proc Factorial {x} {
set i 1; set product 1
while {$i <= $x} {
set product [expr {$product * $i}]
incr i
}
return $product
}
Factorial 10
=> 3628800
Точка с запятой в первой строке используется для разделения команд. Этот символ выполняет те же функции, что и перевод строки. Цикл while применяется для того, чтобы перемножить числа от единицы до значения x. Первый параметр while представляет собой логическое выражение, а второй параметр является телом цикла. Для вычисления значения логического выражения применяются те же средства, которые использует команда expr. По этой причине в первый параметр команды while не включается команда expr. Даже если вычисляется сложное выражение, в использовании expr нет необходимости.
Как и тело процедуры, тело цикла формируется с помощью фигурных скобок. Открывающая фигурная скобка, предназначенная для формирования тела процедуры, должна находиться в той же строке, что и команда proc, а если скобка формирует тело цикла, ее следует располагать в той же строке, что и команду while. Если же вы хотите поместить фигурную скобку в следующей строке, то текущая строка обязательно должна оканчиваться символом обратной косой черты. Как вы уже знаете, обратная косая черта отменяет специальное значение перевода строки.
while {$i < $x} \
{
set product …
}
Для группировки логических выражений и команд, составляющих тело цикла, всегда надо использовать фигурные скобки. При группировке логического выражения фигурные скобки нельзя заменять двойными кавычками, поскольку подстановка переменных должна быть отложена до того момента, когда интерпретатор начнет вычислять выражение. Ниже приведен пример бесконечного цикла.
set i 1; while $i<=10 {incr i}
Этот цикл никогда не будет завершен. Дело в том, что интерпретатор Tcl выполнит подстановку $i перед вызовом команды while, в результате логическое выражение примет вид 1<=10. Значение такого выражения всегда равно true. Чтобы устранить подобные ошибки, надо соблюдать рекомендуемый стиль составления кода, в частности всегда применять для группировки выражений фигурные скобки.
set i 1; while {$i<=10} {incr i}
Для увеличения значения переменной i в теле цикла используется команда incr. Она очень удобна, так как заменяет более длинную команду.
set i [expr {$i + 1}]
Команде incr может передаваться дополнительный параметр: положительное или отрицательное целое число, указывающее, на какую величину должно изменяться значение переменной. Используя данную форму команды, можно отказаться от применения переменной цикла и ограничиться переменной x. В этом случае цикл примет следующий вид:
while {$x > 1} {
set product [expr {$product * $x}]
incr x -1
}
В примере 13 приведена модифицированная процедура вычисления факториала, в которой используется рекурсивный вызов. Рекурсивной называется такая функция, которая в процессе выполнения вызывает саму себя. При каждом рекурсивном вызове значение x уменьшается на единицу, а когда оно станет равным 1, рекурсивные обращения прекращаются.
Пример 13
proc Factorial {x} {
if {$x <= 1} {
return 1
} else {
return [expr {$x * [Factorial [expr {$x — 1}]]}]
}}
Дополнительные сведения о переменных. Если команде set передается один параметр, она возвращает значение переменной. Данная команда интерпретирует параметр как имя переменной и возвращает ее текущее значение. Символ $, который указывается перед именем переменной для доступа к ее значению, — это лишь сокращенный вариант команды set. Пример 14, показывает, какой интересный результат можно получить, присваивая переменной имя другой переменной.
Пример 14.
set var {the value of var}
=> the value of var
set name var
=> var
set name
=> var
set $name
=> the value of var
Данный пример несколько сложнее предыдущих. В последней команде вместо $name подставляется var. Затем команда set возвращает значение переменной var, т.е. строку “the value of var”. Вложенные команды set реализуют косвенное обращение к переменным. Последняя команда set в приведенном выше примере может быть переписана следующим образом:
set [set name]
=> the value of var
Вначале использование переменной для хранения имени другой переменной может показаться сложным. Однако в некоторых случаях такой подход оказывается очень полезным. Имеется даже специальная команда upvar, которая упрощает действия с использованием косвенной адресации.
Особенности применения различных символов в именах переменных. Интерпретатор Tcl использует некоторые соглашения об именовании переменных, которые упрощают включение ссылок на переменные в состав строк.
По умолчанию интерпретатор предполагает, что имена переменных содержат только буквы, цифры и знаки подчеркивания. Выражение $foo.o представляет собой конкатенацию значения переменной foo и литерала “.o”.
Если ссылка на переменную не отделена от остальной части строки знаками пунктуации или пробелами, вы можете выделить имя переменной с помощью фигурных скобок (например, ${x}). Использование фигурных скобок также позволяет включать в состав имен произвольные символы, однако работать с такими переменными не всегда удобно и для того, чтобы поступать так, надо иметь веские основания. Если вы хотите включить в имя переменной символы, отличные от букв, цифр и знаков подчеркивания, либо если вам необходимо формировать имя в процессе вычислений, вы можете воспользоваться командой upvar. Пример 15 показывает различные виды формирования ссылок.
Пример 15.
set foo filename
set object $foo.o
=> filename.o
set a AAA
set b abc${a}def
=> abcAAAdef
set .o yuk!
set x ${.o}y
=> yuk!y
Команда unset. Переменную можно удалить с помощью команды unset.
unset ?-nocomplain? ?—? имя_переменной_1 имя_переменной_2 …
Команде unset может быть передано любое количество имен переменных. Если переменная не определена, unset сообщает об ошибке. Для того чтобы подавить генерацию сообщений об ошибке, надо указать опцию —nocomplain. Чтобы удалить переменную с именем —nocomplain, надо включить символы.
Комментарии. Для обозначения комментариев в Tcl используется символ #. В отличие от многих других языков, он должен быть указан в начале команды. Тот же символ в другой позиции не будет обработан специальным образом. Часто комментарии располагают после окончания команды, предваряя символ # точкой с запятой, завершающей предыдущую команду.
# Использование комментариев
set rate 7.0 ;# Общая оценка
set months 60 ;# Срок возвращения кредита
Заметьте, что символ обратной косой черты позволяет продолжить комментарии в следующей строке. Точка с запятой в составе комментариев рассматривается как обычный символ. Строку комментариев завершает только символ перевода строки.
# Начало комментариев в программе на языке Tcl \
продолжение комментариев (обратите внимание на отсутствие символа #).
Комментарии Tcl имеют следующую особенность: открывающей фигурной скобке в составе комментариев обязательно должна соответствовать закрывающая скобка. Это странное правило было принято для того, чтобы упростить реализацию программ разбора Tcl. В результате приведенный ниже фрагмент кода будет работать некорректно.
# if {boolean expression1} {
if {boolean expression2} {
команды
}
В предыдущем примере в комментариях присутствует лишняя открывающая скобка. При разборе будет сгенерировано сообщение о том, что в конце сценария отсутствует закрывающая фигурная скобка. Для того чтобы запретить выполнение больших фрагментов кода, можно поместить требуемые команды в блок, который никогда не будет выполнен.
if {0} {
неиспользуемый код
}
Далее рассмотрим выполнение сценариев Tcl/Tk. Код сценария надо сохранить в файле, а затем запустить его с помощью команды source
source имя_файла
После выполнения команды source происходит чтение Tcl-команд из файла. Прочитанные команды выполняются так же, как и команды, введенные в интерактивном режиме.
Индивидуальные задания.
- Написать программу, рассчитывающую периметр P прямоугольника со сторонами а и b и округляющую полученное значение до целого.
- Написать программу, рассчитывающую площадь S прямоугольника со сторонами а и b и возводящую это значение в квадрат.
- Написать программу, рассчитывающую периметр Р квадрата со сторонами а и b и вычисляющую экспоненту от полученного значения.
- Написать программу, рассчитывающую площадь S квадрата со сторонами а и b и вычисляющую квадратный корень из полученного значения.
- Написать программу, выводящую длину введенной строки и возводящую полученное значение в квадрат.
- Написать программу, выводящую длину введенной строки и высчитывающую из полученного значения натуральный логарифм.
- Написать программу, рассчитывающую синус заданного угла и рассчитывающую экспоненту от полученного значения.
- Написать программу, рассчитывающую тангенс заданного угла и определяющую десятичный логарифм из полученного значения.
- Написать программу, высчитывающую корень квадратный из длины введенной строки и округляющую полученное значение до целого.
- Написать программу, рассчитывающую арккосинус заданного угла и вычисляющую абсолютное значение полученного значения.
- Написать программу, рассчитывающую экспоненту от заданного значения и усекающую полученное значение до целочисленного.
- Написать программу, рассчитывающую натуральный логарифм от заданного значения и возводящую полученное значение в куб.
- Написать программу, рассчитывающую гиперболический косинус заданного угла и вычисляющую корень квадратный из полученного значения.
- Написать программу, выдающую звуковой сигнал и печатающую Вашу фамилию, имя и отчество.
- Написать программу, вычисляющую площадь S прямоугольника со сторонами а и b и умножающую полученное значение на случайное число.
Контрольные вопросы для защиты лабораторной работы
- Что такое Tcl/Tk? Для чего предназначен этот язык программирования?
- Как называется основная команда Tcl/Tk? В каком виде записываются команды Tcl?
- Как действует интерпретатор Tcl при обработке команд? Для чего в консоли используется знак %?
- Для чего применяются фигурные скобки, квадратные скобки, кавычки?
- Нужно ли объявлять переменные перед их использованием в Tcl? Для чего применяется знак $?
- Какая команда в Tcl используется для разбора и вычисления значений математических выражений?
- Как в Tcl выполняется подстановка команд? Для чего применяется это действие?
- Можно ли использовать при вычислении математических выражений фигурные скобки?
- Процедуры в Tcl. Определение, вызов, применение.
- Для чего в логических выражениях и командах, используются фигурные скобки?
- Какие существуют особенности применения различных символов в именах переменных?
- Как можно присвоить переменной значение? Как можно удалить переменные?
- Как обозначаются комментарии в Tcl?
- Как запустить сценарий написанный на Tcl/Tk?
- Как осуществить форматированный вывод в Tcl?
