home *** CD-ROM | disk | FTP | other *** search
/ Flop Magazin 31 / Flop_Magazin_31_1994_05_Raster_cs_Side_A.atr / kursc3.cap < prev    next >
Text File  |  2023-02-26  |  5KB  |  1 lines

  1.     Kurs programov*n)  "C"  '*st 3.¢¢¢  ù=37,»=92,²=123,å=91,ñ=93¢Θ definice znaku procenta, obr*cen[ho lom)tka, lev[ slo(en[ z*vorky, lev[ a prav[ lomen[ z*vorky.¢¢  ¢         Podm)nky a cykly II.¢¢  Pro pot@eby volby z v)ce ne( dvou variant je jazyk "C" vybaven v%tv)c)m p@)kazem SWITCH. Je samoz@ejm% mo(n[ vkl*dat oby'ejn[ podm)nky do sebe, ale t)m se st*vaj) programy zna'n% nep@ehledn[. Maxim*ln) po'et ]rovn) vno@en) do sebe bude tak[ omezen dan`m p@eklada'em jazyka.¢  Funkci "p@ep)na'e" je mo(n[ p@irovnat k basicovsk[mu p@)kazu ON ╱v`raz$ GOTO X1,X2,X3..., ale jeho mo(nosti jsou v%t&). P@edn% nenast*v* hazardn) stav, nen)-li vstupn) hodnota v p@edpokl*dan[m rozsahu, dal&) v`hodou je, (e @)d)c) v`raz nen) omezen jen na ')sla. ¢  Podobn[ konstrukce jsou b%(n[ ve strukturovan% zam%@en`ch programovac)ch syst[mech, i kdy( pod jin`mi jm[ny. P@)kladem je p@)kaz DO CASE u zn*m`ch datab*zov`ch syst[m+ podobn[ DBASEIII.¢¢  Syntaxe p@)kazu SWITCH v C['ku:¢¢ /✓  v%tven) programu  ✓/¢¢    switch╱<v`raz>$¢    ²¢     case <hodnota>:¢       p@)kaz;¢       p@)kaz;¢       break;¢     case <hodnota>:¢       p@)kaz;¢       p@)kaz;¢       break;¢     default:¢       p@)kaz;¢       p@)kaz;¢    }¢¢¢  Za samotn`m p@)kazem se op%t nep)&e st@edn)k! Jeho vstupn) v`raz m+(e b`t libovoln` podle syntaxe jazyka "C". Jednotliv[ mo(nosti jsou o&et@eny n*v%st)mi CASE. Jejich argumenty mohou b`t jen konstantn)ho typu, jako jsou ')sla INT a znakov[ prom%nn[ char. P@)pustn[ jsou i v`razy, jejich( v`sledkem je konstantn) hodnota. Za n*v%st)m s argumentem se p)&e dvojte'ka.¢  N*sleduj) p@)kazy, kter[ se maj) vykon*vat v p@)pad% spln%n) rovnosti zadan[ho argumentu se vstupn) hodnotou. Tyto netvo@) blok podle pravidel jazyka. Proto p@i proveden) poslen)ho uveden[ho p@)kazu bez z*bran progrm p@ech*z) na vykon*v*n) p@)kaz+ za n*sleduj)c)m n*v%st)m. Zabr*nit tomu lze pomoc) p@)kazu break, kter` ukon') pr*v% prov*d%n` blok, co( je pr*v% te⇦ cel` pr)kaz switch. Mo(n` je i p@)kaz return, k n%mu( se dostaneme pozd%ji.¢  N%kdy je pot@ebn[ nechat prov*d%t p@)kazy za n*sleduj)c)mi n*v%st)mi, ale pozor na p@ehlednost. Byl by to nap@)klad p@)pad @)zen) menu shodn% mal`mi i velk`mi p)smeny. Proto(e takov* podm)nka zapsat jako argument nelze, pou(ij) se dv% n*v%st) za sebou, jedno s mal`m p)smenem, druh[ s velk`m.¢  Za ]pln% posledn)m p@)kazem se break logicky uv*d%t nemus), ale p@)ru'ky to doporu'uj), pro p@)pad pozd%j&)ho roz&i@ov*n) switch. POZOR - pro na&e C se uv*d%t mus) !¢  N*v%st) default: ozna'uje p@)kazy, kter[ se maj) prov*d%t v p@)pad%, (e vstupn) hodnota nevyhovuje (*dn[ volb% case:. Nen) povinn[, p@i jeho nepou(it) se v p@)pad% nespln%n) (*dn[ podm)nky neprovede nic.¢¢  P@)kaz switch je uveden ve zdrojov[m v`pisu stejnojmenn[ho programu. Celek tvo@) vymy&len[ uk*zkov[ menu. Rozhodov*n) o v%tven) je na z*klad% p@e'ten[ho znaku z kl*vesnice. Platn[ znaky jsou za n*vest)mi uzav@eny do apostrof+. Takov` tvar vyjad@uje ASCI kd dan[ho znaku. Je to na&t%st) to samo ')slo, kter[ vyplivne funkce getchar╱$, tak(e program skute'n% funguje.¢  Pozorn) program*to@i si v&imnou, (e je docela zbyte'n% deklarovan* a pou()van* prom%nn* a.¢  Zkompilovan` program se po vykon*n) vrac) spr*vn% do DOSu, ale p@i spu&t%n) pouze syst[mem Q-MEG nefunguje posledn) volba v menu. N%kdy se d%j) prost% v%ci neuv%@iteln[.¢  Zat)m nem*m p@esnou p@edstavu, jak by fungovalo skute'n[ menu. Pokud by m%lo b`t jako hlavn), muselo by b`t asi "nata(en[" p@es cel` program, kter` by byl rozkouskovan` mezi n*v%st). Pak by vznikl nep@ehledn` chaos. Nebo sp)&e by se jeho '*sti nadefinovaly jako funkce, co( by p@isp%lo ke zkr*cen) z*pisu menu.¢¢  Druh`m uveden`m v`pisem programu je @e&en) hlavolamu z minul[ho ')sla. P@evod jsem op%t uskute'nil analogicky ke tvaru programu v BASICu, ani( bych znal jeho skute'nou 'innost. Je tak[ op%t dopln%n zkompilovanou verz).¢  V jeho v`pisu se objevuje nov` p@)kaz continue. P+sob) okam(it[ skon'en) pr*v% prov*d%n[ho pr+b%hu cyklu, 'ili p@esko') zbytek p@)kaz+ do konce t%la cyklu. Po vyhodnocen) podm)nky cyklus zapo'ne nov` pr+b%h, nebo ukon') svoji 'innost. Je to prost% analogick[ k p@)kazu NEXT x, kter` m+(e b`t vyvol*v*n v BASICu tak[ kdykoliv b%hem prov*d%n) t%la cyklu.¢  V p+vodn)m @e&en) hlavolamu v BASICu je uv*d%no vol*n) v&ech t@) p@)kaz+ NEXT od vno@en`ch cykl+. Trochu jsem m%l v tom nejd@)ve zmatek, ale zp@ehledn) se to p@edstavou t%chto p@)kaz+ na @*dc)ch pod sebou. Ony se popravd% nevykonaj) nar*z, proto(e po prvn)m NEXT se za'ne znovu prov*d%t nejvnit@n%j&) cyklus, teprve po jeho skon'en) dojde @ada na vy&&) ]rove, 'ili dal&) v po@ad).¢  Proto v C['kov[m programu sta') p@)kaz continue jeden, jeliko( je t@eba n*siln% p@eru&ovat pouze nejvno@en%j&) cyklus.¢¢  Tematika jazyka "C" je op%t dopln%na 'l*nkem a programem amigisty Jirky. Nyn) jde ale o v`pis ur'en` pro verze jazyka na vy&&)ch po')ta')ch. K jeho rozboru se vr*t)m pozd%ji, a( probereme v)ce rys+ jazyka. Jeho zam%@en) se stejn% tohoto kursu net`k* obsahov%, spole'n` je pouze programovac) jazyk.¢  Zat)m jsme nezkoumali, jestli by tento program mohl v+bec fungovat i na mal[m ATARI, samotn` zp+sob p@enosu dat by chodit samoz@ejm% m%l.¢¢---------------------------------------¢  V p@)&t) '*sti proberu dal&) druhy cykl+, jako(to standartn) p@)kazy jazyka, bude ale tak[ na'ase zab`vat se na&imi vlastn)mi funkcemi vstup+ a v`stup+, a④ m+(eme za')t zkou&et "funk'n)" programy.¢¢                           -ZB-