<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="et">
	<id>http://wiki.hinnavaatlus.ee/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Telempe</id>
	<title>Hinnavaatlus.ee Wiki - Kasutaja kaastööd [et]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.hinnavaatlus.ee/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Telempe"/>
	<link rel="alternate" type="text/html" href="http://wiki.hinnavaatlus.ee/index.php/Eri:Kaast%C3%B6%C3%B6/Telempe"/>
	<updated>2026-05-13T08:36:46Z</updated>
	<subtitle>Kasutaja kaastööd</subtitle>
	<generator>MediaWiki 1.35.13</generator>
	<entry>
		<id>http://wiki.hinnavaatlus.ee/index.php?title=Sissejuhatus_programmeerimisse&amp;diff=3515</id>
		<title>Sissejuhatus programmeerimisse</title>
		<link rel="alternate" type="text/html" href="http://wiki.hinnavaatlus.ee/index.php?title=Sissejuhatus_programmeerimisse&amp;diff=3515"/>
		<updated>2007-04-19T19:51:54Z</updated>

		<summary type="html">&lt;p&gt;Telempe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Programmeerimine]]&lt;br /&gt;
&lt;br /&gt;
== Programmeerimine ==&lt;br /&gt;
&lt;br /&gt;
Mis on programmeerimine? Programmide loomine? Jah, nii võiks ta kokku võtta küll, ent tegelikkuses ei ole asi sugugi nii lilleline ning keerulisemate programmide tegemine võib võtta aega päevadest aastateni. Suuremad programmid koosnevad miljonitest (kui mitte miljarditest) ridadest koodist ning neid on arendatud aasta(kümne)id.&lt;br /&gt;
&lt;br /&gt;
Programmeerimine koosneb tegelikult paljudest staadiumitest. Tõsi, on võimalik võtta pähe, et „oh, ma nüüd lähen ja teen kohe programmi,” ent kui tõsisemaseks programmeerimiseks läheb, siis sellisest mõtteviisist ei piisa. Programmide loomise mõned etapid on näiteks ideestaadium, disainistaadium, projekteerimise staadium ja siis tuleb alles koodimise osa.&lt;br /&gt;
&lt;br /&gt;
Lisaks on programmeerimise väga heaks eelduseks loogiline mõtlemine ning hea matemaatika. Pikemate programmide puhul tuleb kasuks ka püsivus ning tõenäoliselt mõned unetud ööd. Kui ka natuke muheleda, võiks öelda, et programmeerimine koosneb 90% matemaatikast, 9% loogika ning 0,5% kirjutamist. Ülejäänud 0,5% läheb ettenägematuteks kulutusteks.&lt;br /&gt;
&lt;br /&gt;
Teisalt pole programmeerimine ka lihtsalt mõttetu hunniku teksti kirjutamine (ning kui seda teha viletsalt, ei hakka programm üldse töölegi vaid loobib hunnikute viisi veateateid ning programmi vastu kaob huvi) või terve kuhja graafiliste vidinate kokkulöömine ideega sellest programm teha. Nii mõnedki kasulikud programmid on graafiliselt üpris inetud. Seetõttu üritame selles juhendis teha asja nii lõbusaks kui võimalik.&lt;br /&gt;
&lt;br /&gt;
== Mõisted ==&lt;br /&gt;
&lt;br /&gt;
Siinkohal mõned tähtsamad mõisted mida programmeerimises on tarvilik teada.&lt;br /&gt;
&lt;br /&gt;
*'''Muutuja''' – täht või sõna millele saab omistada väärtust, mida saab omakorda vajalikul momendil muuta. Muutujaks võib olla näiteks tikkude arv toosis – seda arvu saab muuta, või näiteks raamatus lugemata lehekülgede arv – ka see muutub. &lt;br /&gt;
*'''Konstant''' – muutumatu muutuja. Näiteks on konstant matemaatiline tähis ''pii'', ehk &amp;lt;code&amp;gt;3,1415926535897932384626433832795&amp;lt;/code&amp;gt;. See ei muutu. Või arv &amp;quot;e&amp;quot; &amp;lt;code&amp;gt;2.71828&amp;lt;/code&amp;gt;. Üldiselt on konstant mistahes arv-, sõne- (string) või tõeväärtus, mida me oleme oma programmis konstandina defineerinud ja väärtustanud. Konstandi väärtus programmi täitmise käigus muutuda ei saa. Selle poolest erineb konstant muutjast, mille väärtust on võimalik programmi täitmise käigus muuta. &amp;lt;br&amp;gt;Süsteemsed konstandid on eeldefineeritud konstandid, mida pole vaja eraldi defineerida. &amp;lt;br&amp;gt;Tambovi konstant on arv mis liidetakse või lahutatakse, millega korrutatakse või jagatakse arvutatud tulemus, et saada soovitud tulemus. Tambovi konstandi kasutamist peetakse üldiselt taunismisväärseks, kuid reaalsetes programmides tuleb seda liigagi tihti ette.&lt;br /&gt;
 &lt;br /&gt;
*'''Massiiv (array)''' – muutujate kogum. Raamatus on tähed ja leheküljed. Ütleme, et muutuja on lehekülg ning muutuja väärtus on lehekülje sisu. Kuna raamatus on palju lehekülgi siis kõik need leheküljed moodustavad massiivi. Ka poes müüdavad suured pakid tikutoose on tegelikult ju massiiv, sest kui tikutoos on muutuja ning tikkude arv toosis on muutuja väärtus, on need kõik toosid selles suures kilepakendis massiiv. &lt;br /&gt;
&lt;br /&gt;
*'''Kommentaar/kommenteerima''' – lõik(/lõigud) programmitekstis, mis ei leia kajastamist programmi kompileerimises. Lühidalt – kõik kommentaarid jäetakse kompileerimisel arvestamata. Näiteks võib seda kasutada juhul, kui on hirmsasti tarvis mingit osa koodist testida, ent üks teine osa jääb millegipärast ette. Kas on tõesti tarvis ettejääv osa ära koristada teelt? Ei, saab ka lihtsamini – kommenteerida lõik välja. Teisalt aitavad kommentaarid teksti selgitada. Kommentaarivaene tekst on tihtipeale kurjast. Tegelikult on ta pea kogu aeg kurjast. Kommenteerimata koodi on väga raske lugeda iseendalgi, kui kirjutamisest on palju aega möödas. Juurde aitavad küll selgitavad muutujad, ent muutujatest ei piisa. Kui kommentaare ei ole, ei pruugi kõrvalseisja välja jagada isegi seda, mida programm tegema peaks.&lt;br /&gt;
&lt;br /&gt;
''Programmeerimiskeeles C++ on kommentaare kahte sorti. Ühed, mis kommenteerivad kommentaaritähise algusest rea lõpuni, ning teised, mis kommenteerivad välja kasvõi terve faili kui vaja. Esimesi tähistatakse topeltkaldkriipsuga // ning teised käivad /* ja */ vahele (antud juhul oleks sõna „ja” välja kommenteeritud).&lt;br /&gt;
&lt;br /&gt;
C++ laadsed ühe rea kommentaarid on lubatud ka C99 standardis tavalises C's.''&lt;br /&gt;
&lt;br /&gt;
=== Muutuja ===&lt;br /&gt;
&lt;br /&gt;
Muutujad, nagu enne räägitud, on täht/tähed, millele saab omistada mingeid väärtusi, ent ometigi ei saa kõikidele muutujatele ükskõik mis tüüpi väärtust omistada. Näiteks ei saa arvmuutujale omistada tekstmuutuja väärtust või täisarv-tüüpi muutujale ujukomaarv-tüüpi väärtust.&lt;br /&gt;
&lt;br /&gt;
Üldiselt on olemas päris palju erinevaid muutujatüüpe. Mõnda neist ka siinkohal lähedamalt vaatleme.&lt;br /&gt;
&lt;br /&gt;
'''''Int''''' (ehk täisarv):&lt;br /&gt;
&lt;br /&gt;
Integer-tüüpi muutujale saab omistada ainult täisarvulisi väärtusi, st näiteks 10, 150 aga ka 1239, aga ei saa omistada komaga väärtusi, nagu 27,5 või 2933,93929. Sõltuvalt süsteemist on ta võimeline saama erinevate vahemikega väärtusi.&lt;br /&gt;
&lt;br /&gt;
 '''16bitised süsteemid''' – vahemikus &amp;lt;code&amp;gt;-32 768&amp;lt;/code&amp;gt; kuni &amp;lt;code&amp;gt;32 767&amp;lt;/code&amp;gt;&lt;br /&gt;
 '''32bitised süsteemid''' – vahemikus &amp;lt;code&amp;gt;-2 147 483 648&amp;lt;/code&amp;gt; kuni &amp;lt;code&amp;gt;2 147 483 648&amp;lt;/code&amp;gt;&lt;br /&gt;
 '''64bitised süsteemid''' – vahemikus &amp;lt;code&amp;gt;-9 223 372 036 854 775 808&amp;lt;/code&amp;gt; kuni &amp;lt;code&amp;gt;9 223 372 036 854 775 807&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nagu näha omavad erinevates süsteemides täisarvud teistsuguseid väärtuste vahemikke. Kui vanade protsessoritega (16bitistega) sai opereerida täisarvudega maksimaalselt 65000 kohta, siis 32bitised protsessorid (Intel Pentiumist alates) olid võimelised juba kordades suuremate arvudega opereerima ning 64bitised (AMD Athlon 64, Intel EM64T) protsessorid on võimelised opereerima veelgi suuremate arvudega.&lt;br /&gt;
