You are on page 1of 132
UCEBNICE JAZYKA UCEBNICE JAZYKA C C s 5 I. upravené vydéni 4 U.upravené vydéni 4 [evened Moma Microtoft « MS-DOS jou reqisttované ochranné any Microsoft Cor poration IBM je egistrovanéochrannd anima International Business Machin, I ‘VAX/VMS je registrovang ochranns sndmka Digital Equipment Corpora LUNDX je registrovangoehranns anima AT&T. ‘Viechny produlty fy Bovlandjsou ochranné snd nebo roitrované och nnd andy Beeland International, Ine Sing pltpadnéndavy mobeu bt oe ‘nde svc pip vate 1 zndmky nebo repetrované ochraané Lektois Ing. Martin Kvoch a Ing, Pavel Sneha © tng. Pavel Herout, 1904 1S0N 60-85820.21.9 bsah Predmlova 1 God 1A C— vail, woo) charter 1.2 Typograché « syntatick konvence 13 Styl peat progeemt 2 Zakladnt pojmny 21 Zpisob apracovin programs 122 Zaklada poimy vjmyee C 221 rojo s blind sosbory 222 Bday 223 ASCII tabuika 224 Idemifiatory 225, Komentdte 2 Pron antathy « C 31 Jednoduché datonétypy a pifazeal 11 Defisie promenngeh 312 Pian! 32 lava program 33 Konstanty ‘331 Caloindnd kostanty 3.3.2 Reng konatanty 333 ZnabovéKonstanty 334 ReiacovéLonstanty (livery) 134 Aritmetichéwjrasy ‘341 Unient operdtory 3442 Binirl operitory 3.43 Specs unseat operstory 344 Phinovact operstory 2 4 6 " ” 18 16 18 9 a 2 2 m a a 2% % » ” a e Obeah 4 Terminélovy vstup a wistup s 41 Hasso soubor staan a 42 Vatup 9 vjetup znaku = 443 Permstovang vtup a vfstup u 4131 Ride ftete forms B 5 Ridietstruktury 0 1 Boolkovld waay 2 5111 Zhréceé vyhodnocovdn!iogickeh vrand| @ 5.12 Protity wphodnocovntlogiekfeh fran o 52 Podmiwéng vjraz ~ ternéaloperétor “ 58 Opertorééky 6 544 Piss if pik if-elee 6 55 lteratn piksy — eyly 2 551 Piasy break 3 continue ° 552 Pilla while 50 55 Phas do-while 51 554 Pitas for 2 5. Pitas witch 5 57 Palas goto °° 58 Pitas return 30 6 Vatup se souborn a vista do soubor 6 6.1 Zathtek price se souborem 65 1. Otevtetcouboru pro fat 6 6:12 Otevtenteouborn pro tiple 7 62 Zallada oprace #otvtenjonsouborem 63. Ukontent price se souborem 64 PUklady siRladat price se soabory 5 Testovin! kone thy 66 Testovdn!koncesosbora 661 Pomort symbolic kostanty EOF 662 Pomoc standardatho mar £4080) 67 Teatovin’sprivnontiotevten a uaavent soubor 48 Standatdo vtup 8 sftp {69 Vescen piccendho anak spit do vatupaio balers Obeab 6.10 René motsst tet soubor 6.11 Rosi pi apracovivin extovgch abn. soubord v MS-DOSv 6.12 Price» binérin soubory 6.121 Cte a apis do bindeatbo soubora 6122 Pohyb'y binimnim soubora 66125 Prilad pout binéentho soubor 1 Typové konverse Implicit typors onverse 12 Bxplista typovs koverne 18 Preproconor jazyka C 8.1 Makrs ber parametrd — plas dot ine 82 Makra sparametry 1821 Preddefnorasd mare 4.3. Vklés soubor — pita tnctude 83.1 Vilédané oubory 1832 Standard blond soubory 182.3 Soulor einen —méfet ass 84 Odden peklndsosbord —1 185 Podmingng pleled 151 Rize pickind bodnoton konstantaibo veasa 852 Rloen peklds deine makre 85.3 Operitor detsned 854 Duektivy flit a fersor 9 Funkee a price # pamitt 9.1 Alokace paniti 111 Statice alobace 9.12 Dynamické alolnce 9.13 Vymesent paméti v soba 9.2 Punkee 921 Deliic flee 9.22 Proceduy a datony typ void 9.23 Rekuravn! fnkee 9.24 Funkee evra int 9.25 Problmy sumtin deface Funke 9.26 Konvereenavratonéhodaoty funkee 0 2 2 8 9.27 Paramety funket Kone taeenich prametrd 93 Oblast platnot identfhstora 931. Glob a lhl’ proméané 932 Pamatone ty Tia auto ‘Tide static Tide register 283 Typoné modihitony Moitstor const. Modikitor volatile 934 Bloky 24 Odden piekad soubor — I 941. Rouen planet global promand 9.42 Statik global proménné a fuskee 9.43 Jak udaetpotSdek ve vekém programe Doporaeng teas -C wosbore Doporaenyobeah Hsobore 95 Iniializace jednoduahch proménngeh 10 Pointery 10.1 kindy pce « pintery 10.11 Defic dat ypu potter na typ 12 Price adesovsn operdtory 10.13 Pritazen hodaoty poinerim a pomod pinta 1014 Pout pointers pitsaovaich plhaech 10.15 Nalovg pointer WOLL 11.15 Konverae pinera 10.7 Zarornévdn v puma 102 Peintery a fonkce 182 1021 Vole edkazem 152 102.2 Pointer na typ void 156 Pointer utp Vol jae pointer au adklitrsafch sp 158 Panter an tp vol jo fret paramett fake = 157 1023 Poinery na fankee a fanke ako parametry fnkel 157 103 Jak Het Lomplikovanédeliice — 1 160 104 Defic svyuitin operdtor typedet 181 105 Pointerovk artmeticn 182 1051. Opertor sizeof 1052 Soutet ponte scldb Ela 108.3 Odetitdnt elo tila od pointera 10584 Poroensein pointed 1055 Oden! poiters 108 Dynamics pdelovén! a mavracentpamdt 106 Peden pam 10,62 Uvolsovén pameti 1063 Piiklady pBdelovdat pam 1064 Fuskee eattecO) 10-7 Pointer jako shutang paraete funk ednorormérné pole TA Zakladet dovednost 112 Pole pintery 11.21 "Dynamics pole 1122 Podoboost statihgeh »dyoamickfch pot 1123 Dalifavaftnoats a dovednsti pi pri «pol ric ctf plem njednon Pistup dope pomectpisterh Dax sai eos pole 11.3 Pole mate svi veto 114 Poe jako paramtry funk 118 Pole pointerd a funk 116 Jak dist komplikvané definice — 1 12 Retizce 121 Zhktadtinformace odefinovént Fete 122 Pres tetincem 1221 Cunt fete #Kivesnice {hea feteace v dan forma 1222 Tusk face na obranovk 1223 Past kjednolvgen anak fetiace 122A Standard fonkce propels Fete Daa tetece Kontron face Spel etek Nokes! sake 9 fete 163 16 164 165 166 166, 167 169 10 0 m 15 1 1 10 160 181 181 i 183 183 15 189 14 194 as 188 198 20 oo m2 am am 10 bash u etna Pororniat dvou fetézci m2 14.1.2 Struktury a pointery m ‘il pete ec 23 HL13 strats edly sy na wie a erent te 2 LIA Stratus win sate a Pees aca pple aes LIS Albus pot poem ply saan“ 20 Pievody Fetézct na disla 203 14.1.6 Struktury a funkee 0 123 Poems tl apis ado ce 2 TLL Shut pratt opi stra = 124 Radkove orientovang vstup a vfstup x terminélu 206, 14.18 Iniclalisece straktar 124.1 Cteni tidky 2 klavesnice 206 14.2 V¥ttovg typ as 1242 Vp thy nora WT 43 Union ar 125 fh arvana Seay ora 2 1257 Raine vn vans Poca ioe 281 TSI Girl iy tothe ir 1282 PiptaityJosetera ee tov operace blow pole 5 126 id tabs foi po tek 200451 operon iy 255 1261. fonverse 200 Meee riper ene 38 ez meshur a0 1812 Bor sate me 1263 ete 210 1513 BitovS exlurival ouéet 2st 1284 pra a TEL Ope Mondo pone dls Br 12068 pie 2 151.3 Operace bitorébe poruns doprara 2st 1266 Prtiady rizngeh format tik a 18.1.6 Negnce bt po bita 258 15.1.7 Zplsoby price se skupinow bits me 18 Vierormiend pole 1 pel at 15.2 Bitové pole a 184 Ziad dae «pp pon a8 13.2. Uloient vicerosmérnych poli v paméti 25 ‘Tabulka preferenci 202 13 Ran pidy df oro pll a ass 131 Sad dreamt ple Be tertura 152 Pu pated as ven TE8 Potter na pot 2 gaat 1234 Pome sa pote i 1235 Voip ements pki i ps. ao 1236 Darrin pot ako parece = 154 Inlet ech emi 2 115 Paetauncd ma 186 Paranty ee mind 2 187 Externe mm 14 Strubtry,aniony a w/toné ty a 1 Strltuy aa TALL Defic » kadai dovednosti a a4 1 Uvod este iste» jazykem C nikly neil do sty, bude mofnd vhodaé ltt i neprve nile dv city. “C je sgh meeng,tajemny a negzpstatlng.” een avidag rate C je jako Porsche: sil, Sinné a kompetni. Proremonéns» C, send Jako tzent Porsche, mize bjt sajimavé, erly @sdbaoné — olde ote ho a unite eye jeho moinoat ALE Quit Obs ty ctaty jou pravvé a odporaisi pourexalive. Kay anénete iat tuto kn, budete se afeme peiklndtk tom prvain oki si ale o dodtntcelékally ratte myslt 2 je nico pravdy na tom drvhém, ak kita splaila sv Gee a vy ne midete nat potato elke rodiny Programitordy C 1.1 C — vanik, vyvoj, charakteristika \V kaihschojasyka € bfx na toto mis informaceo tom, ko jy vy x ee prtom vychézel ak Zem se C vist hod. Zama ‘Vs ito informace, pak Vio sled ky dai Utetnou odpoved. Inayk © ‘Je univers programovact janyk nab rod (low level angus), ‘+ nd vel éspoad vyjadfoving, je struktarovans, mi velk soubor ers tori a modern! datové stuktury, + net speialzovang na jedna oblast pout * pro mnoho Goh je felt aye ne ind jar. Stat? Jest ne, pak vate, te: * C byl naveten a implementovén pod operanim seéanean UNIX atm celf UNIX jew C napeint 1+ Ce ale na UNIX nijak neve 8 neve se nina jn konkrétat pods operat epté, anyk nak Grovad”snamens, Ze C prac pmo poune se standard Astorjmniypy joke jou aay, cl end dal, ape wo mot vd al je o tak — wi (KR A C— rani a, charakterstin 1s 1# © neumoiine pm pri» Etéaci a poli ani pin neobeahe nfstroje pro weupy a wetupy. Ty veehny ake je muta prover pomoe! olan funk, of pn rete whody nape i ednoduchost jayks, ~ jbo neti na ping 9 Z ve wedenich wfhod wyply nad vyvofentpiekndade pro konkréta potitaé a honkrdat ope aay (a plenesend toi velké orient jazyk), = Hk eektivita du program v Cte tit? wyrovns programa ‘istyceanembler, oh jmyla C: «+ Pronim sandardem jay byla verze job autor — Brian W. Ketnighan {Denis M. Ritchie popsand ve faménnihnize The C Programming Language Tato kniba vila v rove 19783 krom jncho 2 tala Glade ‘abut aay C:Popisovan standard jaykn Cae bine oan jako KER. “+ Deni ofc standard je tv. ANSI C 2 roku 1900, Kerf» KEE vy ‘hia deho sou je i prem epeciflace mony knibowneh unket ‘sbltidkorfchsoubord (1), Reré must haldaimplementace ANSI-C Komplstors obrahorat. to norm by ma vyhovovet aprons wtsinn ‘dndnichplklndaed a dl text popingje privé ANS C. Nedoceniteln vjhodou ANSI C je, progam napsany pole tohoto dard a pouretvyuiti standardaich knovaich fant (© ANSI wpe ‘ovanfch) je maf 100% pfenositaln na libovelng pitt pod libovolg cersnt syst. Pol jenn nejaks sméns?, pak eto mena opravd ‘mala ras je janyk C vei popula progeamovae jazyk, Jednak ky tom, Je to “matefakyjanyk” UNIKu » pak Takt diy 2dafilé Turbo (Borland?) Dlementact na PC Programoratv C je méda a tato anda cba spOsobuje pik kick ‘ed wa jin jay. Opoveivg poked ns een, ket Cnopouttaj ale ‘i ten nelle pstup, prote kal programorac uayk mf “to sa} 2 eoeicky by neds Bf dn, li Goethe pro “Kat tories, pre PC ext ovam s rant peladaze jay Cod jinfh em, 38 1. vod 1.2 Typografické a syntaktické konvence bine oo rangi typ pla olieny ty ati txta, Ker i olen rasloai Jind 0: oelae Etéové(reervovan)slvojaryka © + onus. méno soubora vyvofendho ubivatelem S eeaioa, Jméno “eystmovéha”soubora {+ proméané mens byla..jméno proméané we vyritulea text heap glee vitae staan fe program 1 bromade eas, Mer je pr pout @ bude dslevy- etlen AF pedis) odoin je pha obecntho syntaktickho {Sbjekta ve vyvlentKonstelkc jaayk nak x tmisovang vtertu 1 edritaje pornémka upestied text 1.3 Styl psani programi ‘Zejmén vprvnich kapitléh se east setkitesodetave uvonenimi na plsem: Seba at “ae joa wedeny doporaen, jak pdtv CBiteng a pleledné progeny, Upotorjeme, fe sou to stata jen doporunt ae jen nave 20s ich bndete dete. Tedy ade love muasotv nance podoblch nemuste bit tak vidnd. Vyskytnel se ale siovo "Inset inde ¥ textu, popipads jel ‘vie podtrfeno — mut, pak je to minino opravd vine ‘Viechny v kite uvedené piklady tytoadsady dodeas. Pouze na né- oka milo mistech by porueny, to jing wyoechSnim pried fad nebo nezarovndvinin mentFa. K tito “prohedkim® doo jen diver Al omezensho mista na srdnce kay. 2 praltickjch sksenost je zndmo, ke privé doporutent kaj se pen vy propaal yvolvaj nevi nechut, Odpor satnasieieh programéton se 1h srnout do vty: “Jsem prec svobodng dowdh 4 nikdo i tedy neue pfedepisoet, Kle mdm dle mezera tomu se dé pornamenat pouze jediné — pola abuteén chete past -yJaayee C vt programy, je nut nia potéde ravi a chetel Qk {vt pk je abytedne vy j8 wympSlené a Zakladni pojmy Zpisob zpracovani programu staph C ope woe, ented andi tab ce ve dtctam vanns trove od wap rood tet a fo at plelotencho a sestavencho program ‘ikiedn spracovdn programm © C ptobiha nota fem sehematicky engi nln obese: | ca LE] tind progeany, Kerf eadojors saber arava eto for Pomoc tse vi oat dojo (6 soon rocesor 2c to wut pide, Kes pfdepacoris (wenn) " ‘udrojory soubor tak, aby mél pfekladat snadnéjal préci. ipl ech omens ae rv ten Sega oor ore ar td Vide ho wpuseent 1 tie pfedpkldime, ie vk pojmy “pela ovetoent program” aan 6c oka ie ttin pout toe po nape progam se “madi” “und ndidaet hy, pm nati eae 18 2._Zékladnt pojmy rice je opt textovf soubor. Tens vnk mideteprobléé- ‘out poune tchdy, kd}? unite spurt preprocessor tint (en. bee kompiitrs). nak preprocesor pled fsledhy v6 pce pmo “svimu asdFentna” hemp Nanfuany ti pebldae nebo posit: kompilétor, provid Diekad sdrojondho souboru (apracovancho id preproceso- tem) do rativaho (objeorého) kid poditace vent i) -0B soubor. Relative’ kid je mit hotovy program Store ata mamen ae proméanch neo fan i jlténejaow vibe mmy (nap. prot, He jooa lode ¥ iihovnd) a jsou tedy v 083 souboru rapsiny tlativ, Veil produkt piekladate je te. protokol piekady’ (115), ve kterm je lots snformaceo eybich makxe- eh pkebladaze, Linker [Neboli sestmovact progam pFidl elativaima kid (re ‘pebtivejeo elativaty aterm) absolut deny a prove de viechny odkay (eae adres) na donud ean Hen. Ukstory (np. na vlan kaiboval funk alotent sow bore - LIB) Vledkem pce linker je pfimo spusitcig rogram (BKB) eho tek pleklad je “odivose, ale sie se poutes eiem ladiet program. Slout pro lads, neboli alert thy tere nasa Beha programs, Po nslezen chyby se ely eyklus (editor, compile, linker, debugger) opakae {ak dlouho, ad 61 mysline, de nS progratndidnow chyba eabeabe Compiler Debugger Panis: Tento eylusprobihé pli pout akihokoliv picklndaée, Neneehte se lit im, es nim nesethsvte nap. plekladacefy Borland Tam je uted nee program pilot, pakwstait a nakonec epustit abo lade. ‘Ae se sie viechny tyto Ginnost dla time automaticky = najednau, ale dia se 3 Ker ont waned jay rltivich ade. 2 ere winon vy pte x spec pa tina 4 iene Botan ale to non emodbn tad dat postapn, cj unohdy ved weds ikladntposmy v jasyce © 19 2 Takladni pojmy v jazyce C cov celdbo pro- Dos byy popisoviny xklados poy blediska pracovat smo. Oa to hile ns aajims pute to, co spacovivspfekladad spre evotem, el arajor program ¥ aay C. A Larojové m blavidkow’ soubory nj fun vo pojmt de wien na. 132. Pron je dU tern sar Ket je a ropa, 0 0 Mince fn veo nn orb dept enim veer Gt lds (cu) ev. Manthn (header) sobory ee eam ton valk tier fate 1/0. SSE ott! pelt va pie sober ponod thre Sncuan apis" einelode een caer ese att een ES ae ss ee stk nies yt ot tetera a enn att Sn at aaa en es Co ace Sa et otro Ser cimeen ay temamnas einer t «Vlei progr sang dy hlvidou podsbnou to fh aypie ascrr tabaney Jinénosoubory a verze strung pops programe 1 paaereut 9.1901 v 22 Ba6 maky ers rou “eto peklad anglicko wean white paces a rahrnnaky, Ker ce elm deity le jou na obrazove vide. Joba to tav, oddeonact 20 2. Zékladné poimy ay Jako meer, tabulitor, nowy de, nov strnka,néveat na aadétek Hk, std via ate, 29, 22.3 ASCII tabulla Nanjvank nik snakové sada, popinuje kbdy (v Pascal oe pout po- em ordi esa, ters jou prdeny jonotirgn sna, ASCIL tabula ‘rou od 0 do 25, ale bli we praca en jo dol polovinon, cody se rnaky 04 0 do 127. Hora plovinn ASCII tabully jo vyhraenn po sake ‘todnich abeced (ako nap aie pena s hity oder) apo neko speci soaky (nap. chmethy, matematitéeynbaly, -). V dali tox 1 budeme vyuifvat pour doa polovinow ASCII tabull, pide je mutne pdotknout, fe + horn plovinou sx praca naprto mej, Porn: ‘ Pokud joe ma niy problémy « rio interprets ondinsich ese ‘naka (EBCDIC vers ASCID), pak vCbystesi mai tut tao eit V jaryee tof ncn witdinow probly, proto po UNIX je dopor enn ASCII tim je to dino t pro C. Dolo 2st ASCII tabulky cbeshue ate 2naky © (oon) diene menera 32 Gan) + omocné maky 33 (28) "1147 (ORR) 1/2 Eclce 48 (30m) 10" 57 (aan) va omoené maky 58 (3am) #7 64 (408) va Yelkspimnena” 65 Cain) "AY 90 (Gah) “2 Pomoené maky 91 (GIR) °C 96 (60h) * Imaldpimeoa 67 (63R) va" 429 (TAR) #2! omocné soaky 129 (7BR) {426 (TER) "= Neviditalnérnakyjsou nap Bell 8 BackSpace 9Teb 10 LinePeed 18 CariageReturn 2.24 Wdentifikétory Insp Cj case sensitiv jay, roi mal4a wll pismena. V pr ito amend, 26" pron From. FROM {ou CF lane idemiistory! Kilov slovajanyka C (aap if, while, rogister,..) mua bgt pina ‘mali pismeny. Jou zapaden velkgnis nebo hembinac telfch» vk Plamen, baru se jako identitistory. 22 Zékiadotpoimy v janyce C EN dovlujew iestiistora poutivat xa poate *",kleré se ale nepoutivd tela bevel, nape “Jeon, mpoutas mamens to timo estiitor cnt — pout fato selene ox Fron — apenas proto ufo sto phe Dale identiflitor nef omeaena, ale ANSI C roveanévéobecné poure prvnich 31 anak, ti pipadad dail saky (32 » dali) jou pro tho rasa de altos: ‘non cj (promos ek) at ssn mal pion #9 ‘tin pdt Sutter renin idenifisor pode reich omni nal (3 ferent pd neh beet 10). Neyo pods Wenibtor,aept=ayatat a yantat LV Teincn pate neous esiiaor ron on etn pana HOH prow aSineonohktd met bit vfnamod nap plat ane ph ‘linea opal ented aoa schemata tite nova vee ndoe rd jenn et try: veins, pratt an ak leis en a etek thst pinto, app Trai 22.5 Komentéte Aol eos vel ato opomeny, pledtartkomente diet Zt arojncho programa, protoieapéeMedit, ny na prem poled dose Pochoptelnf program: F Powtite uke eatery, je vodné wi ont atu star w abo empire nly je toon 8 anal iT” Nernanend toy bead fetine ems tn menor, eo Se dp se programs rive eatin + neil to Dt sap Sdenthtr pro rae le ladni pojmy Komeati sou toma, aby seve valem program vyanal nlkdo cia nebo i vy sami, Ray? se K tomato programm vette 2m neakou dobu Ud nemte¥Eeatvéparit vieshny “gle, Ke ote pedi pout Doporuiujeme,abyste st programy pribifne Momentoval pi wytvb- feat adrojontho souboru ane ab po oiladent (AZ na toned she Gas”) ‘Koment je usaven meni dvojice “ivore" +s +/ a mie oe objevit hud tam, kde je Bis ak Jo toto ja konentar #/ ' komentéi se mobou abjevitizaky x horas pooviny ASCH tabulky ey i pfamena s bik a érkami. Pratiky se (ato mofnost le pls wepoiv, (7 toto Je Cesky Honeatat ¢/ ANSI C nedovolaje vhnladéngkomentse (nested comments), ‘7s toto Je Rouentae /e toto jo vhntadény honentét #/ +/ $d tr: ‘ Uvidije komentt pled latdou logic welenou 2a Kd 4 U ketch faker sta popis je fimke ped defini! faker ‘+ Komentt md obsahovatpourewitenot infarc! MES osoupi ramen le slaps na brave, ve Keim w oje pron dojie nak "76" Umotinje to ytoktt home "ku labodet Lslowpee Lalowpee fn r + wpraang ' jadnoraory popis tance 1S vleersdnovy v v S2lexpee J» pops ptikars +/ Prvni zatatky s C [Ai dos byly popisvény obwené ci a visti programordat v C ate joté mnoho nedervedai.Od tito evil sebudemesnaitonéprav B.1 Jednoduché datové typy a p¥ifazeni { poskytue podabné datové tyy Jako Pascal veal c TEGER int Tong int 1¢¢ tong shore int tél short CHAR char REAL float double long double Pennimks. Verse KUR jaayha C nomél typ long double a tp signed. {typy int long int, short ine char mohou bit bad 7p signed nebo unsigned, Typ unsigned ints sto skracaje jon ne unsigned, U prosypy int long int, shore ie je implicit! typ sige, pro typ char to alti na implementa +» Rosi met signed (naménkov#) «unsigned (nexnaméakovg) jv roe satu tala,Prominoétypu unsigned maj rorah of © do 21, kde mje pote itd preménnd. To tedy zamend, 1 unsigned proméan nemize obras porn ele Rona signed proméangch je od -2"~! do 42! — 1. Tedy motnost tcbreeal sépornjeh del jw type eigned taplacenapolovigan rns em opt typ unsigned [Napehiad pro typ char, ker je vidy 1 Byte (8 bit) lou, to mnamens ‘unsigned char Oar 286 Signed char ~128 af 427 ‘* C ncposkytje pio typ Boolean. Booleowskéhodnety joo reprezento- Winy pomoe! eodslnjeh (int) hodnt, ke auld hodnota (0) FALSE nenuloé hodnota(oejéatit 2) TRUE 1 Typ double mé plesnost asi na 20 destinngch mis 24 3. Prvnt andithy # C + C trun, jadnollvéuypy sok tuto pant! sizeot(enar) =i aye tiaeotGahert Sat) <2 eiavot(iat) tizeot ansigaed int) = cizect{eigned int) Sizeot(float)— < sizeof (double) sizeof(long donbie) izeot Gong int) 3.141 Definice proménafeh Pod pojmem dfinice ae mini plat, ber) pill proméané uritcho ‘ypu jméno a pat. "Naopak dellraceje paz, ter pouze ud typ proménné ajejméno Detlaracenepidlyje Bidnow pam Sys deklarse a ich pout bade spell v bap. 925 'V nbkten literatute sou wfanamy slov debarace a definic privé opaéng i nejanoatech fe tdy hea ltt na pikladech, coms ator na mya {© joo define v obrbcenémn pofad ned u Pascal é Pascal te ‘owt £8: ‘ Defniceproméansch se mohou eyskytnout bul vn (glia proméans) nebo wont fnker (abn promeneg), nape ses (/ glotalas proneana #/ aint) t ro ‘/ Yorsins pronesna */ > Sidi buts: ‘ Nepoutlvejte typ unsigned int jen proto, aby se sdvojnobia velit Eola — y tomtopHpade je lp pout long «Kad promennd by mala bt delnona na sumostatné Hee a okomen ovina (wim (oH pomoenépromnae, nap sat cplat; —/+ celkovy plat +/ Opsitorszcot 7 ‘elle typ v Bytech — vi tte, 18 Podtobet in at. JIedaoduchédatové typy a plifanent 2s “eDefnice je odsnzenn of ratte Fy pode Grove sabia Blok, ee ratte blk je anak“ ‘a Globatproménné oe dein od atsthu Hiky (viz pkedchoxtpiklad elbil a aka proméanoy). 34.2 PHtarent itasovect plan je aejaetllim pilauem ve viii programovaich TV Ce ale mutno davat vi potor, proto evel is riz jn dating toboto slows. 1b Casto e praca poles (-hodaota (-ralue) L-hodnota pedstaie tu, tedy nap promennd (a) je hodnoto, ale Kontanta (123) nebo fran (x + 3) Phodnotou nejeou rude lee Hie Fhodacta jet, co mae bjt aa lev strand parent Potor ns abled terminolog % a el pifarst Ssigment prises pikes statement jaieaes: 2 ras ms vidy bodnotu (Es), feta 4 jho hodnotou je hodnota ma pravé ran, 1 Diacend se sind plaza, jel ukonéno stfedntkem, tas Ran typ phifasovcich pia: Pascal c se 5) a2& TNialedujetdvé malihontdlajt pascal programstorim pote: 1) C md pltaneni pouze pomoct = ae pomoct := 2) Porn Ce == be poue © roto pitaen je wee, je mong nékollanGsobné panei ‘tré we vyhodnocuje aprava doleva tedy: = 3 = G * DE 26 3. Prvnfantithy # © 3.2 Hlavni program lava program v C se jeje vidy masa vidy uveden —e to prva fk, kes Pascal © PROGRAM PoRUs(zNPUT, OUTPUT); main() bes sted! Sev progam x ve modli®, ain amt bt pute vjoom -modulu a v tomto modulu také pouze jednou. an Fnkse min Je norms nice Hark woe od eth ure tee ngolas neta program oe ea Paseal © PROGRAM PoRUS(ZHPUT, OUTPUT); main() /» ber stzeantau! « ro mao / ednaut +/ snrscea; iat a 3 es ie5 is nach Sjtaes jepeaes Bd, > e ‘ Pasclské BEGIN a END je v C nahrazeo rasky "C8 9" 4 Zivorky °€ }” neusasrajspouzesloieng pha, ale i blak 1 Berprostiedoé 2a kaldou “€ mohou bit defi, 5 Blk! je emam dele! nsedoranysromer pad len pitas Je pouze sexnain pfikazil, nap? " « “wove Je Bok, protore obeahnje */ int is ‘/* definici promenne i . ” pr 5 Podeabed vir ae. 9, ‘tim ea outa nim Liat Mae, V bap. 9.24 bade wpvene prt 33 Koastanty « Jo toto je slozany prikar +/ or Jo protote necbealaje°/ j be 7 zadne detinice pronennych +/ > « Narotdi cd Pascal, umatuj Cniciliae promfangch pmo v defini, tahbe pedehoe pita bade tkd sprévn, kyl: int) « jock peseness i st Koi iniialzvan6 proménns se pie do jedné Fy. 1 Mei deiicemt » pany je prada Eek (ia pedchoa plikad), 3.3 Konstanty 2.3.1 Celotisené konstanty © uote pout typ elec Konstan: = (ithe) — posoupaost ee, eb pval nes bt 0 (nus) Tsmidkve (oktelov)— Eialice © (nla) nledvant poloupnost cami Kowfeh date (0~7) Seindcthové (hexadeimslnd)~ dice 0 (pula) nisledované znakem {ebo 1)» poleupnethexadocimnich die (08, 2~£,4~F) iilady ranch sips celotelnjch konstant 1) deithond 38,0, 2} oktalove 085,018, 0, 0% 5) hevadecmdlni x12, OK34, OCD, OCD, O¥e4, O36, 0x0, xt ‘Typ onstanty je uréen implicitng jo velit nebo explicit poutiin pipony t (nebo 1) jako Tong, nap. 12948678 T Tove alenoloportaje pla, prota z pA polo tat Drab ppon,iteréexpliat uj yp eating tonany je 9 (nebo u), jako unsigned, napi.; 129u, 12345L0 * ‘Zéporné konstantyjsou pode svyklot wvoneny anskem “~" (minus), apes 56 Ponda: 1+ V KAR vera janyka C nebo nai + (plus), nap 8 nebylo mofno napsat jako kostantu. V ANSI C toto omen i en 33.2 Roding Lonstanty ‘Tol ve pole béngch aylaat, mohow sina a Ronit devetinow te ou a jou implicit typu double, np 85, 60.8, .04, 3.16, 606, 7223 ln Konstan typ float se defaue pom! pony aebo 4), nap S514 ,aypu long dbs pomos (evo), apr tate 33.8 Znakové bonstanty ‘hou, ssn jako v Paceal, uravenymesiapstrofy api: *a', 4,14" ovnotaanakovch konstnt (rdinslns is) je odvezen x odpordac ‘dovétabulky — nejeastgjt ASC Vliet anakove Kontanty Je kupodiva nts ne cae | Pottbujeme lt snakvoykosan neidelnéh make, pak poutle ‘me apis ve tvaru: "ddd" prpou ie jh rak sled 2 i kelnfch i nap: "A012, "007? Pott aulyaepou ate, les KonvetachdOveda se noe re Drutou motnost, jk zapent tio konstanty, e pout 2Spieu "ox? {nebo "\OrRE”),napf:"NOrOA, "\OxD, "\OKEE" ‘anak *\" (apt lomitko~bacslsl se nate nafs scape character, protois je poutivén po améau béadho vfznama. Nap. "012" enedovlend enstrake (tznalovd onstaata),prooteauakovd Kontanta mde mi jen jeden anak Kenstanty wovené snekem °\" se také naga eacape skven. Nakter tasto poutivané scape ackvence maj kromé numeicfch kidd | ‘aakon) ehvivalent (ptedetavaipoulivané He anaky): 4: Aritmetiche wfeney 2 sekvence hodnota—e’enam An "ORQA. nov Ha (newline, ineied = LF) NE OOD vat na zdatk thy (carriage retara ~ CR) Xe Gx nord steak (formfed ~ FF) Xt G09 —_abultor (4b — 17) Xb O08 —_pasun doeva (backspace ~ BS) Xt x07 plknut (alert — BELL) XY 5 Spstnd Homi (backslash) v (26 spose single quote) Xo G00 aulovy anak (null character ~ NUL) ‘NUL nent HOLL, Gli nalovg pointer — vet. 151 ee W eixcorfeh konstantéch se pout pro robrvent soaku wvorovky (Wouble quote) tao ecapesekvence: \" Usowonky jako snakovd konstantavypada ale: Konstania \e_ lve nabdy pout, apt. v UNIS nefungue 4 Retéacové konstanty (literdly) zovieny, narod od Pazcalu, mer wvonovky, nap ‘Ffonte je ukeskowa retazcora xonstanta" ¥ fetézcorf konstantéch pod jako + herent, je moka po 2 Monte je wktakovd fetezcovd konstanta ANSI C umotinje automatic stetizovtdloubgeh iter oddenjch ‘hin tabeldtry nebo novi fddkar. Tatomalickstpodstatné spf sje alps nape. i phat isk Waseda elitr oon kina a ‘Tanhte vypada veiat Looby retezec™ staxbie vypada " —"yelni dlouby rete wrante vypada © vein * alouny receree™ Aritmetické vjrazy V axitotckch vfranech je nutaé si pipomenout, fe viras ubontens ferns tv pkazem, ap na efracs pitaceaim sea; pias 20 3. Prvnf saddthy # © Pouhy sted pedstavuje dsto poutfeangprétdn pitas (nll state ‘ment, ker} 26 pouti nap © eykin while nebo for (vit nap et. 3) 3.4.1 Unéraf operdtory Jsou to unden igus ~ a unseat plas + Oba se pours v bakném Porno Pomoc undath plus se dé také ovivit pote vyhodnocovangch vant —podeobine vi (HRS), 3.42 Bindenf oporitory 1 wes ttt mat tej vfenam jako v Pascal Pascal C sobs dling dent 7 nd dlest EY ‘Eleni module 0 Pom: ‘To, xa dient bude elotnné nebo rng, avs na typu operand: Int / int eaotselng Int / Boat — rene ont J int — reine ‘oat / float —reilné Pam yeg7 as ~ along lent, bade 3 seth: eat modulo, j bude 2 3.4.3 Speciding unéent operétory ‘Tytooperdtory nemajlv Pascal obdoby, Jeon to iakrement erement ‘bn opertoy se di pout jako pedpony (rei), ak ako ppony (cufs) Unto odsajn vfznamem 7 Pre doubles long double pat ttt co pro oat © re opertoe ~ je wfnam analogies ) 4. Avitmtick wirsey a ‘T7Nremenlovn! led pout, = nfras je neprve rien 0 jedi a pak je to nové hodnota ‘rkena jako hodaota vas yrs vr nkrementvdn po pout, — je vreena plod! hodnotavjraru a pak je wiras weno jede idk ‘Vjraz msi bj I-hodnots (ted proméand). Castéehybné pout je “a5e+ nebo Ch +9) wa ang poutitf perdi +4 a = feasted 1B aH ~ shade 6 fees; = bude 7,4 bude 7 ya = Sbade 7, bude 8 reny ear “bade 8 j bade 6,5 bude © A Pittarovedt operdteny ' Pascal je poute jade opertorpifazent := V C, jk it vie 3c tvvalentem operiton = aleC dvd nave k disp et celow Hes “ffenjchplfeoovcehoperitor. Tehodnote = t-hodaote operstor eras elm ato poutleé sede aps hodota eperdtor= rez {se poutlndledje parent Thednote = -hodnote + eras hednote = Chodnote ~ ofa = hodnote + era hodnote 7 ret Ehodnote era hodaote = hoduote >> fret hednote = Chednote ce ajrat hednole = hodnote &ejraz, Thode = spree Thodnets | oie hodnota JF sire 2 3. Prvnf andéthy » © ‘ Opertory > 4 ce budou vysvleny na at, 257 a oper & en 286, Nepoulivete mene pro oddentoperdora a rvniths, mae Senet Veasind emptor to pisbt polite bude 7 4 bade 2, $ bude 3 peaeG a =2 heytyearzee 2 Termindlovy vstup a vystup Inayk C, nara od Pascal, nodefinuj Hdnou 1/0 (vtupné/vstop- Input/Output) operas jako 2st jaya. Neabyiné vstupy & W§stupy Feley tak, fe standard! kashowns obhje ndkoikfonke, Keré 1/0 mai Divod je jednoduehy — neice strojowénéilé ake jou privé 1/0 a ina odycalednd oddeutrojot svi steojov nears st Juay- fm Tato sktetnoet je pak vSanamajm pinosem ph vytvent hamptons ing poste ILI Hlavitkovy soubor stdio.h [by byl mein apriené poutvatvieehny fake pro vatup a vfs ‘Mend na até program pripojt “pops” teh fk. Ten nacht Mtsvickovém (header) soubore aedio.b » do nacho programs se pipoi emo par einer ede nen edn! Di tohotoobaniba je pak motné poutivat dale popsané funk, “ereaio.2> 4.2 Vstup a vystup znaku ‘gatup ednoho zak 23 ‘me funkce get char) ‘Obé funkee praca! kupodivu! jfunkeeputenar() vtup jedaoho ze proménnfmitypa int ane char. ‘Piven funkee gotchar() je nutné ust 26vorky, i kdy? memé ¥adag paremetr — vir dale pind. 4 zat nad tnt tenn jnom srt hos, sbuetag ved bade v= A 7 a4 4. Termindlowg up ” “Je not si wvédomit, po vont get ear) meme past snaky #Ri- ‘nie tak dlouho,dokwdnestisneme . getchar() pak piette Drona tichto adangch anak a entattignouje vate te 78 Pras, Program plete anak klsvesnice, wine ho a adhe, sain) t = getemz0; pueckar(e) paterer( AW; 4.3 Formatovany vstup a vystup ro vtupy @wistupy nepoutivime vitdinow makov® orentované fank- ce, ale sie funkce, tert pH vstupu ela nazou clé elo jako Fetlaee © pfovodou ho do lent podaby automaichy (v Paral naph funkee READ) eho nacpa, fi vjetupa samy koneri oda tein proméané ne of vidal postoupnort eile (v Paralo napt. WRITE), Tyo funk exit Shmoatjn ty anyce Ca ve Eastos0 outa. Jsu to: ‘prety: seanzO) ‘ro jst: printf Zébladat poi 1) Pilla. scant(¥a”, 81); pitt x klvemice cl ilo wot ho do prménné 1214" ura Frm en ade deladicky eloulnf) 1 ped je nezhytnt nutnj a wyoechin predstavaje Zastou chyba fiat: printe(*4a", 05 ‘atisne na obrezovku hodaotu proménnd & "= "id" urea form vipou (ede detach) clotelnf) 1 pfed nen? a cot je roti od fake acant() 9 Esto 2 opts 2 7 Veakntatnon& pcavaj adr a toy pda de el prominnd oi se ll plttenk odo le oa denne a a 148 C ou th ‘ott parametypedety ponte hod. 4 Formitomang tap vfstup 38 Fis a ‘Program plete x venice de Zl, vytishne jew obréceném pote a A vytikne ji soe, clude 0 soe 535 weant(ota", 0: peant(rta" a3)3 printe(~tala", 3. 10; Printtud je'zoueet™, 4+ 3)5 pe pro vtup: 47 be vjtup!: TALL je soucet A Rides fotanee formétu Proto fukee printt() s acant() mail proméanj potet paramnetrd ‘deine apt tisnout njednou hodnoty jedaé, dou nebo vee proménnfch fo vfrart) je tn ndjakgnapsober tte funk ad, Klik latin jf tonksGinin pripadéspracovrat porate K tom slut trv Fide deerme. cof etace naavdeng tvonoviel” — je to vidy prt fanetr eto fk. ‘Tento Ftzte ure format @ten nebo 24pim 3 thon (ptoméangch nebo vast), nimi e bude pracovl 1 obranizetHalehofteace a pour uvonovky abe apostay,po- «eV onovkich ge sara fetes nv aposrofch pouae zak! {ei Fence formtu obsae: mnitoeéseeace sana amakem “XP effort etapa nebo wfstupa toed posloupnesti~ nevaeng maker" ‘yp tak, ak jou 2apsny Je rode pole eatin poste se pouze® pro print) eat to shy, jn me node ba pin. ‘Tel nm eh dbte sn oncondkostanta ~ vt. 2, Por scant( ung ake techn sa, tae ve obrylenepontva a yen ln ate 2 36 4. Tormindlovg vatup a tC rSoncet Jo YA", 4 + $): Soucet jet 2) prinee(+Pracovals aa 100%"); ‘ype: Pracorals na 100% anebot po vfpismnaku "je nutné tento rn edit 38) prines(esoucet Jo Ta\eSoucsn je Mala", £45, 44305 Uaplie: Soucet 30 11 Soucin Jo 28. olhdbyje 4) prinee("\ooTengba, porue o delens aszeu.\2*) Dlslne” a eypise:” Chybe, poke © deleat males. « ofdhne 5) printe(*Tote Je \wbackelaaa\#: "\\\R"); ‘ope: Tote $e "backslash" '\"" a ode roto sei tsk pout Esto pouze apotoly misto wvo2ovek, ne bot posto non Bn probly ©) prénte( Toto je "backslash! : "\\"\n"). ‘pie: Tote je "backslash: *\) e odfdtaje Poiet argument prénet() a ecant() mite bft wif nek dva (se tisknout nebo atta vice net edna promnnot), al je vidy mine dort ‘cing potet parame (preminngeh nebo ¥eaz) jako formstowjch epee flac. Pei nabods kompilitornoblst ani ehybu abi varoveéblaen, ale ‘jaledng program praca chybad, “Za anakem “W"mte bt (abv) wvedena ced Fada formstove speci fac, Naat budou rein owns nian poi, Podrbey phe INtkteré formstonéapeihace Hideto ftizce frmitu wrhdéné 24 znakers "¥" poutitelng jak pro weane() tak pro print) © -ml 4 ~destové to tps signed int 34 —dealtdov oo typ signed Tong 1 ~dastoné lo typ unsigned int 20 desthoné tile type unsigned long “float (re prinet() take double) Lt long double (Posor: nul bt velk) 7 Dived va wr panne nh joy di etic ak th ut bf dah 9 aden rake ten tae) we sant (He, band Formstovans vstp a stop a At — double (Poser: nikdy nel pout pro print) ) 4 beradesimdl elo mali plsmeny, nap 1a2¢ X hexadecimal Elo velkni parent, nap. 1426 © —camiltové Ho 2 —ketiaee ‘priste("2oak "fe! wa ASCIT kod 4 (HIB)\R", €, 5 ©; ‘ype: Tank "4 ma ASCIT Kod 66 (618) prinet("2nak "et an ASCE kod Yd (UHH) \w von ee mide: “2enk''6? ma ASCTT Hod 42 (240) printt(*Je preme Y24:424\n", hodiny, minuty): typlte nape ie presne 12 elo noph: Ye preene 13: 3 rote poet cir, ber} ae bude tsknou, se dé pio ut sypdes Bn pivo june ueracili: 13.60 few ‘proto €.2anamen, fe reding elo bude vytino na 6 anak a nich dow dva za destino tekou a jeden je destin etka prine#(*Holik stale Ys pivo?\n", is pie: Kolik stale Jetao pivot Fors spy je vhodné twit x piamen malé abecedy. Vel plmena sou ‘mind pichledn a plipominat rato éru denen SUtk, nape ab uvedeny mean cy, tes an tk pfedchorich dvou kpitl 480; ‘defini! funkce se nel tdi sseg(eta", 4, 304 macho argument snee(otatde,"2D;) ilo argument eang(ota, 3}; chybiamak ttedy: scant (“Ya feang(ta, te); formit pro char jee scant a 4. Termindlowy vstup a vistup ole dotet si wvidomit * Viecina Kio slova must bgt alfa pimeny + Dalen (/) je operace aval na ypu operandd — proce la je to Celoiselné det jna je to rend den. «+ Pifzent je ret a piaaem se eval po uhontet sedate, { Poiet vjstupaichvjeasd v print¢() nebo satupnich v scant) ms lone odpovidet pot frmitonsch sexe, + V promiangeh veteant() je Cite 1) Napite program, kerf wypie pend nile text: Janes Bond \ “Agent O07" \ # 160% zarmba # / Spel. # racenin seomeeways 2) apse program, kterf plete anak a wpe xoaks ASC hodnotou 0 indo wah mae ‘wtp vistep © 8 (ASCIT 66) 3) Nite program, kerf plete eld dekdiché eo (v rozsau 0 a8 255) ype joo hexadecimal hodsotu dvoumnabov, nape step: TRA 4) Napite program, Ker plpodtivs 25% da, ‘slap: Zadesee coma bez dane stop: Prodayni cona e dant (28%) : 126 5) Napite program, Kerf wypogte obaah bd, api wstap > Zadegte daa a sirku : 5 4 Wfstup + Obdeiain dence 6 a 2izce 4 ma obeah 20 8) owl diny define: ant a= 2, b= 2, = 1, d= 0 0 = 4 Pak oapite programy, Keré vypit hodnoty niledjiich raat 8 ‘privat shotrlate vast wipe S) ae ome te ya oe me Qa ey mae we ye 0 tenrariees2 1) Napite program, kerf plete eng Elo vypiejeho celou Hat ‘Ruste vyuit wee zp nob koe th Peemitoray votup a vjstup 5 [Napite program, Kerf plete ti velké plamena a wypie je jako tH snal psmens Napite program, ter plete 1 malé pena a vypie je jako sf ‘os plana vabrSceném poFad opie program, ker wypfie maximslni ido, Které je moino uli ounsigned int » do signed int Pomc. = jako signed int je maim unsigned int « maximélnt signed int je 1/2 maximo unsigned int. Naplite program, ker jst! tot pro typy short a long Maple program, kerf objnend viechaysptsoby pout operdtora / (Glen! clotzelnd i esng) a operstore (lead module). [apt program, Mer pltte najednou ti rein tila a vypie eich ssitmetcky prime oa dv destin ita apt program, Mer kedtee pipe 5 Ridici struktury ‘Tato kapitla pope podtatnw fet jayka C — Heeni ibe pro atm. Néstedufe! pinay Je vhodoé pedivé prostudovat veetn’ pikladi, [roof bes nich pA jebéata dali programovin! urivé neobeere, Sus’ ature Dora bly wddény rady pro pan pehledngch a dabie wypadailch programi vy a an uréitou probranou it janyhn C. Nya wenime hime ‘vedeme eto rady courant naped, aby bly plkné pohromad. Za net [nidjn doporuzenin bude nisedovat ped «+ Kaldé note logicky podieného sacks programa e 02 meery doprs- ‘va. Hodaota 2 Je empiicky vyaboubend a je “tak akorét"Vaoten! © {sbalitr (veligou 8 meter) je me pli vii Moubee zanoen, rote text je pak ponunut pls vprave. Nastevimedi meni velitottabulto- (col mot nap. Borlandaké etry) dla pak tabulétory jingch ‘amie probly pi tink, «+ Priadné Fy oe vil podle vatntho wren! debi, kde wahouw slept telnet program: it = 8) st ‘7 prantan radha jo 240 se 128 + Lev sloteng s6vrks €" antigo fnkee je dy sama na Fee v1 loupe. Tok plat pro uraviee!xvoeku funce "” aia() e prinee(*mdo} Ww"); » » + Otevirac vorka “(jena de Hue sho pltiany clue for while do switch ros pfeehizet mene sa af mem bft Hd dal pian, ‘Uravrac aSvorka “jew elo pian na samostatné He ve loupe), Ice sting lov sve Get Jelisa if cleo for while do fk bo unaviete do-{- 1 kay to en natn len weedy pitas, it (== 8) (f+ C zavorea nent nutna, ale vhodsa +/ “y= 8 et > (> sonora nent utna, ale vhodaa #/ Meri if for while switch return a nésodufetoteviract sverkou °C mus jt jedna meer: waile (2 += 8) Binge operdiory,napk¢ ifsovatopertory, nape peritory porornén, nap ‘terira operstor: 7 etm eda meer ped a jednu mezra 2a MEG 8) C/o ade Jo C zavorna mutna 111 4/ eke ees: woe (Jo nde je} avorna nutna 111 6/ ken operiiory,mapk: 1 oma seat byt oddeleny od operand menrou fe Po tree ( ,) a stfedtu( 5) mus ft mene, printt(“Soacet je Tala", 4 3)5 ‘ku oe cof went nevjie na jednu Hu, mus pokrazovat na dali ‘toperitoren ane operandem » must bt sarorndn na stejn sloupec, ako je acted vac 2 5, Ridit struktury At (cotkory_plat >= 1000 ak cateory_plat <= 2000 Ak _pridamhy.na dats c= £00) print (Sociales prapad Wn"); + Obecnt by Kady mete pike (pifazen,ikrement, ..) mal bjt na ‘amewiatn Hike. Caton (a milo ass) iso pay ms ‘lm! sno souvisoat. sO; y= sherey();/+ teana souvistont 6/ 5.1 Booleovské vyrazy {aki blo uvedeno na te 23, ea vjanyce Cimplisitné typ Boolean Mito nd se poutvs typ int, ie nulord hodnota (0) auamens FALSE ‘enulovd hodnota (ages ale neni to podminkou) je TRUE Pascal C serornst ° Inge soni rs lepiok soncet, a negce wor sit edo peony ma ston satan | vena ‘ment Ienil nebo rorne va i nebo roome ‘Te diletité si ovédomit rou! mei poroensnim == a pitsesim = 4+ 6 jecelotslayyjrar hodnotow 6, keou take pane do broménné $m je pavodsibodnota 425 6 cclotaengwiras ponkytie (TRUE), jet 1 § hodnct tebo pesky 0 (FALSE), més hoduot in, nek hodnotaproméné 4 sean jednom plpade nema 5.14 Zkréconé vyhodnocovéat logickich wean ‘Zajimavou vastost janyha Cj, fe = logickssoutin a soutet vyhodno- cui ve abtdcndenvyhodaoceat (short cre). To anameng, te segumenty {fou vshodnocovény aleve dopava a jail je motno ut Koneay vledek, ‘Whodnocovéa!okamitz kot 4 pomén- ocleoaké reer 4 ‘ento— od sandardatho Paral rtday —aptsob spracovini ve v © fs hodou vy, na. era wgie we r/c) ‘da sprvng a Ke dilené now ¥tamto pHipad nikdy nedode, protate {at logickcho vfrazu: I= 0 Fwyhodnocoini toto wean ped denim. cal bude mf tend aapzan (vt aévorky jou neabytné) wr so) mo Gly <2) Tedek meine dient alow ated pferaieavfpotu, Priority wyhodnocovdnt log plaaba wphodnoconiatnaktersch operitord! ‘emir hodnocent pra dleva ers dopeata lees dopeara < eva doprara eva doprara leva doprara leva doprara preva dow sed Zprave dleea leva dopeaea sch vrai = + wp netict operstory a opertor porovnda! vy pita nek ick operon, tale van: Gt (eoe kk eee "2 capris, eit seo napeanspasclaf wea: i (ede tk) MD c= 2") ie eybas. V lich vfrsech (ajo ¥ nich) plat até provide: Mai pocyby,24sorky —taahae en pets, o Ref byl doen zi, “ 5, Ridietstruktury Pro iechny sled! prey plat deinice: Ant = 4, 5 Desa GD; 4 bude 2, j bude 4, protate j e= 3 (TRUE) a ejrae #2 je TRUE (oe rl) 4 bude 0, rotate == 4 (FALSE) 5 bude 4, protade na Ce 72) nests 3 bude 0, 4 Bude 1 (ncinkrementuje fe) protoie 15 je FALSE Qysje asa; Hasse a: Age ya Geien: Paar Nezamtiorat tk 20 2 nebo || 28 | . Operstny & 2 | pledstavui Ditvéoperace, a pouty neprévn vlogicch vratech dil nespedene vjaledy — vin at 256, 5.2 Podminény vyraz — ternérni operétor Je to opt novnka, protoke Patel podporuje poutepodminény pias Syataze podminén vate ira pdr? wnat: wast ‘Aims yfrnam: if wjraspodm then frat else nas? ‘i vfsledné hovinota vrata je bud wrest nebo raz, a ziledt to na Dhodaoté vray was ad Pred: ame A kf 2a beQeenrd weGopris bude s Xe bude maximum 24, tedy 2 (Opa je dobet si pipomenout, tex vfraeu se stan pha, kon se ‘iedafteny nape (hand) 7 St 1 $00; inkrementuje bud acho 5 + Zévorky Kole podminky njsou mute, ale wd we pro rften Gis + Vitsinow se podmining wras nepouivs, prolate pias if-else je snnohem Gielngl. Vnékterfch prpadech (Klsehfh) je wa uta ‘apf. Konverre taku na mall plmens: Operstr Barty 6 1) Pascal Ce > 14) ano (© «= 12) aR(ORD(e) + (ORD(*a") ~ ORDLA"))), Tar c: a eR Con bk CD Te Oar Ds 3 Operdtor éarky Pouse iyi operitory v C zara vybodnocen levcho operand pied ‘odaocenim paveho operand — Logik soutin (28), loge sowet |}, ‘ea operator (7 =) a operitr eirky ( ‘xe operitoru trky je jeduaduehs — vfs: wrest, wins? speacoviv tak, fe je wjrazwyhodaocen Vise tohoto vyhod a je sapomenut,pok se wyhodnal ajraz?. a to je take rivertag ‘eat po pout! vftazusopersorem ekky. Vfsladek nen! Mhodnota, Sat £22, 524; / toto nant operator carky +/ Pe Gee =D; 76 A mede's af bude ot 67 "ls Y tomto ptpadé jou révorky nutn, prolate operitoreétky mé nent, Piritu, i vyhodnoceat by bya: (j= S44), 4 ~ 33 ob nen plik, tre: Operitorcicky poutivejte jon vHdleh sec pias for 9 while — sie 54, nape. Tor JO Sem S44, 54) Kromé vie uvedengch 8 opritord,nesruufotatasoperstory Hd- 16 potadi vyhodnocovil a je tly chybou vytvsfetwfrarytohot yp ee Ge a: ‘bidet levy operand vybodnoven jako pron, pak bude J rovno “1a $ bude 3 jinak j bude 1 1 bude 4 aa Program piste» kdvesnice da anaky a ytshne anak meniin ordi ‘lain Ee min) 6 5. Rider steuktury « sat ey a e+ gstetar(); 4 geeemar0: pudar(ecad tc: @; y 2) Sting program troche nak, Haciade sain) « = getemar(); potehar(e < (@ > getetarO) Pe: 8s 5.4 Pifkaz if a pifkaz if-else Std jak v Paces ei yC pias iden x neutvangich pian Pascal © TF boles-srez (nfs) sory rou nesbytnd "THEN prtse rile: Pied 1) Program ite anak a jel to valk pismeno, vypie eho ordindat to ssaciade ) « e = getenar(): Se (ona) Be ce iD) printed", > 2) Tent pad sapeang v °C-Aovkém sty", lis Easto vyutivanon shtetoet Se pifeoeal fe vPo: A. Prieta if-else a main e s4 ((e = getenarQ)) 92 14) ak cee 2) printe(nia\a", ©) > nimi: #Tplngma pochopen’ to ponnsmky véujtedortatck tasu. Vysviluje tol joen 2 njvceproblmorgch yo jaya C. Voi eivorky.(e # getchar()) jou natn, protte ber nich by pl au at (e = getehar() > 1A BR ce Z!) angoalniledjee, sel jing aplsobem™ _getenar( plete mak porovn ho se mskern Jeli sjledek tent logs 0 (neoll FALSE), test hon logic © (ne ‘nak 11) je phifazena do prominnaé eli sfaledek tem lgiks 4 (nebo TRUE), porovndvd se ste jet redeioovanshodots proméané ex znakem "2" Vsedem porovndak Jopé lgeké@ nebo 1, KerS se nakonee logic soutinem vynisobl ‘logickow hodoctow#pledchonho tests. Pode vfaledk toboto routing {de pomennd c pital bu logics nebo logic + Pita if modné roto tele, Ker e prove, kay podinks it nent splat seal © ‘olen nat i (ojras)_—_ nerdy joo nesbyine EN rites! pikes ts steda je mala SE pres: alse ites nia 1 Poke do abe sanofeno vice plat if pak plat pravidl, eels se ‘ataje vidy nbs if iad Samostatny pitas it Pascal © wi>s #G>9) Tm ji6 $28 a 5. Riditstruktury Ss. ts srt 5.52 Peas whi “Teno eran pas teste podink eye od pichodens in) inte waste ((e © gatenar() = 120) ¢ it tee ts) patenes(e); (Js eiak anaes 6/ we Prinet(\actens seake Dye akon > “Tent pita deh ackoneénho cya while as poutitim pad break s continue moe + Plodem tly wedkllome Fi, probsheti cy flaow ncbo sakrt — tora) syle for nn 52 ‘erat pitary — eylly o o mise (1) © /e nekoneces snycka */ sf (Ce * getenarO) <) continue! (/ ethonens neviditelneho zak 6/ 7 zescavent po macteni naka '27 +/ (p tiak same o/ > Prinee("\acvens maka Dylo ukoncene. \ im «Teo plaza while mie bf préadé, nap aso se vytivé voto vyne- Shirt acy wn tape ‘waite (getedarO) ==) robo peskoen!vlch beh anak ne vtupu ‘ile ((e = geteharO) bs tra eli plan préndng je sft": odsanen vidy na nové Fe, 3 Pifias do-while eto lvivalent Pascalského pikazw REPEAT-UNTIL. V tomto.yk s podmialatestue al po prchodu eye —epklus tedy probéhne ng 8 jedou seal © PEAT aoe tess; itey NTIL NOT boolenejres while Cores) Mise: mir heat i Wie o: waite (4 > 0); 32 5, Rdief struktury BO Ret atrutry Ponar: ii wyhodnoconén siviwiné podmiaky eyklu do-while je podstatay rotdl meat Paselem a C. Paseal poblt ne fo ico C privé naopak — piinesplning podaninceCyklus do-while race tak dlouho,dokud m podminka TRUE (aenulovow) hodaots Dali rnd jew tom, tlm eps do-while mie bt jen jeden pan oui se tedy vtdinou svorek {pro sloteg pias Pras. Progam je podobng jako u eykla while. Opét opiuje viechay tsk. rutelné snaky zadané 2 Mvesnice,neviditelach nevis ana po stink tak "3". Ron ev tom, te vy i tonto lonéoval nak Finende ‘Stabe kultura; + Pohud paz do—whilo obsahujeslobng pag, pak je vhodné pat pod ‘miu while 28 waavrat “)” nSvorkuslatench pass — vie pledchori Diikind, Nepiemeni tots while as novou Tad, budeme se pak pi rn pobledu do programy divi, jak sms md ten prisdny ekiue hile 5.54 Pifiaa for Je to apie pitas cru, Mery poujme v pipads, te anime pledem pote prichoddeyklem? Pascal © FOR fiiic.grom := start for Corestart; wra-stop; wjrasiter) 70 sop iba DO pitas apiind chceme, aby elo Maelo adn do drat, V tomo plipadé eal vhodg ein while vit. 50. Eo for Gs td rinee(talen, Dr Phedcoat plied ulazoval typickt pout for. Meme se vnk stat _mpobem komplkoransim piem tohoto pba, “Inmet pak na pockybieh, co ma pla for vlasta® dlt, je dobeé si ‘dom, ved vidy piepeat pomod! eylu while tate: while (ojrazstep) ¢ pitas; trasiters y podle thotoschématu také ve skuttnoet clu for prac ania ANgrany: —wjrasstort efrazstop —wjreniter apolu nema vibec souvist« dotonce ani nema bjt uvedeny Oviem pout tzhto mod ott nent Lo neat weit ey for. Pokud eal nékerf x vita jniztart erazatop wfreciter ve ese, pak ale mute vidyuvétsfedak *", Kerf je tent cy biel ‘fra oddeen od estatneh — via dale pled. '# Gyles for pobihé tak ese na posits vyhodnot was start, teste ‘sada je efrazstoppravdvg (aenulovs — TRUE), proved ve pikes takooee se proved waster Paknastvg dl obra kl ‘Tak jako pro eyly while = do while si pro ovlddan! ey for dat ‘yult pitiny break a continue, ad rol iyi piklady vidy pedpoklsddme defini ant 4 = 0: wiecny tino tla 0a 8. “Klnice” (a doporufovan) wit for for = 0; < € 30; S44) prinet(-Ma ", 3); )Vyutitiniciaizace 4 pi defisiet — nevhodnéfeien,proafe nea ie pokromade for (i 4c 10; 444) printe(mta "0 diet proméans je ménéna v tle yk — opit nevhodnd eben for; Lc 10: ) printe(ta ", 444)3 3 5._ Riles struktury BO. Rite straktury 4) Vyutit opeitora dark — Erté ale opt ne acela vod poutitt for (5 4 ¢ 10; prines(mma *, 0, 144) 8) Poot operdtonn deka pi inicilizal (3 = 1, ou © 0;) je vhodnt Di fpotta (sum +2 4, 144) je nevbodag tor G5, ome 0; ce 40; aun ee 6, iH) ©) Coklus for mite ment Hae poméaao lbovolajenrpdsobem Ant &, souein, tor G23, aouesn = 4) souein ae putt nl ro viechaycply pla nko obecajch pravidel, Kerf vhodné dodriovt: Saale se mi dy poune jedn fd proménn, + Ric promons smi bt oniviovin pou Hill ei ck ane vebo tele ‘+ Ucoklu for mst bt wiechny potibné iniiliace iicilenét aati vis posed» predchoath pind ‘+ Pokud mé clus pads to, must bt sed kon tento phar ‘edazen na nove Fae + Pils continue je viodné nahrait ited konstrke! ites. ‘+ Pitas break by se mal v tale exku wsthytanut poune ¥ nerbytngch Piipadech s poure na jedaom mists. Vicendsobniekyt break tore srorumitelnost a itelacet program — vin prliedy na ste 50, ‘Jel to moing, peferit cys while a for pled eyem do- while, pox {oben phen 9) ea) formu: toe ( 5 meen eas, kr 5.6 P¥ikaz switch obeahue pita: piepinate, nebolt pitas pro machonéobné vétveat Program, Je iak nutnt = wvedomit, eto nen! Gln ekvivalentpascalhhn CASE a ie mé nolitnisedufelch podsttnjeh not (6 Prika switch 5s ne jednodute napet post vet nkolika hodoot pro jeden pita, ‘fra, pole Ketch se rozhodue, msi bit typa int, ladda ete pleplaze musi bjt ulonéenapiflaem break, 1 ie podporordne vitev defaul, kters ae provi dy H4dn4 x vette rbowte. 1 Vlaidé veto mie bjt vie pita, které nent natn uzvirt do 2Svorck ‘scal ce [ASE ora: OF switch Corus) € dnote! = pk fase hodacle-! + pitas; break: nae hadnotan pas. break; ATault : pitas def; bremk ¥ snd e"Vgeet niklika hadnot, pro keré mi bjt proveden tenfé plilae, mé for: cate hodnota.t.n : prttag; break: Rona Tent ite plepinaze (jeden nebo vice pars) skonEenapomoci pit tu break, progeam reopoustt swite, le praca nate vite ‘potad A'ytéto inpoatipokrataje do dosadent nebo pany Ibreak nebo do ukonten! pears switeh ad ‘Tento Gack programs vypieanaky 123 po sis Mery "a? abo *b? bo ter. Pots "4" wypie 23 po isk jing Alveny ype 2 ech (gotedarO) £ fase fe! 5 putenar('4"): fags 1g! = putetar('2"): default = potenar('3'); o “norma (ofekivanou) anki pfoponte je mutné program poopeavit 56 5. diet struktury Ss, Riek struktry vives (gutchar) putehae('4"); rear: petenar("2") break: detanrt ‘petchar(3"); break: > ‘Sot bultura: * Souvingie vite we modds novou Fidkou, nae witch (geredarQ) { pvehar(); 1+ Pehary vive jou na novd Hide odszeny 0 obvlypotet dou mene Veer defaults itinou pei hays je pnd, ed detente ‘break: + Pitas break an posed pliazem posleda vtve pent mut, ale kom: ence se des, + Vetev default nest bjt uvedena jako posed vtew piepnaéc, ale _onvenee je vidy jako posed, * Pikas break rif vidy nejvaitagi myth ykla nebo ukontuje pe soritch, de tedy mutnédivat sven ponor, obohujel switch nak ‘phlu nebo napa + Pitas continue nde switch nic spoletného! $a ej ton oak neta, {Jet tedyewiteh ap, veamyée while, pak break spsotehondcaswiteh see while, 6 Pitas switch or rikay ea defaults proviaividy a thy, kay nent nalzena ing vohovujle vite, af ji je veer default wvedenav plepindi kde. ‘itch (getetar()) € printf (Neste jes ani ‘47 ant '2"\0"); break: rines(Stiakl jai 11"\a"); Prince (Seek jak 72" ky HGvenie a opine jena obrnovks. Bile soaky —metera a tabultor ~ nabradi sakern "4". Jakmilepiette nak °° shone amd ev innet ‘Toto Feet je uvedeno jako odstrasift plikad, jak nemé program vypadat. Michat se ott do sebe vii, Kterénemaji nc spletuche! sat c= 0; waite (6 f= 10) ¢ veh (6 « getehar() ¢ cae \er petenar(#); ‘putenar(e); > Jo onse auitch +/ > [7 wonee white #7 se 2 9 5. Ridietstruktury Program pracaje tao: + Promennd c byl incalizonina na 0 takde 1. prod pies while ‘wit probit. ‘+ Nadiend menera tbo tabultor spb tsk rma “” «pak pitas continue” zpsobipimj odskok na Konee sky while, odd Je tient preino na ef aatdtek testovinn podminka Ce "= '*) 1 Naztenj tak "" aplsobodskok na honee switch, kde mast dal obsdtha ela while, Ker ale neprobehae, prooie podmiae (¢ #0 “e!) bade mit hodnotu FALSE. + Kata jing ontteny anak je vypan bere ama. Moohem lepl fen tohoto pita — tit ukontonacho maky *" se proved ber petaha hned na zat, hie ((e * getenar()) 12 16") ¢ ewieen (e) care '\t? ptenazC#") 5 ipetehar(e)s Kati, ale mnt peed ips ubetime 3 #idky, meme program dabte “tall vinite ((e = geteaarQ) f= 181) € sviten (2) patchar(e): [Riera vine, sends plazom swith le ype Prikas return so 7 Pitkaz goto Prtiaz goto se x dobfe napsangeh programech poutvd milkdy,protate snrakturoranémn any, jako je C, se mu ae vidy vyhnowt. Pokud je pout, ma bt proto erent ddvod amet bj “orumn vedene™ oui “edn # ml srdanlch pout je wjekok x vofenfch(ethaidéngch) sai — vis dil pind "Natori od Paeal enGvt pro goto emus pedem deinvataskott 46 Land! idovlnt, cot Sn pian goto avlsténeberpetnn a Tedno 2 “lasek” poutité goto. Vy prot, te rednods spfbledSuje program. for (220; 40; SH) € for G20; je 40; 3H) ¢ ‘or (k= 0; 10; eH) € if (Dd == 0) goto errors a00'= GD» 8650 / x03; > > > {goto dates eypocets Prinet(Maory detiter \x! “bo atu: ‘ Nepoutivat goto pro wjsok x ednoduché smy2ky —v tmtoppad je ‘machem vhodngi pout break +8 Pifkaz return Dede providént programa ns pias return ukoné se provid fake 1 ler tento pas obsahje. ‘fags masn() skond pas return clf program Cato ve pomoct return vo! hija hodnots, jit yp ale na typ nel {ea we sozt nap. jong fntze do dra fee © Pedrbns vin ee 1 oo 5, Ride straktury Pialad Byleliby peace s pls pfedcoriho pias provedens voli funk je pak vhodntl pout pina return ae goto. Pro alta, da fakes sploila soi Glo sprdvné nim posoullnSvratonéhodaota. Jeli hodnota + bude znamenatprovedea! ber chy = odnota@»ehybou. beni) « sae for (20; 4 < 10: S60) ¢ for = 0: 5 © 10; $e8) ¢ for (k= 0; ee 10; be) 3¢ (aD0 + 0) return (0); acd) © aC) + 963) / x0; J+ aeuspecn +/ Panis: (Obtas se meme sethat + pouitim funkce exit()!, Ta mé podobay sfanam oko pias return. Road e¥ tom fe jel vyvoléne telly funkee, hont besprostedad program, ber nSerts do funk vl, ‘me nent Hon soo chy révorky chy ted Gen fanent (=) mist pov 00) ehybtftsbvorky ima bjt: s¢ (Ce geteaar) == "4" Je pope + Mavitowen sont Pika retaen a de (00 1) do sa while neat do (on 0; £10; 4409; ade nem bft ated ro ' dobr s ovtdomit ro plitazovt we pout operstor # to porornat seule operdtor logické ax (AND) «|| (OR) ma akrdené vyhodnocovént ‘ro ukontenemjky cpl se pout pik break tm Kaidou vo pita switch mas bjt break — neat ove mesi Jednolivsmi vesemt souvisost Jitelina pocybich spioitou, evorkujte vohfbeit w dislednd poder « komplikoranfm kim a zpisim ow ‘Upravte pomoc expt typovtkonverte lent # © & / $2 tak, aby bylev promeane# hodaota 2.6, Mero vypite. V péfazeat hodact proméongim 5 (6) a (2) oveee tak fake perstora ey. [Napte program, Kerf plete dv celta a pomoct terndento ope- tora (77) eytihne Bae Wana ciste 6 Votes ciate 1 8 Napite program, ve Kterém budou topiary: printe("¥a Wer, 4 printe(vta Ve", £6 Drinee (ota Va" 1 A advodatte dostenéwialedhy. Napite program, Korg peite dvaanaky v romabu 0 ~ @ nebo A F. Poaor — uetite jana bexadecimei alo! “Tyto dvaanaky pak ovate va bexadecmils loa jeho hodnoty vrpite dekadick. oho funk program: AE (Ce = gatenar()) >= 1A ake ce OD) prints(ld Ww", se xivotiamis Ce = getenar()) 9; 9 D 9 » 1» 1) » 5. Bidet struktury aber sivorek:¢ = gateharO) Pett mak, a nent to ani psmeno ani lic, pak wise ni: Interpuntent zak ‘ostanich pipadch vytishadte nis: Afancnerscky xan Pousije jn jednohopiflanu if-elae »nerapomedte aa mal platen Piette jeden anak. Podlejho hodaoty vypite jeden x nde dpi a pledteny mak wypite apottfeh, nape fnterpentent gman | >! cialice - "3" sale piesane : (Ovétte na pikindy, te podminky: it (opraz te 0) af (apres) ‘mall totaly funks. Tot onde | pro opaeé podria Ae (eyraz == 0) a at (inpraa) Dopitenisedaiet progam tak, aby byl mont oni shrScené vy hhodnocovini x podminky se (a5 a Hy == 9) ‘printt(*podninka plataa\e"); Dopiite nied program tak, aby byl motné evi kricené vy- bhodnocora | podminky: Ga 6 I sy e090) print¢(*potninka plataa\e") (Cute maky 2 Wdvence aldo "\n! a spottjepote velkfch a maf pismen, Ostatneh aaakd # neviimete Poult pkla wt [Napite program, Kerf piece mil» Hléesice (mse za taki Hidvesnice). Pro aad stup vypite nap: ado 1. ciate? 2 echo ll yt, oie ich el vinteraly <25, 9 Pout eyla for. Na program, Kerf wypisuje plironné dle (1,2, 3, innostpiasd break continue. ) wynbouige Pouaite ell for. [Napite program, Mer pro zadané Glo vypote faktoril, Poutite ‘yp long int apt program, Kerf pete dvé Kad eng sa £2 «pak ype Wiech rod eld esa ¥ interval ct, > 6 Vstup ze souboru a vystup do souboru ‘Waoutasnch programech se ro naprostou tin vtupd poutiva sou {etivael program vadévé # Alsveanice max. atoll krsthgeh deja, IRE ne stovky Ell). Seg tak programy, komt perfktnt pee » ou, ve wiht vEtsiné umotiut api vlad sv price do soubor. “to divodi je nesbyiné pci se oubory vjayee © bepetnd old ok: Y nsec odstancich budou vysvleny nékteré“emnosi,které se ‘Slaisoubord, Pokud we zajimitertim jn ot, jak ae sobre fit 8 {ile do nt aopsovat Kida pretest 65 1 implementaatho(hardwatenéhe)hlediha je lat soubor posloup- Bayt ulokenjeh na ngjakem mdi (nears) aol beth ‘mai tejoou vlikest a nemuaf natn Ike tn sebou Jak ee # hi ' je ade en a jen operaéntho aye a ni to nemus aja tie tedy vytvatenpodle pravidel dang opersinim setémem. PRatap ‘bora je motng jak sekvenene tak} nshodt 4 ativatelatho hledisha je soubor poloupnost po sabi juetch Byta ‘tk do kone soubor. Staroettoperszatho stm je, aky am iyo dal v tom sprévném pote 1 divodd co metho omen! poet peienich perac (tj, avfent ti), jou 1/0 operac blferorane, tan Najeno se plete cel Mok dat dsku do pari (buffer), Jed ‘otivg poly e pak étou 2 pamiti ane plimo x disk, Potebujeme y plist napt 2 anaky 26 soubor, nate te do pam cel tak tou ‘ru (aap. blok dt velit 512 Byte), ve Kerem joo fyio 2 anak ak 1 této pamit pfette prt anak a potomn | dru anak jit bet stupa na vgs médium, i podstatas rye ‘Prov oie byt ait, bade dle pein Byte vein “8” My se dene die rabjat ponte event platen imho a cs Pro tt sabory we fst poi fra prondy dt steam) ot 6._Vstup 26 soubor a vistup do sombory 1 Pro fata: Data esapsu ne primo ma dik, ale do blfrs (pamét) kiya je pla, aape se automatic celf cba bufferv na dik do soubor jabs Jeon blo dat. Vodou je opét v8 rychost rapizorSai do pai net ta dk oni: + Kaihovaa fanke/ UNIXW i MS-DOSu umotinie poutvat{ nebutero 16 1/0 (vin soubor 10.2), cat znamend, de kad 1/0 perce je ok Indité provedena. ANSI C mataort nebufeovanfch I/O eperscl pin heplipoust, de ale mos, api potnoc! standard fenkce set ut 0, astavit bulfrviniblkewé dkovt nebo Sdne Temito motnestmi 1/0 se nebudeme dle sabfat, il vichny dali pro sramy budou vyutivat vjhod bufferovin!pledaastavench operant Meme + Vetupy 2 lévsnice a vstupy aa obrasork (tv, “nteratvas1/0") rmohou povadovat a speci peipad souborovich 1/0. Krdthéorvetent pam, jk to je v Pascal vane: nasty ~ defniceproménné £, pomort ni e bude pi tupovat ktextonem sbory AsSTEN(¢, “DATA.TIT); “hoon prménné# we wouborm DATA.TAE ESET(#) ~ oleefeni soubor pro te REVITE(#); ~ otevFent soubor pro apis DCE, ©): ~ Gent anak ae soubora wMITEGE, 5 = apn sak do subora ‘1ose(s}; ave soubor po skonéeni pce «nim Posnimb, ‘+ Frikar CLOSE(4); je Canto nutas, pote po wkontentprogramn os ‘dy aajftno je soubor automaticly elf napesn ne sk 8 este (fash) V pri to 2namens, Ze obeah posldaiho buffer ub nema 1 pamas zapstn do soubora. Proje seo tak, edo soubor nico poh ‘atelnéprogeamem zpisjeme, av soubor to ale po skonten progea el 1 Pascal roternivs da py soubor Wak f : FILE OF THTBGER; — — soubor + dani typem (yp THTECER je eden jen js? paitad) vant: texn, textors soubor 26k price se souborem os 1 C umodinje roast bindrat soubor a textors soubor. Je oviem 1néhned posnaimena, fe s obtma typy soubor lee pracorat nape ‘nb ae lis jen ¥ nla malickotch str, 80 bude avedena ukiska program a jee wstup 3 ker bade leo, jak je oud mei textonfns a bindrim voubory ¥ MS-DOS tec souboru je nékdy ukonden specisninanakem, nat. CP/M a $508 snak “cera Z" (= 1Ab = 25 decimal’), le mache sytem '$-DOS, UNIX, VAX/VMS) tento mak (asbo padbny anak se se. 4 vjmamer) ners (ale mohou) vyutiat, potote operate! sytem ie skuetnot, jena kone! soubor, ait we dine dlty soubor ‘bak “Ctrl 2" je ale Zasto poutivi jako nak konceyouboru (EOF) pi atu 2 termi. Zatatek prace se souborem ett ada jes Nehldatv prc x soutory fbn setts” ‘edt datons typ pro prc se souborem v jaye Ce: FILE ¢ — cot je pointer na objet tp FILE ¢ proménnd £ pro pr we soubore: FILE ot; etifstr® FILE mu ft relly pismeny! fominné se dé pout jak ro tet, ak ipo 26pis do snbiory, ror ~ né pro rou prise soubor se alsa jako» Pascal, od we ia oat, li defnorat vee proméangch, li pracovat «vice soubory ajednow pro tent a 26pis), musi we nak "+" (veri) opakovat, FILE ote, of, (So to vata sneak doovne a st, LAT 2 satin «th nbudeme Neat oot soo, ae on tp, es 6._Vstup 20 souboru a vjstup do soubory Sis’ bltr ‘Je vhodnd poullatidemieétor of pro soubor, kerf tee, ieatihdtor "fe pro suber, do ashod zapisujeme Tet dentiitor (aap. #4) by nemel bt potivanvjedom programa nk pro Geni ve subora, ta ipo asp do nak ‘Cheeni souborem pracorat,jetteba he otvt, pits psc ote ent soubor urduje dle, jakéinnctiBademe moci se ouborem provi, 6.1.1 OtevFent soubor pro étent SouborPORUS bude mon jen dt Pascal ¢ ASSIGH(E, *PORUS?); f= fopen(*PORUS, "EHD; "#9 joka read seser(), 6.1.2 OtevFeni souboru pro sipis Do souboru PORUS bude motné jen sapinoat, Pascal ce ASSIONCE, “FOHUS); # REWRITE): Paani: + Bxst jolt dali ei oteventsouboru (rome *z* a 8), Kexé sae budoa popsiny dale — vest 7. 4s Nakietékompildton” umd! speifovst rei oteveni soubor i lo *we* nebo "re (versus *¥b" nebo "2b"), kde "etna extn elim a “8 bindrn etm. Pro dai piklady weajeme vidy textnd tel, prototewichny win unkee (Sprint #(),-s-) ipl # Obeené plat, e Ha nebo "Eber dalithopsmene, mamené tevin sosbonuw txtonémnredime, fopenC*PORUS™, 9); Ma juke write 6.2 Zékladni operace s otevFenfm souborem V ndsldujel tabulejnou wvedny fankce xe standards krihovny po- sand ve stdio.b, keré moti pacovat se souborem®. Prominn f° ‘ypu FHL + © Te asnt pout wwaorhy ("2") ane apn) 1 Napliad od fy Borland. * Nerapomett fe ped puttin tht anh natd soubor tet wea Prikady stladni price se sobory or sf anak 2¢ soxtors c= getete) ‘analy do soalore putele, #) “tované cleat sesovbory—fecant, *formél*, anpmenty) ‘oven ops do soulore —prsses(, "format", arpomenty) fankcepote() je prniparametezapsovang anak a dru soubor. To e dst plete fonket fprinte(, bers mi jako pevniparamet soubor. te ‘orden pamét a takd jako ulfaku, tse pre se soubory pint pec sobrazovko a higvnic, je uveden | phledkoresponduiel rnd) fet ent emake: Hévesnice ce # getenar() Hips nats na obracots petchar(e) slovanécleni = Hévenice sean (*Jormél®, argument) ormatovang sips a obrazorka print #( "format, erpumenty) Ukonéent price se souborem Po skontent price wsouborem — ul z no nchudeme dile dst nebo “ho nebudeme dale vepisovat— je autad tuto keene operaénins 1 nea elit. Tato alee se jmenujeuznvfenisoubora & provi se sf funkee ‘eloee(#), kde # je ypu FILE © ka Tall sev maoha rstémech uraviralsoubory po wkonéent program Aematck, je ve spatngm avjemn se na to spolcbat, wf jen proto, tet soudasnd otevtenjeh soubor je omezen. Dalim dobrfm divo- fm, prot uzevit soubor thted po ukonéent prices i,j dps buflera ‘souboru (vist se. 64). Ph ppadné dls havdrit progr se pak mite att, fe vsouboru budowchybitnikters data, Ker ame don “ee programe zapeal, ale rstala jen v buller Priklady zakladni prace se soubory ‘am vytoH soubor PoMUS.THT a rape do tho tla od do 40, ba ou Fad, } 2 &._Vstup 40 souboru a vistup do soubor $8__6. Vatup te souboru a wistup do soubor mg ot fu = topenC-Ponus.T11", for (ra; de i0; so) ‘tprintt(te, “ha Ne", 3); Ds Pokad si po shonéent programa problédneme soubor POKUS TEP libor ‘lnm editorem nebo je} pomod pian operate speému? xypicme brazvku,uvidime smluping wld Program pit i double tsa souboru DATA.T29! a wypie a obraton. Jc out, main « rig ots; at Hae Whe", any ay, a2): printOlur, x+y +; selose( tr); > Penni: Funkee tacant() vract potet dpainépiettensch poloiek'*, Lae ty ednoduiectstovat ppd, kay soubor DITA. THT nebude obsahovs v= ‘na tf double tl. St (facant(te, "iit Mt ae", ke, ay, 2) == 9) printe(it\e", x+y #2): printf (*Soubor DATA.TIT seobeahaje 3 rs etats\s 105u plac ype pos txt 18 Vywotento dive map. eltarom ptemt je Mertsnd,xda bad tens ida leet ¥ soubor DATA. TAT ua jl He dead meron nebo abe 0 monte He TY prna enim Loci sonbor va fcant( hea EO. ‘Fetovdnt tonceHdky 6 Pete dva anaky ze souboeu ZHAKY.TET a rapibe je do soubora cm saky © Hou do proménné typu int — divod vi st. 71 “atte. 2 acttn; (J tens promiho snake +/ oes (o apie prvaibo snake +/ (qetel2), t0); 72 erent a zapis druheho znaku #/ eects): seo): ‘Testovani konce Fadky ‘samdtoly Pascal jou avy, sev textorgch souborech piite ‘lf ukonéendanshy ,naph, pote! READLE, Tato °C plime neni, prot, kay cheeme pletion edu Tdku, sami pomtarat oto, de kuteén peetemne en ji ‘ Hay ov literate tasto snafu oko End-of-Line (BOL). ‘antn BOLY net nikde defnovina jako symboleks konetats®, ‘ch souborech se mie vyskytnout meni prblémscxnazenim knee Je totit mone pout th tdkade pity ‘Samestatng anak (carige return — névrt voriku) Bakové: "\e", hexadecimal: O99, deladicky: 13, Pos (kurtoru) a sate te fdhy aj ji ale plat standard face tgetn) — ve te. 20 ‘endo anstanty BOP vi 70 6._Vstup zo souboru a vistup do soubory 2) Samostatng anak (lnefoed — posun ods) rmakowe: \n!, betadecimdnd: 34, dekadichy: 10 “Tposun (hurr) novo Fk ¥ tome ues 8) ask ailodvang berprstiedné maken . Opa, ty Avojice mak se vyshytuje mlkdy Jaks pout spdsb omatent kone Hay, ile wa ckloostch np po slsku Kdvesy canter (ackdy ormatovans jbo sap Nast we popoané tH zpdseby nemua programstora wtkinos raj smat,potafe C porkyaje standard snak pro Kose Fy Xn"), Me 44 naprostéwitindppad price = textonftisoubory pout pro vechny {0 vfteuvedene spischy. Poulia se ak pro tester konce Fay taki po ‘pls Monee Fay vide. Tento “rik” jeumontn diy tomo, soubery Jou standardnéotevriy jako textowésoubory pak tab diy. “moudror [U"pfeHladace, Ker i jakjm spisobem Konketa syed cena hone dy souboru. V UNIu 14dn¢ problem nesou (pout se Jen ) okud vés zai, jk to vypedév MS-DOS, pak vist 80. 7 tohoto povidét Jedi i saparnatnatpoute to fe interpretace anak '\n" jin stleitootpfklsdate a my se 0 ni nemisime doubos ‘obu sara, af prcajane pod jakmbalivopertnim setimem. V naprote ‘lind ppada stad ted pracovat posne + "Vn" ak pro nf, tk 1 pe MS-DOSem —ot ale neni pce se soubote) a wtsinon jen pi 2p Je teba pout jak mak "\, tak anak Je titi wvBdomi, fe anak °\n? je make jako kat jing «me bgt tedy pout wide tm, kde C dovolue pol ak. nk it bso febno v vod, fankco gatenar() nebo get) neprov test konce tk. Tat Ginnost je acla vie rogramétors, Ziksdal tik PP ent af do kone diy je ted sf ((e= getetss)) t= Ne) Pra: ‘clei program plete jedau Fadku ve soubora DOPIS.TA « ope ii un cbrasorku vce aoaku mone Ely. aia) ‘Testorknt konce soubor n tr; 1 topen(*D0rrs.ra0", “3: Le (le = gete(#s)) f= Na!) taar(©! ehar(e): | /+ wypia *\n’ = odradiorant +/ oeette); ‘Testovani konce souboru ‘etovin’ once soubor je ¥ C motné dvime rovnocenfmi spdsoby lorfch soubor ales jen na vis, xa budete poutet pro tastondnt fosbora konstanta EDF nebo makro £ea¢()- Je nutné pomamenat, fe {HU makra feof) bude program pravdépodbne poral, nebt je le ola toboto maka. Pomoct symbolické konstanty 50 "aeons kone soubor se automaticly vac Lonstants BOF, Ker je ou definovina souboru sedze-h sm" vetinow bodaots i trik pro tent viech anak a do once soubora je ted: F (Ge = gete(ss)) to BOF) be mina neamt bjt definovina jako char, protofehopstanta HOF je prerentovinn casts nt hodnotou “3. Ta by bylskomserovina na char fed na no jin" net je=2 Ate program shopieuje soubor ORG.THT do souboru KOPIE. TAT. y ‘enemas! Je hb yar BP mist ‘Cedota ty sei an implemetac, nap. jo char implied uns wide ((e = gete(t0)) |= #0) pateley #8 seloee(te); y 6.6.2 Pomoct standardatho makra £4020) ones subors Ine také testa standardafm makrem f40f(), Ker ‘rac hodnctu TRUE (nenlowos), poked poled tent Bylo jt xa Koncom ‘euloru, nebo hoduota FALSE (ould), poke pf tent na kone soubor jst ned “Tnto spob je vhodndi, lem anaky (Byty) 2 bindeiho soubor protate © atm se otk mide objvit Byte + Wbovolnow hodaoteu — ted) TP hodactow OxFF Ten pak mite bjt pomoct implicit typove howver leven na hodaotu FV tomto pipade by Gen! re souboru mod EDF ‘honilo uprosted soubor Program, ker skopinje soubor ORG.THT do soubors HOPIE.THT po. moe! makta £4040, vypada takto asia) « Fs ete, ote; oe stele, #8) ‘Testor’ sprovnatioteven! a uzave!soubora n «7 Testovani spravnosti otevieni a uzavient souboru rotate oteirn a zavrin soubore jou kee, Keré se # needa {a nemastpovét', je velmi vbodné mit motaostotestorat, aa ito akce “hl privat, a pode vfuedku teat bud potrazovat nebo nepokrtovat spracorii programs. Jasyk C nim toto mofnost porkytaje je velit “nd jt vyulivat. To, cose spotty 2d sho abytenoat, nin ¥ budoue ire soils program wfaneént wenadni Ldn, pote ito ehyby 1 vel gant Jak funkes tepenQ) taki teteseO) jaon fake, Keré vac hodnotw Thodnota ge poudivé pro test, ada plas oteven &i uravien! soubor ail sprivne PA nesprivné provedeném otevientsoubors Poatit ewiy": 44 (Cee « fopenCorast 110" ERE (Soubor TEST_TET ef fopen() Konstanta )) == wu jo nepodarite otevrie\n") PE neprévnt provedenémnusavienlsoubora vaci felesa() hodnota Pai je ted 44 (felosa(ts) == £0) printf(“Soubor se nepedarite ezavrit\e"; ‘ “edt program je prepsang. program ze str 72 tak, jok by mal ‘Se citfeim vaech eoborordch oper str, ot: (Car = topenCeonte. txt, #9") == mL) Ant (“Souber ORIG.TIT ae aepedariio otewris\n"); vam: ‘+ axoncest prograsa */ ‘Sta ptinon je ea alteme ve én sobre “robe vit. vant HLL je defsvdssv aie. ha mi win hoot 0 ‘A Talat sok nen ft nyoechina vie. white ((c = gete(te)) 1» a0) pute(e, 10)! PEC Sobor ORIG.TIT x0 nepodarste szavrit\s"); hod */ it (tetoeatte) printe(Soubor KOPIE.TIT #6 nepodarito azavrit\e" Petre; Je aoytecne #/ > 2 Posten: ‘= Uvedeng program obsabuje edo logckow shy bu. Kab se ott pod filo soubor ORIG.TxTsprivneotevt pro ten!» soubor ROPIE, Ts ‘epodatl cevtit pro eis, pak by program akonil 9 soubor ORYG. 1X7 by asta stile oteerng a asl by ho aavlt operate’ syst, ‘Tato chyba neal mikterak ells, protte operand system by ea nde zvtent ‘rove ale je dobrm programstorckgim avy km nespolchat se nan, 0 mize webo mel by wat neko jn. Pia Program vypie soubor DOPIS.T2T na obragovku tak, He skonvertie viechoa mals pismena na vlks » nakoneesypise del nee! pletione ay. mint) c nejdetei = 0, Standandnivtup a wotap 6 ner)) a= WoL) ¢ ‘epodarilo oterrie\a") (ae = sopen(-D0ers 110 print t(Soubor DOPIS.TXT fas ((e = getelte) t= BOP) ¢ porchar(e Seat tt eee tz! 7 eM tats Os ‘pocet ts; nest? # (eeroeeten) [print t(-Soubor DOPIS.THT #0 n Standardnf vstup a vystup Moin, i jae jit imi, pre se soubory ae moe nl od pce favre s lies Tento ott x mproeg. tod ve stent ‘es Hvis obrazovion jako Soborem V oabore edie. pou deioviny dv Hostnta pointery®, Ker ‘arate coubory,aevtent operat stanem pi punt pogo dou te: Fite seta FILE ssedouts pointers unto tandardtvetopa/oftupat proud (stan diaplfotpl ava) svn pest eep fee ‘Shrunk Tyo 1/0 provy estbno¥ mnchn témech (UNIX, MS Diednoduie zit pomoe!predrova (ike) apt ep 36 ech tbe nftup do soubor Br skh do wast programa, Posor ne vateto ! Nebo to proménaé— aed se jim plifat bogota, 16 6._Votup 20 soubor a wfstup do soubory T6__6._Vatup 20 soutoru s wjstup do soubor Noptiklad MS-DOSu program TISKAI.EEEapuiting pitasem: ds pean tine néco na obrazov, Pokud ale pouijeme stein program a spusting 5 lite: As\oeiaess > wyatup.tat ‘ebude program TISKNT BIE vypiava nc naobrazovk, alec rj fatup ‘aplie do soubor WYSTUP.THT, Ker sim vytvol, tev a nakonee wine Pend: + Vsouboruatdto.hjedefinové jet tet proud stderr ken pout pro wypisovinichybowje spi pogean + apllaceh pod MS-DOSem bra také nave edaux —seroné raha avdpra. paral rtbrani (tino tern) + stdin stdout mohou bjt pouty v program jako argumentyopeac router, mpl gere(atain) je clecalentom —gotchar() DueeCe, stdout) je huenlntem —pueharCe) Pras ‘ialedujc program ukdte, jak ee wyult stdout a tak jak se vyhnout problémimn pf feet buflroranto vstupu. PH ete + tohoto vatupu je {eb mit a pamti, te ada ofekSvimepoute jeden rk, mle pt el bytek Fy, ty nap. zak "\a’,protate uivatel mse stisknout Kies ‘tater>, aby moll bit operinim sytem do buffer zopsny oaks ohote baler programstorem ptt Je tedy mvtnd ples + baer vechny ‘nak, Ket e v nm nachiag, dit we v budoucau vyhneme problemi. ‘program éte mak (acest "\n!), Ke alivate napel nechad, ale cen hvenice. Program nejdtvevypie dota, ada mbt vstup vypein oa obraaoe ku nebo do souboru VYSTUP. THT. Pokud afivatel vol soubor STOP. TT, ‘rogram jel ahouilotevit pro Eton, Lind testa, 2d jit tento soubor ‘isu, V kladndm ppade vypie dehy dota, rda ma bt teto soubor Pepsin a8 ‘ FIue of too potnamena, Jeo ok, et pledpoMlS, te meni sonbor ost vy otvt, att nplinrfchpodock memes Wt vy int ‘Standard vtep« wetup sate: Fintt(“stisknete 0 pro wypis ma Obrazovks \2°): . Hneg(onebo jiny snax pro zopie do soubore VYSTUP.TET : °); e+ getenar); fo vyprazanens bottera ~ praskoct sbytex radky */ smite (getcter’ 7 A (eae to! I ees 0 tes stdoets aa i Ut (Cau = fopen(ystur rar, “e°)) = HLL) ‘inet (°Sosbor VYSTUP TAT existaje, prepaat? (VM a geteharO: wine (getetar() 12 XW) st GeetoseCte) = BOF) [printe (chyba pri azavirant souboru\n" a se Me Hoesen) ‘return: 7? ense program */ > 6 ((4e = topen vest Ir, ‘pranet("Soubor VYSTUP.T2T > anee(oPiete text 2 ukoncete joj zauken + \n He ((e = geteharO) I= 76") putele, 9)! A€ (ee f= eedout a8 felose(te) 2 EOF) € printg(Soubor VYSTUP.TAT 20 nepodarilo weavrit\s Vstup 20 souboru a vstup do soubory eSmyéla: waste (getenar() != "\n!) je neabytag proto e po sku prentho maku (apis na obrazovku nebo ‘dosoubora) nileduje jets rnakcEntas>, Mer by byl x ble petten jk odpovdd aa dota adn plepat soubor WSTUP.THT, 6.9 Vréceni pfetteného znaku zpét do vstupnfho bufferu i programovéntredlgh aplkas ¥ mucha ppadech pi en nak douse, te mime plestat Est a8 ba38phetere Jaden anak vie Teta a ale nen molné vidy “rao, protae je aouésati — eaithem — dali informe, 'V tichto plipadech je motné pou funkci ungete(e, #1), herd vet apasidy petten anak 2pit do mtupntho bufeu. Prove ge vrsen! ‘nak Gaping, funkeeangeteQ) wat pro hosts tento mak, PHncapss ‘am proveden ve vaci EOP. Obyple le do atop baer vet pease Jeden tk, Pred, Nisledujc est program Konvrtje anshovg fetétec na edpovidait eno hoot sat c, hedsota © 0; hide ((e © getenar()) 95 10! tke 190) ¢ fodaeta = hodnota © 10 6 (© = '0!)s, > ngete(e, evan): Pinta alii program Ff ppad, kay e Ho v souborw uvozeno nexnémin pote mnakd (tomo pfipadé mak 8") amy tote ilo cheeme it pore funkee taeant(). Prepoblidéme jit otevFeng soubor pro een sat c, hodeota = 0; shite ((e = gete(4s)) == 18°) + 7 practe vsectay predcharesici maky € 6/ ngete(e, fx); /+ wracent prval chslice ciala €o bude. 0/ fecant(#2, "Md", Modnata)s René mofnot otvirntsoubors ka pty do vstopno bufer ke velit snmotjn jin anak ned snl perledypleteny. Toboto tik ae wyatt nap. pro predvoleniKivesy, staré bude pend jakoby stinknut, 0 Razné moznosti otvirdni soubor Ink jt vine 2 bap. 6.1, soubory se otevia stile steno fanket — 10) —nehledé na to, ada ne ed o textovg 8 inden soubor také hed na to, ada m bade soubor Et nebo se bude dono sapnoval ny tyto medbet jou ureeny druhjm parametrem funkee topen(), nile unkeat prottyp FILE sfopen(const char #3neno, const char #rezin); ks iow slovo const ade nemamen, Se skuleEnjmiparamety fankce open) mobo bgt jen fetiacond kontany. Znamend poste to take lo tunadené perameiry jou bedny jen Jako wstupn a ted 2e ve fankeh open) budou poune tony # ne méntny. & nam parametra renin Fo textovg soubor pro ent + —tertovg soubor pro aps nebo pro plepea . textory soubor pro pipojent ma konce — bind eoubor pro den! bine soubor po 26pis nebo pro prepsnt binient soubor pro pipojeni na knee — texto soubor pro tenia 2p — texto soubor pro tent, 26psuebo pepsial — texto soubor pro tent a 28pis ma konee e+ binktn soubor pro en pia bt — bina soubor pro een, bps nebo pepsin b+ — bint Soubor pro tent «apis na Konce ink {Tak it vime ae te, 66, naked implementae mo explicing cena. Bit, te ejedno texto soubor, take dovlut i tetimy: Vie 26 tup 4¢souboru a vistup do soubory 2) Oteviemeli jit existe soubor v refimu ¥* (nebo "Wb", pak oe teat soubor njdive vymate a pak nor sal, Dochie! ted k pe sal soubora 3) Oteviemeli jit exist soubor ¥ retin a” (nebo ab), pak se ‘esto ouboroteve a ukazatel pie se + nm plsune na jeho kone, Dochia ted k orient existuto soubora (append). Pokud soubor St eerie, pak se vy 4) Potud poutijeme rtm rontfeny o anak “+, e modné soubor pout at airve pro cent po api, eat male paktidy wFenam pouse ingenichsouboreh 5) UNIX roneriv jen jeden ola Fu to "\n? ( ~ on ‘ask "x" (HD = 008) se pro odlent nov Fadkynepouliv, Ztahoto ‘vod nent v UNIKu dod rnlovat Bingen texto soubory ately opin etm 0 "2" nebo “e” (aap. *) nema ESdny vfenom 6.11 Rozdil pti zpracovavani textovych a binarnich soubori v MS-DOSu Jaks vyulta bins soubor, bide popsino v née! podapito- le Ze a pout uksieme, jak system odin interpretuje anak konce fads ¥ tetonfch a biagrafh souborech, Dopied si eknéme, 2e obs bingaibo souboru tent nakfunkeem isu ten’ oliviovdn. "To znament ec o bindrabo souboru rape, ‘ov oi pes bude a co je sapeino v inkl soubor, to we take pene plete Narotl od toho je textovg soubor modiflovis pf xépieu — kdyt do i apeme rptieme sak "\n” (OMB), satém ped ne aatomatichy dds} nak "\" (008). Podobne je textvg soubor modifica pi ten, kyo ‘echny mnaky "\r? (008) aulomatckyvstenvany (Spotiany”) 4 fsedfettabulky je vid, cose mie tt, hy a plete bingrak 4 teatorf soubor, Uponcthujeme jet jednon, Ae dud popnorané funk Ge Gao napt.tprsnttO), tecant(), gete(), pate), -) neoanba, fe ras binkenim souborem, ale zprcoviajfho pond jaak ned teatns inirnich soubor v MS-DOSWBL Roel pi spracovivénttextorich 3 ino programe 61 04 62 09 63 04 00 64 im napisu "0 ah souborw ATH: oka pi en Dee 1 0b ob 6200 @3 00 04 00 4 61 00 of 62 oD 63 00 04 0 68 sm sina "0" sb rahore 471 pei et Dee 8 on 62 69 6s Dae ‘hak 62 0 63 On 0D 68 ‘to pokury byl pout nse! program: se oO ae peria(S): suet(\nzades resin sapien : "D: east (Rae, erin) = topen('A-THT™, razin) sears tu); pueeC\R"y Ha); pute("R!, a): puteO\r, 9): BeCers ta); pubeC AR, WD; pute \E?, fe); putea, 10); aloe); snet(o\ntades renin ctent a", ean); 2 6._Vstup 20 souboru a wistup do soubor 6.12 Prce s binérnimi soubory V piedchorehkaptolchjome se wil pracovatpouze#textonjmi sou bory a pokud jme se taibovalobiagaichsouborech, pal jame jim enor Srl, “Textové soubory maj totit tu oompeu vjhods, te je mafne Jieh obsah kdykolivpreblout,vytvabt nebo opavit beng efitorers, Aejich nershodow alee e pro uchovdn! tejocho moist informa pote baytmnoben vee prootrs. Napkin iso 5595 taberev textvémn souborn prostor5-ti Byte, vatimeov bina soubora tba jen 2 Byte Drutiou vjhodou binéenfch soubor je, Bese nimi pracaje machem rychlgi ne x textovsmi soubor. Divedy jeou dea — jednak jou bindra ‘oulbory Krai ajednak pi spin Sala do extowtho soubor je nd prowat Jeo honveri svt reprezentace lav pottaina textvou pods co Je Ewove naroene™."Tyto Konveraevbindrich souborechodpadai, protec do ich zapimje pHi cbsah pamiti po Byte 2 tkehto divodd se bind soubor v profesonsnich programe wy ‘at poméraé ease, Ney shod je jjeh pout pro uklSdan rnmtenfeh dt velkjch elf, straktar, ata. Pro pouhé sent anakd einai pe [is vfanam,protafe rank textoném soubor aah jen Byte stejo jako bind, ro pris binsenimi sovbory se wyuvat nde unkce: 6.121 Ctenin aépis do bindrnibo soubor ro tent dat se pou funkor 3 Punce mal tte fanken protoypy nt fread(char shan, dnt velidost, Sst pocet, FILE szoster); 10 a pro zis funkceterste0) fant frite(char tedhud, tae velskoet, sae pocet, FILE seoubor) ke jedotlvé formant parametey maj eato wana: an ‘adera pari, en se bude ula piten blok dat dud — esa pari, odkud se bude bat zapisoran blo dat elikost— dala jedné polorky 2 bloku dat"™ pocet — potetdatovfeh poloek (ne Bytt!) Penber —— prominnd pro prc we souborem Obs funkee vet pottskutetné spine zpeanfch/pietenjch polo — pine, ne Bye! 73 Gici won vata plemented. 2 U lel dochin tht be lover le obriend — x tert ota % Pro arent je hong pout opertor seek 12. Prices bingenini soubory 83 2.2 Pobyb v bindenim souboru V textoch souborch se moc neryuivé moinost pohybu v soubora — otlvé oaky sich pros sckvenéné tou, V bindenfchsouborech, kde ‘ime plead visti ednolivseh pote, je mnohdy vl Geld mndnast tits ulazovitho do soubora na bowing miso. Od tohoto mista st de dle dst nebo bide od nibo dle spisoval, ber natnoat adrforSa enim pledchotich dat fo nastvent nove potice v soubor se vyulvd funkoe £20ek0 fav fseek(FILE soubor, long posun, int odd); « jdnotivé format parametry maj teto vfznam “soubor prominnd pro pci se souborem posse pote Byti od ponce soubor dané paramtrem oak ‘teed — tnt edad se bude v souboru posovet em jedi 20 hod 4 SEER ET od mcitka oubora 1 SEEK.cUR~ of aktuln’poice 1 SEEK.EID~ of konce soubora unkee £204x() rac ls (FALSE) ¥ ipa depeincho pone nebo lou hodnotu (TRUE) vplipadénespésncho presums™ Pokud ndkdy pottbujeme asi, ke se souboru privé nalétdme, je nf pout fuse: ong ftel2 (PILE exoubor); ‘et pomsnutméfend Bytec od 23 Priciad poutitt binérniho soubora alee program rape do bingentho soubor PORUS.DAT hodaoty ‘roménngch (3.2 4). Soubor je oteren jako bingrat a pro ten a cof umole, aby spo apis obou proménnfch pests skaatle ‘horu dale #teboto soubora ined tet. Viirnéee xt, jak sud "a promnné (ating jako pf pout funkee acane()) a jak se elépe ‘ato prominné its abou Nae, pf puns pros deli net je da soubor, soubor ne otefen “ 6._Vstup 2e souboru a vfstup do soubory rue ot J pro ctant < pro zaps #/ aoa = fopen(*Ponts.DAr*, "eo6"); terite(ls, sizeot(i), 1, 2); /* xapie dst do socbore +/ teriteled, sizeot(@), 1, 2) intt("Posice v souboru Je id \a", fee12(8)); ‘eek(t, 0, SEBK.SET);/« pouun aa sacatek soxboru +/ 0.0; 7s mslovani promenaych +/ ‘sszeot(a), 1,0; /+ tant a zobrazent dat #/ saeet(@), 1, 1; printe(Hactena data: ie Wa, ¢ = 2 Ww felose(s) sae Af (es gete(tr) 1 BOF) mi bjt af ((e » gete(te)) t= EDP) close() ma bjt fetoee(e) Coin dba si wvtdomi, + Pro Gent mak ae souboru outlet vEdypromfnnou typu it. 4 Vidy teste, rda fake fopen() a felona() probly sprivné 1 Uravitejte soubor okamit, jail im peatanete procera. ian 1) Vytvoit textog soubor EaKY. Tr, we ke budou nshodné zy ‘Tento soubor ete po anaceh vepkla do-while. Jel peteng 20a a" (Quit), pak ukonzete program Je anak 0", pak piste: Byla to mula Pree» binknin soubory 8 Jeli pltteng anak °1", pak wpilte: Byte te jednicha TTestjte i BOF spout nwiteh VytvoHtetextorg soubor PISNEEL.THT, ve Kteron bude niki He latenjch 2 maljch »velkjch plomen «mess ‘Tento soubor elf ple- tate a opiste na chrazovk, Sowa! do soubor WIRY 727 rpie ‘obeah tenho souboru, ale malé pleas pevedte na vel Naplite program, kerf spate cally poet mak soubory PIsMENL \Vytvote program, ker pfeite soubor PISNEEA.THT po Htc. Kab dou F4dku pesné opie do rouboru KOLIR. THT «ua nové Eade wvede, Ait malic pemen nn blo ‘Vytvolte program, kerf sap do souboru CISLA. TR dvactrelnjch eel —nisobkt 3.14 Ped Aaldé dao nape sak “8” ska so apie na amosttnou Fak. Nap 3.38 6.28 tate véechnn ring Ziska ze souboru CISLA.THT a vypettite js bitmetichy pedmée. Ve funkei fecant() vyskoutste forty Stent Seuze,stuas\as,* ser, Stiga" Konce souboru neonate pomect BOF, ale pomoet névratové hodooty funkcefecant). Napiive progam, ker} pororns obeah soubord PISMEBAA. TET = ‘PSMENL2. TT (stot je naph,pomocplkans operate systema copy). Progen vypis ono iho ead Sonbory ae list y = nacéch dling mnaky prabitne Yypiute Napiite program, kerf st pokust tet meet! soubor. Zajnite, aby program vod regoval na tatostane. Napiite program, ker te 2naky 2esoubora PISMEML. 7 a ops je bud na cbrazovky, nebo do soubor HOVY. TET. Urivate mk monet sav ede vfsp Nepiite program, ker vypie i oleh vypie dot Man pokracovee ? (4/¥0 «odie ypu odpovedi bud pokradue nob skont ‘V souboru GISLA.THT jena lad fc dno coll, Kteém ped 5 neanimy poet and "8. Sete tto ial a wnladek pie obra owen il od 1. PoKabfeh dst 7 Typova konverze Pod poimem typoré honverze se maf plevod proménné uritého typu a typing np int loa JInayk C romans dv draby typovéhonvere implicit nebell samovoln i astomateké ‘ eplcitaaebli vynucens& potsdovant 7.1 Implicitni typova konverze Implicit typordhonvere mi tto salad pravila 1) Pred vykondaim opernce se someostatnéoperandy koneru takto: yal se oben yp char nebo short int, Knvertuje se ua 7 «+ Viecny operand unsigned char a unsigned short se konversi| tint pout tehdy kd yp int mite repreentora joie hodnots (Caepietete)- Sina a konvertt na unsigned int 2) Maiéti va operandy jdné operace rian typ, pa e typ operandu + nH prioriton konvertovan na typ prioritow wi, pode nleih Serra bt ci rit) signed int tong ‘unsigned Tong. Boat double [api jel pref operand typ float s dra typu ith, akonverta®| se-druhy operand ba typ float “Tyis “iky"prvdipadobed acbademe ve satésont douho potebo Protote via niet toner poihat automat, je nated aespod wet © ico talento ete» pitta chordn! programe tt shoumat, 2s Sem bt spiosbene pee typovow homer Explicit typorékonverze er V plifazovacich wjrasech je typ na pra strand Konvertovin na typ Lev strany, od J ak typ feted, fk ‘fie uvedenfch provide vey vyplfvé, fe se typ lat nemest ruta Implicit? kovertovat na typ double, jak tom bylaw KER jazyk C 4 Jeli denice: char 5 ya 1 je konvertovéna na char, tj. ¢ obsthaje nak GeeL A” (jako v Pascale := GRC); ) ve bude mak "cert 8 e411: jejakoe = ORDCe) + 089004") Ili deinies ant 43 pale m0 Jejako s 2+ ona); Ste 62; jejakos == ORCA + 35, pone 4 bade 3 (0.8 se ods) Sli deine: double gi pak eee ‘ebue £0 [Nejprve se skonvertuje © na int (pravidlo 1), pak se skonvertuje na double (previdlo 2). Visledek vjrazu g + € je double, ale pole in 3) se akonvertje na int pif do ¢ Explicitni typova konverze arora od implicit konvere, kero neeme scope v podlatéolin- ‘ubdeme explietaKonvers!vyullvat Unde podle ibort, oem + tim fn, ae nevbodné pout spb snaené probly. Explicit Konvere se nan petypovin (casting nebo typecssting) formu: yp) sires ‘nameng, fe afr: (nebo proménns) je v Ea plead konvetovdn na orang yp. {ya vfanam tata pouivanyeh konvert 2) chareyra plod snaku na ondindlt elo Dintayre: __— plevod ardingltho dla na odpoviaje ak 2) eat. egas dflanut denetinné eat ‘Bled interes —pfevod ceo il na resné Be) foctiyras ——Eveiel premoets 88 1. Typovd konverse Jnév mnoha ppadee, nest pi pout Explicit! pletypovét je ‘vin plater (Wa nap st 168) Vo vest KER jazyk Cae tdnou wre “lack” pHpad, kay bylo petyporatwutad aoubie t; " fe ageeC(double) 5 ‘ex pletyporat byly visledky ehybné, protate funkce pro vfpoéet odmoe- nny (sgFt( )potfebaje jako paramett typ double av KEM vera jal (Cse neal automatics (implicit honverte type int na yp double ‘Teno prom sice v ANSI C odpads, ale v podobngch piipadech je vhodnéexplictatpetypovin? unit, protole aprile progamitory imyaly je ied jané, de Je to etand amides. Nekdy je exphitalple- ‘yporin muta, abychom se sbavll varovnfch Bliient ¢ nevhodné ypu Ponae: Petypordnt net I-hodnots, take Gane) t= 3; je cyt F Napikeds eget (Goable) 2) weet te 18, Preprocesor jazyka C Preprocesor je no, co Pascal nernd. My jane atin vy vceméné ‘nity neat pouting pitas preprocesora #inedade, Preproceoe ie navie fai ingch motnost, tere dat jayku C dal "a" boda ss tamito platy seandmit, proto, thy je nebudere ned frat pnd viechny, je dobréalespo vet, fe nico takovdho existe cot preprocsor sed shraout do nétollaaikldnich bod vd adrojovg text program pfed pouttim plekledate onttoluje syataktickowsprsvaot program X pourexéménu text, nap. identfktor Ronstant 24 odpovide- Boe hoot Vypust! 2 tdrajovcho textu viechay komen a podmineny prea "ene Rd, kes je pena pro apracvinspreproceorem snus anéinatana- teem “(pound sgn). Zoak “#” by mil bt jako prvaienakna rider 8 tn by nema bye eer? am konstruki Keé rosea preproceor nt aka ‘Hetine Jmdno.nakra 2sbovolay text rorvoje ruin! defini maken ‘under jndno sane ‘odmindafpiebad texts v nSvisoti na hodnoté xonat gaz aeiss telae tendit loteattextu ne specfovancho soubor v adres vivatele Hiaclade *fslenane”™ lofen text 2e specikovandho soubor a6 aystmovtho adresite iacinde ‘Tito ans ently man rpraconéal maker (macro processing) YVANSIC to ment podink, ne eo lp dodtort Proprocosor jatyka © + podmindng plead texte v sivnot na tom, na je malo judo make, Ainovine & nedetnovine ‘det jndso.nabra if eles tends + podminéng pend text VaGvlot na tom, xd je makro jnéne-aakra ‘edefiovino fi deinovine + vniscyborfehzpr6vbabem preprocsings terror Chybova gp Pornints Krom ve uvedenh honstrut ted se vpras arto wy ste mid preproceaoe jst + diretivs ine operitr defined Pleddefnovans standard make “tre prug, TOME, DATE + Gnektiva tyre ‘Tyto onstraee se nepoutvat pli sto proto budou vnisediiich pilladeeh poutity jon nakteré 2 hich. Zajc »podcbninformase fdlazujeme nana RSP, a ste 8.1 Makra bez parametrii — pifkaz define Makra ber parameteh, rad pod néavem aymbolickéhonstanty®, se ‘yutivaivelmi fast, protte abavaj program “magick eel eel nich Konstan, htt se bea yyovtlen objeril program Vatinou son konstanty defnovny na andthe programs (modula). 2 ich rorumné poutt tak vfanamni ayiuje modalait program brads lonstanty skteinoa hodnoton se nanjvs toevajem (expan) smakra neo tt sbsttct maka Pro yaaa symbolic Konstant plat nisleduic provid: ‘JinéoaKonstant jou 2 komencepsina v2dy VELKYMI PISMENY. 1 Jimno honstany je od je hodnoty odlenoalepod jdnon meaeow {Za hodnoton mie a mil by bgt hement. 7 ike de ponte was Aoatnta ve sma symbolic ante Matra ber parametrd — pine detine a ‘ové konstanty mohou syuiivat jit dive definovanjch konstat, ‘kd je hodnota konstanty det net Fda, most bjt aa kone dy soak \", Kerf oe ale do makes nernvine — je to poune pomocng zn, “ fine Max 1000 /+ mas. commer pole #/ ine Pr a4 ine DYEPI (@* F1) x {ne DLOUEAKONSTANTA Toto je dlouba konetanta, xtera se\ ‘ odnotou nen (v 99%) stFedat Mes nem boastanty& bodnotow nent anak = jako je to Pascal onstanta se mie objet kdkolv » program jedinow vjimkow — fieméla by bt route fetéace (meni worovkam), prota tam k roeoi ‘nstantynedojde — ve dle st. 22 ‘onstanta atid plait od mista definice a plat a do konce soubor, ve ‘rém byl deinovdna ‘ oat symbolic honstanty pro Laoliono dso, Siaetade aetine DEPT (2 © 9.16) mi ¢ doubt printf (“Zade) polener Seass(“lis", #1); ‘rinet("Obved kranu 9 potonerem Xe Jo K0\x", > ere DR: Program pieite Hu textu a kuddé malépismenoaobrat jak vlk, ale ytsene pled im anak *#", ey aap" Bude ay 92 8._Proprocesor janyka © mein) « inte whe ((e » getetarO) I= Bou) ¢ AE (e ea mee ig) C ‘putchar (PED MALE) putenar(e ~ POSIND; Pointy: *Bhudeme i ndkdy v budowena cht tisknout mito znaku “anak ‘a, stadl po jenjen rena na sath prorat, 1 Zaeinie symbole konstanty POSU je vide, pmbolckow kos ‘antou mite bjt i van. Pak je level shod ho unset do ‘orek. Kéyby nar ppad 2avorky chyba, ml by pik ‘putchar(e ~ POsUN podstatad jing vfenam. ako se neroovne, eli unaveno v wvotovkich, nape ‘define NERO Kati Fesenim mike bt nape printe(Joenuji ee IENO*); define NERO! "Rata" ‘tte: Sens ne JHRKO printe(Jnenusi te fe", a aer Inanat se Kath 20280); Nov defice makra neéastjiptkejvé starou jen ted, pokud je 10 ‘tej definie. To vtfinon nebfvd splndno,potatedefinovat tora stjnow lonstantysten® pojmenovanou ner pel mya. V tom plipadé je aitoe apfedstarou defini! aust poulitim dteRtiy unde np ‘define POCET 10° /w stara datinice FOCET +/ Grandes POET ‘% Pocer pezbyi platnost +/ ‘detine POcET 20 /+ nova definice POOET / ‘Obéas oe makro ue jako skryté dst programe, nape fetine ERROR { printt (“chyba v dateeh \e"); Matra sparametty 93 it nes bt toto mabro ukonéen stfedskem: st (z= 0) oR | fn ate yer Makra s parametry ' eient program ae Eeto wyakyneplipad kdy machokrit poate “jatou fons, Ker je vl keh, nape provi jodnoduchs wSpotet hodnoty. Takowou Tonka ee vsamonejme napest bes problem, ale ‘Akdy nastvd mens problém s efktivitou programa. Jel toi funkee “Aas je nid et “administrative”. pled paramete, Gchowa ove adrey, hak do fake, nivat fake do mista won! a bie po- ch parame delt ned samotnjwiteng Kid fake Tato adiinisen samortejné adiuje wpotet programe. Naitt! any C dvi mint ‘te adminstativuacela polit. Samontjnt nie ne darn, taki Ut dle wedenchosplacbu ~ makers parauetry — ae zvet dlta smu. Na programstorei rj tito splaobemn eplimalicyj ei pro. ted je, eby vybral mend e dou tl ~ bud bude program heal le (Gi, bebo bude del ale yee ‘alsa paramtry ot ny nant wand funkor (in-line fn ), proto, na roudl od skutetaeb anke, e makras paremety evel ‘fed preladem nahrad preproesr meno makra kosdtnintestem {atiht pout tedyjejen pro wei ste ake, hdy by administra ‘eval srovnatelnou dob slat potter fake ‘emakra s parametry je ald ‘tine yméne-matraCaryl-y arg) odnota.makre ‘al jmdao.matra a otevirectkulatousSvorkow "(nes bjt mets ‘Runeny by pak bly poratovny 28 hodot makrs bata rout od maker ber parame (eymboickch konstant, jc jan ‘pis velkjmipismeny) se jnéna maker = parametry pl afin ery, ej ako jena funk vol maka ake: jmén smabre(pert, par) Makro pro tet, na jo anak vlképemeno: 4 8. Proprocosor jaayha € Aaetine joveibe(e) ((@) 92 "41 ak (@) ‘Skuteéné se védént soubor (fe incusioa) poutes ¥ C programe ‘wl Esto — v podstatévidy. Near poutiany pila pro preprorcor Ie ety pre ‘include "jnenososborn” nebo include ler} spisab, fe sdrojors soubor Jneno.souboru bude “vtaen” (spe, “inkludovn") do “voljeho"coubor do mista, kde ve v nem mahi pita V soubora, Kies je vahovén, mobou bit dalifpHkay #inetude, se been we 10 nedoporuae a je nite davat velk poor na ray, Jak ji bylo wvedeno, pitas #nctude md dv vary, Keré wri = mf pecflovany soubor Meda: 1) Pita: #snetede *XORSTANTY. 8° Ded soubor RONSTARTY.2 vest adr, ve Ker ef vole” soubor. Nenjdeli ho tam, je mateé = ho bude die bledatv dai tdrehich, on vik of sive a borhan! implementa, Pudieh ro pri Se soubor, Ker ame vy tof my sami 2) Piha; sincaude edd soubor ceype.n v sstémovém dest Poutleé se pro pit s)ihotovni pei soubor, Kern se A stendardn lilo fosbory vn 98 Poxnimia: * Nakteiprogramtoi pote konven be jménastandardnch lai veh subort pst malfmpsmeng, kaeito jména hlavikorjehsoubot ere nytvoi, pismeny vel saa Vi Soubory,které se dat vidat pomoetptkazu 8inctude, mou bit bowling extové soubor. VSenamn tl samoxtejenvlnt jen adios scuborh — 1 pliponon -€. Dahi a machem tata — matcat, je HE Gai tav. Mesctonjchsonbrd (header Bes) ~= piponou Toy soubor, Ker sabe pita inctae Vilas soubor — pitas inctase ov ‘Velathlevidhovich soubord jewel uitetay mechanisms, ak pro- sestajic sex view soubord drt Gtelns. Napinad weeny definice tnt syutivané vce soubory se avedou pourejednow do soubora ypu tery wpomoct #inclade pipoll do viech soubor Které ty denice nt potfeuli. To md obrovakou vfhodu, te pfipadns rm Konstant Tiprovede poute» jednotnsoubora -H estatn soubor, vulaj ona stad pone pila Defnice konstant pops! poméry a obrazovee jou wlenyv toto naz Sse omuz ‘smaoKy_omuzovee 28 ne SLOUPCE.OanazOMR 80 ' ‘ec soubors OBRAZ.B +/ 1 souboreh, Ker poiebat pracovt s obrazovkou, se pak pouiie 1s pinelede “omnuz sl "sme trocho péedbtlt protofe pinay #ignder a tendit budow sileny a 2a hv OvdernvSle poprang apisob Je ve witetng “Pr jak sabrdnit nothansecbnnt nataden soubor OBRAZ do ja to modula. Testo omyl se sane vel Ieee, avi, sol soubory td sche aanofeny. ikon oubory vytrifené tito zp sober icv nem {at ani pf noltonisobnea nataden soubore OBRAZ.8 do jinoho ‘ora, Pi prvi nataen se tout define spmbolckskonstanta O ‘ts we spoluped!»pilaaem 88fader zon opens natant ‘ahs soubor — vat st 103, Podrobag pid nto programe 96 8, Preprocesoe anya © 8.3.2 Standardnt hlavidkowé soubory S piedtaitlem tichto soubor — souborem atdso.h — jeme a jt achat ettall,Oviem tent soubor neni sim, potade bald iplemen thee pekindade C'ménékolik destek standardaih = soubord a ¥kaddém 1 thts soubor je popes Gt funk a Konetanty e standard kav. hy. To, co tte soubory popis, je defnovino ANS normed, eof ms te ‘hromnou wfbodu, fe program v C, Kerf pomoc!tchto soubor ryull powae standard Kaibovn, by mil bgt podsate 100% plenotlay men ‘rand potas s nent opera syst Souber #edio.h obsaijekrome define 2kadnichvatupaich a vstup- eh fone! abd define rata honatant a typ nap. get), BOP, HUL, FILE, ad ‘Vo souborch nejsou wedeny cl ato tty pine funk ale poute jc Mavidky (tev. funkéatprototypy — vir str 115), 8. popey, Jaké md ta ted funkee paremetry a jaky typ hodnoty vracl, Syn ‘chto malt! pak mtie petladaé sj, je napt,Anihovs fuaker so ‘stop maka Havesnicevolang programs jako getehar(e);? Doutta chyba. Vsoubora reason toi il funkea!prtotypuvelen bee parametra jako: Sa getehar() Dileié je, fe viechny standardat .m soubory sou norm textové| soubor, Mer je motno si problédnost live eitoram 2 mobs dalifch standardofdh 2 soubor ae zminime pout o dalich ech asta wyuranje. ou to jt zndmy ctype: pro pl se soaky & ‘mat, her je vyutvin po pres matematikmi funk jak eos 0 ald Dali je soubor tine. erm vine trochu vs pogorast 8.9.3 Soubor eine. — mafent fas lavthos soubor tine.robsabuje popisy mnoha witeénh fnke! p> ‘bi amo. Tako pikad wredeme pou funkee cloek(), kesh. vet Dotet kt procera od aus epatent programma ~je toy ultedns a Bitil douh progam — ao jbo tat ~ hdl. Abychom eat na somata poet sekund, je ieba isan ilo deli oortaptoychocas pen SC, Ler jerovnstvtime-hdefinown, K piklads acs ey man ie ay ad nba sh nen Sina hu cy ret Tk mea eta ahaa amen isms ett sites 3 Mie en gear Sy Sa ERE 4. Outen pfkled soubor — 1. 0 eine et, ankee x time Zato vyuaivajf mist ypu longs define eynonnuthcLoek , pak ake de Konsanta CLOCKS PER SEC we obéas enue jen CLLTEK be e wei vod ji petypovat na typ double. clude 20) start = aoa: for (45 0; 4 € 4000; 408) printer) wnt = cxsex0; prince (\aprogran tava: 16.2 sec\o", (end = sare) / (double) CLOCKS PER, SEC); 4 Oddéleny p¥eklad soubor — I. Viédéa’ soubor by nemélo bjt amnddorino« oddensen pleklader bord, Jel program délen do vice soubor, heré se pomoct include “To jac soubor, vanikne po pekladu poue jeden 08) soubor. Oiddeleng pieknd subord namens, fe se kafdf soubor plot aval ‘mune tay nikolik “O89 soubor «ty s spo do jednoho programa ab ‘oxi sestavovucho program (linker) Ne prvalpobled to vypad jako tecnd reson, ale prj to joding apsb, Jak rorumn®rvlédnout ‘elk programy Modern kompilstory tento xpdnob rovnét podporyjt®. Ci je tot H prelidang soubor, in vee nardstatkormpstoru pokedavky ua rizné ‘strstiva informace, nape tabulky Weatifkitri,atd. To mie vst esta, kdy spi pieklady obsadvelkerd operat pam pteklad ort pip nelapeine ukon a lpi pipadéextemaé spam. Napa pias Project w peladate fy Boland om 8. Proprocesor jaayka © im il stave, ky je proce men Teiatint—povchd ity operat pant ne dk a1 ory 81.6, $2.60 5.6, he face main) je soubor ta: 2) otaeieny prexied pe his SE 7 lida soubor sx viechny tH soubory “iakludu do soubor. ers aepfelot a vnikne jeden 0B soubor a ten se amostata sett (Cainkye"). Newjhodow tohoto zpisobu je, pf zméné v Kerémboliv 2e soubor 51,€, $2.€ nebo 53.6 se mut pieklddat rela rbyttnt | ca dea rh ic ob abe bj ndkdy vel farst nro Dall nevfodou je te ele skrft mel jedaotlivfnsubory ich lo Dill idetitory ‘+ Pi cdileném pkladu se katdj soubor sumortatné pelo do 083 00 boru. Vihodot pak je, fe se pi opakorancm preklady (aejasti India) pte poure ten soubor, tery yl skutetnt nda. Tent p0 sob pfetiadu se doporutuje pout, protate nds explicit nti ond probldm do viee mene es. To sce rpo8st rabereunité moot am, al pi ada! velkcho programm se to bobathvyplati, 1H Tee mite otaaborat ponte pty #includ » nc vi 1 Vi die pain ti stale wns Podminény pfeklad mobs piipadech a alotit programy pi tak, de obs Idi 4. To jou nefash pomocoé wspisy, Meré majiusnadnit laa, ale (to bgt map i funkee, Herd bla mene pol ald. Tyto Eat we 46 ami diva i kdyé mime k dspriiwjkonng debugger de dobrfm rvykem poetat jf ph nSerbu program stm, fej) bude to ladit aut pH wytvdtent programa tyto st do prograru zateaoat. ‘xe | hoskrétnjst dporuent jou wedeny nap. ¥ [AABS) ‘Po odladtprogrann wink nastva typik§ problém — jak tyto ld leré vpn jit nepttebné (ately nevbodae) informace drt pro- fa programe,xodladencho program odstast. Nejednodusin fesein samontejna pomodieditora post celf program a lade ist jednoduse Tat, Poku jt to Ji aout, vie, 2e toto fetes sebou pind nak Msi. Napttied te vymateme v “maact enor” | to, eo Jsme vyinazat i nebo Re adie at byl ndjakfn aplscbem potlebne i pro skutetag ‘am — ngs se jd o adlené promiané deinované¥ lade eat ifant |v programs. Po tomto vjmazu tedy vldinow peklidme jk ‘eng program » napjntfnodekstnim, ada bade chodit. Bobuel Esto ‘odi x my musine lait snows a ¥ nghorim pfipadé masime potupae Stupné do programs dopoovt stead Inde Zt, Klee jee Peden sh Jaayk C nadtést!pamatye ina toto problém, take pomect pitiara oceora mire Urit, Ker Ett progeama se maf plelddat pod "To sonmend, be viecny lade Eat tpl vydent programa om ‘jako podinintnépieklsdané pi nda je pekledgme a pooled je Tellsddme Ladi tnt joa talk valu south rojo soubor, ale "eloou sods programa’. Preprocesor pak nan jeden pita vichny ‘at ypust sin, ale budowl wékdyv budouenu™ opt potebné, pak ‘lain plasem opit do programm zafadine sminéng pleklad je Haen dvéma 2ikadaln podmninkai® Napitlad Cade View od fy Mironftacbo hip Iie ¥ posted» ji avinjndehaggerem Turbo C nebo Boland C ‘Vyas wa vttad Ey to td ea Vestutctaaet at yt — vir de 102 8. Proprocesorjanyha © 8.5.1 Rion pfekladu hodnotou konttantatho wras PodminéngpekladHoen honstantin vjratem, cob mie bit So, symbole Konstata nebo | podminéng vias téchto moloeets, m6 tutp Symta #5 honstantn.nes eat tease eit Phekladaé bude tuto at programm spracoviat tak, He jel hodnots fonsantn-ojrasrovna 0 (FALSE). pieklise poune Sit? & v opaencm plpade (aenuloe hodnota — TRUE) se plekl6ds pouse és! Gt telze dé mohou bjt wynechény. ‘+ Bustle jednoduché afters aplitace toto pitasy, Nechceme ido asd peblidt Et programe, meme samoatjmé tuto Gat wasnt do Lementsfovich vor 0 */. Tonto ednoduchs spb inal jon hiée, ato, ae komente nes bjt vhnfadég, liv tao uaevirnde, textu nsf it 24d jing Moment Jeli tam Komen, ombtemes lehce tate trike #40 ‘rogram, teard wf ft vynechéna «+ Cato se podminng piclad poutieé pi vivo programd, Hed joo Ht vnlé'na honkeénim potitad, ale mily by po minima tndnseh fangova ina potting, ty nape #84 Pear igelede ——/+ consol inpat/ostpat #/ ‘include —/ standard input/outpat +/ ‘Budere poutvat program na PC/AT sta pfedfedit pas: Nacsa pot pk pitas nine ‘tine POAT + V pra je modi jet rst pecbnost chotopittaru vy direkt elit a Serror a operitrs datsned — vin st 108 Podminéngpreklat aoa ‘Risoni pFekladu definet makra Vodminéng pick feens hodnotou knstantatho weara — vin ple ‘odstavec — Je moeaf nto, le mpohem Esti w pro Heat pox ho pickin poutv eho jednodul verze, tera je abtlé posse na sus bya uri ymboles Konstanta defnovina& ne", Nebudeme ne “Lryotasi, Kerd je vel podabné syntax pedis! uvedeme bed fkovang pinlad pout» pdchort odstavce ‘Higclude _/+ consol input/outpat +/ ‘include —_/+ standard Saput/output «/ senait pada vei podobot a mé napost stejaou fri, jako w poehoxin| 7, lavod eras jev tom, i budere i poutivat progam na PC/AT pies: ‘etine FCAT /+ prazday, ale definovaay +/ sini pottatich pak plas aménime na unde: FCAT. /+ srageaa definice makra CAT #/ Jednodaieisymboicon konstanta PEAT vbee netic, bk Mary datee a #inclade mobou bjt opitwynecny!* X dispoic je jet jeden pita, her Je pout nega pfedeborho, 8 ie nen tim, te eymbolick kostant nebula defnovina. Opétnebademe ‘Weide syntas pita, le rovnou modifitnany pedchoat ‘tndet Peat include eC) by mda ra axa, b) melo mewtje mae(Snt ay ane DD Novi pisob dtneeformilaich prarametetje doporazorsn ANS, pto- tote umezinjepFeladat let kontrola akuteznch parametr pli vl funkce"Navie umotiuje uryhlie program, protoie adpadajt plicit envere (vir str. 88). Teotoxpsob bude dle vjhradnt poutvsn ‘To Tusk (prorat) je usavieno do névorck “C a") napront see tj u face nainO, a Ode obsahoat jak pay, tak | defnice prominnich [Nazoadi od Patel, ke we stupa hodnots funkee pedi piarenim Jima fake, nev € pou pias eur (ryraa): nebo return vyraz: ry eypocte hodnotu vrata vyras, pied ji jako nratovo ode ‘ot fanhce tuto fnkel wkend Komplete funkee max(), Keré wrt wt ne ev dou parame Pascal © FONCTION maxCa, © + THTEGER): int maxCint a, iat 8) eae og TP a> b THEN max c= a (arbre: d) ELSE mar =D y ce ion volény poutitin béiné konvence, nap zemao* 2, 3} 18); és: Funke, Keré nema Hn patametry, ms bt defini i volinavétné ‘bon Kulak zdvorek, nape fake, Klers pete dv cel Cala x Hive: cea rat jgich souets ane ects) « Ovi toto “hte” we adapta ‘Var epeaz n+ Honvence ved Jo Ralf sor a2 8. Punkeo a prices pamats 9.2.2 Procedury a datord typ void Fonmélnt sic v Cprocedury nee, ale sou dv est, ak to obeit 1) Pane névratovou bodnotu sce vrai, le nikdo chee. ‘Typicky Mad je eek na stik klsvesypomoe! fee getehar(), Mets pt ormilin oui vac stihaut tak ‘Betchar();/* cakans na atiak Klavesy #/ Nou pekladae vyiadujv tt situac explicit petypostnt ma typ void ("prizdn), aby byl jong, 4 programstor nfeatovoy hodnots skuteot nepetteije, tly: (rosa) getenarO; /* 84, nap 2) Fankoe se define, jako funkce veel typ id tink inet 9) e printema, 2: , olla je pak: tiat-snt(a 6 5 Pomiby: Pika return pak nen nua, Pokud neni uveden,nabraaue bo was rac aGvorka funkee ">". Prk return we pak poutivs pou po mene hone funk ped denaenim eto Konee, nap. o blake pode, + Typ void se poutivt iv ppas, te umkoe ners dn formal past ety, aby 0 tom byl pekdatwjtn,tedy nap dnt seces(vosa) « seant (a 4a, ta, 18); return (+ 0}; > 7 el putt ep wok vine 18 Punkce ns Proceduta ber paramete tedy C vypad taht void atoj(void) t printt(anos\2"); > vole ah0305 Rekursivat funkee Fankce v€ mahou bjt rekursiva, Rekusival funkc vypada mprosto jako viechny erate, nap. program pro wipotet faktord dade farGist 2) urn ((@ 0) 74 tm taken = 3D): o eh sacs (tades cote esate : "): intt(*Pakcorsal Je Ya\a", £0R0(40): 4 Punkee nevecefief int ak i unit ttm, fankee nemustvracet jen typ int. V tom pipade HC nexinéa! nie jindho ned edvratovs typ funk. Naroxl od fonke ‘rato type Sut, tent mniné fanke ing névtatonfen typem “eat typ vynerhat, protate pak by nfratows bodaota byl mph ag unk vynisobsparametr elem 3.14 double pinzat double 2) t revarn (5 * 3.10) y ana Funkce price » pamity 9.2.5 Problémy s umistinim dfinice funkes Jak jit vine, fnkee neat bgt deinoréna!® went jing faker. Sa. ‘motiejmast je, efanke mite bf writ jing funk vlna” Problémy nasa hy efuke deinovina ata defi fuk, ters tuto funk vo. Vola fnkeevtomto piped nem dau gine eo funk volané(onivratoréhodnots, poeta a typ parameted). Problem Je trochu meni, kaye mé vlan funkce ‘yp nivratot hodney in, protote unkee ¥ C mat implica typ privé it (vit. 111). Tato whoa Je wink ‘elm poctybns, protie kilt oland funkee ms jing typ nivatoné hone 4 ned in, vole funk © tom nevi a's névratovdn type peace Jako ‘type int, cok ition kone vel nepjemnou cy bow ' tomo ptpade je ba uit pfeladat lespol abvators typ jm to volané funk” pled jin vlinim'®. Testo poadavek oe fell deme dey. 1) Dekdaract néveatovtho typu a jména Deklarace vlan fnkce se proved ve Tanke vole abo kdekiv a obit Groval (ent ved fanke) “Tentoapisob pochdal 2 KER verse jaya C, Vsouéamné dob je méné ‘hod, protodenepodde Xow informacio parametech fake" ftsnetude main) t oxbie pikrat(): /+ totes: dosbie pakest(), 25 4/ double Fy prinee(*Zedes poloner Feant("KL$", Ds Print t(Obved braha Jo Uf\n", 2 » pineat(s)); + TF Pipomindme, fe dfnic fee je mato, le et ie 2 na by fete tayo) sp Obdobs Pascakdho FORWARD, '% Vaimnde i epost yp paramett veld fake net rindi — 1H ted av KER veri Cael “pata (rogram) face Pinkee ns te ponrat(dounte 2) eur (2 6 5.38; tam by fangoval seo dabei pi deklaovdn fnkee pkrat() na glo- Fore, jain thekto dow rovnocench2ptsabi aude tae paeratO: ‘extern donble puarat(): °. pein) > pass i tor: FPontvand konvene Hkh eprvnspiaob: double pikratO; by amamena, fe fankze plnzet ) byladeinovina¥ tamil modu, Dry spisobi extern double pinzat byrwe poi pipad, te by bylepikrat() defaovéna v jing mod. ‘era rordity mess obéma zpisoby viet ma st 131 Pomoct funktntho prototypu "Tentozpinob pink ANSI vere jaryka C. Doporatje sho pour, Te oproti vie uedenénu spb uote pebladdi navi Kontrol se cpp skein parame volané fake elude Sie pinrat(couste 2); / splay tunkens prototyp +/ ° doabie net (dade) poloner ¢ wean ("tlg", #2): GnerCobred kruha je Me\a", 2 + pakrae(=)): ae paerat(doutze 2) earn (5 9 3.180; ne 9. Punkco a préce s pam Program by fungoval stein dob i pi deklarov {Soskeibo protetyps anonymity: ‘oubie pizrae double): ‘Sten jako v pipadtdeklarac, le pout klévé slovo extern, tly fertern double pirat (osble) Pores: “std jednou rddraznéme, te msl funk jing typ ned int a je voléns ber plechot!defisice nebo ber wveden!funkentho prototypu neko ber dellnace, pak a= jf nbvrtoréhodnota honverae aa int, co de plait inohénepetiempoat i fankee piezat ©) pomect Problém fankench prototypd nc dearat funk we kd i procedur funk = névratovjmn typem woid. Nebylelt procera defnovins nebo Acklarovana ped sun volinim,peelada jt povaduje za typ int. Kay je tatoprocedura pond denovdna ako fnkee vrei typ void, peladat) ovaj 2 fuk» jim typem ap jim vldn Mt ehybu nebo var Ment, * Divime pfednost pind fankénima prototypu, nape ‘double vydet(double delesec, double Gelitel); Ded neipingm double vydel(double, double) ‘rotote wvedea! jen parsmeted dl yale itelnoet programe Je dorm avpher uvést ma aah program seznam vith fnkinch [rotoiypt. Tato price “nave” bohat pla, prtodeplekleda? ta fe pons maohem lps Kontrol jek adtzatonjch typ, tk paraets, *oporomnit tak na mista, Ket mohou plait ¥ progam pote Pornsmia: + Funke 2e standardnikniowny nem bt v programu deklaroving, a emus bjt wens jich funkea prottyps Toe it winenev pi ‘Gm soubor, Ted napf neni mith pet: FILE +fopea(.”" roto v souboru staio- je wedea unkiniprototyptéta fake 6 acho soubora se pipet mod! pla: #ineLude 3 Gatos ei Font protaty no anon specif Set ate ge sat pty doen stor aby mls ‘tiny Iv Jingfehsonborech potioba i st 192, Fak je to urdenov [ERTS Puce uy, 26 Konverze névratové hoduoty funkeo Pokud neat typ nGveatovch vfaau nebo hodnoty shod s névratorm tm funkc, pak ve provi implcliag typovd homer, nap roaterse(doubie @) return (35 ne Xe Ronverse(4.8)5 bi, Fe hodnota 46 je pfetypovina maint (ofits) a proméandx bude tedy bodnotu 4 7 Parametry funkel Jaayk.C umothuje pout jeden rpisob predivént parametr a to hod ‘Call by value). "To anamens, 4 satetnéparametry nemobou bgt ve "i aménény, ale poute tony. Aakdkoivaména parametrd sent Gonkee poe doeaniy a po opuitny fake we art “Tntoajvnf nedostatek sumone jury C neponeehivdnefeen. Jae (C umottue syue pointery®, pomoct niki ae Fest voldntodkaze?™ Pokudnejou vedeny fanknlprotoypy, apron C (ne road od Pas )/#4doou kontrola ani typa skeletafeh parame, ani jie pots. Je ‘Pmolnd past fone, Keré mai proménes poset parent To vis ‘dij details anslst implemeatace — aeména zpisabu predivn pa- ‘els manipulace + nim, ANSI vere C poskyluje pro (to specie ppady avlata format fr" (Qi taky — clips) « také makta popeans v Mascon ‘ora aedarg.h— podrobné vis HIRSD], V and ovale doporuéuevy- fuse «proménnsm portem parameti lv pipade krantho nes 1 xfieuvedensho vyplv jl nap. fankcedefnovina «duéma fr- mi parsoetry typi int pa volia s jedi skuteenjm parameter double» neat veden je funkéatpotatyp,plekladaé neodhllpshor {ace formal!» sbutecufn paramcry, peso op Tada eanerne iy nepfedvidatelndho chovdnt programs Vint. 89 (ital tna Hodnoy shutetnch parame uvit fone je mnt, le alo apt. print a rice 6 pam Konveras shutedach parametri "Type pranera by mil souhlast odpm frm parameiem Pod tou ak nen a byl uveden fan! prototy, pak as Pelledoé mill pozorit na tuto skutenostvarovnjn ble «Badow Provdt typoréKonverze ba typy uvedend ve fankenim prottypa —tedy "Se bude v por. Por 'V pean se ada stkime sproblémer, fe nepouijme funk pro- tolyp le jen deblaracfnkee. Pak eskuteén parate nap. typu int reskonvertuje a potadvany typ formulntho paramtru, aap. double Napitiad vfe uvedendfunkeepixrat() po voli = pikrat(?): mie pf abseil’ Lonverae it ma double spsabit ooptemnné howl programs. Vay je dobre poust vldnt = pitzat( 7.0), ‘bebo, del o proménnou, pak volink; x = pikrat( (double) 4); Ponsa ‘*V toma ppadé kompilétoryneblétehybu, ale pousevarovné hen Je vel ehpbou mivnout ed podobagma hein ukou + tim, feo ae bid. 9.3 Oblast platnosti identifikatord Juayh-C umodinje mnoho “jernost™ ve stanoven, de, ky a jk ideation (proménns,fanke, ip, «--) bude viding (destupas) ko ‘mu. Dali pops e bude soutedovat a prominné, ples buse vjrerne ‘povotaiae ua viecty pipadnésouvisot« fankeem 9.31 Globilat » loki proménné ‘Aklado organise defini progam je ohn defisice a debiarace Meine fonts Globes deblrace jos dearaceproméanch, heros defini vb 'Bfch ouborech (mould). Protat rou tyto delarace East specif Dee iat aa wf akinchprototyp pel ders Conk Oblast platontiidentitord no “ikim kliového slova extern, nzgvaj eof tasto extern dellaace™ ‘extern! deklarace budou podrabnt probray dile viet 131. Glebinédefinie dfinyipromnn, jie ronsah plana je of mista sie do'konce vuboru®* — ne programa! Jak jit byl feteno dive, Iytuic tyte denice und deine Fant, nap 40. Jo thio tunkee reas) +/ a 20. J+ woio tankee acta) +/ 40. Js ate tannee teeriO) +/ ote ere +) Gans 5 je plating ve lech tech funksth, keto proméand§ pouse ve eh drunad) a 20440. Na rondo Pascal, ke sou proménné definovnd avai programms Boba proviechay fue a procedury, eos v C proméané definowané ferfunkelnasa() lotsa poste pro tat fake) Niky ae tt coer dfice ve tj sor se Poort Sloe “soubor” je pout amin, protle program se mais watvat souberd oddone pekddanjch vi st 9, Vinate 20 120 9. Punkeo a préce s pamigt obit dfnice dent proménné eich roma platnoat je of misty einige do once Tanke, ve tert sou definviny, “Tyto dfnce se tly ‘aby wont dein unk map. pres) e (J ee fanece pevai() +/ Stent jako v Pasela mohou biti v © nthe lobdll identittoey pfekyty (2aeinény) identifkstory lola, nap pes() e ane tn, 38: sae 51, 525 arama) ¢ ine 38, ts > Ve unkei preni( je glob proménné £1 pfekryt loka poménnow st nfo jméaa. V tte funkel mohou bjt pouty ti proménné 32 (ql) 8.42 551 (ota) Stead tak ve fonkes eruhaQ) mohou bgt pouty dvé ‘lobia’ promnn (2 » 32) m i loki (4, 3 4). ‘Nile program vypie dk nejdels Fahy 2 ouboru DOPIS 117 Je sloden 2 2 funk cht eyutfvattjnon glob promo {Er — pointer na Geng soubor. Ta je definvinn ped debe vaech et Funes fade je ve ech viding. Oblast planet idenieétord aa sae EROR(aes) —( printe(vta\n", nee); return; 3 ise foun ne tevira sonbor DOPIS.T3T yaci nentlovon hodacts pri uapernen oterreni, jénak vraci oteved soubor(veid) *) = wu) ‘vor ((ér * fopen(“D0PIS.717", Tact nonalovon Bodnota pri uepesnen zavreni, jinak wack eaves soubor (void) ‘turn (fetose(te) |= 80D: fei delku prectene radhy nebo BOF pri tones soubor He (Ce = getelt) ates Bonn) return (delks # D: denatss ‘sora (607); 122 9. Punkee a préce pamici maa) € ne nejdetet = 0, siteaiat: $4 (loteret soxbor 0) EMOR(*Faiza oterrSe soubor DOPIS.TIT") waite ((abtaalsi = oti reaku()) != 20) ‘pejdelas = (aktusini > nejdelai) 7 axtoalni priate (Deine aejéeles radhy jo Ta\a", nejdetes): $¢ (tears sosbor0) ERAOR(*Holze tavrit soubor DOPIS.TIT) > Peanémby: * Lokal proméané nejsou automatic iniciiaondny —jgich hodnota je vady ndhodas + Global’ proméané jou implicit nicilzoiny na nla nt promén- 1 majt boda 0, flont hodnots 0.0, char bodnot "\O", a. Je ak ‘lobe rym neapolthat na tuto ub svc proménngct, Mer ‘naif bf inilovdny, tuto iiilizac jslownd unit 3.2 Pamétové tidy ‘Kroméreaznjch typ mchou bgt promané uvedeny iy ranch px smdtovfeh WidGch Ty ure, ve Mend Eth pani bade promnn’ homie {orem umisténa,w tke, kde inde bude proménnsviditlng. Resi ak smofnoat viitelacaliproménnjch, ker dosud tly jen glob Toko. aay C roremnéve ty pamitové ty? ‘auto Oblast planes identifiers aa a auto (0 tho proménnfch se ast howl jako o automatickjeh Je to impli- { paméov ida pro loka proménn. Jeli proméons defsovanguvatt fuskze bes urea ypu pamdfov dy, ‘if implictal typ prévé typ auto a proméans je ulend ve stacku — vie we 109 Proménnstypu auto existe of vtupu do fankce a zak pi vstupe ee. PH addin ytupu do funk ma ndbodaou hodaotu — neni tedy implicitne™ inicialaovdna 80, ais neponechiv svi pavoda! hodnot Fgvém voli funkes, mp <0. tac t seo int 4 ese jako setts bee ame 3 este ato iat 32 5: 4 toimplicitn# pamttos tid pro labia proménné. Tyto prom 1 sloteny datos oblant Kittové slovo extern s pou pi oddeném pieklad soubor, kaye aby da nebo vice soubor sill tuted proménnou. Tato gobi pro- "ev jednom soubor defini akeadné ex Kliowho sora extorn ‘iach otatfch mab dearovina + poultin extern, naph water $1.0 towbor $2.6 fume: /* detinice +/ extern int sume; /+ denaerace +/ ek: ‘Tentozpinob je utné dodrfovat iv pipadé, ese soubory “nkludy™ 4o jodnoho aor. Pak by vice definte tee proménné (ber extern) ‘pbzobile probly da static ‘ro tuto pamtovou du nexstje 2nd implicit define, Ei Kitowé static mus bjt pli defne v2dy uvedeno. Prominné této tds jou ny dato oblat Pamilovn tidy static vy neat lil proménné (define ‘uvnite tanker), kere si poneehaj svoj hodnota i men jednolvsi imi ttoTaskee™, Iniiazace vf me bt» programs exiinéwredena Sono “imple” mi sue pone jf fanam acts ty aut — vie de ‘Toe posta rnd mer static saute 124___®_ Fanteo » prise » paméet “Tato promnné exists od prentho volt plang funk ak do doby le jako lola proméané wen! samoakjné potupna int 2 2: male sat t= 0; posiee(ot byla volan Waourat, x = Male", 6, 2) > Promén x je loki automatic proménné a proméané i je lol st fic promans. Polaidé, ky je £0 savolina, Jo mist pro prominnou slokorinow jné esti pamti (stacku) a vidy Je explicit! inilizovino na bodes 2 ‘Proméoné $e incialzoréns™ nao pi prvnim vetupu do fankee £() 1 svou hodnotu sf zachovav mei jednotlivgel voli iilalizace xa ‘ula ve pi dalich vllnih fuskee £0 jit nkdy neprovede Napifkiad pro vont for = 0; 7 <3 3H) 20: bude wtp: 'f byla volana O-xrst, x = 2 4 byla votana ture, x 6 2 4 byla volana 2a, x = 2 etnib lob promnné i funkee mohou bt conageny tak jako stati, cl ten vfanam, 2 jsou vditelaépouze modul, ve Keri pou deinony int at. 130, + Potiebujemesi vee statickfchproménnfch jednobo typu, je vhodné de ‘ovat katdou proméanou semtatnje plage. Nektré pekladal® lott defies static iat S, 3 prac ak, fe sated prominnd bude pouse x proménndj bude mil Implicit partfovo tia — ted auto. Ob proménné bud ale ty 7 Opa ky exci nla, Merk sicenen nag ale rn phils roam. Oblast platnest deniers 125 ‘Bude vhodné x aktustt sav pikladne odin jednodchém piklady acho je le pout mplementaéaé neaivsou dese: seatie int 3 fa rogistor Protoe jazyk Ce “nthotrovion jay" mite programstor potadorat, nékterdproméani nebylaulaienav pamdti al poze v reir pottace. “évfhoda mmnohem rch pistapu kpremtnné« tly i rychltho ‘gam ‘Oznazeniprominné jako rogiater nevi tuto proméngow ma uti kon f rgitr poitade — to tle! rela na pekladat, Deficirproménné register int; ‘08 poure, fe tao proménné mie bjt ulotena do registra, pokud je § von 8 pokud je to ajrankieh aysimovseh dlvodt motes ‘Oxnazime ty viechny pout proméané jako regiter, pk skuteén® [Batrech budou unsteny pout néktere.Z tbo vyplfvs, jako roi 1 proménnou je vhodné ornatitnapt.proménnou jeinodudhdho cu ‘ato poutvan formal parametr. U regitvoeh promannych ne neprovl dnd implicit iniilznce » Ivajtsevfhredad joo loka! proménnd® mk ro defini vce proménngch shodatho typuv pamitoné tid register plat tot, co pro static Je tly vhodndjs pt epister int 1; mist” register amt 4, J: Fegister int ji ‘ae ankal dren Feitrové proméané — vie sr 148 a Punkce pro wp malé nésbilly void nasobiaka(ragieter int ®) e tor (2 4) 6 10; 440) einee(had x id= 2d Wat, A, £0 wD ede mit bit proméanon typ regan 126 9. Funkoo a price * pamét 9.3.3 Typové modifiistory Liorolné proméend uritdho datovéhotypu (napF. 4 ypu unsigned in, Kier je taanena do urté pamdfove Way (vie pkeddoa!podkaptaly jak C dra: Poni Daiie proménnd & by pak bla eatie court imvigned iat i = 5 Modifistor const “Teatotypond modifistor je naveden af of ANSI verze anya C-Jeho out specifi, fo definovann objet nea Bt po eho ile Itndea hodaot. V podstatd je oaks nedotazend nahvada za symboleké ensanty, prtaie promtnoy v pamitvt tHg8 const neee pol side tam, kde symbolckéhonstanty,anp. pil definovdnt mea! poll. Vfenam ‘shoto modifktors je tom, fe lakto deinvang honstanta je unto i. (aston of symbolckfch konstant) a e tedy mobo lento typ vit E ntkterim kontrol provident kompitorem, nape yp skutetnfch p> ramet fakes Pinas const feat pil = 3.14189; /+ detinice a inicislizace «/ fonst mar = 100; (2 yp int je amplicitas +/ Sst pote Cena] / ekjone ~ nelze ” pests; (7 exyune = prizazent netze +/ Macher st je le comet vyuvina pi deine formélnchparametrt funkee™,Sethime-l sex takovoutaHsvikou func, kterd veda v fell teném parametrem st anak ulobeng parsmetru co ave eho pone nt Aledej(const char sats, char c0) “oj ra, o? Buea nk jot opti defi! Dednovené pfasem Aetine eevee (Oblast patnoetiidentifktord wat samen to, funkoe B1edej() musi ft voldnavidy + konstantaim py paremetram (cod ovlem Ie ta), nae f= Bledes(*nazder", to, te parametr omalenj const bude spracovivin pouse jako vst den ten). Skutetny pararete,donzeny pi vlini fonkce na mito ‘osbude ve fankei A1ede3() ming, i hay by to Dylo pomoc pointers ‘ae 158) proven. ifkstor volatile Modifitor volatile je opt zaveden abo ANSI verze janyha C.Jeho th je jbtd mend fast ned mouitora const. Modifkstor volatile lye lompilior taka defovans proménnd mafe bgt mois ou ble nespecifikovanow saynchronn lost mimo il program, nap sc perutent. Komplator ted nemlte nit Bédné 26vry 0 moinot Y nebo konstantnosttéto proméané nape. pro dély opimalizae ‘Typickim pikademn je yk, jchodukonéen Svs na proménne pocet, sev le wohoto eykla vibe nevyskstue, protfe je mofo ay ‘nd hardwarcovjm pferazenim. Poked by kompiltorprovl optinaly {ohoto ep, mohl by se domniat, te tet ta proménné, na Mer Svs tent epi, je meine podilaky ukontent ey vynechat = dnotos, Kerou méla tao proménn pled sasthern cy, szxy rurnyeh detinic ponoes volatile +/ site sae it = 0; /» dafinice a dnieiatszace «/ tite sae 12) /o datinicn ” eae 35 70 opp iat $e sapiscseas 67 saad eyeta oviivnovana ‘he pocet: waie(ine maximon) pr. vnajeim prerusenin #/ He (pocet < maximum) Bloky Ce prvk programy, kes ¥ Pascal net definovi, ok je uzavéen mezi “Ca “a mie obsshovat jak deface lokneh nfch tak ipkaey, Vetsinowviak obsauje pouzepfllny » pk se iaseng pitas ten so ove v Pascal vty rst 8. Fumkce a price # pamde, Poxnimly * Berpratiedné 28 *C mobou bft definovdny lola proménné bud v ps Inilove Hdd ato nebo static 1 Exinence — w automatic proméanjeh — nebo viditelnost —u sta tickgeh proméanjch — je poue vbloku, ve Ker pou delinovany Pad: Program te jedno cel slo ajo lade, pak te etd el ‘tise gic eouse. Deli prea iso xSporé, pak Ete riln loa vytishoe isch soutin. Hinciade main) e ane as canta", 5 ur oe sat 53 (Jn § datsnovano arnist bloks +/ seant(ota", a3) prines("Soucet je 1 > stae ¢ doubie ¢ [4 datinovano uwnitt boku +/ seane(lls", af) PmteCseesn 0 an, 4 6: 2s Posné 1's stds da dvody pro dont promfané ve wii blak 1) Seton pamet ‘Teoreticy spa alokuje bud jn pro 3 nebo jen pro, ale pra tieky toate! na implementa Pragmsticky vato ~ Setfent pant neni nut, pokud je oj sali proméoné, ale jedan by seo 2 pole, pak je motné° tomto eplaaby wader. 2) Cistotn a pebdnost Kida Driime ite chlybodné atsndy, 8 proménns se define pote tam, kde se poe, pak je define ve vate boku vhodas + Obéas ae objest mao, Ker vyuivs defini v blobs, apts, 3) (doubde £5 £ = (3): GH) = GD; GD #4? (Olen pekled soubord — I. 129 Oddéleny pieklad soubor — I. V tito lit anime viechny jemnosti pamatovgch tid » miieme ‘guia vec wShod oddendho pekladat. Prva cojenutné ult, ‘lev nad rordilenim problému na vie, na sb co meéné ngjméne eh tat Nake takove ronda wypvdpllno » podstaty probly, e tebs nad wim poptemyet.V kafdémn pipadt je vhodaé stedvit cou obo fas, prolate pi nevodném oadleni program do vce soubord ‘srdzpodobnd vice problema pisdelame ned uettine Drulim kroke je, po soudlet je nutnéprecianéstanovit interface uni) ebol tyne boy, jinak aptsctykomanikace oddlenfeb Ipevasjem, Vhodng epiaob Komunikace Je pomoct vont Tunkel dru Totaled pomoctedilenfeh globslich proméeanfch, vditelageh ve Imodlech 1 Rosie platnostiglobilat proménné roles si apivob (bud rela nebo jen stent) komanitace pom 3eh lobslnich promfansth, pak ae roxeab jich pltnosti ratte 2e ‘ora, ve Het Uly defining, vicky subory, kde jou dear 4 pomoct extern bor Ac obese: Px aucaten souborn A.€ +/ fe peinas: "include fenk nutay ~ soubor mevyuzive 1/0 funnce +/ tat x fs getsnsce */ fertern double ¢;—/+ denlarace +/ int run(voia) « peter (¢ + (int) 10; 2 © 7 nonwe soabora A #/ Pripominme, douse, take sytetn,tese nod osoxbor ‘kinda do jdnoo soubor. "To je whey end, pracy Je vAdy mand plnout ke loadin (akin, 130 9. Pankee a mi Soubor 8. obaahe: fo zacatek soubore 8.6 +/ Hinclude extern iat 2 Jo decancace of frtern int fun(void); /4 nebo jen extern int fan0 nebo jen int ren(voia)s obo Jen iat fan() ” doubt #5 We datinice + main) « printt(ta\er, ten0005 > ‘» wonee aouboru 8.6 #/ rogram po spun vytishne to 6 Poznimb: = Deklarace: artern Sat fen(void); re bjt eala vynechina, protote fun() mG nGvzetovg typ Int. To je Sak velo nevboday 29h, Ker? phnGif mpotstv!probléang, nap. ‘yneché lise pak omglem exter dklarace Funke, Ard neat typ int + Romab platnentproméanjch x a f jeveelmeouboru ac 1 B.C Pores, rotote extern deblarace mus bt zpracoviny linkerem (sstavoraco) rograrern), mde to pint dali problems, naph x dlkou identikit i. Dobrow sandou ey jy aby extern identiftory lend promaané ' fankee) mely co njkratt jména ~ doporuiaje se max. 62a 9.442 Staticks plobilni proménne a funkee Speco, ae elk fants je pout paméfové dy state pro loi prominnd voddlentpfekldantm programs, Tytoproméané mast vib ‘iu fe joe viditelne dontup) pouse v soubor (modula), ve Merém b3 Asinovdny, le new otataich souborek® TW Nepomte aii Rigby ty vJnfehsouborech dlintvdny jako exter (Oddaten pret souboed — HL at Sting spiob (pamétovs ida static) se pout pro oman! funk, Ee atatic int fun(float a) to maprosto sein wSanam, jako utatieeh globalch proménnfeh, 8 tie funkee je dotupns pouse ve vlastnim soabora a nkolv vcetatnch bore ‘Onnazet static ak glolnich poménnych, tk fk je vel who im vpiipade, dyna velkém prograu pracuje vee programétord ‘ou. Tse pak nemus obiat, ie avo stejnéjména pro enti {ko jichkolegoné.Na pojmenovintgloblaich Tunkel © proménngch {hice interface ce lece domlon, a veechnyostatni Funke » global and cena jako static. Pak nemte doit ke hai men, protatekaidy F jen ty evoke srk (Gate se pro onnaieni“lkSlich fnke!” vy makro ‘Metine LOCAL static Ps bor A. obese: ‘7 ncatak soubors A.€ °/ ieatie ant x Js aetinice +f fivarn double t/= delarace ¢/ static double fan(doubte 3) « retarn (3); > nt fantea(vosa) « retarn((iat) fan(#) +2); f+ konec sosboru 6 6/ or B.€ obj fo zacatek soubor B.C +/ fexcern sae Js aentarace 0/ (Breer int funkee(oia); /+ fankent prototyp +/ 132 9. Funke « préce + pamétt donate #: ([e datinice +/ static void tun(void) « prinet(la\a", tunnee()) > main) « £238; ta; > Je wonac sosbors 8.6 +/ Pehla vehi soubor probehne depSin, se pi sertaven de linker ht chyba, fe neni defnovina proménns x Tuya ott defini jako static WAG adekltace” extern int 2 ¥ Ble jel pamtovou ty nezmén Powynechni static defini x.» A.€ bude program pracovat spr 1 enebude zmaten tm, Be ou tam dv Tanke lene pojmenovane #300) ale eangeh yp. Funkee fan0 vsouboru A.¢ nema nic spoetnéhosfun() 2 8.6 kad je viditelng(dostapnd,vlatelnd) pouze 2e soubor, ve Merém je deBiaovéne 9.4.8 Jak udriet potdidek vo velkém programa Obecng spisob, jak melépeudriet potSdek vetenich a staticksch pro ‘ménnjh a fankeich a jak vieobeenéaorganizovat relten! programa do m0 Auld tak, aby se ma nie nezapomndl, nd zhrba mised east 1) arojne testy (tla) viechfunkel (defini fel) define veh Dprominageh jou v soubor FOX.!.€ — diet je pipona -¢ 2) V torte soubor je striktn roaleno, Keréfankee (pop. nebytnt nodal proménnseh) se budou dévat k dispoil vad moduly POX: Snadine se navehnoutprogeam tak, aby yo eo nejméadadienjeh (e ternich proméanjeh—F manipula sn posytajeme spite speci fue. 3) Vieehny ott fnkee a globin’ proménné omatime jako static ati Je cehrnine ped nechtnyn & nevhodngm pout, 4) Punkin prtotypy (havidky) téhto funke «denice glbilaih p- ‘mange opirgjeme do souboru POX1.8 — diltité je plipona = ‘unadie Je ako extern (Odddlen plead soubord — 1 133 Pkud budeme x modulu POX poskytovat | nékter€eymbotické ko Hants, asedeme je oue v soubora POK-Hla ne ¥ POX.C Soubor POX.1.€ pak anting sinetade “POL ‘Tinto trike mime srwen, Se ¥ soubor POX. budow znsmy vie: ‘hnyfuskce pouoc! funkealch protetyph i vieehnysymbolcké Konstan {g, Dedlarace lobaich proméangeh jako extern v POR Hnexp sabi ‘Heou koi s define ecto proménnfeh ¥PORL!.C ‘Soubor POH 2.¢ ters obsabje das modal programa vyusivé née. Fe funkce nebo promioné nebo symboicks Konatanty + modal FON.S, Fak atid opt ‘include "POLIH" J+ adstene funtce a pronenne +/ ‘include “POL? KY /o dexlarace viastaiho nodule ¢/ Programétor modula OH-2 we vabec nemua start oto ada mé sprévob aapadny a wedeny vechay pottebnd sdlng idenifkatory. To J sta- fot programitors modulu POH. Ten, kdo programe modu! POX, fipoureproblédne soubor POH, kde mi uofeny viechny potebod faformace {5 ye wvedend postp vie, Ket spolupracana projekt, omer send ott rable ‘oruteny obsah -¢ soubor Pokua jane se rorbodli dodriovat pledchoa!doporuteni, jet dobré we ‘st, jak by ml vypadatsoubory =, by 6 v nich dao vyzat. ka To dai pops se pledpokIAds existence rouboru STOOFH.H- tito ob em a 1 seandardnt defsnice ~ noditixorano podle F. Sarhy v 9. Punkee a price # paiméty a Soubor .€ by mil obsahovat postpné tyto Se: 1) Dokumentazas est ‘mina sobor a verze suing popis modula 1 }ndoo ators datum 2) Viechny poiebé finer = pou subory no plead 1 nejdvesystémoné .m soubory pllazem: #ineiage <> pak vasa souborypelagem:sineiade ™ 8) Deblaace mPontovanfeh objekt@ * Poze v tom ppad, 4 nejou v pfisutném .8 soubora spelupre cifetbo modtly,gemsé dévame shed plot, ‘Tyo abjekty(Knker nebo prominnt) jou vjnjch modulech de rowinyjako SLOBAL” 4) Denice c.opanchproméangeh ‘sou to proménne (defnované vn funk), Ktné emit bt ales Sinjmi moduly. V niehjeou oanaeny jako IMPORT, poked to ji heat winno ¥ pst i soubor 1 Potet eho sdllenjeh proméansch se saiime omenit ao ne en mi 8) Lobia eating = Denice symbulichch konstant « maker « parametry pouch poute¥ tomo mods 1s Pak by by pili oes (sth Edel) le je uit do «iho -#souboru — jen pro zvfenkpehldoost, 8) Defic loki yp ‘ Zicada se poles denice novéhotypu pomect typedef * Pokud by by pis rosie Ine je umtt do - soubor podcbné ko pedeboa deficesymbolckjchKontat dy eoubory .¢— vutivane vod ode Eitan Oddelea plekled souboed ~ I 135 Dafinice Locabnich proméanfch ‘04 t lob promenné vyuifvané vice fukeemi tohoto modu- iu Aby nebylyviditelnévjingeh modulech, mali psmefoveu tidy «+ Potet thio edlengch proménnch se anaime omeait na co ne png fankéaiprototypy LacaLafeh funk Pakee main) 1 Uvédo amoatjmtpousev pipad, fe v daném modul existe. DefiniceGLOBALach funk ou to fankee, kleré mohou bjt votny i infch modal {jc pn onken protoeypy sou ulenyv pilusnde . soubor )) Definice LacaLach fonket ‘Jeon to funk, Které mohou bt vldny pore tomto mods ‘oie pin fankén!protatypy jou ulateny ¥ tamtoseuboru*® porateny aba soubore Sly ae a i previo ots. a yodsbns sits pe ale icin, gol deren oporatond tetra. sonny, te are ja dim arte PSE cahoe et Ef dnt dnd face (eae! pam po Prodan bed he) abo ince ac nj promt a ety bya pany snchode bor a by mil obeahowat portupn ty Eats ‘Dekunentata et ‘jo soubora a verze {strung popis modula ‘jméno attra a datum Defic symbole Konstan ‘ Symbolic Konstanty,okterseh vd pedpokdat, de budou vy: ubfdny |v jnjeh modulee, Defiice maker» parametry + Plat tol, co symbalik onstant :pldehortbo bod, Vis bod a6 Funkee a préee s pam: 4) Defisicepobsnich eypa ‘= Noné dtone py yutiteld iy jnfch modulechdefinujeme rhsadne potoe!typedet 5) Deblaraze glabilnichproménngch pisuiného .¢ modula ‘Jeo tdecenaeny jako EXPORT — exports d ndho moda 6) Opleéfunkeaiprotoypy qlbilach funk! pishngho .€ modula ‘Tuo nde cenateny jako EXPORT — exports d jincho modula, 'V sito eli vim to musi pfipadat slit, ae tato slit je pouse suGalvd. Pokud budetevytvitet programy dest Fetch, pase vim bobatévyplattravst tuto nebo podabnou struktar soubord, Je ae nutné dodo potkde uf od zak Piedeevaetl, de to opravite pi, Mie bude att spout Eas a net Prag, ‘Vie popsanéusptidnt bude demonstrovino nsledujein pikiadem rogram bude pottatobvod a ob hrdaice «bude alotent modal AUAAATH-C a FAU.I0,C, K modu FRUMATH-C pili hlavickoy soubor RUXATE.a ke HRU-10.© psi Mavshow soubor KRDI0-8 ‘yutissewfteuveden hlnihov§ soubor define STOOP 8 Pon ‘Testo program je samortejné vyunilovang a tay i ahytetn loi nebot ty pn se staou ukieat¥ maximilni meine mite motnost v2 Jermnéprovianostiriajeh tnodul. Ve akutecnont se doporvule, provianost bla potzejedaimn ante, ten. de blavn! mod (+ net Dlpade AU xATA-c) mite vyuivat globin funkce pode modal (2a0.10.0), le nikolv maopak. Pokud by Bylo obtiaé tous sabrint, may by podvent moduly vyuivat pout minimal pot slenjch gl bili proménnfe hlavatho modal. ‘sJedntlivéfubkcenejsou 2 dived Seen mistem nik komentovin. ‘at by: bylo ¥ reilném plipadé mitné Funk vyp.oby ‘nals pole dive wedenfch pravidel sprvat vypadst tate setarn (PI + vyp_pruneru(polomer)); ast yotenove Hlavickove aoxbory +/ fade lasing nlavicrove coubory +/ sore tt /« aatazent standardnich detinse +/ fe ROMAIN." /+-patazens ayabolickyeh Ronetant, Tonkensch prototypu GLOBML fumes fs pobalnien ypu viastiho rotate +/ ude "KRv_r0.u" _/o natazent epmbolicnych nonetant, {funkenicn prototype GLOBAL funted Splobaanien typr spolapracasieine elute #7 eiarace INPORTovanych bjektu ¢/ wens auina, protoze inporvorane Shjenny Jesu jie anany diky prikace #ncLude °KRU,10.1 1 pokad by oyly pousity, vypadaiy by aape-: IMPORT int i ” fetinice GLantLasch prosenaych +/ HL dosbie obvods erat datsnice symbolickych Ronstant +/ fine PI 3.38 ovals detssice novyeh typu +/ oie nejaon aadne typedef pousity pokud by byly pousity, eypadaly by nape. oP ppedet int ROIE_IH; ” 138 9. Funkee a price + paméts B®. Ranke a price pamies J+ detinice Locataich promesaych +/ {Local deubte polone: eeil deate cbean J+ opine fenkens prototypy LOCAL fenkes +/ Lockt. void vyp.obeana(dosble poloner); Loeht doubt wyp_obvedu(veia) hed void eypocet (void) Js tuance wasn) +/ a0) « poloner = vatup dat; 4¢ (potoner == ceYBA_bAn) { ‘Js Cayone zadana vavupat date ~ zaporna nodnota +/ 4 Prise Ctetonr ersnen pine saan a) aise ypecet()s yatap a8 (obaan) > > Js detintee LOCAL tanked +/ ‘LoedL void vyp.cbeahu(dostie polonar) " pa bean = PI + pooner + potoner: 5 ps Lock douse vyp_cbvoda(voia) « return (PE + vyp.prineru(potoser)) ; praneru(pl Loca void vypocet (wo8a) € obrod » epp_obvedu(): ‘rp.ctesha(polonet) (Ouditeny poklndsoubord — I 139 detinsce GLOBAL tunkct +/ TL doable vyp_pruneru(double potoner) vers (2 + potoner); nk itn if ph ns eng met ce vy by milo bt ve fork, era stupa data te. Z hedisha telnet programa nent vhodné, aby Tanker, Keré lf po- debnou ake (vyp-obeabaO a vpp-sbvoda)) pracoraly riz’, may tone typypasametrd a nderatoné Bodo! Mavickory soubor pro model HRU_MATH.C synbotichych Konstant wyurtvangeh £ ¥ Jsayen 7 ‘detinice maker 2 paranetzy +/ (= onte nodule Zadse nejeou */ detinice globernich ypu */ Jr's tonto nodsa zane ne}s0% */ ‘ auiaarace globatnich promenayeh sodula HRULMAIH.C 4/ (OT double bvod: plane funkens protetypy GLOBAL fonkei models HRULMAIN.€ +/ Ukr double vyp.promers(dosble poloner); eo ______® Ranke a price + pamaty { vaeapy © vyttepy program pro rypocty druzaice Tp. meroat, duben 1092 2 (12 syreesore Navichore sostery +/ ‘iaclage ertdio.2> /o vlaseas Mavickore soubory +/ ‘Haciede "STDOPEE" /e nacazens standardaich detinic +/ ‘Saelede "HHULIO.E’ —/+ gatazens ayntolichych konstant, Fuakensch prototypu GLOML funket fs globalnsen eypu viastasho otule */ stazeni aynbolichych konstant, ‘funkenien prototype GLOBAL f¥akes SBebeiath tpn splepactiete sacle “ER MAILE /+ /* aciarace inPoRTorinych objekts +/ / aajtou nutne, protoze inpertorane piste ine she ena diy pritace ince a na J+ detinice cLowsiaicn pronensych */ Jv tonto nodsln sade nejeos #/ fr deka’ detiaice syn nica eymbolichych Ronetant 9 maker +/ Setine Nonerolan) ((2 >" 0.0) 7 3 OHBLDIT ) Pm roksan’ datiaice J onto nodal (pe tankent protoypy LOCA tankes +/ Y tonto nodule zudne aejzos #/ (Oddity pend soubor — TL at suakce main) 4/ Sy tonto modula nent / detinice Lock tunkes / Jey tonto nodsie zadne nejsou */ iste) printt(*\adade) poloner kraznice (kladne real Feant(*Lie", spoloser): evar (Kostroia(polenes)) s(donnne obeat) aa vos wystup. dota prune: printt(-obesh Krab 0 polomers 18.24 je %.2¢ \n", poloner, cbead) prunes = vyp_pranera(potone); print{(obvod kraba o pranert 16.2 je 1.2 \a", primer, obved): ink = 'Rédla: tinctode “xav.20. je-v tema modula nebytasyprotle se» KRUIO.H vyskytaje denice ‘ymbolicé Konstanty CHYB4 DAT. Ta se nacht v sabora KRU. pro- {o, protots je vyulivina modsle KRU.MATH.C.Pokud by bylavyutna ‘pou » modula KRUTO.¢, pak by byla definovéna pouze ¥ ném — viz 1 symblichou Kontanes PE ¥ modula KRLMATI-C Sten tak i: #saetade “HRD MATIN Jey KRU0,€ nits, protoe tomato modulu popsye, jak vypad6 go- bat proménnd obvod a tke funken!prototyp Tanke wyp-pranerO) 12s pom eo obé poménné potoner, Meet nav obou modulech ‘tRnoviny jako lok nemobou i edy ijakvidjemné vad. ME. ano pede pace ” nwut0.8 vers 1.4 + Mavickovy soxbor pro nodul KRU.10.¢ (+ detinice sybeticnyeh kontant eyusivangeh ty Jenyen nodulech */ * Av er 10 J» aetinicn globalnich obalaich type 4/ (Je tonto models sadne nejsos ¢/ (/s demiarace globalsich pronennych module KRU.I0.¢ #/ (Jy tonto nodule zadne nejeou #/ “ 1 tee tenet pete abla. ane noel WLI0.€ ‘EXPORT double vstup_dat (void); a ror cia” ystjet (nme eben; 9.5 Inicializace jednoduchych proménnych Iniciainaceprmianche dt ‘ ces coin ptt hodnoy promi 2 Tet pel palpate sre nol ogra Inia pro vecny ty romennch apamtonch tds {aktekyshode, ale fi ponrniin pobled dai at {Gy ste le eon pole wae dot oe Lokiln promiané jednoduchfch typ mohou bt explicit iniilzos ty, Pokud se to matnst nevyutij, pak maiindhodaé hodaoty. Vimo selokila proménndv pamdfoné te tate, ere incazonsna no nul Vay jeeps w expan Inicialiancejednodachjch proménnsch us (Glob proménnd jou ped raja program incaliovny na nu je dobrjm vyhem explicit’ iniialzovt ty proménné, ker to wyladu. so pistup avptae telat program, [ANSI C se lif of KER C v tom, fe jakile je w ql promin- svedensiniilice, pak exe! na pfedchorim igor sore extern aisleduiich dvou plkladech je proméané £ vidy deinordna 8 naprosio inj vst, 11.0; exvern float £6 1.0; main) es nik ANSI C v tomto ppd ve skteénoetiralije pojmy dblarac, pede Aeind definice tulad dfinice, Je to jermeat Tako orn, fe ten! Usa jm tabfeat ZAjemee se mie DIAS! podrobnonts douvedet [nse Iniciliace automatckjch proménnjeh* mie ht provedens pomoct implexnthosjracs. Tosnameng, fe mate obahovatproméané nebo fuk Teal tedy to co a me objvt a lve strane pitaovacho paz, ve fasto dat ¢ = geteharO; podeiat sc ak doportaje pout inicialzace pomoc konstantatho wire: Globilnk a staticé promtané mohou bit inicialavény pouse pomoct rstantuthovjrar,t-konstat» rbanfm opertory,nebot vax mus bjt tino vyptitatw fase pfendu, nap 2 dobre wkdomit * Funkoenemohou bgt vlddané (vind), 1 Funke, kterd ral jng typ nel nt ma bt aleapod dearorin ve fonk= i, Herb jt voll. Lei fens je uvedent jh funkénho prototyp pled define vlai funken, Ponkeatprtotyp s wd bu ra raathu ouora, kay program setévé x jednoko souberv nebo “nkludoviin” plisusndbo a woubora pH odddleném preKadu subord © esta pomané paifod He ato. ae 9. Runkee a price + paméts ‘+ Posifite typ void pro oxmaten fakes, kerénevrac hodnota nebo em paramety 4 Batra idetifkitory by may bf co mejkeaf — max. 6 sna. + Extent proméané by mély bt inicalaovény pouse jd, mo V mst define tan, 1) Napitefunke pover(dosbie x, int a), kts vypietbulku mocnin rod t don, 2) Napiitefukeitroy(ebar e, sat m),kters obra na cbrasovee to thea om Meh slobeng te anak ¥ e nape sv0ee Pron anak na poled dee must bt v prvnim soup 3) Napiite funk exist, ker vt 4, kay soubor EST. THT existe Jinah visto. Nerapomeite soubor uzaye 4) Napiite funkei wysnyeO se dvéma parsmetry. Pron je ukaeatel na soto del chat ake pe jst toot ans 0 5) Napite funk void vypia (PILE), herd vypie ma obraovkaob- sa soubor 7 8) Zdokonale funk ypis() tak, by aaiovalstrénkovin! po raph! brary, ™ ™ 1) Napite funk aoubhe vypis-sosbor(void, kteh ypie pomodi vo a funkcewppis() na oraz aaah IBovlachovubora, Jeno soubor ites Mveice a vhodDd regu na ptipad, ky soubor n= fle, Fonkce vypin.scuber() vet 2, jl meno soubor poate nebo x Nebybli soubor nalezen, vac hodnoty 1.1, jnak rac 0.8 Poonémiy: “ Pototnatoedt mes"? aR + Nexjdnodutite typ nebo ndvestovou hodota fake, 8) Napiite program, key vytitim fankee vypse-soabor() bude yp sot na cbrazova ibvalngsoubory tak dla, dokudufivatel net {mine soubor ako 9) Puke wypi0 a 99 smain() do woubora RAVFE-© £0) latte do soubor FOE.¢ a funk Inicialiace jedadacjchproménngch us Pomoc #include pipote soubor F.C do soubora HLAVHE.C ‘Vyshoutejte fanke program vytvoteno vpiedehonch eiznie, bu dou obasoubory aCAYHT-C a FCE.c) oddtlené (bez finelude) ple lading. Zdvodnée spatnou funk program omar: Soubor EXE veravtepitasem: ink nlavad, fee Poutivste-l kompilitor fy Borland, posite Projet (Obs wubory odentplelbdete av soubora HLAVAT.c uvedte dekly ri fankcevypis-zeabor0). (Obs soboryoddéleng pebdeitea v souboru HLAYET.C wedteGplag funkén proto funkcevypia-ronbor Vytvotte soubor FEE. 8, do nfo voit png fnkniprototy furkce srypiszeuber(.. Pomoc! fineLude aajstitespojea! met edden® Dklsdanimisoubory F.C a ALAYEZ.C Nari funket Long cts znak(PILE ofr, sat ope), kerk plete je den anak ae soubor awit bo pom deubcho paramciru. Navratovou hodaotou fake Bade poet vlan to fanke (oyu! eka static froménnd), Hlavai program vypie pomoct ito funk soubor »nako- bee poet plettenfch tak Vytvoite dvasoubory 4.6 »B.6, ktené budou set proménnow $33. romana ii se vA.€ deine a natavav B.C x vypie ef hoot, Soubory oddslen pokldeje a wstavteptazem Lanka, nebo svyultim pitaru Projet u Borlandskjch Komplétor, ‘tive pfedchoe! program tk, aby 444 bylo dfinovén jako globin static »wpakouijte chvdn programs Napidte program, hte plete anak 2 Mdvesice. Bude o mak “ pak tien avptinknéte clio. Bude to mak “pak toi prove $Uolem et. Proménné, do kterjch bude tio ulaten, define ab tv blk 28 if ebo ela Doplite testo program: (RAK skste ai 6000) for (600; $< mim 48) for 20; 5 MMe) € ie > tak, Se 4.4 3 budow nerve glob int pak lkilt register int Pokuste se andi ryeloet bow program 146. 10 Pointery Pointer (1G uhartelé nebo siméray) sou “ste ada Cjatyha". To tedy snamens 4 teprve po pororumén interim meme ted, 3 mine programovat v C a Ze je shopal vyullt ech jeho modnost Hees potitke je diltité iwvtdomil, fe pointer neni wecotjuplatho, pd tim je nutno mit respekt. Pointer proménns Jako katdajind, posse Fodnota této proménné ulozené mi oda ¥fznam of oda proméanseh, fm Ker jsme tpi dosud 239K Pointer pledetavuje adic v pam a na tito adree se tepre wknd Pisuns hodnota, na kteou je bls donuda¥yklJinak teen, per Je proméand schovivajiipametovou adres, nape ote: = pL gymoticns aarora: agi core ‘sanam obrézku je * proménnd pot Je pointer (etna symbolckéadrse pos) 1 hodneta pod je 28 (lo ulodené wu ayrbolché dese pos je 25) 1 Hblo 26 se nevyuiieplimo kwjpotte, ale pfedtavaje absolut adres ‘na abslutn adrse 25 v pamiti je hodnota 18 (ct Je spotty pout dé) + pot adszaje na hodnotu 18, le sin mi hodnots 26 "Absolut adresasametneho pos nen vnakem pifpadé diet, ae po Spine — Ky je definordna proménns (tedy {ponter) jek pidsleno po. tiehnd miso part. Toto miso je tak vlké, aby we 40 a8} mohla ami proménns podle defnovandho typ Protas pousivame symbolcké alts} {ape pot, .-.) nen tato adress (adresavastalproménné) deat. Dey ‘me tom, fe pot bude eit v pamiti na adres 67. Pak mizere fit ‘bath adresy 87 ulaauje na adresu 26 a na to adrxe je ulema hodeots so, ken sit “Tatooaliind inerpetace obsabu proméané nota ped tant jak n= {skfmnvhodngm epsom pfekladat sd, fe hodnota promenné je ates 1. Zaklady peices pointery ur ud cilovd hod. To sev Pascal proved pomeetoperdtoru ~ aC ‘cl opertora’ » .Identifldtor pos dopnény vpfedu opestorem # — PO tynt 6 jou eymboicou adres pro hodnota 18. srk 1 Operdior + se cunndue jako deeferenént opertor.V literate se ob- {as wpskyine | pojem opatatho vSanama — refernéat operat, ker je Diedatavondnoperdtorem? Pomockoperstora * mseme jedack rishat obsah na adrese, ma all anje pointer (napl. 1 = spot; ), ale je mofad i opadad akce — rape odootyna tuto adress (cape. pod = 61) "Tow walvéwedkodne piazen?, Mere i piipadném omyls nemo tuebit macho ody u jednoduchch prominafch, ma w pointerd skryto [Me nebeapeti ae nim tedy fvelkécmesent— masinepracovat Jen poe 1 Ker je mabe, Zatimeo v plipade, kdy pifarjeme néjakou hodnoty produché proméané, Kerou jeme nikde sedefioval, nds na tuto chybu "ori pilladad,vplipade rpiru do nepfddlend para pom eupovorat nik, Iedasnad chyba fae progeau ‘Too byly nein informace props pontry. Jaks pointry avd pace, to adm at nated! snk «1 Zéklady prace s pointery rk «+ Pointer je vidy svain # njakim datow)an typam. Sprévné by se mito termina Sorter” lo dy wrt poiter na tgp” .1 Definice dat typ pointer na typ rk Pro ukieks budeme deiovat pointer na typ int. Defice pointer na sind datov py e analogies Vechnyidenikstory pointer badou die 2aintjednotné anaky p 2 Taojejeho drvhy fanam — pra vena je nib 2 Ampéstad — jet eho dah asam, dre fam je btn soi. 1 Bodies ste vom oho, be ath Ze! temtiespinbit wt Hod ain nepal informace jeter. Ordem ip Je dstetivat fens pole pi jab opera pea dive UM ponor Med oper 148 10. Pointery eto sce jen malic, bterd nen nutaé, ale vfrandavgujepeledooat ‘rogram, pote, ky program vide nap ps, vite okarlit, be ‘toute promeanen neste achdzet jako ¢obyeeuou proméanos, ale Jabs poinerem Definie promané typu pointer na typ int je nésedutet ascal © van ps: “INTEGER; int ps de molné — a fasta se to dB — et define proménné typ in 9 Poineru na typ int najednou, nape: "ine spt, 4: Ett rduentl vp Et chyba pi defini ee poiterénajeduon: int spt, 3: ke pou pe pointer n 8 p3 Je promfané typu int 10.1.2 Préce s adresovsmi operstory ‘ati jue donvEd, jak sat hodotu proméng, ei dre (tedy pointer na ute poménnou) zndme. K Uplné zealot etedy tes we aout opaeay apis, jak aisat sdreeu promnne, Ker jit existe Ont {stent nk thd, potebe adrom lira proménas se dé ticat pom ‘efeenénino opertore® Body int 3, eps = Bi; xk je dice pt ajo soutasné incializceadresou prominné $ bo: pals at: ot Je pitazovac pita, terg program prove pifzentadreay pro ‘mane 5 do proménné (pointers) pt Paani * Prominné pt mé semoafjné taht adres, Mer se ale moe nevyuti 10.1.3 Pritazeni hodnoty pointerim a pomoef pointer’ Proto kad pointervd proméon je Hhodnot”, je tey motné naps: sp "ela v potédku stp4 +3) = 5; podeald, pokud p- neutanyje ns pole TZ eka dvd blo: FALE ate, ‘Vapometine jn a ndton fen sant. © Nev dail Posornd liste rnd mes icine «pissin 0 Zéklady prices pointery 9 Je to nékdy mong ale nikdy moe dbré, proto Zapinajemena niko podexflou adres v pare se+w Operitr je ale mon pout poute aa proménné. Ty ott mai dy ret noni od Koptant& vas, kere nema pee a ne pasaG +9); fe chyoa of pas ais; ie ange 47 oxnsmka 1 U mikroptoceord ae Esto potivat pointer pro ping pFetup do pe sma, Pak ing mys phat pointeru absoltaladreu, ty napF ‘ypedet unsigned char BYTE; BYTE =p.meni panes = (BYEE +) 0x80; 0.4 Poulité pointerd v plitazovacich petkazceh ie ae situce pond kemplkaje, proto je tebs rovemsvatdvatypy enon piazens # alatické — phitazen je spre v dbé pend ‘ravi: levi stan tua Bt stjacho typ jako pravé strane + dynamictt — plitannt je pedenév dobépieklad i pi bib programs provi: levd strana by mda bt stjnéhotypu jako pravé strana, tan enichatpointery a rand eypy eval jen pe Inicalicrand cho wpbbrad nase pole sd ro Wichny pkady plat denice: ant 4, pa; Sticky sprdené rae o£ 46 hodnotu 3 spss ‘nn adesn pi (ke je ulden int) hod ota & ‘ o£ M6 obsah 2 adray v pt tps na adr vp ds obea pa ews hapla pt adres Staticky ner para isto adery edo p-4 dina ber pfetyporint Hodnota 3, tedy (absolut) ates 3 150 10, Pointory 4 spas oi sd obsah pty advesa mist int hodnoty feoey do foe €6 adn ps 3) Dynamicky spon: PAs aL: spi= 4 jeto toll jbo: i= Ded pifaenim bodooty na adres ¥ ps most bjt pt iniialzvén 4) Dynamlekyneapeémnt ps ‘ie pitazena na néhodnou adres, her je ved toto je mene chyba! Pred: Na nésledujeeh pitazovaceh plazh budow ubixny nékteré mo oat price s pointer Predpollsdejme defnict: nt, ep-it, op.i2; ‘dle pedposdeime, 4 pomént 5 lef nu abulataladrew 10, £1 a adreae 20 a p-2 na ares 20, phiasent ine ndree obs na adreie obah nu adrese fo(at)20(apst) 30(apiz) pats ti: 1 10 ' tpt = 2 2 10 : PEypaten 3 10 t Pani: * Operstor + mi wi peortu ned operdtore, tbe pita: A= spats by ‘eve akutetcst pts: = (pan) + + Operitor ++ mastjno pirits jako operstro, lee pout jako post, tate pias 1 = apatees ri wfanam dvou pitas: 4 = apaity paises Aedy do 4 ae df obaah 2 adray na kterou ulasuje pt a pak x pit ter pd inkeementuje, Dade tedy ukazovat na berprontfedat nied ‘prvek (adres) su 4 Tonto tik seat poutvs pi operaich»Ftz Pein wr 6. Pred Program de dv cid tla a obras vt» nich 01 Zikldy prices pointery ast 20) ge i seant(la Wa", 8, 83); Beg) raise priner(verst jo ke \a", opi); snd: 1 Potibujemelinikdy (atdlakdy) vatisknout adresu ns Kerou vkaauje pointer, eli hodaota pointer, pak poualeme ane ts epat prises (hare $ jo te Vets ahs pd: ‘pis aden, na trou ulaauje pointer, pouljeme nejasi piladn, yd nejame jt, #da pointer haze am, ham md “Znowa (vase 148) wponrinjeme, te je tebe dt velks poror na yto ‘vt dno: int 6, opie ts ane i epi pasar V plipadé vlevo se edn o defini -s sko poate na typ in (proto tam mist bt») asouaané 0 je iniilzai na dre dive deinovaneé prominné Vptipadévprav eto pit define ps jako pointers ua tp int. Ovdem ¥ plifsovacim pian (oto nent iniilizace) nes Yt proto pt Difsajeme adrsypromloné 1 — vist pfikladystatickéspravaost a Deprévnertna se. 140 ALS Nulov§ pointer HULL ‘Tak jako je v Pasa Honstanta 24 je v C podobnd koortants HULL to symbolic konstantadefinovand v aedS0.B jako naph ‘Metine MULL 0 nebojako define HULL. ((void #) 0) ULL je mond piadit bes petypovdn vem typim pinter (pointer [ihoweng typ dat)» pouiiva se pro onnacent, te tento pointer nevkaauje 10. Pointery 104.6 Konverze pointer’ (beens anaimewyiba,protbe pink most! problénd, nape spointerovn aitetikow nebo uklsdSain adkerfchdatonfeh typ a {util (oud) adreny¥ pamdt (memory alignment. ‘eo ove standard stuace — typicky pridlovint dynamiché pam — pit Merch je nto konverst plated poutivat Pou s nl vjinfh at obvylfehstuacch konveri pointed ype snout, pa je dale pout exlictasbopFetypovit. Spolehnout s a impli ‘ial pfetspovin! je sce ma, ale nent vhodaé Cenar #) psi 102.7 Zarovnévin v pamitt Pokud pi konversh pated dochiatkneodehsvanéehybt, je vhodné ska petypowini tam 2 spt vypet hodnoty pointert map printt(°p.c pred Konversi Hp \a", pedi pais Gat #) pe: Poe = (ehar #) po sogprints (pe po Renverai Xp \", pods "ABliine vjstdhy,hteré meme desta, jsouapisobeny dy tom, 3 omnpiltory pout aktibu, fe ure datové typ, nap int jue pamétt od sudfch dre? (memory alignment) PR pletypovi "stim pfekladae pots a raokroulajeppadou Tidkoa adress m8 ei dou. Tom pakvShodurychleshopfstpe ktmto dati, Phd esse pfi ponteovékonvera. Dal nevjhodon je hort wyuit i ve de jon to, ber problémi je pointerovd konvertepouse {Gelsich) datvfchtypOna iB (rats), ty nap pointer na Fine Wierd homptry, nat Borland, doves tat saoadvst pati a show poles ik sdkadich dtvseh tpl aa et. 23. 02 Pointery a fankee asa ing le ber problemi pietypovst na pointer na int nebo aa char, Zpétne ‘de amo vady vit spat 0.2 Pointery a funkce 0.2.1 Voting odkazem “edu 2 vel utefnjch vlastnoet{ pointer je, Ye umatiut volt rametri “odkazem"Poatery + tomtoplipadé pouljeme, kay cheeme ve {el vale rit hodnota shuteéndho paremetra. Vpraai to znament, Se Dodivame hodnotn proménné le adres tto proméané oxxinka “Tot! edkazem ve funks nebo procdue nen ve skutefnoati vont o- ‘Sze, tak jk je tnt» Pasa, Koy se formélnfparametr oraét toni aloe VAR. V tomto plpad® komplston Pascal anit be ep vln!fanke(procedury) do stack ped adres proméané (are- Te futrncho paramcrs),Keré ma bt amnénéna. Ve fal (procedfe) SEALs ormdlnin porameteem pracaje“zcela normélne” — tedy bez Seujehust trikes pointers. Kompiltor stm 2st, ese pt pitazo- JAS piitany nebule mint hodnota ye stack, ale hodnct skteéndbo parame ¥ C je toto “vont odkaen opt voli hodnotow, ky se ve stack ‘tof lkdln opie pro ules parametra — adres skutecho park Retr, Tato lok prominnd sie anikésukontenim psd fnke, “Tei tu vastost, ie je va lagen pointer, pomoc! nfo re neptimo iat data er nemajia touto font ni spoletaho — bly definovic yen téeo fence neraniaj jim hance. Ci veel je stan ‘ks ps shuvetnem vldntodkazern v Pascal, ale postup 2pracovéa By To co v Pascale provdélastomaticky Hompistr ky Mitovérma Tova VAR. to mnsine ¥C ula sami — fil nepracovat sforminimn pareoetem jako norma proménnou, ale jako» poterem Dro jednoaden! bude vak dle pov cermin vont wdkezem!™ Pr, ‘Seo je Kasic pha funkce pro wins obsabi dvou proméanych Naja makin vlna a pi studi arya C4 — objeto creo anche © Hes emote tend velit oflae a4 10. Pointery t a0 pom: pa ime pom = sp.xi Py = pom > unk’ wymen() pak vome se shutetngni rametry 4a j taki: vents, 2 Na nisleduiteh obricch bude podrobad zndnoréno, jak xypadai io ‘oli proménne pa postupném provaden uskee vynen() 1) Pred voldnim faker ryoen(§i 83) CG] (eH) A 5 > 2) Tesné po savoni funk vymanCas, 83) z I< [ 3) Po proveden funhee vynen(#s, 8) tané pie jajienKonce: + c 8) Poopusténsvymen(es, 3) 2 GC) 7 3 10.2, Pointry funkee ass 1+ Vein st chyba pi volinf jes vymentss 305 ers apo ese bude rapisovat a aren dant obsaher proménngch nj, tdy aa aol adres 36, cd vee vnaprosté tin piped I shoucea programy ‘Druhon eastou sgh je vols ryneaCes, #3): [kly bude tpisproveden na adrny ates babs 4 23, 2 map. 2 ab- folutn aren 2s veame hodots, Ker se pout jako adres, na Keré Se nico umn, Vjsledkem je opt ies browcen program, Porn: ‘2 progmatckho bedsk je le nutnépornamenst, Ze ahroucent progr true jet nlp pipad rote postivatvime, fev program je "est ‘riléo". Maobem boi je stay ly necné ménime obsah na ade, rd je ny vyuivina a nékdy ne. To jou potom bile, Keté pte ‘di do vouflat,protote ndkdy program chodi bexchybné a jindy se “newgevettelné" boil Podleadkonn oavnata vy plrodé ge Cento stay projet nespe pi predvidét programm, rad. Program te pom funkee ceS.radka() Fédhy Mlvesnce ap ek om tno meaer a malfe plamen. Funke et¢-radeu() veut hodnot kad na tier byly hija aky 2 Rodnota 0, ble Hdka prézdnd. Program akon, pete prdsdnou Fd. Ane cts raake(int ¢p_mesery, int ¢p.male) ‘ sat, pocet = 03 sp.nezary = 0; op_male = 0; thie ((e = getenarO) f°) € pocette: ee) Gp_nezery) Je avorty sutne 111 4/ Paccelis okie eateerealie fo zavorky note ” oro: a: 186 10, Pointery mind) t ut nesmry, mie; while (cti_radea(Qnezery, tale) == 1) ¢ [rint# (a redce bylo id meser a 4d malych pis wezery, sale); , y Pont ‘© Pokud by byly proméané mazery& mae definoviny jako int smezery, smal ak by nebylo mond vols funkci et s-redkn() jak: ctiradk(nenery, male); protote nebylapdlenn pam, ua Kero ukanaityto pointer. 10.2.2 Pointer na typ void Tet motnost®, jak pout typ void, je deinova pointer ma void, naph void ep-vid: Pointer p-vosd neuauje na Sng honk ty, i dS we vyt pro oka ovit n zea bool typ, oviem po dlsledngm pfetyporii™®. Obes se rood) poullvé vr genciedy potnr 3oouahraba dv obat pout: Pointer na typ void jako pointer na nikolikriamgch typi mies main) e stant 9) pvota © 25 sittoat #) prota = 1.1 ae mts bes > "9 ner petrpondt thd nafungse pnts arta, 2 Pointery a funkee ast ter na typ void jako formélni parametr fankee caude cetdio.2> 4d vynen_pointery(void emp.x, void #*p.y) void oppo pon = spas paeie ya S etdout,/* zamerma chyba o/ printt(tin, "e = 4, = Wa", opie, POs ‘nen_pointery((wosd *)&p.c, (void *)8p.8) synen_poinvery(etin, azose); Eprinit(tout, "e= id, d= Ha Me", ope, #Ps ik Pistypovin an (vod +) pli pronim volinifakcevymen-posntery© je Jone divodsarnzent varounén hlsino neste tpech parame Program funguje ber zo, ale akhle eto este “ie jen optt pond pfedbehl. Pro ploé pochopen fankee yen posneery() vit st 172 2.3 Pointery na fuankee a funkce jako parametry fanket \Vspomeneme isi na funk fopen(, vie efankee mite vac okt Interna oaks dators typ. Této mednosti sev C vyva poméné aso, .unkce, char tnajés.adzera znaka(char ) ‘funkce by Medal v patti od nik aderysadang anak vracsa by ter na tno anak, Cantose 1 vyuvé monet definoatproménnou ako pointer na funk: racic nak typ, nape double (4p 1200 18 10. Pointery oeni: Pridad ivory () pled whonéoacim stedatkem joo neabytng protte double (#p-44); ty anamenalo td, co: double p44 tedy, dep je pointer na donble 8 niko pointer na funk vac Aoubte, + Zivorky kolem ja prominn joou nex fouble #p.t40; by anamenalo, fe tat dae deklaraefunkcepojmenovanép-4, herd ‘vad pointer ne double Méme- defnovin funk double sects abl (double f, double g) pak le apeatpifeent pds sectial; — /* Ponor! thang & 4/ ord pad pointers p-£¢ advo fue neces 2820) 2 toho, cto fankich vie, plies, Be jméno Funke se mite v po- ram objet tehtoplipade 1) Defic funkee “double sects abi(doubie £, double g) (return (& + €):> 2) Debarace une dounte sects 010) 8) Opes funken! protege: ‘double secti.abi(doable £, double 4); 4) Neéping fankent protusp ‘double secti.abi(deuble, doubte); 8) Voli fante: We eects abet, £2); ©) Prtavent adreyfankce do proméané Ker je typu pointer ma odpont Aaiel tp pie Poanimka: Pomoc pointers p44, je pak mato vat fnkei sects 2010) jako: o> pt00(t8y 22); nebo naprst sed jako: wen pastes, #2); igen pron spac byl jako jeding mobny v KIER ves C, a obe dv {sou mofné v ANSI C, 2 Pointery fankco 159 a ‘de! program vypie tabulku hodnotpolypomi tervalu 1, #19 # broker 6.2 lente fine Dour (1) sno HORT 1 ‘ine RROK 0.2 ie pens (doubte =) cum (2 #2 +8): le pe1z(aoubie 2) run (ee 3s ° doubie doubts (op-42)(0; /+ pointer na funnel vracesich double 6/ for so; <2 68) € (7s prixanans adrery funkce pointers £4 4/ = 0) ? poli : pel? for xc sonia; x ¢* KROK) prince (MKi6.s1¢ \e HI6.S1¢ \a"y 2 CH Kyi or nad pfedchorim pipadem zemysline iste by byl vhod- spent funkeitabulace(),takto a tabuiace(double d, double b, doable ky doxbte (+p.29(0) oa 160 10. Pointery freed sek re, prsmes(MHi6.61¢ \t MIS 622 Ae, x, (ep.£0(0)05 ? funkce masa() by pak vypadala nap. takto m2 « tabelace(OOLAT, HORNT, KOK, pol; tabulace(-2,0, 2.0, 0108, pol2): > 10.3 Jak dist komplikované definice — I. Zavi jme ner prblény » um, jk roslti, cokers. defnice ans ‘mend, protte ty defi byly ve jedoch, § plehodem pointerd = ‘Wo Stuace rapidad ment, prolate fe definovat pointer na vl kplio- vany yp lady api define pomoci pointer flost ey: Ye pater na typ float double +20; je fnkce vrai pointer ns double!™ ant *(60)0; je pointer na fanke vac pointer maint ro tto nepocopitenou slotitot nalts funguejdnodhé mneno- lechnieké previ, jak leit bovolné Momplkoran 2p 1) Nolernemeideatifhitor a od aého fame dopava 2) Pokud narasime na samostatnow pravou kustou2évorky *” (ne ms Avojci ©), vac se na odpovtdajtlevou hulatou évorka "C3 soz pesiakyjeme vie i pfetené i'm uhonejeatedni, pak se vacime aa nesent deed apracorané mito x08 Sem doles, a teat si prakticky ukieme na napodedy uvedeném plklady defisice roménné wane #(0H) Oi ‘entosépis defnice tee née xplsobe *# Vesplet asvorek s hvadisk ae naleane identi, ty" ‘ekneme: ve 7 Stee bade Je Dn a dovine, jak wrpa pole— vie ate. 190 Denice swyuttim operitre typedet ae (04 naho sete doprava, dokud nenarasime na pravou kulatou révorks Sr Prov kala siverka nie wraci dolees ad na odpondaje levou felatowsivorky °C a od nf se te 2asedoprav,tedy mak "*" ‘pide: pomter na Peskakujeme jmino proménné“v"« pravoukulatou ravorku *), keré im ui posoully a teme stale doprav,dokud nenaraine na dl st smostatnou°Y" nebo na uhontail eda v maze piipae ty *"* 1 pfidémee fet erg” ‘Ukontovac sedan vac dleva ped it zpracoranou *(* se vpravo jit vec pet, Lame nya opacae™— dleva —tedy pfidéme: pointer na Guemeeile dew, ty "S50" ‘sdodame: int a jeme oto \Viledek “priakumn” ted dobromady an: Te otter na fonkes racy pointer aa nk ‘ays to abontesujemespiklady nahore ak vidime, fe vst. ‘Timiojednoduchjm apdsobem sed kdskoliv pede Nbovlaé deface. jemutng tro to vyakoubet na néolka prikladesh 4. Definice s vyuzitim operatoru typedef Pomoc operstorn typedef Ie vytvotit nowy datos typ. Pf dfino { promeungch jednoduehgch datovich typi ae typedet pis neous, Aico pi pout pointed a struktar” ne syubie Vln Est, a: typedet float oP.FLOAT: so ow typ Jako printer na lot »pojmenuje eno typ identifiktorem Neat to definice proménné, Merd vyhranue pam, ale defnce novtho typi, Kets pout wae rrotee (ablomy) pro da kee “oto lip, hy je pavé hula hora saute! dre xvoeh “0, jake sepheonaeae nk 1 Kai anle ncowak ayy ie oem vel“, pk bychom Eat dra, ako 1 proto by wpav et nic xfrala ~ alepot sed 02 entitor» FLOAT stv synonym typa loa ae moiné bo dle » program pout pro dfsic,deklarace, pretypovdn, ad Dall moind defnce pomoci typedef, tera seu pointer East pout ‘ypeder inv oP-28T PINT pS, po: sprioné defice deo pointers na int ‘Uni pootry na dal pointer, le to xapsat pomoct typed, nape sat opi oop py ‘ypeded iat oP fypedet PLIKT 97-287; Pine pas Prat pps: le pi je pointer na int a ppt je pointer ne pointer na int jak — pnter na typ pointer na tp int. Pad: Dellnie nového tps typadat doxbe (+7-F0)(0; ‘le P70 je typ pointer na funk! vesegjei double Pak jou monn nésleduje defnice " Deiovéntproméne inj p2 jako pointer na funk vaceics + Definovini nseatovcho typ fue: PAD g(vota) € pevarn (e602); > keg je func vaca pointer na standard funk eget) ‘odmocnina #10 bye pak vypotial jako: (#(—(0))0-0) 10.5 Pointerova aritmetika S pointry lee provdetnékteré sitmtichéoperace, Nutno oven po- ‘namenat ejjch mnohem mént, nek aitstichjchoperct «norma promenngmi Plat operace «pointy jeu * soutet pointer a elo tala 1 fon pointer clo Ela * porovavan! pointer steinich typ {tort dou pointerd tense yp Ortata aitmetckéoperace = pointery jou mohdy ice prowst, le emai dag sys a dra we vdrojm ey. 4 Pointerors sittin 16s ‘edt, ned xe budeme aritmetihsi operacems + pointery Moubiii bras tnd yen jt jeden operon 5.1 Operdtor sizeot Opetétor sizeof ait velkortshoumancho datovtho typu v Byte tan pout pi pics jdnoduchjenidatorjmitypy — vitae, 23, ale {it eho price Je privé ve spoluprii s pointer ase slotenfm datov§mi Yat, 2 Gata tit tnd itt vst objekt, na Keépointeryukazy bo majtukaorat sik ro ty, cos zai io eft programs, dodsvime, te sizeof ne races po spustent program alee vybodaocenv Case pfelad, take ‘last tch programa njakneadlae,2etedy vl vbodné je} pour ime definice: sn $, opts wo pttane: 4» aizeat(p-0): bade vt pot Byed mit pro latent printers na typ int —teato par pout malo sPopiiiaaus $= aszeot(ep.i):? Bde vt potet Bytd muta pro alten objektu, na Kerf wlaae ps, tly ebjekta typ int teoto pine se noopak poutivs vei Est. aa 2 Typ hodnoty, hteou vat sizeof, seal uréen, ale vétinow to bfvé ‘unsigned int nebo unsigned long. ise mene vdtt ke allbované pointerowé aritmetie 0.5.2 Souset pointer a calsho fala fran: ptm shames, Ye ve odkarujeme na af prvek 2a pevem, na kes privé haze inter p. ‘dota adrery toto proka je pak: (char #) p + sizeot(ep) + TW pointer nepli pissing eed lo, ale aback tohoto Kala list typ na Her pointer ularae 2% npitnd pi dynamic slotc pati — vi tr 16, a4 10. Pointery Mijme defisice a piedpollédejme, te pro ty spy plat char spi= 10; sisvotCehar) o= 1 ist spi= io; siseos(ine) 2 Float spt = 10; ssseoe( lost) == 4 ‘pots viechaypeintryukazuf na aden 10, Po inkrementci ale pat perieeit pitiea piri ie ales (omar *) pst tee at Senator (ehar *) por + 1 ee a [ototepletypovint na (char) smile velo objekta __Protobesoutet celdho tla a pointern je opét pointe, je anoiné pst, wireay typur pi # pai + Ade p- bade wlazovat na Sf proek 2a pvodni prvkem ae rogram piite double soa xobratodpovidli Byty 2 adresy vp smitten, include typades uneigned char 49.8178; min « dovbie for Gi 0; 4 < sizeot(aoubte): payeert, $4) ‘rinee(la, byte © 30OKE \a", Sy pbyte) 3 Pozniml = Pietypovini payee = (PBYTE) af; je nila pote At je adist ypu double a yee je typ pointer na unsigned char + Odhazyjemeri se do parti, pouvéneexplcte typ unsigned char ‘ protate char mie bf jak signed, tak unsigned (cof asi na in Pointerov aritmetika 165, lementai), ale my wtknou chee pet x paral Byte ve wfzmama fenamenkinehoceldho dla, 6 unsigned char 3 Odetitént cto dis od pointers “Tato artmsticeh opeace ms naprotostsjnou Blo jako pin, ed poe end eo olanujeme na nf prek pled peviem, na Kerf privé uko- pointer» ‘ts adrey tohoto prvka je paki (ehar 4) p = sizect(ep) # a ‘A Porornivint pointers bro porovnévént velikasti dvou pointer lue poutit operstory: ienty (ypu: pA

