home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 March / Chip_2002-03_cd1.bin / chplus / cecko / CPP / CPP.ZIP / CPP.TXT
Encoding:
Text File  |  1997-03-27  |  17.4 KB  |  431 lines

  1. /* Popis programovacího jazyku C++ 3.1: Fr.Sokolovskÿ
  2. Tento krátkÿ návod vznikl jako nápovêda pro zaçáteçníky C++, kte⌐í jiæ
  3. trochu ovládají Pascal. V tomto návodu je srovnáván Pascal s C++, které
  4. snad pomûæe p⌐epsat nêkteré programy z Pascalu do C++.
  5.  
  6. Dále jsem pouæil p⌐edná¿ky programování v C++, které p⌐edná¿í
  7. ing. M. Virius, CSc. na FJFI ÇVUT. Tímto mu dêkuji za odpovêdi na mé
  8. rûznorodé otázky.
  9.  
  10. Tento krátkÿ Help vznikl prohlídnutím nêkolika programû v C++ a vlastními
  11. zku¿enostmi autora p⌐i uçení C++ a náv¿têvou ví¿e uvedenÿch p⌐edná¿ek.
  12. V¿echny nové poznatky, které jsou ov¿em prakticky vyzkou¿ené, jsou uvedeny
  13. v tomto souboru. Je nutné upozornit, æe pouæívám Borland C++ 3.1 verzi
  14. pro MS-DOS.
  15.  
  16. ------------------------------------------------------------------------
  17.  
  18. ùvodní poznámky:
  19. 1. C++ rozli¿uje malá a velká písmena, pokud napí¿eme místo main => Main
  20.    vznikne chyba p⌐i linkování programu.
  21. 2. Za main jsou nutné kulaté závorky ()!
  22. 3. Rovnêæ jsou nutné závorky i za procedurou, která nemá parametry (narozdíl
  23.    od Pascalu).
  24. 4. Je nutné uvést závorky i p⌐i volání, v p⌐ípadê, æe chceme volat Tisk a
  25.    napsali bychom pouze Tisk; tak se procedura ani nazavolá (p⌐estoæe
  26.    p⌐eklad ani linkování neohlásí chybu).
  27. 5. Mezi { a } se vkládají p⌐íkazy (je obdobou begin
  28.                     end;   v Pascalu).
  29. 6. P⌐íkaz "include" umoæñuje p⌐eçíst ze souboru C++ soubor procedur a funkcí,
  30.    nêco jako USES jméno v Pascalu, zde se soubor vædy znovu p⌐ekládá,
  31.    v Pascalu se p⌐eloæenÿ soubor .TPU pouze p⌐ipojí k vlastnímu .EXE
  32.    souboru. Soubory .h spí¿e p⌐ípomínají (neæ .TPU) soubory, které se
  33.    nahrávají p⌐íkazem Pascalu: {$I jméno}.
  34.    IOSTREAM.H je jednotka s procedurami a funkcemi umoænující tisk dat
  35.    na obrazovce, çtení znakû z klávesnice atd. Jméno souboru je vyjímka,
  36.    u nêhoæ se nerozli¿ují malá a velká písmena (ani MS-DOS je nerozli¿uje).
  37.    Bylo by zajímavé si spustit C++ pod Unixem (Unix rozli¿uje velké a
  38.    malé písmena), abychom zjistili, zda C++
  39.    p⌐evádí znaky ve jménê souboru na velké písmena nebo je p⌐edává tak, jak
  40.    to napí¿e programátor pop⌐. uæivatel (bez p⌐evedení) DOSu...
  41. 7. P⌐íkaz cout umoæñuje standartní vÿstup, pokud není nastaveno jinak,
  42.    provádí se vÿstup na obrazovku (hlavnê mám na mysli p⌐esmêrování vÿstupu,
  43.    kdyæ spou¿tíme soubory EXE,COM).
  44. 8. Za kaædÿm p⌐íkazem (aæ na nêkolik vyjímek) se stejnê jako v Pascalu pí¿í
  45.    st⌐edníky ";".
  46. 9. Deklarace procedury:
  47.    (Procedura je podprogram, kterÿ se volá názvem dané procedury, v C++ je
  48.    nutné p⌐idat (), ikdyæ procedura nemá parametry.)
  49.    void Jméno(parametry);
  50.    viz Pascal:
  51.    procedure Jméno(parametry);
  52. ------------------------------------------------------------------------
  53. 1. P⌐íklad: Definice hlavního programu: */
  54.  
  55. void main()
  56. {
  57. }
  58.  
  59. /* viz Pascal:
  60.  
  61. program main;
  62. begin
  63. end.
  64.  
  65. ------------------------------------------------------------------------
  66. 2. P⌐íklad: Definice procedury Tisk a pouæití: */
  67.  
  68. #include <iostream.h>
  69. void Tisk()
  70. {
  71.  cout << "Zkou¿ka deklarace procedury.";
  72. }
  73.  
  74. void main()
  75. {
  76.  Tisk();
  77. }
  78.  
  79. /* viz Pascal:
  80.  
  81. program main;
  82. procedure Tisk;
  83. begin
  84.  Write('Zkou¿ka deklarace procedury.');
  85. end;
  86.  
  87. begin
  88.  Tisk;
  89. end.
  90.  
  91. ------------------------------------------------------------------------
  92.  
  93. Poznámky:
  94. 1. Existuje nêkolik druhû promênnÿch (stejnê jako v Pascalu):
  95.    tab.1:
  96.    ┌─────────────────┬──────────────┐
  97.    │C++              │Pascal        │
  98.    ├─────────────────┼──────────────┤
  99.    │int              │integer       │
  100.    │unsigned char    │char          │
  101.    │unsigned int     │word          │
  102.    │long             │longint       │
  103.    │long double      │extended      │
  104.    │float            │single        │
  105.    └─────────────────┴──────────────┘
  106. 2. Deklarace promênnÿch: poæití tab.1:
  107.    tab.2:
  108.    ┌─────────────────┬───────────────┐
  109.    │C++              │Pascal         │
  110.    ├─────────────────┼───────────────┤
  111.    │int a;         │var a:integer; │
  112.    │unsigned char a; │var a:char;    │
  113.    │float a;         │var a:single;  │
  114.    │long double a;   │var a:extended;│
  115.    │...  atd.        │               │
  116.    └─────────────────┴───────────────┘
  117. 3. Deklarace funkcí:
  118.    prom Jméno(parametry);
  119.    viz Pascal: prom:=Jméno(parametry);
  120. 4. Pouæití funkce:
  121.    Funkce vrací uvedenou hodnotu (p⌐ed jejím jménem v deklaraci) a volá
  122.    se jejím jménem:
  123.    promênná=funkce(parametry)
  124.    v Pascalu: promênná:=funce(parametry);
  125.    Vÿstup funkce mûæe bÿt pouæit v libovolném p⌐íkazu jako parametr nebo
  126.    ve vzorci.
  127. 5. Vÿstupní hodnota funkce se p⌐edává pomocí p⌐íkazu "return" hodnota, ale
  128.    v Pascalu se p⌐edává do promênné, která se jmenuje stejnê jako funkce,
  129.    v tom je rozdíl mezi C++ a Pascalem.
  130. 6. Není dobré, aby se funkce a promênná jmenovaly stejnê. Potom má p⌐ekadaç
  131.    problémy s odli¿ením a hlasí zbyteçné chyby.
  132. ------------------------------------------------------------------------
  133. 3. P⌐íklad: Definice a pouæití funkce: */
  134. #include <iostream.h>
  135. double mocnina(double x)
  136. {
  137.  return x*x;
  138. }
  139.  
  140. void main()
  141. {
  142.  double a,b;
  143.  b=5;
  144.  a=mocnina(b);
  145.  cout <<"Druhá mocnina je "<<a<<". ";
  146. }
  147.  
  148. /* viz Pascal:
  149. program main;
  150. function mocnina(x:double):double;
  151. begin
  152.  mocnina:=x*x;
  153. end;
  154.  
  155. var a,b:double;
  156. begin
  157.  b:=5;
  158.  a:=mocnina(b);
  159.  Write('Druhá mocnina je ',a,'. ');
  160. end.
  161.  
  162. ------------------------------------------------------------------------
  163.  
  164. Poznámky: Grafika v C++
  165. 1. Grafické procedury pouæívají .BGI soubory stejnê jako v Borland (Turbo)
  166.    Pascalu, mají vesmês stejné jména a téme⌐ stejné parametry.
  167. 2. Standartní grafická knihovna se "p⌐ekvapivê" jmenuje GRAPHICS.H. Opêt
  168.    na zaçátku programu pouæijeme p⌐íkaz "#include <graphics.h>". (viz Pascal
  169.    uses Graph;).
  170. 3. Nutné mít nastavenou cestu k nalezení grafické knihovny v menu
  171.    Options - Directories - ⌐ádka "Include Directories" v dialogu. Zapisování
  172.    prohledávacích cest je stejné jako v Turbo Pascalu, jednotlivé cesty se
  173.    v ⌐ádku oddêlují st⌐edníkem, cesta odpovídá MS-DOSu (nebo systému, pod
  174.    kterÿm C++ pracuje). Dále kvûli linkování programu je dobré mít nastaveno
  175.    v Options - Linker - Libraries - volbu "Graphics library" zatrhnutou
  176.    (za¿krtnutou çi zapnutou), znak [X], stiskem mezerníku.
  177. 4. Dále je dobré mít v aktuálním adresá⌐i nebo v adresá⌐i, odkud spou¿tíme
  178.    p⌐eloæenÿ .EXE soubor, mít BGI soubory nebo programem APPEND MS-DOSu
  179.    nastaven adresá⌐, kde se nachází .BGI soubory. Jinak p⌐i bude nutné p⌐i
  180.    otevírání grafiky (viz bod 5.) nutné psát vædy cestu k BGI souborûm.
  181. 5. Otevírání grafiky (neboli p⌐epnutí PC a monitoru do grafického reæimu)
  182.    provedeme p⌐íkazem: "initgraph (çíslo grafického ovladaçe,çíslo grafického
  183.    módu, cesta ke grafickému ovladaçi)." Otev⌐ení grafiky je umêní: Jednak
  184.    musí uspê¿nê probêhnout kompilace, linkování, spu¿têní programu, nalezení
  185.    .BGI souboru, p⌐eçtení a pokud má správnÿ formát (nap⌐. BGI v Pascalu a
  186.    v C++ z⌐ejmê nejsou stejného formátu, snad nêkteré verze snad budou kompa-
  187.    tibilní...) a musí bÿt dostatek pamêti. Potom (za têchto p⌐edpokladû) se
  188.    úspê¿nê p⌐epne monitor a PC do grafického módu. Nêkdy je lep¿í vzít pod-
  189.    program v Assembleru, nastavit správné çíslo grafického módu a zavolat
  190.    p⌐eru¿ení 10H. Viz Pascal: InitGraph
  191. 6. Je dobré, pokud se otev⌐ení grafiky neda⌐í, si p⌐ekopírovat p⌐íklad programu
  192.    z HELPu:
  193.    a) otev⌐ít nové okno: File - New
  194.    b) napsat "initgraph" a umístit na nêj kurzor a stisknout >CTRL<+>F1<
  195.    c) p⌐íklad k p⌐íkazu "initgraph" uloæit do bloku, pohybem textem stikem
  196.       kláves pro pohyb kurzoru p⌐i stisknutém Shift. Na konci bloku klávesy
  197.       pustit a v menu Edit - Copy a klávesou F6 p⌐eponout do nového okna nebo
  198.       stiskem ESC uzav⌐ít HELP
  199.    d) vyvolat z Clipboard text: Edit - Paste
  200.    Pokud program z HELPu nebude fungovat, zkuste nastavení - viz bod 3. a
  201.    mít BGI soubor - viz bod 4. Pokud ani potom nepude otev⌐ít grafika,
  202.    bude chyba buâ v malé pamêti nebo v grafické kartê çi p⌐i komunikaci
  203.    s grafickou kartou (v takovém p⌐ípadê je dobré vyuæít standartní
  204.    p⌐eru¿ení 10H pro práci s monitorem) a nebo zniçené C++.
  205. 7. Çekání na stisk klávesy: p⌐íkaz: "getch()" - viz Pascal: ReadKey. Dobré
  206.    aby se uæivatel Va¿eho programu mohl dívat na grafickÿ vÿstup po neomezenê
  207.    dlouhou dobu a aæ se vynadívá, stiskne grafickou nebo alfanumerickou
  208.    klávesu.
  209. 8. Vykreslení bodu: "putpixel(x,y,barva)" stejnê jako v Pascalu
  210. 9. Çtení barvy bodu v sou⌐adnicích x,y: "promênná=getpixel(x,y)" stejnê jako
  211.    v Pascalu
  212. 10. Kruænice "circle(x,y,r)" stejnê jako v Pascalu
  213. 11. ùseçka "line(xa,ya,xb,yb)" stejnê jako v Pascalu
  214. 12. Zav⌐ení grafiky: "closegraph()" viz Pascal: CloseGraph
  215. Programování grafiky v C++ 3.1 pod MS-DOSem v porovnání s Pascalem pod
  216. MS-DOSem je témê⌐ stejné, procedury a funkce se vesmês jmenují stejnê a mají
  217. také vesmês stejné parametry jako v Pascalu, navíc v Helpu je nêkolik
  218. funkçních programkû, takæe je zde nebudu uvádêt, snad jen pro ty kte⌐í nemají
  219. help v C++ (coæ je chyba).
  220. ------------------------------------------------------------------------
  221. 4. P⌐íklad: Grafika: */
  222. #include <graphics.h> /* viz: uses Graph; */
  223. #include <stdlib.h> /*pouæit procedura "exit" pro ukonçení programu
  224.     viz Halt(chybovÿ kód) v Pascalu */
  225. #include <stdio.h> /*pouæit "printf" pro tisk na monitor - popsán
  226.     v následující kapitole */
  227. #include <conio.h> /*jednotka, která se podobá CRT v Pascalu*/
  228.  
  229. int main(void) /*zde je hlaví program definován jako funkce (a proç ne???)*/
  230. {
  231.    /* request auto detection */
  232.    int gdriver = DETECT, gmode, errorcode; /* vloæení hodnoty DETECT do
  233.    promênné "gdriver" a její deklarace a deklrace gmode, errorcode */
  234.  
  235.    /* initialize graphics mode */
  236.    initgraph(&gdriver, &gmode, "");
  237.  
  238.    /* read result of initialization */
  239.    errorcode = graphresult(); /* funkce pro zji¿têní, zda probêhlo otev⌐ení
  240.    grafiky v po⌐ádku. */
  241.  
  242.    if (errorcode != grOk)  /* an error occurred */
  243.    {
  244.       printf("Graphics error: %s\n", grapherrormsg(errorcode));
  245.       printf("Press any key to halt:"); /* vÿpis chybové zprávy a ukonçení */
  246.       getch();
  247.       exit(1);             /* return with error code */
  248.    }
  249.  
  250.    /* draw a line */
  251.    line(0, 0, getmaxx(), getmaxy());
  252.  
  253.    /* clean up */
  254.    getch();
  255.    closegraph();
  256.    return 0; /* vrací jako vÿstup programu 0 */
  257. }
  258.  
  259. /*
  260. ------------------------------------------------------------------------
  261. Dal¿í poznámky:
  262. 1. Pokud máme hlavní program jako funkci a poda⌐í se p⌐eloæit a nalinkovat,
  263.    po odstartování .EXE souboru a ukonçení programu se hodnota vrácená pomocí
  264.    "return x" je uloæena do promênné ERRORLEVEL (viz MS-DOS), kterou lze
  265.    testovat v BAT souboru.
  266. 2. Pokud máme hlavní program jako proceduru (void main()), potom je têæké
  267.    zjistit co vrací, neboƒ promênná ERRORLEVEL je na neznámém místê v RAM,
  268.    ale ani se nedá vypsat z BAT souboru, pouze zda je hodnota vêt¿í nebo
  269.    rovna nêjaké zadané hodnotê.
  270.    0 se vrací v p⌐ípadê, æe program byl úspê¿nê, bezchybnê ukonçen.
  271. 3. Podmínka v "if" v C++ se (narozdíl od Pascalu) pí¿e  v závorce, za kterou
  272.    se dá { p⌐íkazy }; else {p⌐íkazy}. Else lze (stejnê jako v Pascalu)
  273.    vynechat. V C++ se podmínka zásadnê pí¿e bez klíçového slova "then" a vædy
  274.    se za blokem p⌐íkazu pí¿e st⌐edník (ikdyæ následuje "else").
  275. 4. Pokud je v podmínce v "if" vyk⌐içník (viz minulÿ p⌐íklad - testování
  276.    chyby p⌐i otev⌐ení grafiky), potom je podmínka znegována (Not v Pascalu).
  277. 5. P⌐íkaz "printf" má vodnê moæností, proto ho popí¿u v p⌐í¿tí kapitole.
  278. 6. "getch" je obdoba ReadKey v Pascalu - çekání na stisk klávesy.
  279. 7. exit(ChybovÿKód) je obdoba Halt(ChybovÿKód) - ukonçení programu.
  280. 8. P⌐i⌐azovací p⌐íkaz "=" (jako v Pascalu, ale bez dvojteçky). Na levé stranê
  281.    je vædy promênná, na pravé stranê mohou bÿt promênné, konstanty nebo
  282.    vÿraz.
  283. 9. Dûleæitá poznámka: parametry procedur a funkcí    (v Pascalu)
  284.    a) promênné p⌐edávané hodnotou: typ JménoPromênné (jménoPromênné:typ)
  285.    b) promênné p⌐edávané odkazem: typ &JménoPromênné (var JménoPromênné:typ)
  286.  
  287.    a) P⌐i p⌐edávání promênné odkazem se pod názvem promênné "myslí" adresa
  288.       v pamêti, takæe promênná se p⌐i volání nekopíruje a zustává pouze
  289.       jednou. Z toho vyplÿvá, æe pokud promênnou zmêníme uvnit⌐ procedury
  290.       nebo funkce, projeví se zmêna promênné i "vnê" procedury. P⌐edávání
  291.       promênné odkazem je stejné jako vÿstup funkce. Promênná, do které je
  292.       ukládán vÿstup funkce, se také zmêní po provedení funkce. Jako parametr
  293.       p⌐edávanÿ odkazem mûæe bÿt pouze promênná (nikoliv konstanta çi vÿraz
  294.       apod.).
  295.    b) P⌐i p⌐edávání promênné hodnotou se pod názvem promênná "myslí" tolik
  296.       Bytû, kolik promênná zabírá. P⌐i volání procedury se udêlá kopie
  297.       promênné a pokud mêníme promênnou uvnit⌐ procedury, mêníme pouze kopii
  298.       promênné. Takæe po opu¿têní procedury zûstane originál nezmênên.
  299.  
  300.    Vÿhody promênnÿch p⌐edávanÿch odkazem:
  301.    1. ¢et⌐í se pamêt p⌐i volání procedury (kdyby bylo parametr procedury
  302.       velké pole, tak se p⌐i volání procedury znovu vytvo⌐í v pamêti a potom
  303.       se po ukonçení procedury pamꃠuvolní).
  304.    2. Takto lze u procedur çi funkcí p⌐edávat více vÿstupû.
  305.  
  306.    Vÿhody promênnÿch p⌐edávanÿch hodnotou:
  307.    1. Pouæívají se v rekurzi, pokud se rekurze volá s jinÿmi vstupními para-
  308.       metry (coæ je zpravidla v kaædé rekurzi), pokud bychom rekurentní
  309.       procedu⌐e p⌐edávali parametry odkazem, pak by se p⌐i kaædém volání
  310.       procedury p⌐emazávala promênná. Ale to se nemûæe stát u rekuretní
  311.       procedury v parametry p⌐edávanÿmi hodnotou, protoæe p⌐i kaædém volání
  312.       procedury se vytvo⌐í nová kopie dané promênné, takæe stará zûstane
  313.       bezezmêny.
  314.    2. Logickÿ závêr: P⌐i p⌐edávání promênné hodnotou se nemusíme obávat
  315.       zniçení hodnoty pûvodní promênné, pokud v procedu⌐e mêníme promênné.
  316.  
  317. 10. V p⌐i⌐azovacím p⌐íkazu lze psát i vÿraz typu: p=p+1 nebo p=p-1,
  318.     coæ lze v Pascalu napsat p:=p+1 resp. p:=p-1 nebo moæné ekvivalentní
  319.     (v matematickém çi logickém smyslu) zápisy v Pascalu jsou:
  320.     Inc(p) resp. Dec(p). Pozn.: V Assembleru existuje instrukce INC a DEC,
  321.     které umoænují zvÿ¿it resp. sníæit obsah registru çi pamêƒové buñky
  322.     o 1. Pascalské Inc a Dec navíc umoæñují zvÿ¿it resp. sníæit obsah
  323.     promênné o více neæ o 1.
  324.     V C++ existují zápisy: p++ resp. p--, kde "p" je promênná (hlavnê dost
  325.     çasto celá çíselná promênná) a "++" je operátor INC (zvÿ¿ení o 1)
  326.     "--" je operátor DEC (sníæení o 1).
  327.  
  328. Kuriozita: Uæ moæná vím, proç se tento jazyk jmenuje C++..
  329.     Asi autor chtêl zvÿ¿it promênnou velké C o jedniçku a tak napsat
  330.     C++ pro zvÿ¿ení hodnoty C o 1. A omylem se na disku p⌐emazal pûvodní
  331.     p⌐ekladaç kouskem zdrojového textu zrovna v místê, kde byl název
  332.     programovacího jazyka a tak p⌐i dal¿ím spu¿têním se divil, co se
  333.     stalo a jak se mu programovací p⌐ejmenoval... He, he, héé...
  334.  
  335. Ale teâ váænê, na p⌐edná¿ce Programování v C++, kterou p⌐edná¿í na FJFI - ÇVùT
  336. Ing. M.Virius, jsem se dozvêdêl lep¿í vysvêtlení, od çeho je odvozen název C++
  337. a to, æe C++ je následovník jazyka C. Proto se domnívám, æe dal¿í norma jazyka
  338. C bude obsahovat oznaçení "(C++)++".
  339. Ale z çeho vznikl název "C"? Prÿ (podle neovê⌐enÿch zdrojû) existoval jazyk "B"
  340. (nikdy jsem ho nevidêl...) a tak se tedy domnívám, æe p⌐ed tím existoval jazyk
  341. "A". A pokud já nêjakÿ programovací jazyk vytvo⌐ím, nazvu ho t⌐eba "D" a dal¿í
  342. verze: "D++",  "(D++)++", "((D++)++)++" atd.
  343. Nyní jiæ na mê k⌐içíte, abych se vrátil k programování v C++, tak tedy zpêt ke
  344. grafice...
  345.  
  346. ------------------------------------------------------------------------
  347. viz Pascal: Grafika
  348. program Main;
  349. uses Graph,Crt;
  350. var gdriver,gmode,errorcode:Integer;
  351. begin
  352.    { request auto detection }
  353.    gdriver:=DETECT;
  354.  
  355.    { initialize graphics mode }
  356.    initgraph(gdriver, gmode, '');
  357.  
  358.    { read result of initialization }
  359.    errorcode := graphresult;
  360.  
  361.    if (errorcode <> grOk) then { an error occurred }
  362.    begin
  363.       Writeln('Graphics error: ',grapherrormsg(errorcode));
  364.       Writeln('Press any key to halt:');
  365.       ReadKey;
  366.       Halt(1);             { return with error code }
  367.    end;
  368.  
  369.    { draw a line }
  370.    line(0, 0, getmaxx, getmaxy);
  371.  
  372.    { clean up }
  373.    ReadKey;
  374.    closegraph;
  375. end.
  376.  
  377. ------------------------------------------------------------------------
  378. 5. P⌐íklad: Parametry p⌐edávané odkazem, zvy¿ování a sniæování promênnÿch: */
  379. #include <iostream.h>
  380. int glob; /* deklarace nêjaké globální promênné */
  381. void proc(int &p1)
  382. {
  383.  p1=5;
  384. }
  385.  
  386. void main()
  387. {
  388.  glob=2;
  389.  cout << glob << " ";
  390.  proc(glob);
  391.  cout << glob << " ";
  392.  glob++;
  393.  cout << glob << " ";
  394.  glob--;
  395.  cout << glob << " ";
  396. }
  397. /*
  398. ------------------------------------------------------------------------
  399. viz Pascal:
  400. program    main;
  401. var    glob:integer;    { deklarace nêjaké globální promênné }
  402.  
  403. procedure proc(var p1:integer);
  404. begin
  405.  p1:=5;
  406. end;
  407.  
  408. begin
  409.  glob:=2;
  410.  Write(glob,' ');
  411.  proc(glob);
  412.  Write(glob,' ');
  413.  Inc(glob);
  414.  Write(glob,' ');
  415.  Dec(glob);
  416.  Write(glob,' ');
  417. end.
  418. ------------------------------------------------------------------------
  419.  
  420. Poznámky: p⌐íkaz "printf":
  421. 1. Pokud nêkdo programoval v jazyku ACTION! na ATARI 800 XL, ví, æe jakási
  422.    podobnost mezi "printf" v ACTIONu a v C++ je. Narozdíl od PRINT v Basicu
  423.    je "printf" v C++ dokonalej¿í, umoæñuje jakÿsi formátovanÿ vÿstup.
  424. 2. "printf" má hodnê parametrû (které se ale zadávájí do ⌐ezêzce textu).
  425.    Text se v C++ (stejnê jako v BASICu nebo v ACTIONu zadávají v uvozovkách),
  426.    narozdíl od apostrofû v Pascalu.
  427. 3. Ti kdo vlastní HELP budou mít vÿhodu, ti co ho nemají, budou se muset
  428.    spokojit s informacemi, které zde uvedu. V HELPu se pí¿e mnoho hezkÿch
  429.    vêcí...
  430. */
  431.