&lt;br /&gt;
Ometigi on võimalik välja kutsuda ka vanemate süsteemide muutujatüüpe, kasutades '''''__int8, __int16, __int32''''' ja '''''__int64''''' või siis C99 standardile vastavalt '''''int8_t, int16_t, int32_t''''' ja '''''int64_t''''' &lt;br /&gt;
&lt;br /&gt;
Mis nende vahe on? Mälukohtade tarbimise vahe. 8bitine ja 16bitine täisarv kasutavad mõlemad 1 baidi mälust. 32bitine võtab juba 2 baiti ning 64bitine täisarv 4 baiti. Aga milles küsimus? Me ei ela ju enam 64 kilobaidi-ajastul. Aga selles on asi, et suurte programmide puhul kus ei ole mitte käputäis vaid paar(kümmend)tuhat muutujat on asi hoopis teine.&lt;br /&gt;
&lt;br /&gt;
Veel on olemas muutujatüübid nagu '''''short''''' ja '''''long'''''. '''''Short''''' ei ole tegelikult mitte midagi muud kui 16bitine täisarv vahemikus &amp;lt;code&amp;gt;-32 768&amp;lt;/code&amp;gt; kuni &amp;lt;code&amp;gt;32 767&amp;lt;/code&amp;gt; ning long on 32bitine täisarv vahemikus &amp;lt;code&amp;gt;-2 147 483 648&amp;lt;/code&amp;gt; kuni &amp;lt;code&amp;gt;2 147 483 648&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lisaks saab eelpool mainitud '''''short'''''’ile ja '''''long'''''’ile lisada eesliited '''''unsigned'''''. '''''Unsigned short''''' (kui muidu on '''''signed short''''') võib olla vahemikus 0 kuni &amp;lt;code&amp;gt;65 535&amp;lt;/code&amp;gt; ning unsigned long vahemikus 0 kuni &amp;lt;code&amp;gt;4 294 967 295&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Seejärel ujukomaarvud '''''float, double''''' ja '''''long double'''''. '''''Float''''' on kõige väiksem ujukomaarv, võtab mälus 4 baiti ning maksimaalseks suuruseks on &amp;lt;code&amp;gt;3,4*10&amp;lt;sup&amp;gt;+/-38&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;. Double on natuke ulatuslikum, võttes mälus 8 baiti ning vahemikuks &amp;lt;code&amp;gt;1,7*10&amp;lt;sup&amp;gt;+/-308&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;. Lõpuks on long double mis on neist kahest suurim (10 baiti) ning ulatuslikeim: &amp;lt;code&amp;gt;1,2*10&amp;lt;sup&amp;gt;+/-4932&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Viimaseks võiks ära mainida tekstmuutujad, millest kasutatavaim on '''''char'''''. Nimelt on char-tüüpi muutuja võimeline sisaldama endas ühte tähte. Kui temast teha massiiv, on ta ka võimeline sisaldama tervet stringi.&lt;br /&gt;
&lt;br /&gt;
=== Päisefailid ===&lt;br /&gt;
Päisefailid (headerid) on tavaliselt failid, mis sisaldavad programmi muutujaid, et hoida programmi koodis korda ja vajadusel oleks nt kindlat muutujat kerge üles leida. Peaaegu iga programmi koodis võib leida päisefaile. C++is on päisefailidel laiendiks &amp;quot;.h&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Telempe</name></author>
	</entry>
	<entry>
		<id>http://wiki.hinnavaatlus.ee/index.php?title=Millist_programmi_kasutada_veebilehtede_tegemiseks&amp;diff=3485</id>
		<title>Millist programmi kasutada veebilehtede tegemiseks</title>
		<link rel="alternate" type="text/html" href="http://wiki.hinnavaatlus.ee/index.php?title=Millist_programmi_kasutada_veebilehtede_tegemiseks&amp;diff=3485"/>
		<updated>2007-02-28T20:09:06Z</updated>

		<summary type="html">&lt;p&gt;Telempe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategooria:Tarkvara]]&lt;br /&gt;