6.1 PHiddlent pamsti Standarde enejasti poukivano fake! po pFident pam je fnkee oe0) soi jens porate je typ unsigned int, Tent parametr wise {et By, herd cheeme loka Tree maioc() vist pointer as void, kerf pedstarae are pr ho pfilendo proka. Tet pointer jell vhodné pfetyport na pointer ‘dpovidajict tp. % eae na mnt pote si. 168 10. Poi env pamiti dost eista pro pFidlent poindovanébo dseku, smentec() bode BULL. Porn: Je dobrjan 2vykem pHi latddm pidelovint pam tetova nSvrtovon odoots a HULL» espolhat se na poi, He pam mus Bt den, Pededeme tim tanoha pride. Ladine ttt neat programy, ' malfmn day, pro Kerépamdt vation stat, V redlagm provon bade tle program pout pro skated daa, kerf je wtainow mole ver 1 Viomtoppadé ve erusin tara oproblemy saat sadresyv pamati(memexy alignment), rote mBacQ) na yo pobleny pamatue Pras. Uioka pout matoc() vient reakce na plipadng neispéh, ane 9 it Cpa = Cane #) mat2ec(s000)) == mL) princrCalo panes \e"P; sae): Pornfrla: PA pfideloviny dynamicke parities oi wvidomit de sice Udine © fideo! uritdho postu Byth, ale je jenor vee operaénto system ‘oli pamti nai we skated» heap pd. Napkin » MS-DOS o- lj pame pote. prayrafech, co pou ndobhy 164i Byes V pes to tey rhamend ie Side platens pe = waltoe() © phen! jedoho jedincho Byte, system jh ve shutetnot pil 18. Divod toto “pitvial™ pam, te ssn mun mi pro hat i Jeng bok dynamics pares nejakowadinstrativ, aby naph vdel e Je pri tenle koaek pam obaaen. ‘Tuto skuteinost je tba si uvédomi zeiména v programech, Aerts ‘snail pdt esi mola! Kratich Gack pam Pak pamat doje “tive, ne kdsby program 36da pila jelnchovellsho eu Je toxishf rsdn jako vobchodl — ten oben shal adebrany anelnot je evn et ten objam oderan postop Dynamic pidelovis a navracen pameti 169 (2 Uvoliiwdint pamati ‘Uvoovdntneboli asain’ pam opadaé shee ne pidalodat. Pat ‘nd anda, fe 8 nepottcbnl paral je dbré oka? weit, a neekat ones program Pro uvolneni pari se yyuivéfonkeitre6(), jlind parametrem je ‘rea typ void, Kerf ubazje ma 424tek dive pidendho blak i: Finkee tree() vei it nepotiebnon pam apt do eape, al uve pro dal ibovlné pout illite Sle je, Be free() neminthodnoty dbo parametru, To snamen, te pointer ste hazuje na tte? mito ‘Fpames. §tosto pai se dé tly dle pracovat, ale ve skutetnos tu proramn reps! Tskové vyulivituvolnéné pames mide splsobit saodst! problem, Po piass: tree((void *) pc) fetely vhodod uvetberprotieng i pflar: pic ® MULL; {ina eabrinime modnéan plstyp do wolnéné pares |B Piiklady pFidclovint paméti sme defi: tar #pc: sae pai pillar: ope = 0's [cla korea” prottep.c laze nea do pam, kterou nemime doom tint harem je ey theba ust pass pic = maldoe(1): Abychom dodtiovali dabré ney, je tes nae aii ‘vanou pamal podatlo pad, pias tedy bude: sa se hm Cheemeivnfsleduyfeim kooks rfpoEt alokowat 20 Byt pomod tej Pointers pe, pak phar" ple = aalloc(20); Viet dynamics nepeb cst tt. 1 ‘Poet dived Stel mbtam atone ber tte HL, Hal 10. Pointery rity rent pnt nejvhodni,protake jae erat pater na dv alokoanoy ‘amit —jev ni enak "a" tato pamit sent ji ik nepodal wala do kooce beh progeana bude snak "a “vine” eke ¥ part Pred laddou dai ovou alec je vhodné poudle pias: tree(p-2); ery jf neptiebuou pane wveln este patejne oa pai oan int hd pak an pol = malloc(2); en opt nejvhodnd, protote je sytémontshvisly — typ it nemus! nats ‘yutivat jn 2 Byte. Lepl je plsob: p's = mtlloc(atzeet(Gnt))s Ae ani tato variant vak nent optim, rote jane pi pied pointer, mop Beachy iota je pal = Cine #) maltoe(asaeot(int)); Poutivimeli pt alokovénipameti opetor type, pak nap sypecet int 6 _IIT; pti 1 = (PIT) metnoc(asaeot(int)); Je naposto Koren, nao od yt = (PLINT) nalloc(sizeot(P-281)); Protote veltost pointer na int mide bjt edi od velit datoncho typ ‘Je dled isle uvédomovat, 3 pointry neo cli ila 9 nee je "nmi navedjem michet, eineimeniim pro dren! dob penoalnas 10.6.4 Funkee cattect) ¥ mocha piipadech je nung alokort pani po a pre, nie bd ‘ms wlio size. Pro lento prpad soul funker ealtoo(ay ze), Mere loka toto pole pri sent jako pitas: maloe(n » size) ' navi je eye rakee cal2ee() opét vast pointer na anéek albkorané oblast neko HULL, nepodafill we potadovanoy pam peli, Pose: 'V naktrjch systémech je too pam pdétenou poms eattoc() voit pomoe funkeectran() ane fre0()! Ab tla opavdu beac, mas by Of aaden etm pact pile! rapatt 1 Cots vee doporaej aeimén wHatench datorich tp Pointer jako skutetaparamet funkce wn 7 Pointer jako skuteény parametr funkce Jebjemet ve fk mii we hoot proméané jlnoduhho ee oles por, to soning mon Jako 10S Sant ft nbc ror grat plete vere 10 double Ze, lo je do pai» w EIVBER.ESSn: Program fe ode oe pomoegeh fon! ke 0 Pra uke lie lk pat ft, nn pa dst ue ceutio.> Sines eeaib> et poiter na jo rate, nebo bie esnse(vota) vers ( (double) malloc(SIZE + sizeot(aoubte)) ): Duh fonkce pete is léernice a uot je do pam, Io frm rot je pointer ba otek slokovang blast. Hovnota toot parametry tent (doable #p.2) rs 0; 4c sie; 168 C prinet ("dadejee Ya. isto 1 5.6 805 feantms", pitta; 7 ade er ‘Trt fankee pron soutinvish pitch tel tak, He we posed se anpe! forms prarete pnoacin 4 abyijnu aly se nist. Pars T putcacin je apracvin poe! ponleu,protote at jho hodnota bude Werntuteznati by bylo vhodai kdyby fankee masobQ vracea typ ‘Soube jako wjsedek-nisbent, Pointer na poramete sovein je pout pouze 1 pedagopekjch dived aa 10. Pointery > avn fake masa) poure wold funkcepdchow win) « oubte ep.abt, ove; + 4S ((p-dtl = nit) mu) Jo nedortatek patti - Konse */ venta) rasob(puabi, SIZE, asoue: Printe(Soucin cttel Je: 112.314 \a", sone); x Poznimla: * Pi volini fonkcenasob() se prvi parame p20 uv bx pote to pointer na double, kdeit etl parametsaoxe je uveden« &, protele, Je to proméanstypu double. Funke’ ints ae plepet tak, aby adress alokované pam evra sle aby wail do evo parameti, i se(double *4p.1) « opt = 4 ble 4) malloc(SIZE © aizeot(Gouble)) 3; {latin programa by byla pak vlna jako: masa) 1 Pointer jako skutong parametrfankce ara nce v pameti bude niles: "Dane po voli funkce tnt) Po vldni mantoc() se zm na Po opuitin’ inie() se stane (es — ent et] a oge ma bjt ima be ina ge: ‘obou pipadech «pj mist bt nékde dive alokorina pars, ted = Cane #) maloe(eizeor (ine)); pick 174 10. Pointery a. Pitter main) 1) dybt ainetade tho! #igelade Drotote malioc( neva! yp int, ale pote na voi + U volte pout pidelenon pane ‘+ Fankortr4e()wroln pamét ale nxn hodotu pointers. Pou én hhodnoty man sled npiedvatelnechovl programe 1 Pr pled part olsen je mt fra praetor {ho pointer a skutetnyparametruvidet» operstnem & 1 Mise sméithodnotaskuteencho parser, ktry je pointer, je nto pout formal parsmete jako pointer a ponter. + Pokud je stutetafm parametrem MULL pointer, provedte explicit pie ‘yporda na typ formant paraneten. Gites 1) Napilte program, Kerf metodou pen interval it kak k disp Fil pamét heaps plesnoati na 10 Byte, Poudivetc funk! free) 2) Wise vest vich 2dbladieh typ dat (int, loa, ..)v Bytech 3) Nap funk’ set () jedan vtupnim a deubn stupnim parame! tem. Funke ako svoj nsvratovou bodacta vac, blr ve wtp paramrapismeno, a0 vostatach ppadee. Dofstupaiieparanet- ru old fankceopaéay typ psmena (elk pv na malés napa), babi wstupat anak psmeno neo je) Bement — pro ontata zy. 1 Jednorozmérna pole Pel, jako datonsstrokturaslofeng ze sea prvi, je ve vieehpro- amovacch janyelch Ear vyubivino, Jezyk C navi pro pris polem prot Pascal cktersomezeni — iSkajc we zeména stanoven! mest pole, Frat teen suvisheti poll pointer umotaae dats poll machem sti ‘url nek Paea aed v auch esl stg posnamenst, fe aGklaal prices poijev © tlm podcbnd Pass, nape. psp kjednotivn vk poe je naprosto ‘Sn Poku tedy nchoeme pit pci spol wyubfat pointer, nikdo® nis 11.1 Zakladni dovednosti i jaktoliv pris pol vC je nutné mit neustale na pam, fe pole ¥ € nemajt voliteInow dolni mer tak, jak toma je v Pes. VC Je oti net pe dy (nul) toy pole wideeky sting pvr s indexer 2? “Tent epeo pec spl je anveden kvl vient elektvacats pip do poe take kvl spolupréei pol « pointer, Pascal © UR x: ARRAY (0 .- pocet-i} OF TYP; TWP x{pocet] "Tento plan statickyalokuje blk pam pro pocat objet txpu TY, lem rea index je od © do pocet-3 THodnota pocet msi bjt sma ¥ tue pleklad, li mus to bgt kos stantal vitaz near se pouies symbole Konstanta — vie dle pi Mas. Je pole deficrané timto aptsobem, orale se jako statické. Pokud nme ponoenéZetiAaptolu 9.1 na str 108 mlzeme se nya zeptat, nda Tyo melee ak pln oraime al pd» crormérnn poi — vie Sud jm ment febvite programa wth plipadech 176 1. Jednorosmitend pote Ae. Sednoromiens pote 1 poe, denorané wit funkee — pro Keré ve tedyalokuje dymamias amet ve statu — je statckjm pole. Odpovéd en} ano, je. Jak Bole definovino pmo 1, il jeho wk jens pi peda Jed seo pole sai. Poe, ro Ket se alokaje misto at bien vce ‘a heapa, epak pole dynamick, Pott akt pro nd je, Be jle ‘t Pr pole alokordno mito, pak ness na tom, a eto ple ston nebo dynamic, protate price sobima temo typy pal Je sop ‘tein To je vellf rn od Pascal, he Ine take slokoval dynamic Dole, ale prices nim se xisadoé Ia od prices pole statics Posar Castou cybow, kero urs alepodjednou ude, je, ea sce une. onujete; pole vC majinulovou doi me, sleseponenste os tote index pesiedoftoprviapolejeoedaths meni, ed je hadnt ween ¥ defi pole! nt aL]; defsice poe x 0 deci prveich typu int HCO} = 5;° —sprivny prscupk pk pole potad pronima x x(0) = 7; sprivny puitupk posldnima (Bedtmn) pre poke x BUIO1 = 4; chybas pulstup jdendctema prvka poles 110) eat posliat proek pls potote pro pole bylo “phrazeo pone 1D pvt tento pha padi hodnotu 1 do pati bezrostedé apse esas: ‘eden pid chyby je o to ard, HC akcadaéaekontolie mete pol? ‘edy ani dla ani fort met. Tytotoatoy, Pascale baad provi, ‘ou tot east vei nocd aC, jako japk nil Urovnd jot ved sfektivityneprové. Pokud te pfedpodéme, be by moblay prog ru nstatsituace ky by meze olf mably "pt aco “pote pak {o musime stn eth ‘+ Pletetei nebo podteten en je witinou rdrojetn Spatné odkalitelagch ‘hyb. Nets jou ta. “chy #1" To jot chyby, he index 0 a nitku pfekraéuerosah pole. 'Ztoho plyoe poutnt, i hast program ‘bracue Spat a je poeten na chybnoa prc spol je Uebuseaetove amift na “ely = Dobrim programitorskjm spkem je vyhfbat se Kim 2dvsijen na im Plementac. Casto uvidenypipad takowdho Kidu je aC) = sh; 1D Romito dotonce sepia an arora en! ‘zt vfshumy Hae et 60% cy pre» pa 1A Zékladnédovedncati am ied Klssic define statickcho pole v ‘tdetine mK 10 int xOUD), yDux + 2), 20uK + 11; ya definondna 4 ple 1) 0 dest pve indexy od © do ® 2) yo deacet precch = hori indexem 19 48) 2 sjedenils preich s ndexy of 0 do 10 pisob defnice pole x je farto poulivin, potebujemeti, aby hora i ‘la hodnota wvedend¥ define poe nema ee pi pc + plem tle yet na Co, de je ba odeitat jedi Pokud potebujeme zavést nov typ pole — eof dine vitinow jen hay, kip? nov typ teal 2Gklsdaim datorfm eypem? — deinjeme ho (Glee zpdacber: ‘aseal: TIPE YOVY-TYP = ARRAY (9... pocet-1) OF 24AMY-TYP; © ypedet Z8ANVTYP NOVY TYP(pacet) rad. Definice novjeh typ Pascal © me, ees = ARRAY (0 .. 4] OF TATEGER; typedet snt YECSLE) acs = ARRAY (0 |. 2) OF Cain; expedat char YBCOLa, Fic = annay (0 |. 9] OF REAL; eypedat float FYECLO); Defnice norfeh proméanjs ak ws = ECS; ves v6; wa: vecs; vee v3; 2: Fee; vc $5 Synatineorné promo (pro pl) jek C1 Pea, at "hen pty pol -odnta ee mr, eo at, s pny pl namo onan pot jdtnch pe scr ET, Mal 3 wh pn ou otra ton Pome edt as so Sens rycen part tre! ret sr 7 VC wen ba mit icing py aap pro fornia soteiné parametty fants jako» Panel

You might also like