Please note, this is a STATIC archive of website www.tutorialspoint.com from 11 May 2019, cach3.com does not collect or store any user information, there is no "phishing" involved.
# Объявляем переменные
# 1) предыдущее значение
# 2) настоящее значение
# 3) инкриментное значение на выходе
global mom_prev_pos_V
global mom_pos_V
global mom_out_pos_V
# Установка значений для тестирования (предыдущее и настоящее)
set mom_prev_pos_V -2.99
set mom_pos_V +1.99
# Если предыдущее и настоящее больше нуля
# Убираем у них знаки и вычитаем из большего меньшее так же без знака
# Если предыдущее больше сейчашнего то усанавливаем знак минус,
# если наоборот то плюс.
# Выводим результат.
if {$mom_prev_pos_V>0 && $mom_pos_V>0} {
set mom_pos_V [expr "abs($mom_pos_V)"]
set mom_prev_pos_V [expr "abs($mom_prev_pos_V)"]
set mom_out_pos_V [expr "abs($mom_prev_pos_V-$mom_pos_V)"]
if {$mom_prev_pos_V > $mom_pos_V} {
set mom_out_pos_V -$mom_out_pos_V
}
if {$mom_prev_pos_V < $mom_pos_V} {
set mom_out_pos_V +$mom_out_pos_V
}
puts $mom_out_pos_V
}
# Если предыдущее и настоящее меньше нуля
# Убираем у них знаки и вычитаем из большего меньшее так же без знака
# Если предыдущее больше сейчашнего то усанавливаем знак плюс,
# если наоборот то минус.
# Выводим результат.
if {$mom_prev_pos_V<0 && $mom_pos_V<0} {
set mom_pos_V [expr "abs($mom_pos_V)"]
set mom_prev_pos_V [expr "abs($mom_prev_pos_V)"]
set mom_out_pos_V [expr "abs($mom_prev_pos_V-$mom_pos_V)"]
if {$mom_prev_pos_V > $mom_pos_V} {
set mom_out_pos_V +$mom_out_pos_V
}
if {$mom_prev_pos_V < $mom_pos_V} {
set mom_out_pos_V -$mom_out_pos_V
}
puts $mom_out_pos_V
}
# Если предыдущее больше нуля, а настоящее меньше нуля
# Убираем у них знаки и складываем
# Если предыдущее больше сейчашнего то усанавливаем знак минус,
# если наоборот то плюс.
# Выводим результат.
if {$mom_prev_pos_V>0 && $mom_pos_V<0} {
set mom_pos_V [expr "abs($mom_pos_V)"]
set mom_prev_pos_V [expr "abs($mom_prev_pos_V)"]
set mom_out_pos_V [expr "abs($mom_prev_pos_V+$mom_pos_V)"]
if {$mom_prev_pos_V > $mom_pos_V} {
set mom_out_pos_V -$mom_out_pos_V
}
if {$mom_prev_pos_V < $mom_pos_V} {
set mom_out_pos_V +$mom_out_pos_V
}
puts $mom_out_pos_V
}
# Если предыдущее меньше нуля, а настоящее больше нуля
# Убираем у них знаки и складываем
# Если предыдущее больше сейчашнего то усанавливаем знак плюс,
# если наоборот то минус.
# Выводим результат.
if {$mom_prev_pos_V<0 && $mom_pos_V>0} {
set mom_pos_V [expr "abs($mom_pos_V)"]
set mom_prev_pos_V [expr "abs($mom_prev_pos_V)"]
set mom_out_pos_V [expr "abs($mom_prev_pos_V+$mom_pos_V)"]
if {$mom_prev_pos_V > $mom_pos_V} {
set mom_out_pos_V +$mom_out_pos_V
}
if {$mom_prev_pos_V < $mom_pos_V} {
set mom_out_pos_V -$mom_out_pos_V
}
puts $mom_out_pos_V
}
# Затестировать код можно вот тут
# https://www.tutorialspoint.com/execute_tcl_online.php
# Посмотри и скажи свое мнение мистер Джонни
set a "hello world"
puts $a
set c {25 30 48 50 30 45 94 83 72}
append c \ red
append c \ Apple
append c \ 58
append c \ ramu
puts $c
proc avg {numbers} {
set sum 0
foreach number $numbers {
set sum [expr $sum + $number]
}
set average [expr $sum/[llength $numbers]]
return $average
}
puts [avg {70 80 50 60}]
puts [avg {70 80 50 }]
puts "Hello World!"
set a 20
set b 30
set c 30
puts [string compare a b]
if {[string compare b c] == 0} {
puts "string \'a\' and \'b\' are same.";
}
if {[string compare a b] == -1} {
puts "string \'a\' comes before \'b\'.";
}
if {[string compare b a] == 1} {
puts "string \'b\' comes after \'a\'.";
}
set a "hello world"
set b "o"
puts "first occurrence of $b in a"
puts [string first $b $a]
puts "character at index 0 in a"
puts [string index $a 0]
puts "last occurance of $b in a"
puts [string last $b $a]
puts "word end index in a"
puts [string wordend $a 20]
puts "word start index in a"
puts [string wordstart $a 20]
set s1 "hello world"
set s2 "world"
puts "trim right $s2 in $s1"
puts [string trimright $s1 $s2]
set s2 "hello"
puts "trim right $s2 in $s1"
puts [string trimleft $s1 $s2]
set s1 " hello world "
set s2 " "
puts "trim characters s1 on both sides of s2"
puts [string trim $s1 $s2]
\n