&lt;br /&gt;
Enamasti, kui kusagil foorumis seda küsimust küsitakse, pakub keegi, et algajatele on hea programm ''Microsoft Frontpage'' ning edasijõudnule ''Macromedia Dreamweaver''. Seejärel teatab keegi, et Frontpage on saatanast ning selle programmi kasutamine võrdeline seitsme surmapatu üheaegse sooritamisega. Peale seda tuleb kümmekond lühikest postitust stiilis &amp;quot;isiklikult kasutan Dreamweaverit&amp;quot;, mispeale ärkavad oma raalide taga Linuxi poisid ja teatavad, et neil on HTML-i (ja kõikmõeldava muu) koodi kirjutamiseks Vi või Emacs (ning võimaluse korral alustavad vaidlust, kumb on parem). Muidugi taipab keegi sinna vahepeale kirjutada, kui hea HTML-i kirjutamise programm on Notepad, mispeale tuleb jutt sellest, et Notepadil pole ''syntax-highlite'''i ning veel sadat muud olulist funktsiooni.&lt;br /&gt;
&lt;br /&gt;
Ühesõnaga - jäta see küsimus foorumis küsimata ning loe edasi.&lt;br /&gt;
&lt;br /&gt;
==WYSIWYG v/s HTML-i käsitsi kirjutamine==&lt;br /&gt;
&lt;br /&gt;
===WYSIWYG===&lt;br /&gt;
See, kas kasutada lehe tegemiseks graafilist WYSIWYG programmi või kirjutada HTML-i käsitsi, taandub paljuski küsimusele [[kuidas teha veebilehte]].&lt;br /&gt;
&lt;br /&gt;
Kuna ka kõige paremat WYSIWYG programmi kasutades tuleb teatud tulemuste saavutamiseks ikkagi käsitsi HTML-i muuta, siis on eelistatud sellised WYSIWYG redaktorid, mis käsitsi kirjutatud koodi oma suva järgi ümber ei formaadi või - mis veelgi hullem - hoopistükkis eemalda. Näiteks ''Microsoft Frontpage'' ja ''Mozilla Composer'' muudavad käsitsi kirjutatud koodi väljanägemise selliseks, nagu nende arust on parem.&lt;br /&gt;
&lt;br /&gt;
Levinuimateks WYSIWYG redaktoriteks on ''Macromedia Dreamweaver'' ja ''Microsoft Frontpage''. Kuna [[Millist programmi kasutada veebilehtede tegemiseks#Frontpage on saatanast|Frontpage on saatanast]], siis parem on kasutada Dreamweaverit. Kui muidugi rahakott kannatab, sest mõlemad programmid on tasulised.&lt;br /&gt;
&lt;br /&gt;
Kui sind huvitavad vabavaralised WYSIWYG'id, siis kahjuks tuleb tõdeda, et seni veel jäävad viimased tasulisele tarkvarale parasjagu maad alla. Sinu põhilisteks valikuteks on ''Mozilla Composer'' ja tollel baseeruv ''NVU''.&lt;br /&gt;
&lt;br /&gt;
===HTML käsitsi===&lt;br /&gt;
&lt;br /&gt;
Programme millega HTML-i käsitsi kirjutada on mustmiljon. Enda jaoks sobiliku programmi valimisel võivad sõltuvalt inimesest määravaks saada väga erinevad kriteeriumid, alates sellest, millise operatsioonisüsteemi peal programm jookseb, kui selleni, milline on su usutunnistus (vihje: Vi/Emacs).&lt;br /&gt;
&lt;br /&gt;
Allpool on ära toodud pikem [[Millist programmi kasutada veebilehtede tegemiseks#Tarkvara|nimekiri programmidest]], et su valikutegemist lihtsustada.&lt;br /&gt;
&lt;br /&gt;
==Frontpage on saatanast==&lt;br /&gt;
&lt;br /&gt;
Miks siis langeb see programm nii tihti paljude veebitegijate tulise kriitika alla?&lt;br /&gt;
&lt;br /&gt;
Frontpage on tuntud selle poolest, et kirjutab veebilehe koodi palju mitmesugust ebavajalikku infot, sealhulgas spetsiifilisi Microsofti HTML-i laiendusi, millest on ehk kasu vaid Internet Explorer'ile ja Frontpage'le endale. Standarditele vastavat koodi (mis valideeruks) on Frontpage'ga luua pea võimatu.&lt;br /&gt;
&lt;br /&gt;
Omaette ooperiks on Frontpage mallide süsteem, mis võib ühe tillukese veebilehe jaoks tarvilike failide koguse ajada megabaitideni.&lt;br /&gt;
&lt;br /&gt;
Veelgi ebameeldivaks muutuvad lood siis, kui soovid koos Frontpage'ga kasutada ka serveripoolset skriptimist. Sellisel juhul on tarvis, et serveris oleks spetsiaalsed Frontpage Extension'id.&lt;br /&gt;
&lt;br /&gt;
Või nagu ütleb [http://www.webpagesthatsuck.com/ Vincent Flanders]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Alati kui sa satud lehele, mis paneb su mõtlema selle üle, kas Jeesus suri ikka asja eest, siis on tõenäoline, et see leht on loodud Microsoft'i (Af)FrontPage'ga.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Võibolla sellepärast siis ei kasutagi Microsoft oma Frontpage'i loomaks lehekülgi Microsoft.com-is - isegi mitte neid, mis räägivad Frontpage'st. Aga kui Microsoft seda ei kasuta, miks peaksid siis sina?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notepad on liialt primitiivne==&lt;br /&gt;
&lt;br /&gt;
Olles välja praakinud Frontpage jääb sõelale veel üks Microsofti programm, mida algajatele veebilehtede loomiseks soovitatakse - Notepad.&lt;br /&gt;
&lt;br /&gt;
Kuigi on tõsi, et iga veebileht on teostatav kasutades vaid Notepad'i, jääb praktikas Notepadi poolt pakutavatest võimalustest siiski väheseks. Mis siis on Notepadi puudused?&lt;br /&gt;
&lt;br /&gt;
;Puudub süntaksi värvimine:see funktsioon on nüüdseks enamusel tekstiredaktoritel.&lt;br /&gt;
;Tunnistab vaid CRLF realõppe:kuna enamik veebilehti asub UNIX-il baseeruvates serverites, siis on veebilehtede koodis enamasti realõpuks vaid LF (line feed kood), mida Notepad aga reavahetusena ei tõlgenda ning sellised failid näevad Notepadiga avades välja nagu üks pikk-pikk rida teksti.&lt;br /&gt;
;piiratud undo:''ma nüüd siinkohal ei mäleta, kui mitu korda saab Notepad'iga Ctrl+Z vajutada - igatahes oli seda vähe.''&lt;br /&gt;
;SDI:võimalik avada vaid üks fail korraga.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notepad'i kasutamisel on aga ka mõningad plussid. Näiteks oskab ta salvestada teksti UTF-8 kodeeringus, mida võimaldavad väga vähesed Windowsi tekstiredaktorid.&lt;br /&gt;
&lt;br /&gt;
==Tarkvara==&lt;br /&gt;
&lt;br /&gt;
===WYSIWYG HTML redaktorid===&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
*[http://www.macromedia.com/software/dreamweaver/ Macromedia Dreamweaver] (tasuline)&lt;br /&gt;
*[http://www.microsoft.com/frontpage/ Microsoft Frontpage] (tasuline)&lt;br /&gt;
*[http://www.mozilla.org/products/mozilla1.x/ Mozilla Composer]&lt;br /&gt;
*[http://www.namo.com/products/webeditor.php Namo WebEditor 2006 suite] (tasuline)&lt;br /&gt;
*[http://wp.netscape.com/communicator/composer/v4.0/index.html Netscape Composer]&lt;br /&gt;
*[http://www.nvu.com/ Nvu] (loodud Mozilla Composer'i baasil)&lt;br /&gt;
&lt;br /&gt;
====Linux/UNIX====&lt;br /&gt;
*[http://www.mozilla.org/products/mozilla1.x/ Mozilla Composer]&lt;br /&gt;
*[http://www.nvu.com/ Nvu] (loodud Mozilla Composer'i baasil)&lt;br /&gt;
&lt;br /&gt;
===Tekstipõhised HTML redaktorid===&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
*[http://www.evrsoft.com/ 1st Page 2000]&lt;br /&gt;
*[http://software.visicommedia.com/en/products/acehtmlfreeware/ AceHtml Freeware]&lt;br /&gt;
*[http://www.w3.org/Amaya/ Amaya]&lt;br /&gt;
*[http://www.aptana.com/ Aptana]&lt;br /&gt;
*[http://www.ceditmx.com/ cEdit]&lt;br /&gt;
*[http://www.emeditor.com/ EmEditor]&lt;br /&gt;
*[http://www.chami.com/html-kit/ HTML-Kit] (Ülimalt kohandatav ja programmi jaoks on saadaval ka hulgaliselt pluginaid.)&lt;br /&gt;
&lt;br /&gt;
====Linux/UNIX====&lt;br /&gt;
*[http://www.w3.org/Amaya/ Amaya]&lt;br /&gt;
*[http://bluefish.openoffice.nl/ Bluefish]&lt;br /&gt;
*[http://quanta.kdewebdev.org/ Quanta Plus]&lt;br /&gt;
*[http://www.screem.org/ Screem]&lt;br /&gt;
&lt;br /&gt;
===Üldotstarbelised tekstiredaktorid===&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
*[http://www.context.cx/ ConTeXT]&lt;br /&gt;
*[http://www.editplus.com/ EditPlus] (tasuline)&lt;br /&gt;
*[http://pnotepad.org/ Programmers Notepad]&lt;br /&gt;
*[http://www.pspad.com/ PSPad]&lt;br /&gt;
*[http://www.scintilla.org/SciTE.html SciTe]&lt;br /&gt;
*Notepad&lt;br /&gt;
&lt;br /&gt;
====Linux/UNIX====&lt;br /&gt;
*[http://www.gnu.org/software/emacs/emacs.html GNU Emacs]&lt;br /&gt;
*[http://www.gnome.org/projects/gedit/ gedit]&lt;br /&gt;
*[http://kate.kde.org/ Kate]&lt;br /&gt;
*[http://www.nano-editor.org/ nano]&lt;br /&gt;
*[http://www.vim.org/ Vim]&lt;br /&gt;
&lt;br /&gt;
''(See nimekiri vajab tublit täiendamist.)''&lt;/div&gt;</summary>
		<author><name>Telempe</name></author>
	</entry>
	<entry>
		<id>http://wiki.hinnavaatlus.ee/index.php?title=Allkiri&amp;diff=2979</id>
		<title>Allkiri</title>
		<link rel="alternate" type="text/html" href="http://wiki.hinnavaatlus.ee/index.php?title=Allkiri&amp;diff=2979"/>
		<updated>2006-05-29T19:18:01Z</updated>

		<summary type="html">&lt;p&gt;Telempe: Keelekorrektuur&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategooria:HV]]&lt;br /&gt;
==Mis on allkiri?==&lt;br /&gt;
Allkiri ehk signatuur lisatakse soovi korral sinu sõnumitele. Allkiri võib olla maksimaalselt 255 tähemärgi pikkune ja 3 standardsuuruses tähemärgi kõrgune.&lt;br /&gt;
==Pildi sisestamine allkirja==&lt;br /&gt;
Faili maht maksimaalselt 3KB (3072 baiti). Pilt ei tohi liikuda ega mõõtmetelt liiga suur olla. Maksimaalsed mõõtmed on 200x40 pikslit, mitme pildi korral ei tohi mõõtmed ja kogumaht ületada eelmainitud piiranguid. Sisestatud pilt/pildid peab olema igal hetkel kättesaadav.&lt;br /&gt;
&lt;br /&gt;
Administraatoritel on õigus reegleid või häid tavasid rikkuvatel kasutajatel allkirja kasutamine keelata. &lt;br /&gt;
&lt;br /&gt;
Lisainfo [http://foorum.hinnavaatlus.ee/viewtopic.php?t=89881 siit]&lt;br /&gt;
Kehtivad piirangud leiab [http://foorum.hinnavaatlus.ee/restricted_users.php siit]&lt;br /&gt;
&lt;br /&gt;
== Kuidas ma oma allkirja kasutamise õiguse tagasi saaks? ==&lt;br /&gt;
Kõige lihtsam – oota kuni aegumine täis saab.&lt;br /&gt;
Kui aegumist ei ole (märgitud &amp;quot;käsitsi&amp;quot;), pead erijärgu panijaga ühendust võtma ning siis selgub, mis saab edasi.&lt;br /&gt;
== Kuidas lisada postitusele allkirja? ==&lt;br /&gt;
Esiteks pead sa profiilis omale allkirja salvestama. Teiseks pead sa märgistama sõnumi kirjutamise menüüs kasti &amp;quot;lisa allkiri&amp;quot;. Kui tahad allkirja lisada kõikidele postitustele, siis märgista profiilis kast &amp;quot;Lisa kõigile postitustele minu allkiri&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Telempe</name></author>
	</entry>
	<entry>
		<id>http://wiki.hinnavaatlus.ee/index.php?title=CMD_ja_BAT_-_nipid_ja_trikid&amp;diff=2978</id>
		<title>CMD ja BAT - nipid ja trikid</title>
		<link rel="alternate" type="text/html" href="http://wiki.hinnavaatlus.ee/index.php?title=CMD_ja_BAT_-_nipid_ja_trikid&amp;diff=2978"/>
		<updated>2006-05-29T19:12:17Z</updated>

		<summary type="html">&lt;p&gt;Telempe: Kirjavead&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Programmeerimine]]&lt;br /&gt;
&lt;br /&gt;
==CMD.EXE ja COMMAND.COM interpretaatoritele skriptimise nippe ja trikke==&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Lasciate ogni speranza, voi ch'entrate!&amp;quot;'' (&amp;quot;Kõik lootus jätke, astudes siit sisse!&amp;quot;)&lt;br /&gt;
&amp;lt;br&amp;gt;Dante Alighieri, &amp;quot;Jumalik komöödia&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Sissejuhatus ja tavapärane disklaimer===&lt;br /&gt;
&lt;br /&gt;
* Käesolev juhend ei pretendeeri vähimalgi määral olema skriptima õppimise juhend algajatele, kuigi sissejuhatuses on toodud mõned selgitavad märkused. Eelkõige peaks see olema [[kokaraamat]], mida algaja skriptija saab mõne keerukama tüüpülesande jaoks kasutada lihtsalt copy-paste abil.&lt;br /&gt;
&lt;br /&gt;
* CMD ja COMMAND süntaks on erakordselt jube ja kultiveerib erakordselt halbu programeerimisharjumusi (eeldefineerimata muutujate kasutamine, tüübistamata muutujad, GOTO kasutamine jne.) Teid on hoiatatud! &lt;br /&gt;
&lt;br /&gt;
* Mõlemad keeled on üpris primitiivsed imperatiivsed keeled ja nendes lahenduse realiseerimise keerukus kasvab oluliselt kiiremini, kui ülesande keerukus.  See tähendab, et probleemide arenedes keerustumise suunas, tuleb paratamatult kätte piir, kus on mõistlik senine skript maha jätta ja probleemi tuum realiseerida mõnes 'päris' keeles.  Ära kunagi karda seda sammu!&lt;br /&gt;
&lt;br /&gt;
* koodinäite ette paigutatud COMMAND tähendab, et antud skript on ühilduv command.com ja cmd.exe interpretaatoritega. Märge CMD tähistab ainult cmd.exe ühilduvat koodi. Märge META tähistab metasüntaksis koodi. Näidetes leiduvad '''foo''' ja '''bar''' on üldlevinud metasüntaktilised muutujad. Eesti keeli: neid võib kasutada vabalt valitavate nimega failide, muutujate, alamprotseduuride jms. tähistamiseks või metasüntaksis kirjutatud näidetes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====COMMAND.COM====&lt;br /&gt;
MS-DOS operatsioonisüsteemi kestaks (shell) on käsuinterpretaator command.com. Command.com suhtleb kasutajaga dialoogrežiimis (peale sisestusklahvi ENTER vajutamist täidetakse koheselt antud käsk ja väljastatakse tulemus). Command.com on UNIXist tuntud kestprogrammidega (bash, tcsh, sh, korn jne) võrreldes üsna primitiivne samuti, on tema utiliitide (aka väliskäskude) komplekt kehvapoolne (puuduvad näiteks mõistlikud stringitöötluse vahendid, MS-DOS'i ainutegumilise iseloomu tõttu pole standardsete sisend-väljundvoogude realisatsioon kuigi mõistlik jne.)  Siiski on command.com abil võimalik ühte-teist korda saata. Abiks on siinkohal command.com oskus töödelda käske nn. &amp;quot;batch&amp;quot; rezhiimis.&lt;br /&gt;
Command.com interpretaatorisse ehitatud sisekäsud (näiteks DIR, COPY, DEL jne.) ja eraldi programmidena realiseeritud väliskäsud (MODE, APPEND jne.) moodustavad DOSi käsustiku.&lt;br /&gt;
Kõiki DOSi sise ja väliskäske, samuti suvalisi käivitusfaile saab panna spetsiaalsesse skriptifaili (batch-faili), mida command.com ridahaaval interpreteerib. Sellel rezhiimil täidetakse kõik käsud järjest, nii nagu nad failis on, ja väljatatakse tulemused. Faili laiend peab olema .BAT, sest mingil veidral põhjuselt tavatsevad kõik Microsofti operatsioonisüsteemid otsustada faili sisu üle tema laiendi alusel.&lt;br /&gt;
Command.com on olemas ka Windows 9x seeria operatsioonisüsteemides. Command.com on 16-bitine käsuinterpretaator mis töötab real-modes v. Windowsi keskonnast käivitades virtual-real modes.&lt;br /&gt;
&lt;br /&gt;
====CMD.EXE====&lt;br /&gt;
Koos täielikult 32bitise operatsioonisüsteemiga (NT 3.51) laskis Microsoft välja ka uue - 32bitise käsuinterpretaatori CMD. Kahjuks puudub mul täpsem informatsioon NT 3.51 eripärade kohta, seetõttu kehtib kõik järgnev NT4 ja uuemate (2K, XP, 2K3) kohta. CMD käsustik on command.com käskude ülemhulk. Eesti keeli: CMD oskab kõike seda mis COMMAND ja veel palju rohkem. Vahel nimetatakse CMD kasutamist ekslikult &amp;quot;DOSi käskudeks&amp;quot;. See on vale, sest CMD on täisvereline 32bitine kaitstud rezhiimi kestprogramm - tõsi küll, harjumuspärastest Windowsi programmidest eristab teda graafilise liidese puudumine. Windows NT seeria koosseisus on olemas ka vana command.com mida jooksutatakse MS-DOSi emuleerimise keskkonnas, aga ilma erivajaduseta pole põhjust seda kasutada. Ka CMD oskab käsujadasid täita &amp;quot;batch&amp;quot; režiimis. CMD käsuskripti laiendina on soovitav kasutada .CMD, siis teab süsteem, et skripti interpreteerimiseks tuleks kindlasti kasutada CMD.EXE interpretaatorit. &lt;br /&gt;
CMD laiendatud võimalused, olgugi napid, annavad juba lihtsama interpreteeriva programeerimiskeele võimekuse välja.&lt;br /&gt;
&lt;br /&gt;
====Millal on otstarbekas käsuskripte kasutada?====&lt;br /&gt;
Ilmselt siis kui me soovime automatiseerida mõnda lihtsamat korduvat tegevust, mille jaoks pole mõtet hakata 'päris' programmi kirjutama. Või soovime korduvalt teostada mõnda ülesannet mille tarbeks operatsioonisüsteemis on utiliit juba olemas, lihtsalt tema töö tuleks automatiseerida. Näiteks: mingi hosti korduv pingimine ja võrgukatkestuse korral häire saatmine. Failide massiline kopeerimine -- lihtsamat sorti varundus, suure hulga failide ümber nimetamine kindlate reeglite alusel vms. Samuti on CMD skript abiks Windows Active Directory administreerimisel. Microsoft ise soovitab selleks otstarbeks kasutada Windows Scripting Host interpretaatorile kirjutatud VBScripti, kuid siin on yks pisikene &amp;quot;AGA&amp;quot;. Vahel on tarvis kõikides domeeni kuuluvates masinates jooksutada mingeid käske kellegi kõvema kui kasutaja õigustes. Selle jaoks pakub AD võimalust jooksutada skripte arvuti käivitamisel lokaalse kasutaja SYSTEM õigustes. Paraku - startupi ajal pole Windows Scripting Host veel laetud ja meil puudub keskkond/interpretaator VBScritpi täitmiseks. Kasutada saame CMD skripte. CMD/BAT skripti on ka lihtne muuta. Teda ei kompileerita kunagi - igal täitmisel loeb interpretaator skritpi rea kaupa, tõlgib rea &amp;quot;masinakeelde&amp;quot;, täidab ja väljastab tulemuse.&lt;br /&gt;
&lt;br /&gt;
====Miks on nendel juhtudel otstarbekas käsuskripte kasutada?====&lt;br /&gt;
Peamised asjaolud, mis käsuskriptid kasulikuks teeb, on:&lt;br /&gt;
* nende interpretaator tuleb Microsofti operatsioonisüsteemiga kaasa;&lt;br /&gt;
* nende keel on sarnane kõnealuse operatsioonisüsteemi tavalisele käsureale.&lt;br /&gt;
&lt;br /&gt;
Esimene nendest asjaoludest annab käsuskriptidele teiste keelte ees teatava logistilise eelise, teine jälle mõtteilma-eelise -- inimesel, kes oskab käsuridu efektiivselt kasutada, on käsuskriptikeele õppimine veidi lihtsam, kui mõne teise keele õppimine.  Aga paljudes olukordades ei rakendu kumbki nendest eelistest ja skripte võib olla kasulik kirjutada [[Perl]]is, [[VBScript]]is või [[Bash]]is.&lt;br /&gt;
&lt;br /&gt;
====Mõned rehad millega skriptima asumisel tuleks arvestada====&lt;br /&gt;
CMD/COMMAND väliskäskude (utiliitide) väljund on tihitpeale inkonsistentne ja pole ilma eelneva parsimiseta torudes (pipe) kasutuskõlbulik.&lt;br /&gt;
&lt;br /&gt;
Näide:&lt;br /&gt;
 date /T&lt;br /&gt;
 R 28.04.2006&lt;br /&gt;
Niisugust kuupäeva väljastuse vormingut ei ole Windowsi seadetes määratud! Seal on kuupäeva lühikese esituse vormiks 28.04.2006 ja pikaks esituseks 28. aprill 2006. a. Paraku lisab &amp;lt;tt&amp;gt;DATE&amp;lt;/tt&amp;gt; utiliit väljundisse &amp;quot;omaenese tarkusest&amp;quot; nädalapäeva.&lt;br /&gt;
&lt;br /&gt;
====Sissejuhatuse lõpetuseks klassikaline näiteprogramm====&lt;br /&gt;
&amp;lt;br&amp;gt;COMMAND&lt;br /&gt;
 @ECHO OFF&lt;br /&gt;
 ECHO Hello World&lt;br /&gt;
Esimene rida seab interpretaatori töörežiimile kus väljastatakse ainult see mida käskudel öelda on (vaikimisi väljastab interpretaator ka käsud päras muutujate laiendamist -- see on silumisel väga abiks). Teine rida väljastab teksti &amp;quot;Hello World&amp;quot;.&lt;br /&gt;
Asudes tõsisemalt skriptima, on @ECHO OFF mõtekas esialgu välja kommmenteerida, et tõrgete tekkimisel näha, millise rea täitmisel viga tekkis.  Keerukamate skriptide puhul tasub ka kajamise ajutist sisselülitamist kahtlase skriptiosa ümber -- käsu &amp;quot;@ECHO OFF&amp;quot; paariline on &amp;quot;@ECHO ON&amp;quot;.&lt;br /&gt;
&amp;lt;br&amp;gt;COMMAND&lt;br /&gt;
 REM @ECHO OFF&lt;br /&gt;
 ECHO Hello World&lt;br /&gt;
REM on lühend inglise keelsest sõnast REMARK ja tähistab kommentaari.&lt;br /&gt;
&lt;br /&gt;
==Nipid ja Trikid==&lt;br /&gt;
&lt;br /&gt;
===Kuidas tekitada tühja faili===&lt;br /&gt;
&lt;br /&gt;
Enamasti kasutatakse selleks umbes niisugust rida:&lt;br /&gt;
&amp;lt;br&amp;gt;COMMAND&lt;br /&gt;
 echo. &amp;gt; foo.bar&lt;br /&gt;
Tegelikult annab see rida väära st. ülesande tingimustega kokkusobimatu tulemuse, kuna silma järgi tyhjas failis on tegelikult yks reavahetus &amp;lt;tt&amp;gt;0x0D 0x0A&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Õige tulemuse annab niisugune kood:&lt;br /&gt;
&amp;lt;br&amp;gt;COMMAND&lt;br /&gt;
 copy NUL foo.bar&lt;br /&gt;
Nüüd saame me tõesti tühja faili. Paar sõna selgituseks: NUL on spetsiaalfail, mis oma käitub samamoodi nagu *NIX /dev/null. Tegemist on failiga kuhu võib lõpmatult andmeid saata, see fail ei saa iialgi täis, samuti ei saa sealt midagi tagasi. Omamoodi arvuti &amp;quot;must auk&amp;quot;. Erinevalt looduslikust &amp;quot;mustast august&amp;quot;, kust tõesti midaga tagasi ei saa on NUL natukene viisakam. Igale katsele temast midagi lugeda vastatakse viisakalt faililõpusümboliga. Ehk NUL ütleb meile: &amp;quot;mittemidagi, mida ma sulle ei anna, sai siinkohas otsa, seega paneme faili nüüd viisakalt kinni&amp;quot;. Õnneks see ongi täpselt see mida meil vaja on.&lt;br /&gt;
&lt;br /&gt;
===Kuidas tekitada ajutist faili===&lt;br /&gt;
&lt;br /&gt;
Tihtipeale on keerukamate ülesannete implmenteerimiseks CMD skripti abil vaja kasutada ajutisi faile. Kuidas seesuguseid viisakalt tekitada.&amp;lt;br&amp;gt;&lt;br /&gt;
CMD&lt;br /&gt;
 :DO&lt;br /&gt;
 SET myrndtmp=%TEMP%\%RANDOM%.tmp&lt;br /&gt;
 IF EXIST %myrndtmp% GOTO DO &lt;br /&gt;
 COPY NUL %myrndtmp%&lt;br /&gt;
 IF ERRORLEVEL 1 EXIT /B&lt;br /&gt;
 &lt;br /&gt;
 :: Teeme midagi kasulikku &lt;br /&gt;
 ECHO foo &amp;gt; %myrndtmp%&lt;br /&gt;
 TYPE %myrndtmp%&lt;br /&gt;
 &lt;br /&gt;
 DEL /Y %myrndtmp%&lt;br /&gt;
Mis meil siin siis toimub? Esiteks seatakse ajutise faili täisnimi (faili nimi koos täieliku teega). Selleks kysitakse süsteemilt ajutiste failide hoidmiseks määratud kataloogi &amp;lt;tt&amp;gt;%TEMP%&amp;lt;/tt&amp;gt; ning juhuslikku arvu vahemikus 0..32767 (&amp;lt;tt&amp;gt;%RANDOM%&amp;lt;/tt&amp;gt;). Kontrollitakse ega niisugune fail juba ei eksisteeri. Kui juhtub, et niisuguse nimega fail on juba olemas küsitakse uus juhuslik failinimi. Tegevust korratakse seni kuni leitakse &amp;quot;vaba&amp;quot; nimi. Vaba nimi käes, kasutatakse eelmises näites toodud võtet tühja faili loomiseks. Lõpuks kontrollitakse kas faili loomine oli edukas. Kui &amp;lt;tt&amp;gt;COPY&amp;lt;/tt&amp;gt; käsu täitmine mingil põhjusel ebaõnnestus (ketas täis, puudub kirjutusõigus, vigaselt määratud keskkond jms.) katkestatakse koodi täitmine (&amp;lt;tt&amp;gt;EXIT /B&amp;lt;/tt&amp;gt;). Kui töö tehtud, siis on viisakas ajutused failid enda järelt kustutada.&lt;br /&gt;
Paneme tähele, et me ei tea, MIS nimega meile ajutine fail luuakse ja KUHU see täpselt pannakse, aga meie seisukohast pole see absoluutselt oluline, kuna meie jaoks on faili täisnimi alati saadavalt muutujas &amp;lt;tt&amp;gt;%myrndtmp%&amp;lt;/tt&amp;gt; ja sellisel kujul kasutatav.&lt;br /&gt;
&lt;br /&gt;
===Tühikute eemaldamine sõne algusest ja lõpust===&lt;br /&gt;
&lt;br /&gt;
Tihtipeale tekib olukord, kus FOR tsükli abil pikemast tekstist parsitud sõnedele jäävad algusesse ja/või lõppu soovimatud tühikud. Üks võimalus nende eemaldamiseks oleks kasutada CMD alamsõnede eemaldamise funktsionaalsust. Vaatleme järgmist koodi:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;CMD&lt;br /&gt;
 SET test = proov &lt;br /&gt;
 SET test=%test: =%&lt;br /&gt;
Selle koodi täitmisel saab muutuja &amp;lt;tt&amp;gt;test&amp;lt;/tt&amp;gt; väärtusest &amp;quot;[tühik]proov[tühik]&amp;quot; uueks väärtuseks &amp;quot;proov&amp;quot;.&lt;br /&gt;
Kõik oleks ilus, aga kui meil oleks näiteks niisugune sõne &amp;quot; see on proov &amp;quot;, siis uus väärtus &amp;quot;seeonproov&amp;quot; meid vaevalt rahuldab.&lt;br /&gt;
Ainult sõne algusest ja lõpust tühikute eemaldamiseks sobiks paremini niisugune kood:&amp;lt;BR&amp;gt;&lt;br /&gt;
CMD&lt;br /&gt;
 SET b= see on test &lt;br /&gt;
 IF &amp;quot;%b:~0,1%&amp;quot;==&amp;quot; &amp;quot; SET b=%b:~1%&lt;br /&gt;
 IF &amp;quot;%b:~-1%&amp;quot;==&amp;quot; &amp;quot; SET b=%b:~0,-1%&lt;br /&gt;
Kood loeb sõnest esimese märgi ja kui tegu on tühikuga, siis eemaldab selle (sõne uueks väärtuseks omistatakse kõik märgid peale esimese), kui tegu ei ole tühikuga, siis antakse täitmine edasi järgmisele käsule. See toimib analoogselt, lugedes sõnest viimase märgi.&lt;br /&gt;
&lt;br /&gt;
===Kataloog ehk appi ma olen eksinud===&lt;br /&gt;
Jooksvat kataloogi säilitatakse muutujas %cd%&lt;br /&gt;
&amp;lt;br&amp;gt;CMD&lt;br /&gt;
 echo %cd%&lt;br /&gt;
Seame töökataloogiks oma valitud kataloogi ja pärast skripti töö lõppu pöördume tagasi jooksvasse kataloogi&lt;br /&gt;
&amp;lt;br&amp;gt;CMD&lt;br /&gt;
 PUSHD %SYSTEMROOT%&lt;br /&gt;
 ECHO %CD% &lt;br /&gt;
 POPD&lt;br /&gt;
Antud näites kasutame keskkonnamuutujat %SYSTEMROOT% ehk kataloogi kuhu Windows on paigaldatud. Kasutada võib mistahes olemasolevat kataloogi C:\foo\bar. Eriti kasulikuks teeb selle käsu asjaolu, et kasutada on võimalik ka UNC kujul võrguteesid \\foo\bar\fubar mille kasutamist skriptides interpretaator ei luba (PUSHD otsib automaatselt vaba kettatähise ja monteerib selle ajutiselt külge, et skript saaks kasutada &amp;quot;klassikalist&amp;quot; teed. POPD vabastab monteeringu).&lt;br /&gt;
&amp;lt;br&amp;gt;CMD&lt;br /&gt;
 PUSHD \\foo\bar&lt;br /&gt;
 ECHO %CD%&lt;br /&gt;
 POPD&lt;br /&gt;
&lt;br /&gt;
===Rekursiivne DIR===&lt;br /&gt;
Soovime nimekirja kõigist failidest mis asuvad puus jooksvas kataloogist allapoole (ehk kõigi failide ja alamkataloogide failide listing). Siin on võimalik ära kasutada rekursiivse kopeerimisutiliidi, xcopy, võtit /L mis faile ei kopeeri vaid väljastab ainult nimekirja failides mida ta kopeeriks.&lt;br /&gt;
&amp;lt;br&amp;gt;CMD&lt;br /&gt;
 FOR /F &amp;quot;tokens=1 delims=-&amp;gt;&amp;quot; %A IN ('xcopy /L /F /E /S /H /R /C /Y *.* %TEMP%') do echo %A &lt;br /&gt;
For tsükkel on vajalik selleks, et xcopy väljundist kujul &amp;lt;tt&amp;gt;source -&amp;gt; destination&amp;lt;/tt&amp;gt; eemadalda meie jaos mittevajalik &amp;quot;destination&amp;quot; osa.&lt;br /&gt;
Huvitavaid lisavõimalusi pakub xcopy võti /D millega saab otsingule seada alampiiri, millest ajaliselt vanemaid faile ignoreeritakse. &lt;br /&gt;
Xcopy käsu &amp;quot;destinationiks&amp;quot; sobib MISTAHES relaaselt eksisteeriv kataloog.&lt;br /&gt;
&lt;br /&gt;
===Muutujate hilistatud väärtustamine===&lt;br /&gt;
&lt;br /&gt;
CMD interpretaatoril on jabur komme asendada muutjad nende väärtustega mitte siis, kui koodirida täidetakse vaid siis, kui rida interpreteerimiseks ja täitmiseks mällu loetakse. Tegelikult on võimalik sundida CMD-d käituma &amp;quot;päris&amp;quot; interpretaatorite moodi - muutujad asendadatakse nende väärtustega interpreteerimise käigus. Paraku ei ole Microsofti programeerijad suutnud vastavat algoritmi korralikult implementeerida ja &amp;quot;hilistatud väärtustamise&amp;quot; režiimis on koodi täitmine väga aeglane. Seetõttu on see võimalus vaikimisi välja lülitatud. Sisse on seda võimalik lülitada, kutsudes CMD välja võtmega /V&lt;br /&gt;
 CMD /V:ON&lt;br /&gt;
Jäigalt saab hilistatud väärtustamise sisse lülitada muutes registrivõtmete&lt;br /&gt;
 HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion&lt;br /&gt;
(süsteemselt) või&lt;br /&gt;
 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion&lt;br /&gt;
(kasutajapõhiselt) väärtust 0x0 (disabled) või 0x1 (enabled)&lt;br /&gt;
Viimane tegevus pole siiski soovitav, sest nagu öeldud - skripti interpreteerimine muutub KORDADES aeglasemaks. Hilistatud väärtustamise kasutamiseks on mõttekas võtmega /V:ON välja kutusuda alam''shell'' ja tulemused tagastada failis (alamshell ei päranda muutujaid vanemale!).&lt;br /&gt;
&lt;br /&gt;
Vaatleme niisugust näidet:&lt;br /&gt;
&amp;lt;br&amp;gt;CMD&lt;br /&gt;
 set LIST=&lt;br /&gt;
 for %i in (*) do set LIST=%LIST% %i&lt;br /&gt;
 echo %LIST%&lt;br /&gt;
Tundub, et meie muutuja &amp;lt;tt&amp;gt;%LIST%&amp;lt;/tt&amp;gt; väärtuseks peaks saama jooksvas kataloogis asuvate failide nimekiri. Ometi näeme muutja &amp;lt;tt&amp;gt;%LIST%&amp;lt;/tt&amp;gt; väärtusena ainult viimast leitud faili. Miks? Sest CMD väärtustab &amp;lt;tt&amp;gt;%LIST%&amp;lt;/tt&amp;gt; FOR-tsükli lugemisel (sel hetkel sisaldab see tühja väärtust), mitte täitmisel.&lt;br /&gt;
Meil oleks tarvis, et &amp;lt;tt&amp;gt;%LIST%&amp;lt;/tt&amp;gt; saaks väärtuse FOR-tsükli IGAL täitmisel. Siin tulebki appi hilistatud väärtustamise režiim:&lt;br /&gt;
&amp;lt;br&amp;gt;CMD /V:ON&lt;br /&gt;
 set LIST=&lt;br /&gt;
 for %i in (*) do set LIST=!LIST! %i&lt;br /&gt;
 echo %LIST%&lt;br /&gt;
See skript annab juba oodatud tulemuse. Paneme tähele, et lisaks sellele, et meil on interpretaator vaja välja kutsuda õige võtmega, tuleb ka &amp;quot;hilistatud&amp;quot; muutuja välja kutsuda teist moodi kui &amp;quot;tavaline&amp;quot; muutuja -- &amp;lt;tt&amp;gt;!LIST!&amp;lt;/tt&amp;gt;&lt;br /&gt;
Hilistatud muutujaid kasutatakse siis kui &amp;lt;tt&amp;gt;IF-(foo)&amp;lt;/tt&amp;gt; või &amp;lt;tt&amp;gt;FOR-DO&amp;lt;/tt&amp;gt; skoobis on tarvilik väärtustada muutuja ja muutuja väärtust samas skoobis uuesti kasutada.&lt;/div&gt;</summary>
		<author><name>Telempe</name></author>
	</entry>
	<entry>
		<id>http://wiki.hinnavaatlus.ee/index.php?title=Sissejuhatus_programmeerimisse&amp;diff=2977</id>
		<title>Sissejuhatus programmeerimisse</title>
		<link rel="alternate" type="text/html" href="http://wiki.hinnavaatlus.ee/index.php?title=Sissejuhatus_programmeerimisse&amp;diff=2977"/>
		<updated>2006-05-29T18:59:35Z</updated>

		<summary type="html">&lt;p&gt;Telempe: Kirjavead&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Programmeerimine]]&lt;br /&gt;
&lt;br /&gt;
== Programmeerimine ==&lt;br /&gt;
&lt;br /&gt;
Mis on programmeerimine? Programmide loomine? Jah, nii võiks ta kokku võtta küll, ent tegelikkuses ei ole asi sugugi nii lilleline ning keerulisemate programmide tegemine võib võtta aega päevadest aastateni. Suuremad programmid koosnevad miljonitest (kui mitte miljarditest) ridadest koodist ning neid on arendatud aasta(kümne)id.&lt;br /&gt;
&lt;br /&gt;
Programmeerimine koosneb tegelikult paljudest staadiumitest. Tõsi, on võimalik võtta pähe, et „oh, ma nüüd lähen ja teen kohe programmi,” ent kui tõsisemaseks programmeerimiseks läheb, siis sellisest mõtteviisist ei piisa. Programmide loomise mõned etapid on näiteks ideestaadium, disainistaadium, projekteerimise staadium ja siis tuleb alles koodimise osa.&lt;br /&gt;
&lt;br /&gt;
Lisaks on programmeerimise väga heaks eelduseks loogiline mõtlemine ning hea matemaatika. Pikemate programmide puhul tuleb kasuks ka püsivus ning tõenäoliselt mõned unetud ööd. Kui ka natuke muheleda, võiks öelda, et programmeerimine koosneb 90% matemaatikast, 9% loogika ning 0,5% kirjutamist. Ülejäänud 0,5% läheb ettenägematuteks kulutusteks.&lt;br /&gt;
&lt;br /&gt;
Teisalt pole programmeerimine ka lihtsalt mõttetu hunniku teksti kirjutamine (ning kui seda teha viletsalt, ei hakka programm üldse töölegi vaid loobib hunnikute viisi veateateid ning programmi vastu kaob huvi) või terve kuhja graafiliste vidinate kokkulöömine ideega sellest programm teha. Nii mõnedki kasulikud programmid on graafiliselt üpris inetud. Seetõttu üritame selles juhendis teha asja nii lõbusaks kui võimalik.&lt;br /&gt;
&lt;br /&gt;
== Mõisted ==&lt;br /&gt;
&lt;br /&gt;
Siinkohal mõned tähtsamad mõisted mida programmeerimises on tarvilik teada.&lt;br /&gt;
&lt;br /&gt;
*'''Muutuja''' – täht või sõna millele saab omistada väärtust, mida saab omakorda vajalikul momendil muuta. Muutujaks võib olla näiteks tikkude arv toosis – seda arvu saab muuta, või näiteks raamatus lugemata lehekülgede arv – ka see muutub. &lt;br /&gt;
*'''Konstant''' – muutumatu muutuja. Näiteks on konstant matemaatiline tähis ''pii'', ehk &amp;lt;code&amp;gt;3,1415926535897932384626433832795&amp;lt;/code&amp;gt;. See ei muutu. Või arv &amp;quot;e&amp;quot; &amp;lt;code&amp;gt;2.71828&amp;lt;/code&amp;gt;. Üldiselt on konstant mistahes arv-, sõne- (string) või tõeväärtus, mida me oleme oma programmis konstandina defineerinud ja väärtustanud. Konstandi väärtus programmi täitmise käigus muutuda ei saa. Selle poolest erineb konstant muutjast, mille väärtust on võimalik programmi täitmise käigus muuta. &amp;lt;br&amp;gt;Süsteemsed konstandid on eeldefineeritud konstandid, mida pole vaja eraldi defineerida. &amp;lt;br&amp;gt;Tambovi konstant on arv mis liidetakse või lahutatakse, millega korrutatakse või jagatakse arvutatud tulemus, et saada soovitud tulemus. Tambovi konstandi kasutamist peetakse üldiselt taunismisväärseks, kuid reaalsetes programmides tuleb seda liigagi tihti ette.&lt;br /&gt;
 &lt;br /&gt;
*'''Massiiv (array)''' – muutujate kogum. Raamatus on tähed ja leheküljed. Ütleme, et muutuja on lehekülg ning muutuja väärtus on lehekülje sisu. Kuna raamatus on palju lehekülgi siis kõik need leheküljed moodustavad massiivi. Ka poes müüdavad suured pakid tikutoose on tegelikult ju massiiv, sest kui tikutoos on muutuja ning tikkude arv toosis on muutuja väärtus, on need kõik toosid selles suures kilepakendis massiiv. &lt;br /&gt;
&lt;br /&gt;
*'''Kommentaar/kommenteerima''' – lõik(/lõigud) programmitekstis, mis ei leia kajastamist programmi kompileerimises. Lühidalt – kõik kommentaarid jäetakse kompileerimisel arvestamata. Näiteks võib seda kasutada juhul, kui on hirmsasti tarvis mingit osa koodist testida, ent üks teine osa jääb millegipärast ette. Kas on tõesti tarvis ettejääv osa ära koristada teelt? Ei, saab ka lihtsamini – kommenteerida lõik välja. Teisalt aitavad kommentaarid teksti selgitada. Kommentaarivaene tekst on tihtipeale kurjast. Tegelikult on ta pea kogu aeg kurjast. Kommenteerimata koodi on väga raske lugeda iseendalgi, kui kirjutamisest on palju aega möödas. Juurde aitavad küll selgitavad muutujad, ent muutujatest ei piisa. Kui kommentaare ei ole, ei pruugi kõrvalseisja välja jagada isegi seda, mida programm tegema peaks.&lt;br /&gt;
&lt;br /&gt;
''Programmeerimiskeeles C++ on kommentaare kahte sorti. Ühed, mis kommenteerivad kommentaaritähise algusest rea lõpuni, ning teised, mis kommenteerivad välja kasvõi terve faili kui vaja. Esimesi tähistatakse topeltkaldkriipsuga // ning teised käivad /* ja */ vahele (antud juhul oleks sõna „ja” välja kommenteeritud).&lt;br /&gt;
&lt;br /&gt;
C++ laadsed ühe rea kommentaarid on lubatud ka C99 standardis tavalises C's.''&lt;br /&gt;
&lt;br /&gt;
=== Muutuja ===&lt;br /&gt;
&lt;br /&gt;
Muutujad, nagu enne räägitud, on täht/tähed, millele saab omistada mingeid väärtusi, ent ometigi ei saa kõikidele muutujatele ükskõik mis tüüpi väärtust omistada. Näiteks ei saa arvmuutujale omistada tekstmuutuja väärtust või täisarv-tüüpi muutujale ujukomaarv-tüüpi väärtust.&lt;br /&gt;
&lt;br /&gt;
Üldiselt on olemas päris palju erinevaid muutujatüüpe. Mõnda neist ka siinkohal lähedamalt vaatleme.&lt;br /&gt;
&lt;br /&gt;
'''''Int''''' (ehk täisarv):&lt;br /&gt;
&lt;br /&gt;
Integer-tüüpi muutujale saab omistada ainult täisarvulisi väärtusi, st näiteks 10, 150 aga ka 1239, aga ei saa omistada komaga väärtusi, nagu 27,5 või 2933,93929. Sõltuvalt süsteemist on ta võimeline saama erinevate vahemikega väärtusi.&lt;br /&gt;
&lt;br /&gt;
 '''16bitised süsteemid''' – vahemikus &amp;lt;code&amp;gt;-32 768&amp;lt;/code&amp;gt; kuni &amp;lt;code&amp;gt;32 767&amp;lt;/code&amp;gt;&lt;br /&gt;
 '''32bitised süsteemid''' – vahemikus &amp;lt;code&amp;gt;-2 147 483 648&amp;lt;/code&amp;gt; kuni &amp;lt;code&amp;gt;2 147 483 648&amp;lt;/code&amp;gt;&lt;br /&gt;
 '''64bitised süsteemid''' – vahemikus &amp;lt;code&amp;gt;-9 223 372 036 854 775 808&amp;lt;/code&amp;gt; kuni &amp;lt;code&amp;gt;9 223 372 036 854 775 807&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nagu näha omavad erinevates süsteemides täisarvud teistsuguseid väärtuste vahemikke. Kui vanade protsessoritega (16bitistega) sai opereerida täisarvudega maksimaalselt 65000 kohta, siis 32bitised protsessorid (Intel Pentiumist alates) olid võimelised juba kordades suuremate arvudega opereerima ning 64bitised (AMD Athlon 64, Intel EM64T) protsessorid on võimelised opereerima veelgi suuremate arvudega.&lt;br /&gt;
&lt;br /&gt;
Ometigi on võimalik välja kutsuda ka vanemate süsteemide muutujatüüpe, kasutades '''''__int8, __int16, __int32''''' ja '''''__int64''''' või siis C99 standardile vastavalt '''''int8_t, int16_t, int32_t''''' ja '''''int64_t''''' &lt;br /&gt;
&lt;br /&gt;
Mis nende vahe on? Mälukohtade tarbimise vahe. 8bitine ja 16bitine täisarv kasutavad mõlemad 1 baidi mälust. 32bitine võtab juba 2 baiti ning 64bitine täisarv 4 baiti. Aga milles küsimus? Me ei ela ju enam 64 kilobaidi-ajastul. Aga selles on asi, et suurte programmide puhul kus ei ole mitte käputäis vaid paar(kümmend)tuhat muutujat on asi hoopis teine.&lt;br /&gt;
&lt;br /&gt;
Veel on olemas muutujatüübid nagu '''''short''''' ja '''''long'''''. '''''Short''''' ei ole tegelikult mitte midagi muud kui 16bitine täisarv vahemikus &amp;lt;code&amp;gt;-32 768&amp;lt;/code&amp;gt; kuni &amp;lt;code&amp;gt;32 767&amp;lt;/code&amp;gt; ning long on 32bitine täisarv vahemikus &amp;lt;code&amp;gt;-2 147 483 648&amp;lt;/code&amp;gt; kuni &amp;lt;code&amp;gt;2 147 483 648&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lisaks saab eelpool mainitud '''''short'''''’ile ja '''''long'''''’ile lisada eesliited '''''unsigned'''''. '''''Unsigned short''''' (kui muidu on '''''signed short''''') võib olla vahemikus 0 kuni &amp;lt;code&amp;gt;65 535&amp;lt;/code&amp;gt; ning unsigned long vahemikus 0 kuni &amp;lt;code&amp;gt;4 294 967 295&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Seejärel ujukomaarvud '''''float, double''''' ja '''''long double'''''. '''''Float''''' on kõige väiksem ujukomaarv, võtab mälus 4 baiti ning maksimaalseks suuruseks on &amp;lt;code&amp;gt;3,4*10&amp;lt;sup&amp;gt;+/-38&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;. Double on natuke ulatuslikum, võttes mälus 8 baiti ning vahemikuks &amp;lt;code&amp;gt;1,7*10&amp;lt;sup&amp;gt;+/-308&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;. Lõpuks on long double mis on neist kahest suurim (10 baiti) ning ulatuslikeim: &amp;lt;code&amp;gt;1,2*10&amp;lt;sup&amp;gt;+/-4932&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Viimaseks võiks ära mainida tekstmuutujad, millest kasutatavaim on '''''char'''''. Nimelt on char-tüüpi muutuja võimeline sisaldama endas ühte tähte. Kui temast teha massiiv, on ta ka võimeline sisaldama tervet stringi.&lt;br /&gt;
&lt;br /&gt;
=== Päisefailid ===&lt;br /&gt;
Päisefailid (headerid) on tavaliselt failid, mis sisaldavad programmi muutujaid, et hoida programmi koodis korda ja vajadusel oleks nt kindlat muutujat kerge üles leida. Peaaegu iga programmi koodis võib leida päisefaile. C++is on päisefailidel laiendiks &amp;quot;.h&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Telempe</name></author>
	</entry>
	<entry>
		<id>http://wiki.hinnavaatlus.ee/index.php?title=Sissejuhatus_programmeerimisse&amp;diff=2976</id>
		<title>Sissejuhatus programmeerimisse</title>
		<link rel="alternate" type="text/html" href="http://wiki.hinnavaatlus.ee/index.php?title=Sissejuhatus_programmeerimisse&amp;diff=2976"/>
		<updated>2006-05-29T18:57:08Z</updated>

		<summary type="html">&lt;p&gt;Telempe: Kirjavead&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Programmeerimine]]&lt;br /&gt;
&lt;br /&gt;
== Programmeerimine ==&lt;br /&gt;
&lt;br /&gt;
Mis on programmeerimine? Programmide loomine? Jah, nii võiks ta kokku võtta küll, ent tegelikkuses ei ole asi sugugi nii lilleline ning keerulisemate programmide tegemine võib võtta aega päevadest aastateni. Suuremad programmid koosnevad miljonitest (kui mitte miljarditest) ridadest koodist ning neid on arendatud aasta(kümne)id.&lt;br /&gt;
&lt;br /&gt;
Programmeerimine koosneb tegelikult paljudest staadiumitest. Tõsi, on võimalik võtta pähe, et „oh, ma nüüd lähen ja teen kohe programmi,” ent kui tõsisemaseks programmeerimiseks läheb, siis sellisest mõtteviisist ei piisa. Programmide loomise mõned etapid on näiteks ideestaadium, disainistaadium, projekteerimise staadium ja siis tuleb alles koodimise osa.&lt;br /&gt;
&lt;br /&gt;
Lisaks on programmeerimise väga heaks eelduseks loogiline mõtlemine ning hea matemaatika. Pikemate programmide puhul tuleb kasuks ka püsivus ning tõenäoliselt mõned unetud ööd. Kui ka natuke muheleda, võiks öelda, et programmeerimine koosneb 90% matemaatikast, 9% loogika ning 0,5% kirjutamist. Ülejäänud 0,5% läheb ettenägematuteks kulutusteks.&lt;br /&gt;
&lt;br /&gt;
Teisalt pole programmeerimine ka lihtsalt mõttetu hunniku teksti kirjutamine (ning kui seda teha viletsalt, ei hakka programm üldse töölegi vaid loobib hunnikute viisi veateateid ning programmi vastu kaob huvi) või terve kuhja graafiliste vidinate kokkulöömine ideega sellest programm teha. Nii mõnedki kasulikud programmid on graafiliselt üpris inetud. Seetõttu üritame selles juhendis teha asja nii lõbusaks kui võimalik.&lt;br /&gt;
&lt;br /&gt;
== Mõisted ==&lt;br /&gt;
&lt;br /&gt;
Siinkohal mõned tähtsamad mõisted mida programmeerimises on tarvilik teada.&lt;br /&gt;
&lt;br /&gt;
*'''Muutuja''' – täht või sõna millele saab omistada väärtust, mida saab omakorda vajalikul momendil muuta. Muutujaks võib olla näiteks tikkude arv toosis – seda arvu saab muuta, või näiteks raamatus lugemata lehekülgede arv – ka see muutub. &lt;br /&gt;
*'''Konstant''' – muutumatu muutuja. Näiteks on konstant matemaatiline tähis ''pii'', ehk &amp;lt;code&amp;gt;3,1415926535897932384626433832795&amp;lt;/code&amp;gt;. See ei muutu. Või arv &amp;quot;e&amp;quot; &amp;lt;code&amp;gt;2.71828&amp;lt;/code&amp;gt;. Üldiselt on konstant mistahes arv-, sõne- (string) või tõeväärtus, mida me oleme oma programmis konstandina defineerinud ja väärtustanud. Konstandi väärtus programmi täitmise käigus muutuda ei saa. Selle poolest erineb konstant muutjast, mille väärtust on võimalik programmi täitmise käigus muuta. &amp;lt;br&amp;gt;Süsteemsed konstandid, on eeldefineeritud konstandid mida pole vaja eraldi defineerida. &amp;lt;br&amp;gt;Tambovi Konstant on arv mis liidetakse v6i lahutatakse, millega korrutatakse või jagatakse arvutatud tulemus, et saada soovitud tulemus. Tambovi Konstandi kasutamist peetakse üldiselt taunismisväärseks, kuid reaalsetes programmides tuleb seda liigagi tihti ette.&lt;br /&gt;
 &lt;br /&gt;
*'''Massiiv (array)''' – muutujate kogum. Raamatus on tähed ja leheküljed. Ütleme, et muutuja on lehekülg ning muutuja väärtus on lehekülje sisu. Kuna raamatus on palju lehekülgi siis kõik need leheküljed moodustavad massiivi. Ka poes müüdavad suured pakid tikutoose on tegelikult ju massiiv, sest kui tikutoos on muutuja ning tikkude arv toosis on muutuja väärtus, on need kõik toosid selles suures kilepakendis massiiv. &lt;br /&gt;
&lt;br /&gt;
*'''Kommentaar/kommenteerima''' – lõik(/lõigud) programmitekstis, mis ei leia kajastamist programmi kompileerimises. Lühidalt – kõik kommentaarid jäetakse kompileerimisel arvestamata. Näiteks võib seda kasutada juhul, kui on hirmsasti tarvis mingit osa koodist testida, ent üks teine osa jääb millegipärast ette. Kas on tõesti tarvis ettejääv osa ära koristada teelt? Ei, saab ka lihtsamini – kommenteerida lõik välja. Teisalt aitavad kommentaarid teksti selgitada. Kommentaarivaene tekst on tihtipeale kurjast. Tegelikult on ta pea kogu aeg kurjast. Kommenteerimata koodi on väga raske lugeda iseendalgi, kui kirjutamisest on palju aega möödas. Juurde aitavad küll selgitavad muutujad, ent muutujatest ei piisa. Kui kommentaare ei ole, ei pruugi kõrvalseisja välja jagada isegi seda, mida programm tegema peaks.&lt;br /&gt;
&lt;br /&gt;
''Programmeerimiskeeles C++ on kommentaare kahte sorti. Ühed, mis kommenteerivad kommentaaritähise algusest rea lõpuni, ning teised, mis kommenteerivad välja kasvõi terve faili kui vaja. Esimesi tähistatakse topeltkaldkriipsuga // ning teised käivad /* ja */ vahele (antud juhul oleks sõna „ja” välja kommenteeritud).&lt;br /&gt;
&lt;br /&gt;
C++ laadsed ühe rea kommentaarid on lubatud ka C99 standardis tavalises C's.''&lt;br /&gt;
&lt;br /&gt;
=== Muutuja ===&lt;br /&gt;
&lt;br /&gt;
Muutujad, nagu enne räägitud, on täht/tähed, millele saab omistada mingeid väärtusi, ent ometigi ei saa kõikidele muutujatele ükskõik mis tüüpi väärtust omistada. Näiteks ei saa arvmuutujale omistada tekstmuutuja väärtust või täisarv-tüüpi muutujale ujukomaarv-tüüpi väärtust.&lt;br /&gt;
&lt;br /&gt;
Üldiselt on olemas päris palju erinevaid muutujatüüpe. Mõnda neist ka siinkohal lähedamalt vaatleme.&lt;br /&gt;
&lt;br /&gt;
'''''Int''''' (ehk täisarv):&lt;br /&gt;
&lt;br /&gt;
Integer-tüüpi muutujale saab omistada ainult täisarvulisi väärtusi, st näiteks 10, 150 aga ka 1239, aga ei saa omistada komaga väärtusi, nagu 27,5 või 2933,93929. Sõltuvalt süsteemist on ta võimeline saama erinevate vahemikega väärtusi.&lt;br /&gt;
&lt;br /&gt;
 '''16bitised süsteemid''' – vahemikus &amp;lt;code&amp;gt;-32 768&amp;lt;/code&amp;gt; kuni &amp;lt;code&amp;gt;32 767&amp;lt;/code&amp;gt;&lt;br /&gt;
 '''32bitised süsteemid''' – vahemikus &amp;lt;code&amp;gt;-2 147 483 648&amp;lt;/code&amp;gt; kuni &amp;lt;code&amp;gt;2 147 483 648&amp;lt;/code&amp;gt;&lt;br /&gt;
 '''64bitised süsteemid''' – vahemikus &amp;lt;code&amp;gt;-9 223 372 036 854 775 808&amp;lt;/code&amp;gt; kuni &amp;lt;code&amp;gt;9 223 372 036 854 775 807&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nagu näha omavad erinevates süsteemides täisarvud teistsuguseid väärtuste vahemikke. Kui vanade protsessoritega (16bitistega) sai opereerida täisarvudega maksimaalselt 65000 kohta, siis 32bitised protsessorid (Intel Pentiumist alates) olid võimelised juba kordades suuremate arvudega opereerima ning 64bitised (AMD Athlon 64, Intel EM64T) protsessorid on võimelised opereerima veelgi suuremate arvudega.&lt;br /&gt;
&lt;br /&gt;
Ometigi on võimalik välja kutsuda ka vanemate süsteemide muutujatüüpe, kasutades '''''__int8, __int16, __int32''''' ja '''''__int64''''' või siis C99 standardile vastavalt '''''int8_t, int16_t, int32_t''''' ja '''''int64_t''''' &lt;br /&gt;
&lt;br /&gt;
Mis nende vahe on? Mälukohtade tarbimise vahe. 8bitine ja 16bitine täisarv kasutavad mõlemad 1 baidi mälust. 32bitine võtab juba 2 baiti ning 64bitine täisarv 4 baiti. Aga milles küsimus? Me ei ela ju enam 64 kilobaidi-ajastul. Aga selles on asi, et suurte programmide puhul kus ei ole mitte käputäis vaid paar(kümmend)tuhat muutujat on asi hoopis teine.&lt;br /&gt;
&lt;br /&gt;
Veel on olemas muutujatüübid nagu '''''short''''' ja '''''long'''''. '''''Short''''' ei ole tegelikult mitte midagi muud kui 16bitine täisarv vahemikus &amp;lt;code&amp;gt;-32 768&amp;lt;/code&amp;gt; kuni &amp;lt;code&amp;gt;32 767&amp;lt;/code&amp;gt; ning long on 32bitine täisarv vahemikus &amp;lt;code&amp;gt;-2 147 483 648&amp;lt;/code&amp;gt; kuni &amp;lt;code&amp;gt;2 147 483 648&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lisaks saab eelpool mainitud '''''short'''''’ile ja '''''long'''''’ile lisada eesliited '''''unsigned'''''. '''''Unsigned short''''' (kui muidu on '''''signed short''''') võib olla vahemikus 0 kuni &amp;lt;code&amp;gt;65 535&amp;lt;/code&amp;gt; ning unsigned long vahemikus 0 kuni &amp;lt;code&amp;gt;4 294 967 295&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Seejärel ujukomaarvud '''''float, double''''' ja '''''long double'''''. '''''Float''''' on kõige väiksem ujukomaarv, võtab mälus 4 baiti ning maksimaalseks suuruseks on &amp;lt;code&amp;gt;3,4*10&amp;lt;sup&amp;gt;+/-38&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;. Double on natuke ulatuslikum, võttes mälus 8 baiti ning vahemikuks &amp;lt;code&amp;gt;1,7*10&amp;lt;sup&amp;gt;+/-308&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;. Lõpuks on long double mis on neist kahest suurim (10 baiti) ning ulatuslikeim: &amp;lt;code&amp;gt;1,2*10&amp;lt;sup&amp;gt;+/-4932&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Viimaseks võiks ära mainida tekstmuutujad, millest kasutatavaim on '''''char'''''. Nimelt on char-tüüpi muutuja võimeline sisaldama endas ühte tähte. Kui temast teha massiiv, on ta ka võimeline sisaldama tervet stringi.&lt;br /&gt;
&lt;br /&gt;
=== Päisefailid ===&lt;br /&gt;
Päisefailid (headerid) on tavaliselt failid, mis sisaldavad programmi muutujaid, et hoida programmi koodis korda ja vajadusel oleks nt kindlat muutujat kerge üles leida. Peaaegu iga programmi koodis võib leida päisefaile. C++is on päisefailidel laiendiks &amp;quot;.h&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Telempe</name></author>
	</entry>
</feed>