{"id":26,"date":"2007-03-03T03:33:49","date_gmt":"2007-03-03T01:33:49","guid":{"rendered":"http:\/\/www.kosmala.pl\/?p=26"},"modified":"2012-12-16T19:20:53","modified_gmt":"2012-12-16T18:20:53","slug":"naumiacz","status":"publish","type":"post","link":"http:\/\/www.kosmala.pl\/?p=26","title":{"rendered":"<!--:pl-->Naumiacz<!--:-->"},"content":{"rendered":"<p><!--:pl-->Niewyszukany programik z niewyszukanym imieniem &#8211; napisany w Tcl\/Tk. Chlebak jak sama nazwa wskazuje s\u0142u\u017cy do noszenia granat\u00f3w, a naumiacz do naumiewania si\u0119 na pami\u0119\u0107 s\u0142\u00f3wek z j\u0119zyk\u00f3w sobie obcych. <!--:--><!--more--><!--:pl-->Przy uruchomieniu program prosi nas o podanie pliku ze s\u0142\u00f3wkami. Plikiem tym jest zwyk\u0142y plik tekstowy o uk\u0142adzie:<\/p>\n<p>s\u0142\u00f3wko obce &#8211; t\u0142umaczenie<br \/>\ns\u0142\u00f3wko obce &#8211; t\u0142umaczenie<br \/>\ns\u0142\u00f3wko obce &#8211; t\u0142umaczenie<\/p>\n<p>kt\u00f3ry mo\u017cemy sobie tworzy\u0107 na bie\u017c\u0105co w byle notatniku (ucz\u0105c si\u0119 np. z ksi\u0105\u017cki). Program traktuje my\u015blnik jako oddzielenie obcego s\u0142\u00f3wka od rodzimego t\u0142umaczenia.<\/p>\n<p>Po wczytaniu pliku ze s\u0142\u00f3wkami do nauczenia, jeste\u015bmy proszeni o wybranie rozdzia\u0142u. Ka\u017cdy rozdzia\u0142 to ile\u015btam (ile? &#8211; to do ustawienia w kodzie programu) kolejnych s\u0142\u00f3w z pliku s\u0142\u00f3wek.<\/p>\n<p align=\"center\"><img decoding=\"async\" src=\"http:\/\/www.kosmala.pl\/wp-content\/uploads\/2008\/03\/naumiacz11.png\" alt=\"naumiacz11.png\" \/><\/p>\n<p align=\"left\">I rozpoczyna si\u0119 nauka. Wiecie jak najefektywniej szkoli si\u0119 \u017co\u0142nierzy w zabijaniu na polu walki? Ustawia im si\u0119 ruchome tarcze, kt\u00f3re pojawiaj\u0105 si\u0119 na moment zza krzaka lub pag\u00f3rka i po sekundzie znowu chowaj\u0105. \u017bo\u0142nierz nie ma czasu na zastanawianie si\u0119 nad poci\u0105gni\u0119ciem za spust &#8211; widzi cel, to musi bezmy\u015blnie strzeli\u0107, bo cel si\u0119 ju\u017c chowa. Odruch&#8230; Z programikiem naumiacz zasada nauki s\u0142\u00f3wek jest podobna, widzisz s\u0142owo i musisz jak najszybciej zaznaczy\u0107 jedn\u0105 z trzech mo\u017cliwo\u015bci t\u0142umaczenia. Widzisz s\u0142\u00f3wko &#8211; klikasz t\u0142umaczenie, widzisz s\u0142\u00f3wko &#8211; klikasz t\u0142umaczenie, itd. Czasu nic nie odlicza &#8211; za\u0142o\u017cy\u0142em, \u017ce korzystaj\u0105cy z naumiacza robi to z w\u0142asnej ch\u0119ci, ma wystarczaj\u0105c\u0105, dobrowoln\u0105 motywacj\u0119 do nauki i nie trzeba go stresowa\u0107 u\u0142amkami sekund \ud83d\ude09<\/p>\n<p align=\"center\"><img decoding=\"async\" src=\"http:\/\/www.kosmala.pl\/wp-content\/uploads\/2008\/03\/naumiacz2.png\" alt=\"naumiacz2.png\" \/><\/p>\n<p align=\"left\"><font color=\"blue\"> #!\/usr\/bin\/wish<br \/>\n#<br \/>\n# naumiacz.tcl &#8211; program do nauki s\u0142\u00f3wek.<br \/>\n# Autor: miroslaw.kosmala@trilowcy.org<br \/>\n#<br \/>\n###<\/font><\/p>\n<p><font color=\"blue\">###<br \/>\n# Kolorystyka<br \/>\ntk_setPalette gray90<\/font><\/p>\n<p><font color=\"blue\"># Ile s\u0142\u00f3wek ma zawiera\u0107 jeden dzia\u0142 (stan zak\u0142adany &#8211; 1}?<br \/>\n# max 10<\/font><\/p>\n<p><font color=\"blue\">set il_w_dziale 9<\/font><\/p>\n<p><font color=\"blue\">font create base_font -family Helvetica -size 14 -weight normal<br \/>\nfont create word_font -family Helvetica -size 16 -weight bold<\/font><\/p>\n<p><font color=\"blue\">proc losowa max {<br \/>\nset temp [expr rand()]<br \/>\nset temp [split $temp {.}]<br \/>\nset temp [split [lindex $temp 1] {}]<br \/>\nif { [lindex $temp 0] &gt; $max } {<br \/>\nwhile { [lindex $temp 0] &gt; $max } {<br \/>\nset temp [expr rand()]<br \/>\nset temp [split $temp {.}]<br \/>\nset temp [split [lindex $temp 1] {}]<br \/>\n}<\/font><\/p>\n<p><font color=\"blue\">return [lindex $temp 0]<br \/>\n}<\/font><\/p>\n<p><font color=\"blue\">proc dawaj_slowa {} {<br \/>\nglobal rozdzial<br \/>\nglobal slowka<br \/>\nglobal tlumaczenia<br \/>\nglobal il_w_dziale<\/font><\/p>\n<p><font color=\"blue\">set index [losowa $il_w_dziale]<\/font><\/p>\n<p><font color=\"blue\">set index2 [losowa $il_w_dziale]<br \/>\nwhile { $index == $index2 } {<br \/>\nset index2 [losowa $il_w_dziale]<br \/>\n}<br \/>\nset index3 [losowa $il_w_dziale]<br \/>\nwhile { $index == $index3 || $index2 == $index3 } {<br \/>\nset index3 [losowa $il_w_dziale]<br \/>\n}<\/font><\/p>\n<p><font color=\"blue\">.f.sl configure -text &#8222;[lindex $slowka($rozdzial) $index]&#8221; -font word_font<\/font><\/p>\n<p><font color=\"blue\">global poprawne<\/font><\/p>\n<p><font color=\"blue\">set pozycja [losowa 2]<br \/>\nif { $pozycja == 0 } {<br \/>\n.f.f.g configure -text &#8222;[lindex $tlumaczenia($rozdzial) $index]&#8221; \\<br \/>\n-font word_font<br \/>\n.f.f.s configure -text &#8222;[lindex $tlumaczenia($rozdzial) $index2]&#8221; \\<br \/>\n-font word_font<br \/>\n.f.f.d configure -text &#8222;[lindex $tlumaczenia($rozdzial) $index3]&#8221; \\<br \/>\n-font word_font<br \/>\nset poprawne &#8222;jeden&#8221;<br \/>\n}<br \/>\nif { $pozycja == 1 } {<br \/>\n.f.f.g configure -text &#8222;[lindex $tlumaczenia($rozdzial) $index2]&#8221; \\<br \/>\n-font word_font<br \/>\n.f.f.s configure -text &#8222;[lindex $tlumaczenia($rozdzial) $index]&#8221; \\<br \/>\n-font word_font<br \/>\n.f.f.d configure -text &#8222;[lindex $tlumaczenia($rozdzial) $index3]&#8221; \\<br \/>\n-font word_font<br \/>\nset poprawne &#8222;dwa&#8221;<br \/>\n}<br \/>\nif { $pozycja == 2 } {<br \/>\n.f.f.g configure -text &#8222;[lindex $tlumaczenia($rozdzial) $index2]&#8221; \\<br \/>\n-font word_font<br \/>\n.f.f.s configure -text &#8222;[lindex $tlumaczenia($rozdzial) $index3]&#8221; \\<br \/>\n-font word_font<br \/>\n.f.f.d configure -text &#8222;[lindex $tlumaczenia($rozdzial) $index]&#8221; \\<br \/>\n-font word_font<br \/>\nset poprawne &#8222;trzy&#8221;<br \/>\n}<\/font><\/p>\n<p><font color=\"blue\">}<\/font><\/p>\n<p><font color=\"blue\"># &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n# &#8212; PROCEDURA PRACY &#8212;<br \/>\n# &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nproc praca {widget rozdzial} {<br \/>\ndestroy $widget<\/font><\/p>\n<p><font color=\"blue\">frame .f<br \/>\nlabel .f.top -text &#8222;NAUKA&#8221; -relief raised -font base_font<br \/>\nlabel .f.sep1 -text &#8221; &#8221;<br \/>\nlabel .f.sl<br \/>\nframe .f.f<br \/>\nlabel .f.f.g -text &#8221; *** &#8221; -font word_font \\<br \/>\n-background white -foreground black<br \/>\nlabel .f.f.s -text &#8221; *** &#8221; -font word_font \\<br \/>\n-background white -foreground black<br \/>\nlabel .f.f.d -text &#8221; *** &#8221; -font word_font \\<br \/>\n-background white -foreground black<\/font><\/p>\n<p><font color=\"blue\">label .f.sep -text &#8221; &#8221;<br \/>\npack .f .f.top .f.sep1 .f.sl .f.f .f.f.g .f.f.s .f.f.d .f.sep -expand no -fill x<\/font><\/p>\n<p><font color=\"blue\">frame .f.b<br \/>\nbutton .f.b.j -text &#8221; Dzia\u0142 &#8221; -font base_font -command { dawaj_rozdzial .f}<br \/>\nbutton .f.b.d -text &#8221; Koniec &#8221; -font base_font -command {exit}<br \/>\npack .f.b -expand no -fill x<br \/>\npack .f.b.j .f.b.d -expand no -fill x -side left<\/font><\/p>\n<p><font color=\"blue\">dawaj_slowa<\/font><\/p>\n<p><font color=\"blue\"># &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# &#8212; ZDARZENIA &#8212;<br \/>\n# &#8211;<br \/>\nbind .f.f.g {<br \/>\n.f.f.g configure -background navy -foreground yellow<br \/>\n.f.f.s configure -background white -foreground black<br \/>\n.f.f.d configure -background white -foreground black<br \/>\n}<br \/>\nbind .f.f.s {<br \/>\n.f.f.g configure -background white -foreground black<br \/>\n.f.f.s configure -background navy -foreground yellow<br \/>\n.f.f.d configure -background white -foreground black<br \/>\n}<br \/>\nbind .f.f.d {<br \/>\n.f.f.g configure -background white -foreground black<br \/>\n.f.f.s configure -background white -foreground black<br \/>\n.f.f.d configure -background navy -foreground yellow<br \/>\n}<br \/>\n# &#8212;<br \/>\nbind .f.f.g {<br \/>\nglobal poprawne<br \/>\nif { $poprawne != &#8222;jeden&#8221; } {<br \/>\ntk_dialog {.con} { Kontrola } { PUD\u0141O!!!} {} 0 { O.K }<br \/>\n} else {<br \/>\ndawaj_slowa<br \/>\n}<br \/>\n}<br \/>\nbind .f.f.s {<br \/>\nglobal poprawne<br \/>\nif { $poprawne != &#8222;dwa&#8221; } {<br \/>\ntk_dialog {.con} { Kontrola } { PUD\u0141O!!!} {} 0 { O.K }<br \/>\n} else {<br \/>\ndawaj_slowa<br \/>\n}<br \/>\n}<br \/>\nbind .f.f.d {<br \/>\nglobal poprawne<br \/>\nif { $poprawne != &#8222;trzy&#8221; } {<br \/>\ntk_dialog {.con} { Kontrola } { PUD\u0141O!!!} {} 0 { O.K }<br \/>\n} else {<br \/>\ndawaj_slowa<br \/>\n}<br \/>\n}<\/font><\/p>\n<p><font color=\"blue\">}<br \/>\nset poprawne &#8222;&#8221;<br \/>\n# &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n# &#8212; PROCEDURA WYBORU ROZDZIA\u0141U &#8212;<br \/>\n# &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nproc dawaj_rozdzial {widget} {<\/font><\/p>\n<p><font color=\"blue\">if { $widget != &#8222;null&#8221; } {<br \/>\ndestroy $widget<br \/>\n}<br \/>\nglobal il_nazwa<br \/>\nglobal il_slow<br \/>\nglobal rozdzial<\/font><\/p>\n<p><font color=\"blue\">frame .f<br \/>\npack .f -expand yes -fill both<\/font><\/p>\n<p><font color=\"blue\">label .f.top -text &#8222;WYB\u00d3R ROZDZIA\u0141U&#8221; -font base_font -relief raised<br \/>\nlabel .f.op -text &#8222;Do dyspozycji jest $il_slow sl\u00f3w\\nw $il_nazwa rozdzialach.&#8221; \\<br \/>\n-font base_font<br \/>\nlabel .f.wyb -text &#8222;Do opanowania wybieram\\nrozdzia\u0142 nr &#8221; \\<br \/>\n-font base_font<\/font><\/p>\n<p><font color=\"blue\">spinbox .f.sb -from 1 -to $il_nazwa -width 3<\/font><\/p>\n<p><font color=\"blue\">label .f.sep -text &#8221; &#8221;<br \/>\npack .f.top .f.op .f.wyb -expand yes -fill x<br \/>\npack .f.sb .f.sep -expand no<\/font><\/p>\n<p><font color=\"blue\">frame .f.b<br \/>\npack .f.b -expand no -fill x<br \/>\nbutton .f.b.b1 -text &#8221; O.K &#8221; -font base_font -command {<br \/>\nset rozdzial [.f.sb get]<br \/>\npraca .f [expr $rozdzial-1]<br \/>\n}<br \/>\nbutton .f.b.b2 -text &#8221; Zamknij &#8221; -command {exit} -font base_font<br \/>\npack .f.b.b1 .f.b.b2 -expand no -fill x -side right<\/font><\/p>\n<p><font color=\"blue\">}<br \/>\n# &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/font><\/p>\n<p><font color=\"blue\">wm title . &#8222;Naumiacz II&#8221;<br \/>\n#wm geometry . 200&#215;300<\/font><\/p>\n<p><font color=\"blue\"># Dawaj plik s\u0142ownika<br \/>\nif [catch { set fdes [open [tk_getOpenFile] r]} dupa ] {<br \/>\nputs &#8222;B\u0142\u0105d: Nie mog\u0119 otworzy\u0107 pliku z danymi\\n&#8221;<br \/>\nexit 1<br \/>\n}<\/font><\/p>\n<p><font color=\"blue\">list slowka<br \/>\nlist tlumaczenia<\/font><\/p>\n<p><font color=\"blue\">set il_tmp 0<br \/>\nset il_nazwa 0<br \/>\nset il_slow -1<\/font><\/p>\n<p><font color=\"blue\">while { [gets $fdes wiersz] != -1 } {<\/font><\/p>\n<p><font color=\"blue\">set tmp [split $wiersz {-}]<br \/>\nlappend slowka($il_nazwa) [lindex $tmp 0]<br \/>\nlappend tlumaczenia($il_nazwa) [lindex $tmp 1]<\/font><\/p>\n<p><font color=\"blue\">if {$il_tmp != $il_w_dziale} {<br \/>\nset il_tmp [expr $il_tmp + 1]<br \/>\n} else {<br \/>\nset il_tmp 0<br \/>\nset il_nazwa [expr $il_nazwa + 1]<br \/>\n}<\/font><\/p>\n<p><font color=\"blue\">set il_slow [expr $il_slow + 1]<br \/>\n}<br \/>\nunset tmp<br \/>\nunset il_tmp<\/font><\/p>\n<p><font color=\"blue\"># &#8212;<br \/>\n# Dawaj na pocz\u0105tek wyb\u00f3r rozdzia\u0142u<br \/>\ndawaj_rozdzial null<\/font><\/p>\n<p align=\"left\"> &#8212;<\/p>\n<p align=\"left\">No tak &#8211; wszystko powy\u017csze fajnie, ale co gdy mamy plik ze s\u0142\u00f3wkami: s\u0142owo obce &#8211; t\u0142umaczenie, a nam jest potrzebny plik: t\u0142umaczenie &#8211; s\u0142owo obce ? Po prostu, korzystamy z konsolowego konwentera plik\u00f3w ze s\u0142\u00f3wkami.<\/p>\n<p align=\"center\"><img decoding=\"async\" src=\"http:\/\/www.kosmala.pl\/wp-content\/uploads\/2008\/03\/konwenter.png\" alt=\"konwenter.png\" \/><\/p>\n<p align=\"left\"><font color=\"blue\"> #!\/usr\/bin\/tcl<br \/>\n#<br \/>\n# konwerter.tcl &#8211; program zamieniaj\u0105cy miejscami slowa oddzielone<br \/>\n# my\u015blnikiem (czyli. &#8222;s\u0142\u00f3wko &#8211; t\u0142umaczenie&#8221; na<br \/>\n# t\u0142umaczenie &#8211; s\u0142owko), przewidziany jako wspomaganie<br \/>\n# do programu NAUMIACZ<br \/>\n#<br \/>\n#<br \/>\n# Autor: Miros\u0142aw 'mk23z&#8217; Kosmala Resko, dn. 04.09.2003r<br \/>\n# maito: miroslaw.kosmala@trilowcy.org godz. 22:09<br \/>\n#<br \/>\n#<\/font><font color=\"blue\">####<br \/>\n# Sprawdzenie parametr\u00f3w wywo\u0142ania<\/font><\/p>\n<p><font color=\"blue\">if { $argc == 0 || $argc == 1 } {<\/font><\/p>\n<p><font color=\"blue\">puts &#8222;&#8221;<br \/>\nputs &#8221; Podaj parametry wywo\u0142ania:&#8221;<br \/>\nputs &#8222;&#8221;<br \/>\nputs &#8221; BASH&gt;konwerter.tcl &#8221;<br \/>\nputs &#8222;&#8221;<br \/>\nexit<br \/>\n}<\/font><\/p>\n<p><font color=\"blue\">####<br \/>\n# Otwarcie plik\u00f3w roboczych<\/font><\/p>\n<p><font color=\"blue\">if [catch {set fin [open [lindex $argv 0] r]} dupa] {<br \/>\nputs &#8222;&#8221;<br \/>\nputs &#8222;B\u0142\u0105d: Nie mog\u0119 otworzy\u0107 pliku &lt;[lindex $argv 0]&gt; do odczytu&#8230;&#8221;<br \/>\nputs &#8222;&#8221;<br \/>\nexit<br \/>\n}<br \/>\nif [catch {set fout [open [lindex $argv 1] w]} dupa] {<br \/>\nputs &#8222;&#8221;<br \/>\nputs &#8222;B\u0142\u0105d: Nie mog\u0119 otworzy\u0107 pliku &lt;[lindex $argv 1]&gt; do zapisu&#8230;&#8221;<br \/>\nputs &#8222;&#8221;<br \/>\nexit<br \/>\n}<\/font><\/p>\n<p><font color=\"blue\">####<br \/>\n# Praca<\/font><\/p>\n<p><font color=\"blue\"># Flaga zlicznika<br \/>\nset zlicznik 0<\/font><\/p>\n<p><font color=\"blue\">while { [gets $fin inline] != -1 } {<br \/>\nset inline [split $inline {-}]<br \/>\nputs $fout &#8222;[lindex $inline 1] &#8211; [lindex $inline 0]&#8221;<br \/>\nset zlicznik [expr $zlicznik+1]<br \/>\n}<\/font><\/p>\n<p><font color=\"blue\">####<br \/>\n# Sprz\u0105tanie po sobie<\/font><\/p>\n<p><font color=\"blue\">close $fin<br \/>\nclose $fout<\/font><\/p>\n<p><font color=\"blue\"># Raport<br \/>\nputs &#8222;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8221;<br \/>\nputs &#8221; Gotowe&#8230; przerobiono $zlicznik wierszy s\u0142\u00f3wek&#8230;\\n&#8221;<\/font><\/p>\n<p><font color=\"blue\">exit<\/font><!--:--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Niewyszukany programik z niewyszukanym imieniem &#8211; napisany w Tcl\/Tk. Chlebak jak sama nazwa wskazuje s\u0142u\u017cy do noszenia granat\u00f3w, a naumiacz do naumiewania si\u0119 na pami\u0119\u0107 s\u0142\u00f3wek z j\u0119zyk\u00f3w sobie obcych.<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14,13],"tags":[],"class_list":["post-26","post","type-post","status-publish","format-standard","hentry","category-programy","category-tcltk"],"_links":{"self":[{"href":"http:\/\/www.kosmala.pl\/index.php?rest_route=\/wp\/v2\/posts\/26","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.kosmala.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.kosmala.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.kosmala.pl\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/www.kosmala.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=26"}],"version-history":[{"count":1,"href":"http:\/\/www.kosmala.pl\/index.php?rest_route=\/wp\/v2\/posts\/26\/revisions"}],"predecessor-version":[{"id":3879,"href":"http:\/\/www.kosmala.pl\/index.php?rest_route=\/wp\/v2\/posts\/26\/revisions\/3879"}],"wp:attachment":[{"href":"http:\/\/www.kosmala.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=26"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.kosmala.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=26"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.kosmala.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=26"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}