230 likes | 450 Views
Tcl/Tk. Anastassia Zaitseva Olga Satshok. Tcl/tk: Ajalugu. 1989 – töötati välja Tcl interpretaatori keeleversioon C alifornia Ülikooli õppejõu J oh n Ousterhout ena poolt 1991- ilmunud esimene t öötav versioon. Tcl/tk.
E N D
Tcl/Tk Anastassia Zaitseva Olga Satshok
Tcl/tk: Ajalugu • 1989 – töötati välja Tcl interpretaatori keeleversioonCalifornia Ülikooli õppejõu John Ousterhoutena poolt • 1991- ilmunud esimene töötav versioon
Tcl/tk • Tcl (Tool Command Language) – kõrgetasemeline programmeerimiskeel , kujutab endastprogrammeerimiskeele Cjakäsureainterpretaatori keele csh segu. • Tk(Tool Kit) - instrumentgraafilise kasutajaliidese loomiseks(GUI), nuppudega, menüügaja muude listboxide ja scrollbarsidega.
Tcl/tk: Ülevaade • kõrgtasemeline keel • interpreteeritav keel • laiendatav keel • tasuta programeerimiskeel • Tcl töötabpaljudelevinudplatvormidega • Teda võibsisseehitadaloodatavatesse rakendustesse
Tcl/tk: Andmetüübid • Tcl toetab vaidüheandmetüüpi- string-id. Kõik käsud, kõik käsu argumentid, nende sooritamise tulemusedjamuutujate väärtused võivad olla esindatud string-dega. • kolm üldist string-i vormi: käsud, avaldisedja loendid set X "This is a string“ set Y 1.24
Tcl/tk: Standartsed interpritaatorid • Interpretaatortclsh – kujutab endasttavalist kestatähestikulise-arvulise kasutajaliidesega • Interpretaatorwish – kujutab endast tavalistprogrammikahe tööaknaga : peaaken ja väljundaken - interpritaatorid võivad töötada interaktiivsevõipakendireziimiga - interpretaatori käivitamiseks: tclsh ?fileName arg arg …? wish ?fileName arg arg …?
Tcl/tk: Käsud (Süntaks) • Tcl käsk koosnebühest võimitmest käsust, mis on eraldatuduue rea sümboligavõi semikooloniga. Iga käskkoosnebväljade kogumist, mis on eraldatudtühja vahemikuga. • Näiteks : set a 22 • set - käsu nimi • a - muutuja nimi • 22 - string-i väärtusmuutuja a omistamiseks
Tcl/tk: Argumentide grupeerimine jutumärkide abil • Iga argumendi välilõpebjärgneva tühikuga, kuidjutumärke võib kasutada et anda argumentideleväärtus,millel on tühikud sees. Näiteks:set a “This is a single argument” • annab käsule setkaks argumenti: aja‘This is a single argument’
Tcl/tk: Argumentide grupeerimine loogiliste sulgude abil • set a {xyz a {b c d}} • käsksetsaabkaks argumenti:a ja ‘xyz a {b c d}’. • eval { set a 22 set b 33 } • käskevalkasutabühte argumenti, mis kujutab endast kasürida:evalkutsub välja Tcl interpretaatorit käsurea täitmiseks. Käsk võtab endale muutuja‘22’ väärtusea ja muutuja‘33’ —väärtuse‘b’.
Tcl/tk: Käsu asendamine suludega • Kui käsu väljal ilmub lahtine nurksulgsiis toimub käsu omistamine. Kõik sümbolid sulgudes loetakse käsuks. Näiteks: set a [set b] • kui muutuja bväärtus on‘foo’: set a foo • Nurksulgevõib kasutadaveelgi keerulisemalmoel. Näiteks: set a xyz[set b].[set c] • kui muutujabväärtus on‘foo’, ja muutujac väärtus on‘gorp’, siis on see ekvivalentne käsuga set a xyzfoo.gorp
Tcl/tk: Muutujate $- ga asendamine • Dollari sümbolit‘$’võib kasutadamuutujateomistamise lühendvormina set a $foo.c • kui muutujafooväärtuson ‘test’, siis käsk set a test.c
Tcl/tk:Loendid • Loend - on lihtsalt järjestatud sõnade, arvude,stringide kogum • set lst {{item 1} {item 2} {item 3}} • set lst [split "item 1.item 2.item 3" "."] • set lst [list "item 1" "item 2" "item 3"]
Tcl/tk: Avaldised • avaldis koosneb operandi kombinatsioonidest, operaatoritest ja sulgudest • kõik operandid interpreteeritaksekui täisarvud kui pole antud teist käsku • avaldise väärtuseks on arv (täisarv või ujukoma arv) Näiteks: 8.2 + 6 annab tulemust14,2.
Tcl/tk: Operaatorid • - + liitmine, lahutamine, • ~ ! bitikaupa eitus, loogiline eitus • * / % korrutamine, jagamine, jääk • << >>nihutamine vasakule, nihutamine paremale • &bitikaupa konjunktsioon • ^bitikaupa mitteekvivalents • | bitikaupa disjunktsioon • &&loogiline korrutamine • ||loogiline liitmine • x ? y : ztingimuslik avaldis (ternaarne operaator) • =, <, >, <=, >=, <>võrdlemine
Tcl/tk: Tsüklid (while) Näide: set x 1 while {$x < 5} { puts "x is $x" set x [expr $x + 1] } • x is 1 x is 2 x is 3 x is 4
Tcl/tk: Tsüklid (for) Näide: for {set i 0}{$i < 10} {incr i} { puts "I inside first loop: $i" } I inside first loop: 0 I inside first loop: 1 I inside first loop: 2 I inside first loop: 3 I inside first loop: 4 I inside first loop: 5 ..........
Tcl/tk: Kellaaeg set systemTime [clock seconds] 1116774329 puts "The time is: [clock format $systemTime -format %H:%M:%S]" The time is: 18:05:29 puts "The date is: [clock format $systemTime -format %D]" The date is: 05/22/05 puts [clock format $systemTime -format {Today is: %A, the %d of %B, %Y}] Today is: Sunday, the 22 of May, 2005 puts "\n the default format for the time is: [clock format $systemTime]\n“ the default format for the time is: Sun May 22 18:05:29 EEST 2005
Tcl/tk: Objektide loomine ja likvideerimine • frame—luua raam (frame) • label — luua tekstimärgend (üherealine) • message— luua sõnum (mitmerealine) • button— luua nupp • listbox — luua nimikiri • scrollbar — luua kerimisriba • entry— luua sisendväli • menu — luua menüü • menubutton — luua menüü element • canvas — luua graafilise väljundi väli
Tcl/tk: Näide global var1 var2 var3 var4 var5 set var1 "" set var2 "" set var3 "" set var4 "" set var5 "" proc showValue {} { global var1 var2 var3 var4 var5 puts " Muutuja var1 = $var1" puts " Muutuja var2 = $var2" puts " Muutuja var3 = $var3" puts " Muutuja var4 = $var4" puts " Muutuja var5 = $var5" }
Tcl/tk: Näide wm title . "Form" label .msg -font fixed -justify left -text "Test window." pack .msg -side top frame .buttons pack .buttons -side bottom -fill x -pady 2m button .buttons.dismiss -text “Exit" -command "exit" button .buttons.code -text “Values" -command "showValue" pack .buttons.dismiss .buttons.code -side left -expand 1 foreach i {var1 var2 var3 var4 var5} { frame .$i -bd 2 entry .$i.entry -relief sunken -width 40 -textvariable $i label .$i.label pack .$i.entry -side right pack .$i.label -side left }
Tcl/tk: Näide .var1.label config -text Name: .var2.label config -text Address: .var5.label config -text Phone: pack .msg .var1 .var2 .var3 .var4 .var5 -side top -fill x focus .var1.entry