Szlávi Péter-Zsakó László - A programkészítés technológiája

Embed Size (px)

Citation preview

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    1/54

    SzUiv i Peter * Z s a k P Lasz{ iJ' Iemesoar i 'Iibor .. iModseere s proqramoza s :J7lprogratn/( i sz t tes t echno loq ia j

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    2/54

    A h lb a ke re se sr o l s z6 16 f ej ez e t h ib ak e re se sl m 6 ds ze re ke t e s e s zk oz ok etl sm er te t. k et k ap cs o1 6d 6 t em ak or re l ( a f ej ez et e ls o e s u to ls 6 r es z) k i-egesz it ve - e ze k a h lb aj el en se ge k. v al am ln t a k ez do p r- og r- aa oz eka lta lg y ak ra n e lk ov et et t h lb Bk f el so ro l as at t ar ta lm a zz Bk . ,~ ,Mo",szeres pro~ramozas:

    MOOSZERES PROGRAMOzAs: A PROGRAMKszITS TECHNOLCGIAJA

    E k ot et e ls o f ej ez et eb en a z a lg or lt mu s e s a k 6d k ap cs ol at av al f og la l-k oz un k. E gy lk r es ze be n m eg ad ju k a s zo ka so s a lg or tt mi ku s s tr uk tt ir Bk P as -c al e s E LA N n ye lv re v a1 6 k 6d ol as i s za ba ly al t. A k ov et ke zo k et to be n p ed igk on kr e t p ro gr a mo za si n ye l v m e gk ot es e n e lk Ul f og l al ko zu nk o ly an t ec h ni ka ip ro bl em B k m eg o ld as av al . a me l ye k k 6d o la sk or I ep ne k f el . Szlavi Peter - Zsako Laszlo

    A p ro gr am h eI ye ss eg ev el k ap cs ol at os f og al ma k r ov id a tt ek ln te se u ta n,a harmadlk fejezetbe n a statlkus es dlnamlk us t .eszt I es t m6dszereketv es sz Uk s or ra .

    A z o to di k f ej ez et a la pv et o c el ja a h at ek on ys ag e s a k 6d k ap cs ol at an akvf z ag a. La t .a ,a r ra a k er de sr e p r6 ba l v a la szt a dn l, h og y m it t eh et Un k k 6d o-l as ko r a g yo rs ab b. k ev es eb b h el ye t f og la 16 p ro gr am e lo al li ta sa e rd ek e-ben. A pro~ramke6zfte6technol6~iaja

    E hh ez k ap cs oI 6d 6a n a k ov et ke zo f ej ez et be n a h at ek on ys ag m er es ev elf og l al ko zu nk , s m eg va la sz o lj uk a k ov et ke zo k er d es ek et :

    - H it m er jU nk ?- H og ya n m er jU nk ?- H iv el m er jU nk ?A z u to ls 6 f ej ez et be n a h or do zh at 6 p ro gr am ok ter-vezesenek problemai t

    t ek in tj Uk a t. m aj d f Ug ge le kk en t m eg ad ju k a h ib ak er es o e sz ko zB k i sm er te -t es et h ar om l sm er t p r og ra mo za s i n ye lv 1 - 1 i m pl em en ta c t6 jB .h oz .

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    3/54

    ~f6gja 21TARTAlOMJEGYZEK

    ELTE In fo rmat ika i Ka r I. Programok kodolasa ..-..--.----- ....-....--.--.--.-.- ........--..--.--.......---.- ....---...- 5

    6. klada51. KOdolasi szabalyok - --..- ------- -.---.- ..-- - - - ..-- --.---- --- 62. Programtranszformaciok - - -..- - - .. - - - -.- -.--.-- -...... 113. KOdolasi techniklik -- - -- -.-- -.-..- - -.- ..-.-- --.---.- - --......17

    II. Aprogram helyEtssege --- ----.-- --.-- -- ..-..-- - .--.-.- -.- - -.- - 29II I. Teszte 1es ____- -.- - --.- -.-.--..- ..---.-..---- ".'- ....",-,---..-.,.-.,., -',.,'-".-.......2

    1. Statikus tesztelesi m6dszerek ..---.-., ,-,--.-.,-,-,.-.,-....--.,- ..-,.,....-..-.--,.,...... .. 341.1. Kode11enorzes ,......,--.-,-..,..-...,...... -...-.....-..-,.-.-..,.,-'...-.-.,-.-...-,...--.-.---.,341.2. Forali ellenorzes. kereszthivatkozlisi tablazatok .,.- ,., ,..--., 341.3. Tartalml ellenorzes. ellentmondas kereses .--., ,.,., - -,-, 35

    2. Dinamikus teszteIesi mOdszerek- ---.-..- -,.,---,..-,-.- ,.- --'---, , 382. 1. Fekete doboz mOdszerek-------,----,,-,--,-.,,.- -- ..-,-- ,---, 39

    2.1.1. Ekvivalenciaosztalyok mOdszere ,.,-...- ,-,., --- ..---.,-.-- .. 392.1. 2. Hatareset vizsg8.lat m6dszere - - .. ,.- -- , ,-- -.-'-.- .. 412.2. Feher doboz m6dszerek ---.---.- ..-,.-- ,..--,-.- -.--'--'---,....-..--.--.,-- 42

    2.2.1. Kiprobalasi straUgilik ..-........--,.--,..--,..--, -'----- ..,..- 422.2.2. Tesztesetgeneralo mOdszerek ,.-.-..-,.--" -.-, -..-.,.,-- -.-.- 442.3. Special is tesztek ---...,--...-,....,-.-......-....---..-.--., ..--..--...,- ".-.---,-.,-.49

    IV Hibakereses es javi tas .-.- -,-.. "...., - -.,... ..., ,-_.,._.'.. 49

    Ke5zU l t a z NJSzT gondo:zaeaban200 peldanyban

    Fe le l o5 k i ad6 : D r .Kozma Laezl 6S o ro za te ze rk ee z to : S z la vi P e te r - Z 5 ak 6 L a ez l6

    @ S z la v i P e te r - T eme ev a rl T lb o r - Z e ak 6 L a ez l6 . 2004

    1. Hibaje 1ensegek----,---'-,,-'-'---,,,, -,-.--.,.-'-.,,., -- .., ,.,-.-.-,-,12. Hibakeresesi mOdszerek- ,-.-.---..- -.- -.. - ,-- -----'--,' ---- -,-,---,-52

    2.1. Indukcios mOdszer., ,-..--..,.,.- -......-- -..--,.-, --, -..,.,.. ,-,.-.-.-.-..... 522.2. Dedukcios mOdszer.-- ..........-,-..-.,.- ..........---.,-.-- .. --,-,-,.,--,-............-'-...522.3. Visszalepeses technika, .........,.--,.-,...- ...-',.... -.-,..'-...-- ......,....-..........532.4. Teszte !esse 1 segi tet t hibakereses ,-....--...-, ,.........--, ..--.,-....-,..,..'-,.54

    3. Hibakeresesi eszkozok -..,.--,-,-,-,...--......-- ..,-,,---.-.,..,......-----,-- -.....544. Tipikus hiblik __ ....,~-- ,...-.-- ....,--- ..----' ...-----' ..-'..------ .."..,.---..- 57

    V. Programok 1okalis hatekonysaga .,,-..- -,-...,-.-,..- .., --.-,-'-, -.. -.-.-,- ,-- 611. Avcgrehajtasi ido csoitkentese -..--,-, - ,-.,. , ".--.--,.---'--- ,..-- ,- 61

    1.1. Elvi tanacsok - ...---,.-,. --.., -..,...,- , - ,-,,,.-. ,..,.,..-,-."-,., --- , ,, 611. 2. Programtranszformaci ok - ,-,.- -.--, ,.- , -, ,.. ,- , -- ,....64

    3

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    4/54

    Tartalomjegyzek1.2.1.1.2.2.1.2.3.1.2.4.1.2.5.

    O s sz e te t t f e lt e te l ek s z et v al a sz t as a . .. - -. - -. -.-.--- -.. .-.- 64E 1 8g a za s ok f e le s le g es f e ll e te l ei n ek e l ha g ya s a - - -- - .- - -. -5~ ! ~ : :O : S : : : ~ : : a n : s ~ - ~ = = - ~ ~ = ~ = = : = = : : = ~ ~ ~ - : : = = : : : ~ ~ ~ - . - : ~ - ~ = : = - =C lk lu st 61 f ti gg et le n u t as it as ok k ie _I es e - -- -- .- .-.-- -. -- -- -61 .3 . A p r og r am o za s i n y e 1 v s z er e pe - . -- -. . -. .- . -- - .-.- --.-..- -.-. -.-..- .- .- .. ..7

    2 . A he1yfoglalas csakkentese .--.....--.--.--.------.-.-.--.----.-.-. --.---...--- --- -.. .-- -....02 .1 . E lv i t an ac so k - - -- -- -- --.--------------------------.--..---..--.- .-. -.-... 712 . 2 . P r og r am t ra n sz f or m ac i 6k . . .......--.-.--........-.-. -.--.-- .-.. .--.---.-.-.----.----.--.1

    2 .2 .1 . E l8 ga za sb Ol u ta si ta so k k ie _I es e - -- .- .- -...-.- -.- -.-.- .-..------....12 .2 .2 . E la ga za so k f el es le ge s f el te le le in ek e lh ag ya sa . -. -- -. -. -...---2~:~:!:! ~ : : o : s : : : ~ : : : : s ~ = ~ = : = : - - . : ~ - = : ~ - : = ~ ~ ~ ~ ~ ~ : = - - - . = : : ~ : = : - = ~ = ~ ~ =_ . = = =~ ~2 . 3. A p ro gr am oz as i nyeIv szerepe .----.-.-----.--.---.-- -..- -...-.-.-- -.--..-. -.- -.....73

    V I. A h at ek on yB ag m er es e - -- -- -- .- -....--.---.-- .-.------- --.-.-.-.-.. ..--.-----.---.--.--.----..71 . A m e re s l a rg y a - - .- .-- -- -- - -- - - - - - - - - - -- - 'T1

    1 .1 . V eg re ha jt as i i do - -. -. -.---------.- ------.--. ---.--.---. --.---.------.-.-.--.-.-.-.-T11 . 2. H e ly f og l aI a s -. . .....---.---.-.-.. .--.-.--.-.---.----------------------- --- -- 792 . A m er es m 6d sz er e -- - - - - -- - - - -- --- -- -- -- -- --------- --- ---------- 80

    2 .1. V egrehajtasi ida ----.--- --------------------2 .2 . Helyfoglalas - - - - - - . - - - . - - - - - - - .- - - - - - - - - - - - - - - - - -= - . = = - . - - .~ ~ ~ - - .= ~ - - - - - - : ~3. A meres eszkaze i ....-.. ..-. -.. .-...-. -.. ... .----.-----------.-.... ..-.... .-- -.... .-. -...-... ....-..-.-..---.-;:~:~:~;;::i!~:!~ ~ - = ~ : : : ~ : = ~ - = : = : = : : ~ : ~ - . = : : : : := : = : : : ~ = ~ ~ ~ = - . ~ : : : : - ~ : = - . : - . = ~ - . :

    V II. Hordozhatosag

    82828384

    1 . A h or do zh at 6s ag d ef in ic i6 ja - -. --.-- -.-. -- -. -.. .--.---.---.----.--.- ----.. .----.--.- --.... ..42 . A g ep fU gg os eg o ko z6 i . -- -- .- -. -. -.---.------ .---.-.-.- ---...---.--.- ---.---- 853 . H or do zh al 6 p ro gr am ok l er ve ze se 87

    Irodalomjegyzek 89FUggelekek:A . H i b ak e re s es T u rb o P a sc a l- b an - - -. - .- . -. - .- - .- - -..-----.--- -.---... ..--..- -...-...- -.-...-.-..-.. ...0B . H i ba ke re se s T ur bo P RO LO G- ba n _ .- .-.. --.. .--.-.-.. .-.-..--....-.-. -- .-.-.-. -.... ..- -.. .-....-. 99C . H i ba k er e se s E L AN - ba n - - - . ..--.--..-.-.----. -.-.-..-..--.- ---.---------- --- .. .....01

    4

    I. PROGRAMOK K600lAsA

    K 6d ol as e lo tt m eg fo nt ol an d6 a z a lg or il mu sl ei ra s f in om it as an ak m el ys e-g e: m ed di g, m l1 ye n s zl nt lg r es zl et ez zU k a lg or lt mu sa in ka t?

    E gy lk s ze ls os eg es a ll as po nt s ze rl nt n em k el l e gy al ta la n a lg or lt mu sti rn i, a s pe ci fi ka ci o i sm er et eb en a zo nn al k ez dj Uk m eg - a " fe jb en m eg le vB "a lg or it mu s a la pj an - a k 6d ol as t.

    A m as ik s ze ls Bs eg s ze ri nt a z a lg or it mu st i rj uk m eg t el je s r es zl et es -seggel, peldaul meg ar-r-ais terjUnk ki, hogy hoi, hogyan tortenjek ak ep er ny ol or le s, a t aj ek oz la t6 s zo ve g k il ra sa ( so ro nk en t) , . .. H a e nn yi resz el sos eg ese n ne m i s, de a pr ogr am oza st anu la s k ez det e n (a ke Ll d rutinm eg sz er ze se ig , e pp en e nn ek e rd ek eb en ) m in de nk ep pe n a z a pr 6l ek os a lg or it -m us ir as a z a ja nl ot t.

    P ro gr am oz as i t ap as zt al at ok b Ov Ul es ev el a z a lg or it mu sk es zi te st e gg ye lm a ga s ab b s z in l en a b ba h ag y ha t ju k : p e ld a .u l a p r og r am o za s i t e te l ek a l go r it -mu sa t ( am ely ek nek U gyi s a f ejU nk ben k ell l en ni) v ag y a lt al unk g ya kor tad e fl n ia l t t i pu s ok (p l. ve re m, s or ) eg ysz er U m Uv ele te it m ar ne m r esz le -t ez zU k, a zt a ut om at ik us an k 6d ol ha tj uk ( ez ut 6b bi ak g ya kr an k es z " k6 dp an e-lek" formajt!.banligyismegvannak).

    P ro fe ss zi on a. li s p ro gr am oz ok m eg e nn el i s t ov ab b l ep ne k: c sa k a modul-specifikac16 s zi nt je ig t er ve zn ek , m aj d a zo nn al i rj ak a m od ul k od ja .t .

    A m as ik m eg fo nt ol an d6 k er de s: h og ya n v a. la ss zu nk p ro gr am oz as i n ye lv eta k 6d ol as ho z ( ha e gy al ta la n v an v al as zl as i l eh et os eg Un k) ?

    A l eh et os eg ek m in de nk ep pe n b eh at ar ol ja k v t! .l as zt as un ka t ( az a do tt g e-pe n le tez ik -e, a pr ogr am lr6 ls me ri- e) , de ez en k iv UI l s v an na k me gv izs -g al an d6 s ze mp on to k. A la pv et o l ~h et a n ye lv m eg bl zh at os ag a, d ok um en ta .l t-s ag a, k 6n ny U a lk al ma zh at 6s ag a. E hh ez a n ye lv ne k r en de lk ez ni k el l o ly ane sz ko zo kk el , a me ly ek ke l k on ny U k 6d ol ni a k on kr et a lg or it mu su nk at . J 6, h aa v a. la sz to tt n ye lv en a lg or it mi ku s e s a da ts tr uk tu ra .i nk h at ek on ya n k od ol -hat6k.

    Na gy p ro gra mo kna l e rd em es me gv izs ga lni , ho gy ma s n ye lvU re sz ek be -e pi th et ok -e ( hl sz en i de al ls e se tb en m in de gy ik r es zt a zo n a n ye lv en k el -lene k6dolni, amin ez a legegyszerUbb feladat es a leheto legnagyobb

    5

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    5/54

    P ro gr am ok k 6d ol as a

    A p ro gr am ke s zi te s t ee hn o l6 gi aj aD . V a lt oz 6k d ek la r al as aV altoz6 nev: tipus(erte k) Var nev: tipus5 tipus VAR nev: :erlek6h at ek on ys ag u k 6d ot k ap ju k) . U gy an it t e rd em es m eg go nd ol ni a n ye lv a ll an -

    d 6s ag at , a r aj ta i rt p ro gr am ok h or do zh at 6s ag at .

    1. K 6dolasi szabalyok

    E . E le ad l ip us okEgeszVal6sKarakterLogikaiFelsorolas:

    (konstans1, ... )

    IntegerRealChar

    IN TREAL

    Boolean BOOLA P as ca l n ye lv T ur bo P as ca l v al t o za t8 .h oz, v al am in t E LA N- ho z a dj uk m egaz algoritmikus- es a z a da te l em ek kodo Iasl szaba.l ya t t. Ezeket peldanakis szanju k, amely ala pjan mindenki otleteke t merithet az ~ altala ke d-y el t p r og ra mo za si n ye lY k 6 do la si s za ba l ya in ak o s sz ea ll it as a na l.

    A l go r it mi ku s e l em P as ca l k 6d

    A . P ro gr a mProgram:deklaraci6k

    utas itasokP ro gr am v e ge .

    P ro gr am N ey ;deklaraci6kEljarasdefinici6kBeginutasitasokEnd.ljarasdefinici6k

    B. T ipusdefiniei62T ipus T ipusnev=tipus T ype T ipusnev=tipus

    C . K on st an so k m eg ad as aK on st an s n ey : t ip us (e rt ek ) C on st n ev =e rt ek ;4ney:tipus(ertek)

    (kcnst.ans l' ... )

    F. tlsszetett tipusokELAN k6d Rekord(m ez on eY l : t ip u s, Reeordm e z o n e v1: tipus;

    STRUCT(m ez on eY l : t ip us ,End

    program:deklaraci6k1ut as i.asok

    Rekord(mezonev1: tipusAllernativBkf1: ( me zo k)

    Reeord7mezonev1: tipus;

    case m ezo: t ipus ofertek1: ( me zo k)Eljarasdefinici6kA l te rn at iv Bk v e ge E n d

    T YPE T ipusnev=tipus3 Halmaz(lipus)SzovegS et of tipusBString TEXT

    tipus CO NS T ne v: :erlek

    5 P as ca lb an a v al to z6 k k ez do er t ek e n em de fi n ia lt .6A z E LA N- be li v Ut oz 6 k ez do er tl !- ka da sa el i s m ar ad ha t. I ly en ko r n in es ': :e rt ek ' r es z.7 .A rek ordban az alternalivr esz csa k a rekord yegen leh et. Az al ternati-v ak f el t el el e1 c sa k 'mez{1=ertek' a la ku a k l eh et ne k , 5u gy an an na k a m ez o-n ek ( a s ze le kc i6 s m ez on ek ) k el l s ze re pe ln ie m in de n f el te te lb en . A f el -t et el er te k u ta ni ' me zo k' s zi nt ak tl ka ll ag m eg eg ye zn ek e gy h ag yo ma ny osrekord torzsevel.B A h al ma z e le me in ek t ip us a c sa k k or la to zo tt t er je de lm U l eh et , u gy an is ah al ma z m ax i mu m 256 elemet tartalmazhat.

    lE LA N- ba n n in cs k Ul on d ek la r- aclo s r -e sz, a d ek la rl l. ci 6k k ev er ed he tn ek atobbi utasi tassal, csupBn anny i a m egkotes, hogy a k onstansok es val to-z 6k d ef in ic i6 ja e lo zz e m eg a f ei ll as zn al as uk at .~ ip us ok p ar am et er ez es ev el i tt n em f og la lk oz un k.3E LA N- ba n a t ip us de fi ni ci 6 k Ul on p r- og r- am eg ys eg , a t I pu sn ev k dt e I e zb ennagybetUs.4A z e rt ek c sa k v al am il ye n s za m- v ag y s zo ve gk on st an s l eh el .

    6

    7

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    6/54

    Programok k6dolasa1r6~(lndextipus:elemtipus) R O W 1 nd e xt i pu s

    iOelemtlpus

    G. trtekacl6 utasitasvaltoz6:=klfejezesH. B eo l v a s6 u t as i t a sB e: v a lt oz 6 k [ f el t et el e k]

    I . K ii r6 u ta si ta sn: kIfejezesek

    J. Kegjegyzessz

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    7/54

    Programok k6dolasaH. F ormalis parameter21

    V al to z6 n ev : t ip usKonstans nev: tlpus Va r n ~ : : t IpusConst nev: tlpus t pus VAH nevtipus C O NST ne v

    A t ov ab bl ak ba n az u ta sl ta so k e s k 6d ol t v al to za ta lk t ul sa go sa n s ze le sh el ye t f og la ln Bn ak e l, e ze rt az e dd ig i t ab la za to s f el lr as h el ye tt a tt e-rUnk az e gy mA su ta ni f el ir as ra . A lt al ab an a p ar am et er ek t lp us ho zz ar en de -l es ev el n em f og la lk oz un k, c sa k a kk or j el ol jU k a p ar am et er ek t ip us at , h au gy g on do lj uk , h og y f on t os m on da ni va 16 ja v an .

    H . A bs zt ra kt m Uv el et ekEljaras

    Definii11as RivasE lj ar as E lj a ra sn ev (p ar a me te r, . .. ) :

    ut asitasokE lj ar a s v eg e. E lj ar as n ev (p ar am et er , . .. )Pascal ban:P ro c ed ur e E lj ar as n ev (p ar am et er ; . .. ) ;deklaraci6kEljarasdefinlci6kBegin

    ut asitasokEnd.E lj a ra sn ev (p ar am e te r, . .. ) 2 3

    ELAN-ban:P RO C E l ja ra sn ev ( pa ra me te r , . .. ) :

    deklar-acickut asi.asokENDPR O C Eljarasnev; E l j ar a sn ev ( pa ra me t er , . .. )

    21It t csa k a konstans- es va ltoz6paramet erekkel fog lalkozunk, s nem te-r Un k k i a z e lj ar as -, 1 11 et ve t ip us pa ra me te re kr e.2 2A 7 -s T ur bo P as ca l- ba n ( ba r o tt i s e lh ag yh at 6) .2 3Pascalban csak oly an elja rast h ivhatunk, amelyet a htvas hely e elBt tmar definialtunk.

    10

    A p r og ra mk es zi t es t ec hn o1 6 gi aj aFiiggveny

    DefiniaIas RivasFtiggveny Fliggvenynev(parameter,utasitasokFUggvenynev:=ertekFiiggveny vege.

    ...):tipus...Ftiggvenynev(parameter, ...)...

    Pascal ban:F unction F tiggvenynev(parameter; ...):tlpus;2 4

    deklaraci6kBeginutasltasokFtiggvenynev:=ertekEnd.

    . . . F ti gg ve ny n ev ( pa r am et er , . .. ) . ..

    ELAN-ban:t ip us P RO C F t ig gv en yn ev ( pa r am et er , . . . ):deklaraci6k

    ut.as ftasokertekENDPR O C F Uggvenynev;. .. F ti gg ve n yn ev (p ar am et e r, . .. ) . ..

    OperatorDefinialas Rivas

    Mtivelet Operatornev(parameter1,utasitasokOperatornev:=ertekMtivelet vage. ... parameter 1 Oper-at.ornevparameter 2 ...

    Pascalban n em l et e zi k.ELAN-ban:tipus O P O peratornev(parameter1, parameter2):deklaraci6kutasltasokertekENDOP O peratornev;

    ... parameter 1 O per-at.or-nevarameter 2 ...

    2. Programtranszformaci6k

    A z a lg or it mu si ra sb an h as zn al unk n eh an y e gy sz er Us i t as t, r ov ld i t es t,a me ly a z a lg or it mu st t om Br eb b~ , a tt ek in th et Bb be t es zi . E ze k az algorit-

    2 4P as ca lb an a f Ug gv en ye rt ek c sa k e le mi t ip us u l eh et .11

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    8/54

    P r og r aa o k k 6 do l as a~ ik us e le me k e gy es p ro gr am oz as i n ye lv ek en k 6d ol ha t6 k, m As ok e se te n - s e za g ya ko ri bb - p ed ig n em . E mi at t e f ej ez et be n e ze k a lg or it mi ku s a ta la ki ta -s ai t f og Ju k m eg ad ni . E ze k a p ro gr am tr an sz fo rm ae i6 k a lt al ab an n ag yo n e gy -s ze rU ek , b ar ki s aj at m ag a 1 5 k lt al al ha tj a o ke t, m eg is e rd em es ne k t ar to t-t uk o ss ze fo gl al ni o ke to

    1. trtekad&sNeh8.ny pr-ogr-aeozasf nyelvben csak e le mi e rt eke k s zer ep elh et nek a z

    ertekadasban. Ahol nines lehetoseg tombok ertekadasara, ott ezt- k 6d o la s ko r - n e kU n k k e ll m e go l da n l e l em e nk e nt i e r te k ad a so k ka l :24

    C ik lu s I = l- to l N -i gAlI): =B(I):= B C lk lu s v eg e

    I ly en e rt ek ad as p er sz e a l eg to bb p ro gr am oz as i n ye lv be n l et ez ik , h l-a ny zi k v is zo nt a lt al ab an a r es zt om bo k e rt ek ad as a. I ly en ek p el da ul , a mi -k or eg y m atr lx nak eg y s ora t va gy o szl op at ke ll er tek Ul a dn unk , va gy pe -d ig e gy v ek to rn ak e sa k v al am el y r es ze t:

    C ( ): = DC I , ) C ik lu s J =l -t ol N -i gC(J):=D(I,J)C ik lu s v eg e

    E(,I):=F(,K) C ik lu s J =l -t ol N ~l gE(J,I):=F(J,K)C ik lu s v eg e

    G ( E . . F) : =H ( K . .L ) ~ C lk lu s I = E- to l F -i gG (I):=H(I-E+ K )C ik lu s v eg eMa s e set a p arh uz amo s er tek ad as ke rde se . E z a l egt ob b n ye lve n n em l e-

    t ez ik , n ek Un k k el l e gy ma su ta ni e rt ek ad as ok ra l eb on ta nl .A,B:=C,D A := C: B := D

    E lo for du lha t az on ban , h og y a p arh uz amo s e s az e gy mas ut ani e rt ek ada sn em a zo no s e re dm en yt a d. E z a n em m eg en ge de tt p ar hu za mo s e rt ek ad as a kk orf or du lh at e lo , h a a z e rt ek ad as b al -, l ll et ve j ob bo ld al an a zo no s v al to z6s ze re pe l. I ly en ko r a z e rt ek ad as s eg ed va lt oz 6k s eg lt se ge ve l h aj th at 6 v eg -

    2 4A p el da kb an a lt al ab an 1 -t ol N -i g i nd ex el he to v ek to ro ka t, N xN -e s m at ri -x o ka t h a sz n al u nk :V al to z6 A : T Oa b( 1 . . N: El em Ti pu s) v ag y A : T om b( 1 . .N , 1 . .N :E le mT lp us )12

    A p r og r am k es z it e s t e eh n o1 6 gi a jare :

    A,B:=B,A

    2. BeolvasasA lg or 1t ml ku s n ye lv Un k1 ln a b eo lv as as e sa k a v al to z6 k f el so ro la sa b6 1

    all, s az esetleges korlatoz6 feltetelek megadasaval. A pr-ogr-amozas ta la pi sm er et ek ke l f og la lk oz 6 k ot et Un kb en a zo nb an n ag yo n s ok e lv et f el so -r ol tu nk a b eo lv as as m in os eg en ek j av it as ar a. E ze k a lg or it mi ku s m eg fe le lo -it nezzUk at itt:

    Be : X uoo ]CiklusKl : "kerdes szovega feltetellel"~ Be: Xa mi g n em t(X)C ik lu s v eg e

    5 t ru k tl i ra b eo l va s as s z in t e e g yl k pr-ogr-aaozasf n ye lv en s In es ,s tr uk tU ra p ed ig m aj dn em s eh ol :

    resz-

    V altoz6 A:T omb(a ..O:ElemT ipus)C lk lu s I =7 -t 61 T -i g [ (7 . .T )~ (a . .0)]Be: A(7 ..T) ~ Be: AU)C ik lu s v eg e

    Megjegyzes: akkor, ha a mUveletben (mint most a beo l vaa ae ban ) a te je ss tr uk tu ra ( It t 7=a, T =O) v es z re sz t, a kko r e lha gy hat 6 a t el je s i nd ex e-l e 5. V a gy i s

    Be: A

    3 . K ii ra sKlirasr61 ugyanazt mondhatjuk el, mint a beo Ivasasr-o l . Egyreszt a

    p ro gr am ke sz it es i e lv ek a la pj an k el l b ov it en i p oz ie io na la ss al , U re s s or okk ih ag ya sa va l, k le me le ss el , f or ma tu m m eg ad as sa l, m as re sz t a a t. r- uk tr-ak,r e sz s tr u kt U ra k k i ir a sa t k e ll m e go l da n un k :

    2 S0 pt im al iz al ha t6 : 5 := A: A := B: B := 5 a la kb an .

    13

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    9/54

    P r og r am o k k 6 do l as a

    Ki: B ( 7 . .w,)C ik lu s I =a -t 61 w -i gC ik lu s J =l -t ol N -i g

    Ki: BO,J)C ik lu s v eg eC ik lu s v eg e

    4 . S z ek v en c iaItt azt kell megvizsgalnunk, hogy a szekvencia ket tagja mikor cse-

    r el he to f el e gy ma ss al . A z

    at ala ki tas m eg eng ed ett , ha a ke t r esz eg ym ast 61 fU gge tl en, a za z S 1 n emvaltoztatja meg azokat a valtoz6kat, amlket S h -~l2 asz,=, 52 pedig azokath ag yj a v al to za tl an ul , a me ly ek et 5 1 h as zn al .

    5 . E Ug az asE ls a m eg go nd ol an d6 nk a z e I ag az as f' el sk s zU ko ss eg en ek k er de se . N eh an y

    p r og r am o za s i n y el v be n n i nc s ' k e ti r an y U e l ag a za s2B, c sa k f el te te le s u ta si -tas:Ha f akkor Akiilonben B L:=fH a L akkor A

    Ha nem L akkor BS zi nt e e gy n ye lv be n s em s ze re pe l a z a lg or it mu sl ei r6 n ye lv Un kb en s ze -

    r ep lo a lt al an os s ok ir an yU e la ga za s. H a e gy sz er U e rt ek ek k oz ot tl v al as z-t as ra e gy sz er Us it he to , a kk or a k ov et ke zo ke pp en a la kl th at ju k a t:

    EIagazasf( X) =A e se te n Pf(X)=B v a g y f ( X) = C e s et e n Q ElagazasAf(X)~D es f(X)sE eseten R B, CD .. E

    egyebElagazasgyeb esetben S eseten SE la ga za s v eg e

    rtx) szerintesetlm Peseten Qesetlm Re se tb en Svege

    Ha ez nem teheto meg, akkor- a sokt ranvu I' ,~ ~ e a ga zas t e gym as baa gy azo ttk e tf e le - ag a za s ok k al k e ll m e gv a l6 s it a nu n k:

    2 6I ly en a " az ab va ny os " , u n. M in im al B as ic .

    14

    A p r og r am k es z lt e s t e ch n o1 6 gi 8 jaElagazasf eseten Ag e se te n Bh eseten CE l ag a za s v e ge

    IIa f atkor A kUlonben hag atkor B k Ul on be n h ah atkor CE l ag a za s v e geM as fe le p ro bl em a a n em . ag en ge de tt e l8 ga z8 sf el te te le k e se te . I tt a r-

    r 61 v an s ze , h og y a z e ll lg aza sb an s ze r- eplo fe lte te le k a p r-o gr -aa cz asin ye lv be n i s h as zn al ha t6 k- e f el te te lk en t v ag y s em .

    IIa f(X) atkor A ~ L:=f(X)IIa L atkor A

    Tovabb i k om ol y k el le me tl en se ge ke t o ko zh at p eLdau l az un, mellekha-tassal27 r en de lk ez o l og ik ai e rt ek U f Ug gv en ye k s ze re pe lt et es e, e ze k t 6b b-s zo ri k is za ml ta sa n em cs ak . h og y f el es le ge s l eh et , h an em k Ul on bo zo e re d-m en yt i s a dh at .

    6 , C ik lu sE ls ok en t a z a lg or it mu sl ei r6 n ye lv Un kb en s ze re pl 6 c ik lu so k e kv iv al en -

    c ia ja t n ez zU k m eg . Ma r a z a lg or it m1 ku s e le me k b ev ez et es en el a s za ml a1 6sciklust az elolteszte16s ciklussal val6sitottuk meg, igy itt e leg aze lo l- , i ll et ve a h at ul te sz te lo s c ik lu ss al f og la lk oz ni :

    l I a. f a k ko r C i kl u sCiklus amig f AA ~ amig fCiklus vege Ciklus vegeE l ag a za s v e ge

    Ciklus AA ~ Ciklus amig famig f AC ik lu s v eg e C lk lu s v eg eH em m eg en ge de tt c ik lu sf el te te l 1 s e lo fo rd ul ha t a z e la gz as fe lt et el ek -

    h ez h as on l6 an . I tt i s a k Ul on l og ik ai v al to z6 ba k is za mo la s a m eg ol da s:C ik lu s a mi g f (X )

    A ~C ik lu s v eg e

    L:=f(X)C ik lu s a mi g LAL:=f(X)C ik lu s v eg e

    2 7 Me l le k ha t as : a z a r gu m en t um b an s z er e pl o p a ra m et e re k - f Ug g ve n yt o l s z ok a t-I a n m 6 do n - m 6 do s ul n ak .15

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    10/54

    P ro g ra m ok k 6d o la s aS ok p ro bl em at o ko zh at na k a e ik lu sf el te te l k ie rt ek el es eb en a s zi mm et -

    r ik us l og ik ai . uN el et ek . A j6z an megfontolA sokkal ellentetben, miszerinta z e s m Uv el et b al ol da la na k h am is e rt ek e e se te n a j ob bo ld al t t el je se n f e-l es le ge s k ie rt ek el ni , a p ro gr am oz Bs l n ye lv ek j el en t8 s r es ze be n e z s aj no sf el es le ge se n i s m eg t6 rt en ik . A f el es le ge ss eg m eg n em l en ne b aj , d e e kk ors aj no s i nd ex el es i h ib ak i s b ek 6v et ke zh et ne k28 P el da ul a z eldontes prog-r am o za s i t e te ln e l:

    Eldontes(N,A,VAN):I:1Ci klus aD dg I~ N es nem t(A (I))1:=1+1C ik lu s v eg eVAN:=(I:sN)E lj Br is v eg a.H a a e ik lu sf el te te lb en a z I ~N r es zf el te te l n em t el je sU l, a l eg t6 bb n ye l-ven akkor is kiertekeledik a t(A(I)) reszfeltetel is. Ha az A tomb pon-tos an N elem U, akk or ebbO l ind ex el esi hib a le sz.

    T 6b bf el e m eg ol da sl l eh et 8s eg i s el ke p ze l he t d . B 8v i ts l ik az A tomb 6te gy f ik t1 v, N +1 . e le mm el , s a z u to ls 6 u ta ni l ep es be n a e ik lu sf el te te lb enl eg fe lj eb b e zt a z e le me t v iz sg al ju k m eg . Ez n em o ko zh at p ro bl em at , h i-sze n t udj uk, ho gy ilye nkor az es mUv elet balo lda la U gyis eg yert elm Uenm e gh a ta ro z za a z e r ed m en yt .

    M as ik l eh et os eg a e ik lu s e gy l ep es se l k or ab bi a bb ah ag ya sa . E tk or t er -m es ze te se n a l ea .l la sk or n em a e ik lu sv a. lt oz 6 e rt ek eb Ol h at ar oz zu k m eg a ze re dm en yt , h an em a z u to lj ar a v iz sg al t e le m a la pj an :

    Eldontes(N,A,VAN):I:=1Cikl us & mig I< N es nem t (A(I ))I:=1+1C ik lu s v eg eVAN:=t(A(IllE lj ar as v eg a.

    H ar ma di k v al to za t a k et f el te te l k ie rt ek el es en ek k et te va .l as zt as a e gyl og i ka i v al t oz 6 b ev e ze t es ev e l:

    28Se t, a m ar emlltett mellekhatAsos l og ik ai f Ug gv en ye kr e i s g on do 1 ju nk !16

    A p r og ra m ke s zi t es t ec h no 1 6g i aJ aEldantes(N,A,VAN):1:=1: L:=hamisC ik lu s a ll ig I ~N e s nea L

    L:=t(A(I))1:=1+1C ik lu s v eg aVAN:=LE lj a rB s v e ge .

    7. El jaras , tUggv6nyE le sz or n ez zl ik m e g' az t a - vi sz on yl ag r it ka - e se te t, a mi ko r a z e lj ar a-

    s ok at n em l eh et p ar am et er ez ni . I ly en n eg at lv p el da ke nt l eh et e ml 1t en i a" ko ra i" ( so t a "azabvanyos") B A SI C n ye l v e t. Ekkor- a p ar a me t er a ta da . st n e-k Un k k el l m eg v a1 6s i ta n i:

    E lj a r8 s [ ( BE , KI ) I: BE:=X~ EljarBsV:=KIEljara.s(X,V)E lj a r8 s v e ge .E g ye s p ro g ra mo z as i n ye l ve kb e n e l Ja r as ok a t h a sz na . lh at u n k , f U gg ve n ye k et

    a zo nb an n em . G ya ko ri bb a z a z e se t, a mi ko r f Ug gv en y ugyan van, de a rte kecsak e le mi t ip us l eh et ( ni ne s r ek or d- , h al ma z- , t 6m be rt ek U f Ug gv en y) .I ly en ko r a t ee nd on k a f Ug gv en y a ta la ki ta sa e lj ar as sa :

    V:= ... roo ...F Ug gv en y f ( X ) :

    f(X,FX): V:= ... FX ...EljarBs f(X ,F X ):

    f:= ...FUggvitny vega. f}{:= ...E lj a ra s v e ge .Ha t ob bs z8 r k el le ne k ls za mo ln i e gy f Ug gv en y e rt ek et , a kk or h el ye tt e-

    s it sl ik e g: ; v al to z6 va l, s a zt h as zn a l juk a kifejezesben:Y:= ... roo ... f(X) ... ~ FX:=f(X): V:= ... FX ... FX ...

    3 . K 6d ol as i t ee hn ik ak

    A z a la bb ia kb an k om ol y e rg on 6m ia i i ge ny ek et k ie le gl to p ro gr am sz ol ga l-ta t~ok at so rolu nk fol . Egyi ke-m asi ka so kszo r 1 gen esak prob Bra te szl ap ro gr am lr o l el em en ye ss eg et e s t ~a sa .t . M os t e sa k o tl et ek m eg fo ga lm az as a. -r a v al la lk oz un k, m iv el e gy re sz t a m eg ol da so k e ro s en f Ug gn ek a v al as zt ot tp ro gr am oz as i n ye lv l eh et 8s eg ei to l, m as re sz t - t8 bb ny ir e- j el en to s m er et U

    17

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    11/54

    Prosra-ok k6dolasak 6d ok at j el en te ne k. A f el so ro lt s zo lg al ta ta so kk al a p ro gr am b ar at sa go s-s ag a l en ye ge se n n o, s ot - a k ez el he to se g n ov ek ed te ve l- a b iz to ns ag os sa g-ban is eros8dlk az llyen program. (S Ot -tabin meg nem tUnik kUlonosener dekesn ek, de - bizon yos e setekbe n me g a h atekony Bagban is, v agy a 61-t al an os sa gb an i s b Ov el ke d8 bb e v al ik p ro gr am un k. ) L As su k t eh At e n ag ys ze -r U e sz k8 ze it a h al ad 6 p ro gr am na k:

    - 1 ap oz as , l ap oz as i t ec hn ik a- ablaktechnIka,

    tajekoztat6 file-b61,- menUtechnlka,- Ikontechnika,- h el p,- f u nk ei 6b i I l en ty Uk ,- ido-%-kijelzes,- n ap l oz as .V eg yU k s or -r -aI II i s j el en te ne k e ze kl E gy es ek ne l t .a na cs ok at a du nk a

    m eg va l6 si ta sr a, m as ok na I e lj ar as ok at , f Ug gv en ye ke t, t ip us ok at def'Lma-lun k, v ag y ped ig meg i s adjuk ezen el jaraso k s zovege t. A kif ejtes me ly-s eg e e ls os or ba n a tt 61 f Ug g, h og y m en ny ir e l eh et e t ev ek en ys eg ek et n ye lv -fUggetlenUl elvegezni.

    L ap oz as , l ap oz a si t e cb ni kaO lyan informaci6k keperny6n v al 6 m e gj el en i te se t , m e ly ek n ek " v ol um e ne "

    m eg ha la dj a a t ob b k ep er ny ol ap ot , e el sz er U l ap oz ot ta n m eg sz er ve zn i. M in -d e n k e pe rn y on yl anyag m eg je le ni te se u ta n v ar -a ko zn t k eLl afelhasznal6b e av at .k o aa sa r -a . E rr e t e rm es ze t es en a f el ha s zn 8. l 6t f o l k e l l k er -n t, M i ut ana f el ha sz na l6 j el ez te . h og y e lo lv as ta a z I nf or ma ei ot , Ia po zh at un k: l et o-rolv e a ke pernyo t a kovet kezo lapot irjuk ki arra.

    A lapnak e el sz e rU en " sz e rk ez et e " k el l l eg ye n : cimsor (ez orientalhat-ja arra az olvas6t, hogy a lapozott szdveg "temaja" miesoda), lapsor-szam. a l ap oz a sh oz f ol h as zn al a nd 6 b il l en ty Uk helpje. (L. az abra t! 1

    Adott esetben hasznos lehet, ha az egyes lapok nemesak "egy rr-any-b an ", e gy es ev el e rh et ok e l, h an em v is sz al ap oz as ra i s, v ag y - ur am ' b oe sa -ado tt so rszamu lapr a Iap ozasr- a is mod va n. Ennek m egvalo sithat 6saga a

    18

    A p r og ra m k6 sz 1t e s t e ch no l 6g ia jal a po zo t t s Z Qv eg reprezentalasan m il l ik : o l ya n s tr u kt il ra k el l, a mi l e he to -ve teszi a k6zvetlen lapelerest. ( Pl . t o mb , vagy d ir ek t f il e . .. 1

    H as on l6 p ro bl em 8. kk a1 j ar , h a a z o ut pu t n em a k ep er ny on , b an em nyomta-t on j el en ik J ll eg .A nn yi va l l es z e gy sz er Ub b a m eg va l 6s itas , hogy niness zU ks eg a z i nt er ak ti v1 ta sr a. L ap oz as c sa k e gy lr an yu ,e s n el l f Ug g a f e1 -h as zn al 6 " re ak ci 6i de je to l" . A f or ma zo tt sa g I tt i s s ul yp on ti .

    el m lapszamI tt j el en ik m eg a m in de nk or i l ap oz ot t s zQ ve g.H as zn os , h a a s zo ve g e gy es l og ik al e gy se ge it p l. U re s s or ok t ag ol ja k.Ne m rossz , ha mOd van a fo ntosabb sz avak pl. szi nekkel tor ten8 ki e-m el es er e. 6 va to sa n k el l b 8. nn i a v il lo gt at as sa l, m ar t h os sz u t av onn ag yo n k el le me tl en l eh et . C sa k I nd ok ol t e se tb en a ja nl ot t!

    ~ vagy ~ tovabb; ~ vagy T : vissza; HOME: 1.lap; END utols6 lapE g y " t lp lk us H kepernyolap szerkezete.

    A " pr of !" m eg ol da s a z e gy ik l eg ne he ze bb p r- og r- aa oz as m 6d sz er ta ni t e-m ak or h 8z k ap cs o l6 di k : a szQVegfoldolgozashoz ZB N e ha ny j 61 k 8 rv on al a zh at 6e lj ar a ss al , i l le tv e f Ug g ve nn ye l a lt al a no sa n h as zn i l. lh a t6 k8 n yv ta ra t h o z-h at un k l et ra . E ze k a k 6v et ke z8 k:FUggv{my BillreVar:BillentyU30- e gy t et sz ol eg es b ll le nt yU l en yo ma .s ai g v arFUggveny V al as z ta s( bh : B i I Ie n ty UH a l m a z , b il l: B i ll en t yU ): S o rs za m- a bh h al ma z s or sz am ad ik e le me a bill, vagy .. . (?)E lj ar a s L ap Ki i r( la p: S i ov eg )

    - a l ap ot k ii rj a a k ep er ny or e m iu ta n i ni ei al iz al ta ( le to -rol te, eimet lrt , ke retet r ajzolt , hA ttersz inezet tst.b.},

    ZSL . 1J.1 6g1a14.30 It t n em m on dj uk k i a zt , h og y K ar ak te r, m lv el b iz on yo s b il ie nt yU kh 8z ,egyes g epekne l nem eg y " kl as sz ik us " k ar ak te r; h an em p l . k ar -a kt .e r- pa rtartozik.

    19

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    12/54

    P r og ra mo k k 6 do la saE l ji rA s L a pN yo mt a t( la p: S z ov eg }- a lapot kl1r ja a nyomta t6ra miu U.n in icializ al ta {La-'p ot d ob ot t, c im et i rt s tb .) .M eg go nd oI a nd 6, h og y b on na n v eg ye az u t6 bb i k et e lj ar as a l ap ra v on at ko z6g lo bi Ll is i sm er e. te it : a c lm et , s zl ne ke t . . . E z k er UI s z6 ba _ jd az ablak-technlka bekezdesben.

    Funkc16blllentyUkA p ro gr am v ez er le se re s ok sz or s pe cl 8. li s b ll 1e nt yU k a lk al ma sa bb na k

    l at sz an ak , m in t a " ha gy om an yo s" a lf ab et lk us , v ag y n um er ik us g om bo k. G on -dolo m nem szorul ~ azat ra, hogy ko nnyebb meg Jegyezni e a felha sznal6-nak azt, hogy az -gombot kel l n yo mo ga tn la m ln de n " me ne kU II I" ,v is sz at er o s zl tu ac 16 ba n, v ag y a < Pa ge Do wn >- t, h a l ap oz nl a ka r, a he ly et t,hogy a "v i ss z a /t e rJ v i s sz a " magyar s z av a k r6 1 a s s zo c la l v a az < H> -t , v ag y< m> -t , e se tl eg < C tr l> -t n yo mo ga ss a ( il le to le g a " la po zz "- b6 l kttndul+va az < L> -t, vag y < l> -t, vagy -t).

    A f un ke i6 bl li en ty Uk f ig ye le se t k et m 6d sz er re l o ld ha tj uk m eg . A z e gy ikle hetoseg , h ogy eg y olyan eiklusba n, amely nek a e iklusma gJ at rovi d idl la la tt v eg re l eh et h aJ ta ni , f ol ya ma to sa n f ig ye lJ Uk , h og y t or te nt -e b ll -l en ty Ul en yo ma s. A m as ik e zz e1 s ze mb en a m eg sz ak i t a sk ez e l e sr e epit, sb ar ml ko ri b i 11entyUlenyomasra azonna.l r-eagat.

    AblaktechnikaA k or ab bi g on do la tm en et s or an m ar k im on da tl an ul f ol ve tl ld he te tt a k er -

    des a tlszt elt O lvas6ba n, hogy a l apozas me gszerve zesehez tudni kell ak ep er ny on ek ( ny om ta t6 la pn ak ) a m er et ei t. I nn en j ut ha tu nk e l az altalano-s it 6, e le ga ns o tl et he z, b og y t et sz ll ie ge s ( bi zo ny os k or la to k k oz ot t! ) m e-r et Uk en t k ep ze lj Uk e l a k ep er ny ll t, a mi t a fi zl ka i" k ep er ny on v al a ho I,e gy m eg al la po da s s ze ri nt r og zl te tt t ar to ma ny on j el en it Un k m eg . E I i s k e-r e s zt e lh e t jU k k e p t a r t om 8. ny n ak, vagy -nem tul szer-encses szohasznalat>ta 131_ hlvhatjuk ablaknak is. t gy egyetle n keper nyon aka r to bb a blak ism eg je le nh et ,a me ly ek t er me sz et es en o na 11 6 t ar ta l_ t h or do zn ak az ember-r-e I t or te n o k o mm un ik a .c 16 soran,

    31N em s ze re ne se s, m lv el U tk 5z ik a s za mi t6 ge pi g ra fl ka e gy m ar r5gzitett,e zz el n em t el je se n a zo no s s za va va l.

    20

    A p ro gr a mk es zl t es t ec hn o1 6 gi aj aAnnak e rdekeben , bogy vllago san el kUHinUl jenek egy mast6l eze k, ki

    kelI ha sznalni a gep es a nyelv ad ta leh etosege ket. iC eret eket, elterl lszineket, vagy s Zi ni Lr ny al at ok at , e ir ek et k el l r en de ln i az egyszerree gy Ut t l ev a a bl ak ok ho z. H iv el e gy sz er re e sa k e gy d ol og ga l f og la ko zh at azember , koz UlUk csa k egy l ehet "akt Iv", ezer-t az se m eIkepze Ihetet.Len,hogy n em l a tf ed es l eh es se n k oz ot tU k32 E re dm en y: a z e gy et le n k ep er ny o n a-g y o bb r e la t l v k i h as z na l t sa g a.

    az a kt iv a b la k . . .

    E nn ek m eg va l6 si ta sa ho z a k ov et ke zo r ep re ze nt ae i6 s es implementaei6s5t l et e k et a d ha t j uk .T i pu s A bl ak = Re ko rd (c i m: S z ov e gbfx,bfy,j ax ,j ay : E ge sz [ ba l- fe ls o e s J ob b- al s6 s ar ok k oo rd i-natal]hatter,b et U: S zi n... ) [ a h iL tt er e s a b et U s zi ne lE lo re d ef ln ia lt a bl ak ok e se te n, p l. e gy k on st an s t om bb en t ar ol ha tj uk af e nt i I n f or m ac 1 6 ka t :K o ns ta n s a : T o mb ( 1 . . 3 :A bl ak ) = e im : ' F oa bl a k' ,bfx: i.bfy: 1,jax:80,jay:25,h a t te r :Fe h er , be t U: Fe ke t e . . . ) [az 1 . a bl ak ](elm: 'MenU', .bfx:3,bfy:3,jax:15,Jay:19,.hiLtter:SzUrke,betU:S5tetSzUrke ...) [az 2 . a bl ak ]( c im : ' S e g i ts e g ' ,bfx:3,bfy:20,jax:78,jay:22,hiLtter:Feher,betU:Piros ...) [az 3. ablak] )32T er me sz et es en t el je se n e l n em f ed ll dh et e g ye tl en a bl ak s em !

    21

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    13/54

    P ro g ra a ok k 6d o la saA z a bl ak ke ze lb sh ez 1 0g 1k us na k t Un ne k a z a la bb l e lJ ar as ok .E lj a ra s A bl a ko t Ny lt ( a: A bl a k)- az ablak l e1 ra sB na k m eg fe le lo en a k ep er ny on l et re ho zegy lDegfelellStartom8 nyt (tovabb8.: vagy m os t k el l gon-d os k od n 1 a " l et a ka rt " t er Ul e te n l ev I S i n fo r mA . ci 6 m eg m en -tesarBl, vagy a z a bl ak ok e le ve e gy ik m ez Bj Uk be n t ar ta l-I 11 8. Zz Bkz e pp en a kt u8 .l 1s i nf or mR c1 6t , 1 9y e z a la pj an

    allithat6 vlssza)E lj a ra s A bl a kb al r (l : S z ov eg )- az aktulills ablakba irj a a z 1 s zd ve ge t , t ob bn yl re e gylapnyl szoveget, ha nem ferne ki egy sorba, akkor sz6-hata ron megt orl, h a ne m fer a te ljes szov eg az a blakb a,a kk or m eg sz er ve zl a b l1 1e nt yU re v ar as t)Eljaras AblakotCsuk- az aktulilis ablakot leve szi a ke pern yoro l, mlk ozbe n al et ak ar t k ap te rU le te t v 1s sz ai r j a. E lk ap ze lh et o l en ne ,hogy ne cs ak az ak tual lsat lehe ssen be csuk nl, ez eset -b en a zo nb an k om ol y e le mz es t k el le ne v eg ez ni a rr 61 , h og ym el y a bl ak ok at e rl nt l a v al to za s. Ba r mindig celraveze-to megoldas Uyenkor az osszes letezo ablakot nyitas1s or re nd be n u jr a1 rn 1 ( de e zt k Ul lS n a d m1 ni sz tr al n1 k el l,a s k UI Bn be n i s m ic so da m un ka !)

    T B je ko z ta t 6 f i le -b 6 1A he ly et t, h og y a t Bj ek oz ta t6 t - am i t ob bn y1 re s ok ol da la s- e gy k on st an s

    s zo ve gv ek to rb an t ar ol na a p ro gr am 33 , h el yt ak ar ek os ab b, a lt al an os ab b m eg -o ld as , h a e gy s zo ve gf il e- ba t es sz Uk a zt . E " ko ns ta ns " f il e- t e gy e gy sz e-rU s zove gszer kesz tove l -p I. mag aval a prog rams zerk eszt ovel- el 1s ke-s zi th et jU k. E nn ek , a s t er me sz et es en a z e lo bb i l ap oz 6, a bl ak oz 6 e lj ar as -csom ag b lrto kaban a kov etkez okep pen nez het ki a ta jekoz tat6 r asz alg o-r lt mu sa e s a mi re s zU ks eg Un k l eh et h oz za :V al to z6 f : S zo ve gF 1l el ap : S zB ve g [ a t aj ek oz ta t6 t t ar ta lm az 6 f il e][ eg y l ap t ar ol as 8. ho z, l eh et p er sz e, h og y n ye lv ik or la to k m 1a tt v a1 6j ab an n em e gy et le n s zo ve gv al -t oz 6 e z, h an em s zo ve ge k k el lo sz am u v ek to ra ]

    [ a f el ha sz na 16 m eg un ta v ag y n em a t aj ek oz ta t6 t]i le p : L og i ka iK onstans Beavatkozas= ...=Esc>, 2C ik l us v eg eC ik lu s v eg eLeza r(f) [ a file l ezar asa]E l ja ra s v e ge .Ha specf a. lLs kozl endoi nket (mi a krem e Ien dd, es szin e... ) is e lhe-

    lyez zUk a fil e-ban , akko r pers ze a LapK iira s bo nyo1 6dik , h iszen a "b am-b a" k i I r -a s e I dtt e r te l me zn i i s k el l a z e s et l eg es e n s or - r- ak e r- u ls pe c fa . Ifsm on da nd 6k at . E nn ek m eg go nd ol as at a v al la lk oz 6 O lv as 6i nk ra b iz zu k.

    MeniitechnikaA z i nt er ak ci 6 s ze mp on t j ab e I t a la n " le gk if in om ul ta bb " r es zf el ad at a a

    p rogr amna k az , aho l a felh aszn a16t 61 t obb dolo g kozU li valas ztas t k ellm egsz erve znie. Pl ane, ha ez tcbb szin ten i s ig az, az az elc szor a "fo le-h et os eg ek " k oz tll k el l v a l as zt .a nt, m aj d e gy m e1 1e tt m ar ad va a bb o l i s s ok --e se ly es a d on te s, e s i gy t ov ab b. ( Go nd ol ha tu nk e gy n ap ja in kb an e lt er je dts zo ve gs ze rk es zt or e, d e e gy p ro gr am ny el vi f or di t6 i k or ny ez et re i s. )

    I tt i s s zo ro sa n o ss ze fo n6 di k a m en U- e s a m ar e cs et el t a bl ak te ch ni ka .E gy m en U l ei ra sa no z m in im al is an a k ov et ke zo a da to ka t k el l r og zi te nU nk :- h an y a lm en Up on tr a b om li k ( am i k oz UI v al as zt an i k el l/ le he t)- mik ez ek:

    a l me n Up on t ot a z on o si t6 s zo v ega z a lm en up on to t k iv al as zt 6, ko zv et le n b il le nt yU ( ki em el ve , v ag y e lk U-Ldnitve )mi az a te ve ke ny ae g, a mi t a k tv at a s zt .a sa e s et en e l k el l v eg ez ni

    A m eg va l6 si ta sr a n ye Lvt.o I f Ug go en e ro se n k Ul on bO zo n eh ez ae gt i e lj ar a-s ok at , f Ug gv en ye ke t k el l m eg ir n un k , v ag y " at v en n tl nk " ,

    23

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    14/54

    P r og r am o k k o do l Bs aA me nU be n l ef el e es fe lf el e a k ur zo rm oz ga t6 ny Ua kk al D IOz og ha tu nk.

    k 6z vet le nU l is va la sz th at un k eg y m en Us or t a so r ki em el t ka ra kt er ev el. sa z ak tu ali s m en Us ort az E N T E R b 11 1e nt yU ve l r 6g zl th et jU k, s a dj uk v 1s sz ae n ne k s o rs z am a t e r ed m en y ke n t. Az e pp en a kt ua li s m en Us or t a k ep re k ie me l-te n (mas s zi nn el . n ag yo bb f en ye r6 ve l. v as ta go n s tb .) 1 rj uk k 1.

    A m en U ta rt al ma zz a a me nU c 1m l! t, a k ep er ny 6r e k 1h el yez en do ab la k k o-o rd in at ai t, a m en Us or ok s za ma t, a z e gy es m en Us or ok s zo ve ge t, v al am in t am en Us or ok k oz ve tl en v al as zt as ar a s zo lg U6 k ar ak te re ke t ( ez ek a m en Us ors zo ve ge be n v al am il ye n - pl . n ag yb et Uv el - m 6d on k ie me lv e s ze re pe ln ek ). Am en Ut l ei r6 r ek or d s ze rk ez et e:T ip us M en U= R ek or d( c1 mabdbso r

    Sziiveg,Ablak.Egesz,Tomb(1 ..Db.MenusorM e nU s or = R e ko r d( s z6 v eg : S z ov e g,kar : Karaltter)

    E lj &r Bs M en Uk ez el es (H : M en U, V : E ge sz ):A b la k ot N yi t (H . ab ) : K i : H . ci mC ik lu s i =1 -t 61 H .d b- igK i: H.sor[il.szovegC ik lu s v eg eK l : [ a v a la s zt a sr a f e ls z 61 i t6 , b i ll e nt y Uh a sz n al a to tAkt:=.1: Elllzo:=Akt: Vege:=hamisCiklusK i: H.sor[Elozo].szllvegK i: H.sor[Akt].szoveg

    Be: CEHSza:=AktElagazasC= j

    s e g1 t o s z ov e g]

    [ n or m al m 6 db a nl[kiemeltenl

    eseten Ha A kt =1 a kk or A kt := H. dbkUlonben Akt:=Akt+leseten Ha A kt =H .d b a lt ko r A kt := 1kUlonben Akt:=Akt-lC = so r ve g e s et e n V e ge : =l g azeg ye be se tb en i := 1C ik lu s B Dd g i S H. db e s C ~H .s or [ i] .k ari:=i+1C ik lu s r ig eHa i SH .d b a kk or A kt : = i

    C = l

    E l ag a za s r i geB Dd g n e .. V eg eC ik lu s v eg eV:=AktAblakotzar(H.ab)E l ja r as v e ge .

    24

    A p r og r am k es z it e s t e ch n o1 6 gi a jaIkontechnika

    A v lz ua li ta sa a z e mb er ne k a l eg er os eb b o ld al a. E mi at t t er je dn ek o lye ll en al lh at at la nu l a zo k a p ro gr am ok , a me ly ek k ey es s zo ve gg el , a nn al t ob bm in ia tU r r aJ zz al i gy ek sz en ek h at n1 a f el ha sz na 16 ra . A h at as l eh et t er me -s ze te se n a f el ha sz na t6 v al am Uy en beavat k oz aa a ( pI . eger-r-el r a mu t at a s) ,ig y a zta n a r aj zo k n em cs ak e gy ir an yu i nf or ma ci 6t h or do zh at na k, h an em av a1 6d i, k et ir an yu k om mu n1 ka ci 6 e sz ko ze i i s.

    A m eg va 16 si ta s r es zl et ez es et al a z e lo bb 1 r es zn el i s a zz al a z i nd ok ka lt er tU nk k i, h og y e ra se n n ye 1 vf Ug go . E z a r aj zo s l eh et os eg ek re f ok oz ot ta ni ga z, e ze rt m os t s em t es zU nk t ov ab bi l ep es ek et a p on to sa bb i mp le me nt ac i6fele.

    H el p - h ib at iz en etA b ar at sa go s p ro gr am i sm er ve a z, h og y m in im al isa t te te le z fe l a f el -

    h as zn a1 6j at 61 . N em "s er to di k m eg " az on - ho gy n em " bo kr os od ik m eg" , azt er me sz et es -, h a a k eze lo r os sz ul n yU I v al am ihe z, va gy n em t ud ja , h og ym ih ez k el le ne n yU ln ia . H in di g v is sz aj el ez a bn or ma li s b ea va tk oz as ra , s otmaga siet segitseget n yU jt an i: k oz l I a z a do tt s zl tu i> .c i6 ba n e Ik ov et etth ib at , e s a v al 6s zi nU j av it as i m 6d sz er t.

    E n ne k m e gv a l6 s i t a s ah o z n a gy " a da t ba z is s al " ( s eg i ts e gs z 6v e g- k Bn y vt a r-r al ) e s a s zi tu ac i6 p on to s i sm er et ev el k el l t ud om as sa l b ir ni a a p ro gr am -na k. A s eg it se gs zo ve ge ket va gy ko nt an s to mb be n he ly ez zU k el , v agy h a eztulzott t ar ig en yU l en ne , a kk or - f i le -b an t ar tj uk . E nn ek k ez e l e se n ag yj a-0 01 a z e dd ig ie k a .I ap .i ane l ke pz e I h et .d . Am i a s zt t u ac t o i s me r et e t j e le n ti ,a z e le mi B tl et en a la ps zi k. S or sz am oz zu k m eg ( va gy m as a zo no sl t6 t r en de l-j Un k h oz za ) a z e gy es e rd ek es s zi tu ac i6 ka t a h oz za ju k t ar to z6 p ro gr am po n-t ok ka l e gy Ut t. ( El ke pz e Ih et .S , h og y g ya ko rl at il ag u gy an az a s zi tu ac i6 ap ro gr am t Bb b p on t ja n . is f Bl bu kk an .) L eg ye n e gy g lo ba l i s v al t oz 6 a r- r- aac el ra , h og y a z a kt ua li s s zi tu ac i6 k6 do t t ar ol Ja . H in de n b ea va tk oz as i p on -t on e ll en or iz zU k a b ea va tk oz as h el ye ss eg et , s h ib ar ut in t h iv un k m eg , h ahi ba to rt en t. E r ut in a b ea ll it ot t s zit ua ci 6k 6d a la pj an a ho zz at art oz 6s e gi t . s eg s zo v eg e t a segf t s eg ab l a kb an m eg je le ni t i. S pe ci al is hfbakerrt( sz it ua ci 6k en tl k ez el he tj Uk a f el ha sz na 16 k oz ve tl en s eg it se gk er es et i s,a mi t p l. e gy m en Up on t k iv al as zt as av al " er ol te th et k i" .

    25

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    15/54

    P r og ra a ok k od o la saA H el pf il e l eg ye n a k 6v et ke z5 s ze rk ez et U s z6 ve gf Il e:

    - a f Il e b lo kk ok s or oz at a;- mI nden blok k egy oly an s orra l k ezd6 dIk, ame ly egye tlen szam ot tart aI-

    m az : a b en ne I ev 6 s eg it se gs z5 ve g s or sz am At ;- a k 6v et ke z5 s or ba n n eg y e ge sz s za m k 6v et ke zI k: a nn ak az abl akna k a ko -

    o rd in aU .i , a ho va a s eg i ts eg sz 6v eg et e I k e11 he lyeznl;- a k 6v et ke z5 s or ok a s eg it se gs z6 ve ge t t ar ta lm az zS k, a z a bl ak m er et en ek

    m eg fe le l6 s or ok ra t 6r de lv e ( Ur es s or n em I eh et k 6z tU k) , a s eg it se gs z6 -ve g SZamBra az a bl ak m er et e e le g nagy, azaz n em k el l l ap oz as sa l t 6r 5d -nUnk;

    - vegUi az egesz blo kkot egy Ures so r zar-ja Ie.E lj ar Bs H el p( I: E ge sz ):Nyit(f, "Helpflle")CiklusOlvas(f,sor)j:=egesz(sor) [konverzio sz6vegtipusrol egeszrel

    &mig ne. v eg e( f) e s j IC ik l us v i lg eIIa j = I a kk o r O l va s( f ,a b .b fx , ab . bf y, a b. j ax , ab . j ay )AblakotNyit(ab)Olvas(f, sor-)C 1 kl us & J ai g sor=" "Ie1:sorOlvas(f,sor)C ik lu s v eg eAbiakot2Ar(bfx,bfy,jax,jay)E la g az as v e ge2Ar(f)E l j8 r as v i lg e .

    Ido-X-kijelzesA b ea va tk oz as i h ib ak e gy re sz e a bb ol f ak ad , h og y a f el ha sz na lo n yu gt a-

    l an ko di k a ml at t, h og y h os sz u i de je n em l at ja a p ro gr am ot m li ko dn i, e le t-j el ek et a dn i. E zt az i de ge sl t5 e rz es t e s6 kk en th et jU k a zz al az egyszerU,udvarias szo lgalt.at.aasa.l , hog y a k epern y5 eg y "szabvanyos " he l ye n m in d igjelezzUk az i do m ul a sa t : vagy a valos id5 kt Ir-asaval, vagy vaIant Iyenm as - es et le g g ra fi ku s- j el f ol ya ma to sa n v al to zo k Ir aj zo la sa va l ( go nd ol -,j un k a W in do ws f or go h om ok or ai ko nj ar a) , vagy a nn ak k 6z le se ve l, h og y IIt ev ek en ys eg k b. h an y s za za le kA na I t ar t a p ro gr am .

    26

    A p r og ra m ke sz i te s t ee h no l og ia J aL At va ny os v ar ak oz as i i d5 j el ze st a dh at un k p el da ul a k ov et ke z5 m od o-

    kon:r aj zo lj un k k i e gy ( ho ss zu , k es ke ny ) t ir es t eg la la po t, m aj d r aj zo lj un kb el e e gy , a z e lt el t i d5 a ra ny an ak m eg fe le l5 m er et U f es te tt t eg la la po t:

    Feldolgozas: 60X

    ,1 I I I_ rajzoljunk kl egy Ures kort, majd a belsejebe egy, az eltelt id5 ara-

    n y8 n ak m eg f el e l5 f e st et t k 5 re i kk et :

    Nap16z8sS ok ol yan pr-obl.enavaI t al ak oz ha to tt a T is zt le t O lv as 6, ameIyne l a

    fut as adot t eset ben o rakig , s5t napo kig is elt arth at (s nem a programr-oeszasagan, hane m a prob lema je lleg ebBl a d6d6 an)3 4. Ne m varh at6 el, af e lh as z na l 6t ol , h og y r-ezzeneat.e I en t ek in te tt eI , m eg in ga s nelktllI kon-cent r-a'lsaggak bamu lja a ke pern y5t. M Brp edig so k-so k isme rt s zake rto( Pa r ki n so n, .M u rp h y) m e gi rt a , h og y m in d ig a d 6n tl l p l li an tb an n in es j el enaz ember, s esetleg arr61 a jelensegrBl marad le , amiert zajlik azegesz , E ze n a " sz ol ga la tk es z" p ro gr am Ugy s egith et, hog y a f onto sabbe se me ny ek et e gy f il e- ba n ap 16 zz a. F ol je gy zi- a z e se me n yt ( a zo no s lt oj a va I ),- az idot (valosat, vagy valamilyen sajat programbell joldefinialt

    idot),- a f on to sn ak i te lt v al to z6 k e rt ek ei t . . .

    34I ly en ek p l. a s zi mu la ci os p ro bl em ak .

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    16/54

    P ro g ra a ok k 6 do l as aEz ze l k ap cs ol at osa n k et ke rd es v et 8d ik f 81 : ho nn an tu dj a a pr og ra m,

    hogy mik a f on t os a bb e se m en y ek , il l. me ly ek a J e ll e mz o v a lt oz 6 k. Lehet,h og y e sa 16 da st o ko zu nk , d e a zt k el l m on dj uk , n in es f el ad at fU gg et le n v a-l as z a k er de sr e. A za z a p ro gr am ir 6n ak k el l - a m eg bi z6 va l 8 ss ze ha ng ol va -m e gf o ga l ma z ni a a z esemenyeket ( t8 bb ny ir e v al am il ye n l og ik ai f or mu la d e-f in ia la sa va l) , e s a v al to z6 ka t i s.

    Kivel e nap16 elkeszUlte utan ( t8 bb ny ir e) " e1s za ka d " a l et re ho z6p ro gr am t6 1, e ze rt 8 na l1 6 e le tr e k el te se he z e gy n ap l6 li st az 6, - me gt ek in t8programra van sz Uk se g. Ez t i s me ll ek el ni ke ll a pr og ra mh oz , m in te gy an -n ak s ze rv es r es ze t.

    28

    I I . A PROGRAM HELYESSEGE

    A p ro gr am ir as k 8r Ul i b on yo da lm ak ka l 8 ss ze me rh et 8 n ag ys ag re nd U a z e l-k e sz U lt p r og r am h e ly e ss e ge n ek b e la t as a va l k a pc s ol a to s m 6 ds z er e k a l ka l ma -z i> .s a.( S8 t v al am ir e v a1 6 m er et U p ro gr am ok e se t en a h el ye ss eg b el at as as o ks z or t a r e me n yt e le n eb b . )

    E gy p ro gr am h el ye ss eg er 81 e sa k a kk or b es ze lh et Un k, ha v a la m il y en m 6 d-szerrel meggy8 z8dtUnk'r6Ia.

    A z e ls 8 l ep es m in de n e se tb en a s pe ei fi ka ci 6 p on to si ta sa , u gy an is h e-l ye ss eg ro l c sa k e nn ek i sm er et eb en b es ze lh et Un k. A p r og r am o za s i b e ve z et oko te tb en a specIf'Lkacf o va .l r es zl et es en f og la lk oz tu nk , m el yn ek l en ye gip on tj a v ol t, h og y a f el ad at ok ho z e lo -, i ll et ve u t6 fe lt et el t f og al ma zt un km eg . E ze ke t h as zn al ju k f el a h el ye ss eg d ef in ie i6 ji l. ho z.D ef in ie i6 : E gy p ro gr am az x b em en o ad at ok ra fe ll rt ef (x ) e lo fe lt et el , ap( x) p ro gr am fU gg ve ny , va la ml nt az y - x- he z ta rt oz 6, az az y =p (x )- er ed -m en yr e v on at ko z6 u f( x, y) u t6 fe lt et el m el le tt p ar ci al is an (r-esz Iegesen)h el ye s, h a

    V x, a me ly re a p ro gr am f ut as a b ef ej ez od ik : e f( x) ~ u f( x, p( x .D ef in lc i6 : E gy p ro gr am a z x b em en o a da to kr a fe li rt ef (x ) e l8 fe lt et el , ap (x ) p ro gr am fU gg ve ny , v al am in t a z y -x -h ez t ar to z6 , az az y= p= x) - er ed -m en yr e v on at ko z6 u f( x, y) u t6 fe lt et el m el l e tt b ef ej ez od ik , h a

    Vx : ef(x) ~ a p r og r am e l ju t a v e gp o nt j il . ho z .D ef in ic i6 : E gy p ro gr am a z x b em en o a da to kr a f el ir t e f( x) e lo fe lt et el , ap (x ) p ro gr am fU gg ve ny , v al am in t a z y - x- he z t ar to z6 , a za z y =p -- x) - e re d-menyre vonat.kozo u f( x, y) u t6 fe lt et el m el le tt t el je se n h el ye s, ha parc Ia -l is an h el ye s e s b ef eJ ez O di k, azaz

    Vx : e f( x) ~ a p ro gr am f ut as a be fe je z8 di k a s u f( x, p( x .

    A p r og r am h e ly e ss e ge n ek b e li > .t a sa h oza k o ve t ke z o m 6 ds z er e k h a sz n al a to -sak:

    29

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    17/54

    A p ro gr am h el ye ss eg e

    A . P ro gr a. dg az ol as ( te sz te le s) : p r6 ba fe la da to k l ef ut ta ta sa va l a p ro gr amm e gb i zh a t6 s ag R na k b e la t as a tesztkOrnyezetben. Itt a program hibUnakf el fe de ze se a c el .B . P ro gr am er ve ny es it es : a s pe ci fi ka ci 6 a la pj an a p ro gr am l og ik ai h el ye s-s e ge n ek 1 9 az ol a sa val6dl kornyezetben. I tt t eh at g ya ko rl at i f el ad at ok ra .v al6 s k orn ye ze tb en ha szn Rl ju k a pr ogr am ot . A ce l a nn ak b ela ta sa . h og ym eg ol da su kr a a p ro gr am a lk al ma s.

    A p ro gr am er ve ny es it es a p ro gr am na k e gy v ag y n eh il ny g ya ko rl at i f el a-d at ra v al 6 a lk al ma za sa t j el en ti . E nn ek s or an a f el ad at k it Uz oj e m eg gy o-z od he t a rr 6l . h og y a p ro gr am t el je si ti -e e lv ar as al t. E bb e b el et ar to zn aka h el ye ss eg . a h at ek on ys ag , a f or ma i s ze mp on to k e s e gy eb k ov et el me ny ek .C . P ro gr am hi te ie si te s: a p ro gr am h el ye ss eg en ek e s a f el ad at m eg ha ta ro zR se lo lr as ai na k j 6v ah ag ya sa a h os sz u i do a la tt o ss ze gy Ul t f ut ta ta si t ap as z-t a la t ok a l ap j an .

    A p ro gr am hi te le si te s l en ye ge a p ro gr am v eg le ge s f or ma ba n v al 6 r og zi -t es e. A h aa zn a. Ia t, so r- an s ze rz et t t ap as zt al at ok a la pj an p on to si th at 6 am eg ol do tt f el ad at ok k or e. a k ez el es . a p ro gr am a lt aI o yU Jt ot t s zo lg al ta -t as ok . a z a lk al ma za s k or ny ez et i f el te te le l. s tb .D . Hi ba ker es es : a z el oz o m6 ds zer ek eg yl kev el m eg ta la lt hi ba he Iy lm ek.o kR na k a m eg ta la la sa .E . P ro gr am he ly es se g b iz on yi ta s: a p ro gr am l og ik ai h el ye ss eg en ek k im ut a-t as a a x1 6m il k. k ov et ke zt et es i s za ba ly ok s eg it se ge ve l a s pe ci fi ka ci 6 a la p-jan.

    H el ye ss eg bl zo ny it as sa l e k ot et be n n em f og la lk oz un k, e rd ek lo do O lv as 6-i nk n ak a j an lj u k Varga Lll.sz16: Programok analizise es szintezise cimUkonyvet vagy A Programozll.si m6dszertan elmelete c im U J e gy z et e t.F . P ro gr am le ve ze te s, p ro gr am sz in te zi s: a s pe cl fi ka c1 6 a la pj an e le ve h e-l y es p r og r am l e tr e ho z as a na k m 6 ds z er e .

    A p ro gr am le ve ze te s i s m eg ha la dj a f Uz et Un k c el kl tU ze se it , e ze r- t n emf og la lk oz un k v el e. A z e z i ra ny ba n h al ad n1 kf va no kn ak a z a lab bt ka t kdny-v et a ja nl ha tj uk : V ar ga L as zl 6n ak a P ro gr am ok a na li zi se e s s zi nt az is e c i-

    30

    A p r og r aa k es z it e s t e ch n o1 6 gi a jamU konyvet, 111etve F6th1 Alcosnak a Bevezetes a programozashoz cimUJegyzetet.G. SzhlbolilulB v egr eh aj ta s: a pr og ra m v eg re haj ta sa ko nk re t ada to k h e-l ye tt a da to sz ta ly ok ka l, a me ly ek et l og 1k al f or mu lB kk al a du nk m eg .

    31

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    18/54

    III. TESZTELS

    A t es zt el es . c el ja , h og y . in el t ob b h lb at m eg ta la lj un k a p ro gr am ba n.A hh oz , h og y a z o ss ze s h lb at f ol fe de zz Uk , k ez en fe kv on ek t Un lk a p ro gr am otkipr6bi1.lnl az {jsszes lehetse ges bemeno ad attal. Ez azon ban sajnos neml eh et se ge s. N ez zU nk e gy e gy sz er U p el da t:Program:Valtoz6 I,J: Egesz

    Be: I, JKi: I,JProgrBII rige.

    Hivel 216 kUlonbOzo er tekU egesz S ZBmot tudunk tarolni ezert az 0 _32 ., szs z es l eh et os eg 2 , am ln ek a l el ra sa ho z m ar 9 s za mj eg yr e v an sztlkseg, Ezrengeteg idot venne 1genybe, Igy nem is jarhat6 ut. A masik vegletet ak ov et ke zo - ke t S Z8 m o sz ta sa ra (!) k es zU lt - m eg le pB p ro gr am re sz le te n m u-t at ju k b e:Progr_:

    V al to z6 I ,J : E ge szBe: A, BKi: A-B [AlB kiirasa]Program rige.

    Ha ezt a p rogramot olyan bemeno adatokkal pr6baljuk ki, amelyben A= Ovagy B= l, akkor a program helyesen mUkodik, a hibat nem tudjuk felfedez-n i. E zu ta n a zt g on do lh at na nk , h og y r em en yt el en h el yz et be k er Ul tU nk ; h l-s ze n m in de n l eh et se ge s a da tt al n em t ud ju k k ip r6 bi 1. ln ia p ro gr am ot ; h a p e-d ig k ev es eb be l p r6 bi 1. lj ukk l, a kk or l eh et , h og y n em v es sz Uk e sz re a h ib a-kat. A helyzet azer-t nem ennylre rossz: ce Iunk csak az lehet, hogy at es zt el es t o ly an m 6d sz er re l h aj ts uk v eg re , a me ll ye l a p r6 ba k s za ma e ra -sen lecsokkentheto.

    Tesztesetnek a be- es ki_net! adatok es teltetelek egyUttes me gada-s at n ev ez zU k. A kk or t ud un k a t es zt el es e re dm en ye 1r al b ar m1 t i s m on da n!ha van e lkepzelesUnk arr6l, hogy ado tt bemeno adatra mllyen ere dmeny~var-unk,

    32

    A progralllkeszites technoUgiBJa.F og al ma zz uk m eg a t es zt el es alapelveit:

    1. A j6 t eszteset az , aml nagy va16sz inaseggel e gy m eg f el fe de tl en h lb atmutat ki a pr ogramban. P l. ket S Z8m legnag yobb k6zos oszt6 jat szamo-1 6 progrBllOt az [ 5,5] adatp!r utan a [ 6,6] -tal teljesen felesleg esk lp r6 ba ln l ( ug ya ni s 1 ge nc sa k r af ln al t, v a1 6s z1 nU tl en e l1 ra s eset.env is el ke dh et a p ro gr am [ 6, 6] -r a m as ke nt , m In t [ 5, 5] -r e) .

    2. A teszteset nemcs ak bemenB ada tokb61, ha nem a hozzajuk t artoz6 ered-m en ye kb Ol i s a ll . ' E gy eb ke nt n em t ud na nk a k ap ot t e re dm en y h el ye s v ag yh ib as v ol ta r6 l besze Int, A kesBbbl felhas znUas miatt ce Iszer-Ilat es zt es et ek et i s l el rn l a f ej le sz to i d ok um en ta ci 6b an v ag y e gy o na ll 6teszte lesl je8YZokonyvben,

    3. A me g n e r o ismetelheto tesztesetek kerUlendok, feleslegesen megnavel1ka programteszteles koltsegeit, idejet. Ne m is beszelve arr61 a bosz-s zU si l. gr 6l ,a mi .k or a p ro gr am un k e gy h ib as f ut as at n em t ud ju k m eg ls me -teln i, s Igy a hiba ls felfedetlen marad .

    4. T es zt es et ek et m in d a z ervenytelen, mind az ervenyes a da to kr a k el l k e-sziteni.5. M in de n t es zt es et bB l a lelleto legt{jbb informilci6t "kt kell banyasznl",

    a za z m in de n t es zt es et e re dm en ye t a la po sa n v eg lg kel I vlzsgUn l. Ezzelj el en to se n c s6 kk en th et o a s zU ks eg es p r6 ba k s za ma .

    6 . E gy p r6 ba e re dm en ye in ek v iZ ~g al at a s or an eg ya ra nt f on t os m eg al la pi ta -ni, hogy miert nem val6sit meg a program valamllyen funkc16t, amitelvilrunk tole, 1l1etve, hogy miert veg ez olyan tevekeny segeket is,a me ly ek et n em f el te te le zt Un k r 61 a.

    . 7. A p ro gr am t es zt el es et c sa k a p ro gr am i r6 ja t6 l k Ul on oo zo s ze me iy k ep esh at .e ko ny an e I ve ge zn t , E nn ek o ka , h og y a t .e sz te l es n em " j6 in du la tu "t ev ek en ys eg , s aj a! m un ka ja na k v iz sg Ua ta ho z m ln de nk i Ugy at1 h oz za ,h og y o nk e nt el en Ul j 6n ak f el te te le zl .

    A p ro gr am te sz te le s m 6d sz er ei t k et c so po rt ba o sz th at ju k a sz er in t, h og ya t es zt el es s ar an v eg re ha jt ju k- e a p ro gr am ot vagy nem. Ha csak a program

    33

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    19/54

    Tesztelesk6djat v1zsgaljuk, akkor statikus, ha a programot vegre is hajtjukt es zt el es s or an , a kk or d in am ik us t es zt el es ro l b es ze IU nk .

    1 . S t at ik us t es zt el es i m 6d sz er ek

    1.1. K odellenorzesA k 6d el le no rz es a p ro gr am s zo ve ge ne k m eg v1 zs ga la sa t j el en ti . A z a lg o.

    r itm us 10 g1k aja t k ell e kko r a p ro gr amb an v eg igk ove tn i, s m eg f1g yel ni ,h ogy a k ett o el ter -e e gy mas t6 1. Cs upa n a k 6d al ap jan is v is zon yla g k Ony .n ye n t ud h ib ak at f el fe de zn i e gy a va ta tl an , a p ro gr am k es zi to je to l k Ul on "b Oz o s ze me ly . S ok sz or s ze re nc se s, h a a p ro gr am k es zi to je e lm on dj a v al a-k in ek - so ro nk en t- h og y m it c si na l a p ro gr am , i ly en ko r g ya kr an s aj at m ~fe de zi fe l a h ib ak at. E z al ta lab an i s i gaz : a he lye s m eg ert es le gha tas o~s ab b p r6 ba ja a z u J i sm er et ek t ov ab ba da sa , m eg ma gy ar az as a. E ko zb en d er Ul ~h et f en y a g on do la ts or . a p ro gr am r os sz ul . f el Ul et es en e rt el me ze tt vagyk i do l go z at l an r e sz e i~ .

    1 . 2. F o r_ . i e l le n or z es , k e re s zt h iv a tk o za s i t a bl a za t ok "E gy p ro gr am ba n a z e lo fo rd ul 6 h ib ak at k et c so po rt ra o sz th at ju k: f or ma !

    ( sz in ta kt ik ai l. i ll et ve t ar ta im i ( sz em an ti ka i) j el le gU h 1b ak ra . H a e r-telmezot hasznal u nk , a kk or - a f or ma i e ll en or ze st m eg fe le lo en vataszt.ot tt es zt ad at ok ka l v a1 6 k ip r6 ba la ss al l eh et e le rn 1. A p ro gr am m in de n u ta si -t as at v eg re k el l h aj ta n1 l eg al ab b e gy sz er .

    I ge n s ok i nf or ma ci 6t s zo lg al ta t e gy p ro gr am r6 1. h a k Ul on bo zo kereszt-hivatkozas-tablazatokat k es zi tU nk r 61 a Iker-eezt.r-et'er-encfa) . E nn ek e gy ikt ip us a a v a. l oz ok r' oI k es zU lt t ab la za t. m el yn ek f el ep it es e a k ov et ke zBlehet:

    h i va t ko z as i h e ly e k a z on o si t as adatnev

    A h iv at ko za si h el ye ke t a zo no si t6 l is ta l eh et e gy s or sz am li st a ( va gye 1ja ras az ono s i t6 e s a zo nbe 1 Ul i r e 1at iv s or- sz am) , am i ben a zok a so roks or sz am ai s ze re pe ln ek , a me ly ek be n a z a do tt a da t e lo fo rd ul . A s or sz am m o-

    34

    A p r og r am k es z it e s t e ch n ol o gi a jag ot t sp ecl ali s je lle l ( pl , -- gal l je lol het jU k, h ogy a v alt oz 6 e rte ke tka po tt az a do tt so rba n. Az al abb i pe lda ban e lof ord ul e gy G gl oba ll s v al-t oz 6 e s eg y A lF A a Fo rga t e lja ras on bel UI d ef ini al t. l ok ali s a dat .

    adatnev tipus sorszamlistaForgat.AlFA VALOS Forgat:19-.22.25G EGESZ 29.-53:

    T er me sz et es en k ez ze l k es zi te nl l ly en t ab la za to t n ag yo n m un ka ig en ye S. a zo nb an a f or di t6 pr og ra m b iz to si tJ a a ut om at lk us anf el ad at . s ok e se tb en

    e zt a l eh et os eg et .

    1 .3 . T ar ta lm i e ll en or ze s, e ll en tm on dB s k er es esA f orm al hi ba kna I s okk al ne hez ebb f el fed ni a p rog ram ba n a ta rt alm i

    h ib ak at . E ze k f or ma il ag h el ye s p ro gr am ok ba n f or du in ak e io . d e m eg is f ' eI +-AI' k " " kk ell Ez ek al t.aIaban onmagukban ertelmetle-1 s me r he t Bk f o rl l l< 1S esz o zo .

    n ek , a p ro gr am ba v aI 6s z1 nU le g e l1 ra s, f ig ye im et le ns eg m ia tt k er Ul te k b e-I e ( de k or an ts em b iz to s, h og y t en yl eg h lb as ak ).

    F elhasznalatIan " objektumnA k d ek la ra ci 6s . re sz eb en s ze re pl B k on st an so k,Az egye? programegys"ge .

    t ip us ok , ~ aI to z6 k, e Ij ar as ok , f Ug gv en ye k, o pe ra to ro k, m as m od ul ok ra hl -v a tk o za s ok a p r og r am e gy s eg t o rz s eb e n s z er e pe I ne k -e .

    E z a v lz sg al at a b ea gy az ot t p ro gr am eg ys eg ek re i s k it er je sz te nd o.

    F elhasznalatlan valtoz6ert~ kv al to z6 na k e rt ek et a du nk , d e e zu ta n n emIl yen h ib a le het a z , h ogy e gy

    Ul 'tan meg egyszer erteket kap. Azhaaznar.luk s em mi re ,v ag y . ko zv etI en U a' a f o" lo "s ie ge sI := 1 e rt ek ad as e gy k or ab bia .l b bf p el da ba n v a1 6s zi nU le g" am lg os " c ik lu s j av it as a u ta n m ar ad ha to tt b en n:

    I := 1: C ik lu s I =l ~t ol 5 -1 g

    lEg y j 6 f or di t6 pr og ra m s ze ma nt ik uS e le mz oj e f el fe de zh et i o ke to35

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    20/54

    Teszteles

    E rt ek n el kU li v al to z6Az e ll en ke z8 v eg le t, a ml ko r e gy v al to z6 , a me ly n em r en de lk ez lk k ez d8 -

    e rt ek ke l, e l8 bb s ze re pe l k if ej ez es be n, m in t e rt ek ad as b al ol da la n.Ez a fajta hiba nem vehet8 eszre mindig formalisan, a program

    ( le ga la bb s zl mb ol ik us l v eg re ha jt as a n el kU l, p el da e rr e a k 8v et ke z8 p ro g-ramreszlet:Ha f akkor 1:=1k Ul on be n J := 1K:=I

    H em v al to zt at 6 e rt ek ad asHa e gy v al to z6 6 0m agB na k a d er te ket , es et leg ne han y h at as tal an e rt ek

    k om bi na la sa va l, a z vagy f ele s 1e ges , v agy p ed lg eg y e se tl ege s e Lt r- asr -autalhat:

    1:=1*1-0 [ ta la n a z 1 := 1* 1- 0 a h el ye s? l

    A zo no sa n i ga z ( ba mi sl 1 0g 1n l f "o ra ul 8kAz e l8 ga zA s- e s c ik lu sf el t~ te le k f or ma il ag h el ye se k l eh et ne k U gy I s,

    h og y a b enn Uk s ze re pl8 v al toz 6k e rt ek et8 1 f Ugg et len UI m in dig a zo no s e r-teket vehetnek fel. Ekkor az elagazas egyik aga biztosan nem hajthat6ve gre , a c ikl us p edi g v ag y v eg te len l es z, va gy pe di g a ci kl usm ag ot e gy -s ze r s em h aj tj uk v eg re . E gy -k et p el da e rr e:

    Ha 1< 1 e s 1 >= 10 0 a kko r .. . [ ta la n a r el ac i6k m eg fo rdu lt ak? lC ik lus &m ig 1< 1+1 . .. I

    K o ns t an s e r te k U k i e j ez e se kA l ogi ka i f el tHe le khe z h as on l6a n a z a rit me tik ai ki fej ez ese kn el i sgy ami s a k on st. an ssa g, am lk or a ki fe jez es va gy eg y r -es ze nek e rte ke n em

    fU gg a b en ne sz ere p1 6 v alt oz 6kt 61 . E z e gy es es et ekb en vi szo ny lag os b o-n yo lu lt sS gu k m ia tt n eh ez en e sz re ve he tB l eh et , p el da ul :

    X:= A2-B2-(A+B)(A-B)Y:=cos(X)/sin(X)tan(x)

    36

    A p r og r am k es z it e s t e ch n o1 6 gi a javagy e g y k e ve s be n y ll v an v al 6 pe Ida:

    X:= A3/A-B)*(A-C + B3/B-C)(B-A + C3/C-A)(C-Blla m i e g ys z er U si t ve m i nd 6 ss z e:

    X := A +B +CE nn ek , i ll et ve a z e lo z8 ne k a f el is me re se he z k lf ej ez es ek a lg eb ra l e gy -

    s z er U si t 8j e ve l k e ll r e nd e lk e zn U nk ! (Ez egyebklmt hatekonysagjavit6kenti s m Uk 6d he t, j 6 f or di t6 pr og ra mo k r en de lk ez ne k i ly en o pt im al iz a1 6 e sz kB z-z e l. l

    V e gt e le n c i kl u sA z e dd ig ie kt 81 e lt er 8 v eg te le n c ik lu st o ko zh at , h a e gy s za ml al 6s c ik -

    l us ba n - am en ny ib en a n ye lv s zi nt ax ls a e gy al ta la n m eg en ge dl - m eg va lt oz -t a tj u k a c i kl u sv a lt o z6 t :

    C ik lu s 1 =1 -t 61 N -i g1:=1C ik lu s v eg e

    S zl nt en v eg te le n c lk lu sr a u ta l, ha e gy f el te te le s c lk lu sn al a c ik lu s-f el te te lb en s ze re p1 8 v al to z6 k a c lk lu sm ag ba n n em v al to zh at na k m eg ( me rtp el da ul n em s ze re pe ln ek e rt ek ad as bajo I da la n} . S aJ no s a p r- og r- aa oz asin ye lv ek m eg en ge dl k, h og y a c ik lu sv al to z6 t a c ik lu sm ag ba n h iv ot t e lj ar asi s m 6d os it sa , e mi at t a b iz to s f el is me re se n ag yo n n eh ez .

    E r te k n e lk U li . C Ug g ve n y, o p er a to rA kk or f or du l e lB , h a f Ug gv en y- v ag y o pe ra to rd ef in ic 16 e la ga za st t ar -

    t al ma z, s a z e la ga za s v al am el yl k a ga n n em a du nk v is sz a f Ug gv en ye rt ek et .P,Hdaul:

    F t ig g v6 n y A b s z (X ) : E g es zH a X

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    21/54

    TesztelesMellekhatassal rendelkez8 fUggveny, operator

    H at em at ik ai e rt el el lb en a f Ug gv en ye k a f Ug gv en ye rt ek m eg ha ta ro za sa nki vUI mast nem csinaIhatnak. A progr-aaozaat n ye l v ek t ob bs eg e azonbanm eg en ge di , h og y a f Ug gv en ye k m eg va lt oz ta ss Bk p ar am et er ei k e rt ek et , v ag ya ka r g lo ba li s va lt oz 6k at i s. E bb Ol s ok p ro bl em a s za rm az ha t, p el da ul a z

    Y:=f(X)+f(X) es az Y:=2f(X)k if ej ez es a rt e ke k Ul on bO zo i s l eh et !

    2 . Dill8lllikusesztelesi m6dszerek

    Az e l8 zo r es zb en a s ta ti ku s t es zt el es l m 6d sz er ek et v iz sg al tu k, R ho l at es zt el es t a p ro gr am v eg re ha jt as a n el kU l, a p ro gr am s zo ve ge ne k v iz sg al a-t av al v eg ez tU k. A d ln am ik us t es zt el es i m 6d sz er eK a la pe lv e e pp en a z, h og ya p ro gr am ot m Uk 8d es k oz be n v iz sg al ju k.

    Te sz tes et ek et ke tfe le m 6d on t ud unk v al asz ta nl . E gy l ehe to se g a z un ,f ek et e d ob oz m 6d sz er , m a s n ev en a da tv ez er el t t es zt el es . E m 6d sz er a lk al -ma zas ak or a t es zt el8 n em v es zl f igy el em be a pr og ram be ls o sz er ke zet et ,p on to sa bb an n em a zt t ek in ti e ls 8d le ge s s ze mp on tn ak , h an em a t es zt es et e-k et a f 'eI ad at m eg ha ta ro za s a la pj a. n v aI as zt ja m eg .

    A e el t er me sz et es en a l eh et o l eg ha te ko ny ab b t es zt el es e lv eg ze se , a za zaz osszes hIba megtalaIasa a programban. Ez ugyan e l vi l eg l e he t se g es ,k ime ri t8 b em en et te sz te les t k el l ve gr eh ajt an i, a p ro gr am ot ki ke II p r6 -h aln i a z o ss ze s I eh et se ges b em en o a da tra . Ez ze l a m6 dsz er re l a zo nb an ,m in t k or ab ba n l at tu k, m en ny is eg i a ka da ly ba U tk oz he tU nk .

    Egy ma si k l ehe to se g a f eh er d obo z m 6d sze r ( log ik a ve zer el t te szt e-l es ). E bb en a m ?d ~z er be n a t es zt es et ek m eg va la sz ta sa na l l eh et os eg va n ap ro gr am b el s8 s ze rk ez et en ek f lg ye le mb ev et el er e i s.

    A e el a p ro gr am mi ne l al ap osa bb t es zt el ese , er re j 6 m 6ds ze r a ki me ri t8(rt t es zt eI es. E z a zt je le nt i, h ogy a p r- ogr -a ab an az o ss zes l eh et se gesu ta t v eg ig ja rj uk , a za z a nn yl t es zt es et et h oz un k l et re , h og y e zt e le rh es -sU k v el e. Az a problema, hogy meg viszonylag kis programok esetEm isigen nagy lehet a tesztelesl utak SZ8mB. G ond ol ju nk a e ik lu so kra ! S ot

    38

    A p r og r aa k es z lt e s t e ch n ol 6 g1 a ja, zz el a m 6d sz er re l a h ii my z6 u ta ka t n em l eh et f el de ri te ni .

    H iv el se m af ehe r d ob oz m 6d sze rr el , se m a fe ke te d obo z m 6ds ze rr el ne mlehetseges a klmerito teszteles, el kell f'ogadnunk, hogy nem tudjuk, gy et le n p ro gr am hi ba me nt es se ge t s em s za va to ln i. A t ov ab bi e el e ze k u ta n~ 8 ss ze s l eh et se ge s t es zt es et h al ma za b6 1 a l eh et o l eg ha te ko ny ab b t es zt -~ s et c so p or t k i va l as z ta s a l e he t .

    A t es zt el es h at ek on ys ag at k et fe le j el le mz o h at ar oz za m eg : a teszteleskoltsege es a f el f ed e tt h l ba k a r an y a. A l e gh a te k on y ab b t e sz t es e te s op o rt~ eh Bt m in im al i s k ol ts eg ge l m ax im al is s za mu h ih at f ed f el .: le fi nlc i6 : P r6 bB nal c ne ve zz Uk a t es zt ese te k az on h alm az at , am eUy el ap r og r am o t t e sz t el e sk o r k i pr 6 bB l ju k .: le fi ni eI 6: I de .l is p ro ba a z a p r6 ba ,. a me ll ye l a p ro gr am ba n s ze re pl o o sz -; z es h i ba j el e ns e g f e lf e de z he t o.D ef in lc i6 : Ad ot t c sz in ten .e gb lzh at o pr oba az a pr 6ba , a me ll yel l -c va -l 6 sz i nU s eg g ei f e lf e dj U k a z 8 s sz e s h i ba j el e ns e ge t .

    A megbizhat6sag pont os .erese sem oldhat6 meg altalaban, igy a~ e sz t el e sk o r c s ak m e ge r ze s ei n kr e a l ap o zh a tu n k.

    a . l . F ek et e d ob oz m 6d sz er ek

    a . l . 1 . Ekvlvalenciaosztalyok kereseseA t es zt el es a la pe lv ei ne k i sm er te te se ne l J 6 t es zt es et ne k n ev ez tU k a zt

    a t es zt es et et , a me ly re m in el n ag yo bb v a1 6s zi nU se gg ei a ll , h og y h lb Bt t a-l al un k v el e a p ro gr am ba n. M as re sz t m eg al la pl to tt uk , h og y a k lm er it o b e-m en et l t es zt el es g ya ko rl at ll ag m eg va l6 s I t ha ta t la n, i gy m eg k el l e le ge d-n Un k a b em en o a da to k e gy s zU k r es zh al ma za va l t or te no t es zt el es se l. E ze kutan azert, hogy ez a r es zha lm az m in el ha tas os ab b l eg ye n, a b en ne sz e-r ep lo t es zt es et ek re t el Je sU IJ en ek a k ov et ke z8 k:- M in de n t es zt es et ne k a nn yi b el le ne ti f el te te lt ( a b em en o a da to ka t l el r6

    a ll it as t) k el l k le le gi te nl e, a me nn yl t e sa k I eh etseges , hogy ezzel as z Uk s eg e s t e sz t es e te k s z am a t c s ok k en t sU k .

    39

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    22/54

    Teszteles- A b em en et l t ar to ma ny t v al am ll ye n a bd on r es ze kr e k el l o sz ta ni , e s e ze k-

    r e a r es ze kr e j el le mz o t es zt es et ek et k el l v al as zt an i. E ze kr e a r es ze k-re (o sz tal yo kr a) leg ye n 1 9a z a ko ve tke zo : h a eg y i ly en os zta ly b6l va -l a sz tu n k e g y t e sz t es et e t, es e zz el h lb at t al al un k a p ro gr am ba n, a kk oraz oszU.ly mas elemet vUasztva is nagy v a1 6s zl nU se gg el h ib at t ah U-DAnk a p ro gr am ba n. H as on 16 an : h a a k iv al as zt ot t t es zt es et re a p ro gr amj ol m Uk od ik , a z o sz ta ly m as ik e le me t v al as zt va i s n ag y v a1 6s zi nU se gg elh e ly e s e r ed m en y t adna,E ze ke t a z e lv ek et v es zi f ig ye le mb e a z e kv Iv al en ci ao sz ta ly ok m 6d sz er e.

    E k vI v al e nc i ao s zt a ly ok a t n e mc s ak a z ervenyes, han em a z ervenytelen ada-to kho z is l etr e ke ll hoz ni , es a pro gr amo t azo kk al i s ki pr 6b aln i.

    N e ha n y j 6t a na c s a z e k vi v al e nc i ao s zt a ly o k m e gt al a la s Bh o z:- H a a bem en eti fel te te l er tek ta rlo ma ny t de fin ia l, a z e rv eny es e kvi va -

    l en ci ao sz ta ly l eg ye n a m eg en ge de lt b em en o e rl ek ek h al ma za , a z e rv en y-telen ekvivalenciaoszlUyok pedf g az als6 es a felso hatarol6 tarto-many . PI . h a az ad at ok o szt al yz ato k (e rte kU k 1 es 5 ko zo tt van ), a kk ore ze k a z e kv i va le n ci a os z ta l yo k r e nd r e:1 ~ 1 ~ 5 es i < 1 es i > 5.

    - Ha a be me net i fe lt ete l er te kek s zam at ha ta roz za m eg , akk or a z e loz oh ozh aso n1 6a n j ar ju nk e 1. PI . ha be k eH o lv ass un k l eg fel je bb 6 k ar akt er t,a kk or a z e rv en ye s e kv iv ai en ci ao sz ta ly : 0 -6 k ar ak te r b eo 1 v as as a, a z e r-v en yt el en e kv iv al en ci ao sz ta ly : 6 -n al t ob b k ar ak te r b eo 1 v as as a. ( O- na lk ev es eb b n em f or du lh at e lo .)

    - Ha a b eme ne t f elt et el e a zt mon dj a k l, h og y a be men o a dat na k va la ml lye nm eg ha la ro zo tt j el le mz ov el k el l r en de lk ez ni , a kk or k et e kv iv al en ci ao sz -l al yt k el l f el ve nn l: e gy e rv en ye se t e s e gy e rv en yt el en t.

    - H a o ku nk v an f el te te le zn i, h og ya p ro gr am v al am el yi k e kv iv al en ci ao sz -t al yb a e so e le me ke t k U1 6n fe le ke pp en k ez el i, a kk or a f el te te le ze sn ekm e gf e le 16 e n b o nt s uk a z e kv i va l en c ia o sz t al y t t ov a bb i o sz t al y ok r a.

    P el da : S za mo lj uk m eg e gy m ax im um 4 0 k ar ak te re s s z6 ve g m ag an ha ng zo it !

    40

    A p r og r am k es z lt es t ec h no lo g i8 j aAz ekvivaleneiaosztRlyok:

    - 0 h Os sz us ag u s zo ve g,- > 40 k ar ak te rb Ol a ll o s zo ve g,1 . .4 0 k ar ak te rb Ol a ll o s zB ve g, n in es b en ne m ag Rn ha ng z6 ,- 1 .. 40 k ar ak te rb Ol a Ho s zo ve g, v an b en ne m ag an ha ng z6 .E z u t6 bb i o sz ta ly t e se tl eg u ja bb o sz ta ly ok ra b on th at ju k:

    - a szo ve gbe n v an A- be tli ,- a s zo ve gb en v an A -b et l i,

    L eh et se ge s a zo nb an e gy m as ik o sz ta ly ok ra b on ta s i s:- a s zo ve g m ag an ha ng z6 i n ag yb et Uk ,- a s zo ve g m ag an ru an gz oi k is be tU k.

    H a m ar r en de lk ez es Un kr e a ll na k a z ( to bb s ze mp on t s ze ri nt i) e kv iv al en -c ia os zt al yo k, a kk or a t es zt es et ek et a k 6v et ke z6 k et e lv .a la pj an h at ar oz -h at ju k m eg :

    A mi g a z e rv en ye s e kv iv al en ei ao sz ta ly ok at I e n em f ed tU k, a dd ig k es zi t-s Un k o ly an t es zt es et ek et , a me ly ek m in el t ob b s ~e mp on t s ze ri nt i e rv e-n y es e k vi v al e ne i ao s zt a ly t l e fe d ne k !

    - M in de n e rv en yt el en e kv iv al en ei ao sz ta ly ra i rj un k e gy -e gy , a z o sz t. al ytl ef ed o t es zt es et et . T 6b b h ib a e se te n u gy an is e l of or du l ha t , h og y a h i-b as a da tok l efe di k e gym aa t , a ma so dik hiba kiJelzesere az elsa hiba-je lze s m iat t mar ne m k er UI so r.

    2 .1 .2 . H at ar es et e le mz esA h at ar es et e le mz es k et d ol og ba n k Ul on bO zi k a z e kv lv al en ei ao sz ta ly ok

    keresesenek m6dszeretol, annak b iz o ny o s s z em po n tb 61 k ie g es z lt 6 m o ds z er e :- A ze kv iv al en ci ao sz ta lY k l va .L aa ztot; e le me ne k a h at ar -o n l ev a e le me ke t

    vaf aszt ja.- N em es ak a b em en et i, h an em a ki rn en et i e kv iv al en ei ao sz ta ly t i s f ig ye le m-

    b e v es zi .F el so ro lu nk n eh an y s ze mp on to t a h al ar es et e I ea ze s m eg va lo si ta sa na k

    elosegitesehez:H a a b em en et i f el te te l e gy e rt ek la rt or nA ny t j el el m eg , i rj un k t es zt es e-t ek et a z e rv en ye s t .a r- to ma nya ls 6 e s f el so h at .a r- ar -as a z e rv en yt el en

    41

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    23/54

    Tesztelestartomil.nynaka hatar- kozelebe esa elemerel Pi.: ha a bemeneti tarto-m a n y a (0,1) n yl lt I nt er va ll um , a kk or a 0, 1 , 0.0 1, 0.99 e rt ek ek re e r-d em es k lp r6 ba ln l a p ro gr am ot .

    - H a e gy b em en et i f el te te l e rt ek ek s za mo ss ag at a dj a m eg , a kk or h as on l6 anj ar -ju nk e l, m int az e lo zo es et be n. Pl .: h a r en dez nU nk ke ll 1-128 ne -v et , a kk or e el sz er U a p ro gr am ot k lp r6 ba ln l 0, 1 , 128 , 129 nevvel.

    - Ha sz nal ju k a fe nt l f elt et ele ke t a z o ssz es k lm en etl o sz ta lyr a l s.P el da : S za mo lj uk m eg e gy m ax lm um 40 k a ra k te r es s z ov e g m a gB n ha n gz o it !

    B em en et s ze ri nt h ar om p ro ba k el l: 0, 40, 41 k a ra k te r es s z ov e gK ime ne t s ze ri nt ke t p r6b a k el l n ine s ma ga nha ng z6,m ln de n b et U m ag an ha ng z6

    2 .2 . F eh er d ob oz m 6d sz er ek

    Ez ekn el a m od sze re kne l a te sz te les t a p ro gra ms zov eg i sm ere te be n v e-g ez zi lk . A t es zt el es h ar om l ep es e gy ma su ta nj ab 61 U:- e gy k ip r6 ba la si s tr at eg ia t v al as zt un k a p ro gr am s ze rk ez et e a la pj an ,- a s ta rt eg ia a la pj an m eg ad ot t t es zt ut ak ho z t es zt pr ed ik at um ok at r en de -

    lUnk,- a t es zt pr ed lk at um ok e kv iv al en ei ao sz ta ly ok at j el ol ne k k i, a me ly ek bO l

    e g y- e gy t e sz t es e te t v a la s zt u nk .

    2 . 2. 1 . K i pr o bl l as i s t ra t eg i stI tt a zt k el l m eg ha ta ro zn un k, h og y m el y, a p ro gr am gr af ba n s ze r- eplo u ta k

    m en te n k el l k lp r6 ba ln i a p ro gr am ot .

    U ta si ta so k e gy sz er i l ef ed es en ek e lv e2A m6 ds zer l en yeg e o ly an te szt es ete k kl va las zt asa , a mel ye k al ap jan

    m ln de n u ta si ta st l eg al ab b e gy sz er v eg re ha jt ha tu nk a p ro gr am ba n. Ba r ez

    2 A p r og r am g ra f e s om o po n tj a ln a k l e fe d es e .

    42

    A p r og r am k es z it e s t e ch n o1 6 gi B Jaso ks zor j 6 m 6ds ze r, d e n ell t ok el ete s, nezztik meg ugyanls a kovetkezoe g ys z er U p e ld a t:

    Ha X >O a kk or lC i: XE bb en a p el da ba n e gy et le n p r6 ba va l e le rh et ji lk a z o ss ze s u ta sl ta s v eg -

    rehajtasat (pl. X=l), de ezzel a pr6baval nem derUlne ki az, ha az X> Of el te te l h el ye tt a z ~O s ze re pe ln e, a za za p ro gr am h ib as l en ne .

    D O nt e sl e fe d es e l ve3It t a z el 5z one l e gy k le sit e ro seb b ko vet el men yt a lk al maz un k. A p ro g-

    r am ba n m ln de n e gy es e la ga za s 1 9a z- , i ll et ve h am is -a ga t l eg al ab b e gy sz erbe k el l j ar ni a t esz te les so ra n. A d on te sl ef ed es e lv et f ig ye le mb e v ev ee le ge t t es zU nk az u ta si ta sl ef ed es k ov et el me ny en ek l s. I tt i s m ar ad na ka zo nb an p ro bl em ak , n ez zU nk e gy p el da t:

    Ha X> O es Y> O a k ko r l C i: X YEb ben az es et ben az (X =l, Y =l ) e s a z (X =- l, Y =-l ) t es zte se te k l efe dl k

    a donteseket, de nem vennenk eszre velUk azt, ha a masodik feltetel t( Y> O) r os sz ul i rt uk (vagy l e ha g yt u k) v o ln a .A r es zf el te te ll ef ed es e lv e

    E bb en az e set be n o ly an t es zt ese te ket ke ll k es zlt en i, am ely he z a do n-t es ek be n s ze r- ep lo m in de n r es zf el te te lt L eg a la bb e gy sz er H AM IS , l ll et veI G AZ e r ec l me n ny e l e r te k el U nk k i .

    A z e lo bb i p el di lt e sz er in t k i k el l p ro bi ll ni a k ov et ke zo t es zt es et ek -kel:

    ( X= l , Y= l) , .( X= - l, Y = -l ) , ( X= l, Y = -l l

    S p ec ia l i s t es zt es et ek e lv eA f en ti e lve k m el let t - a fe ket e d obo z m od sze re kne l i sme rt ete tt o tl e-

    t ek a la pj an - v il la ss zu nk a z e gy es u ta kh oz s pe ei al is t es zt es et ek et i s!

    3A p ro gr am gr af e le in ek l ef ed es e.

    43

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    24/54

    TeszteIesAz elozo peldat eszerlnt peldaul a fentleken kivUl meg pr6baljuk kl

    az ( x =o , Y = -1 ) es az ( X =l , Y = O ) t e sz t es e te k ke l i s !

    2.2.2. Tesztesetgenera16.odszerekH og ya n l eh et e ld on ten i, ho gy m el y a da to kk al p r6 ba lju k ki a p ro gr am ot

    a hh oz , h og y a v al as zt ot t k ip r6 ba la sl s tr at eg ia t j 61 a lk al ma zz uk ?A l eg eg ys ze rU bb e se t a z, h og y v el et le ns ze rU en v al as zt un k a da to ka t, s

    a p ro gr am v eg re ha jt as a sor-an vizsgaljuk, hogy mely utakon jartunk. Ap on to s l ei ra sh oz e gy -k et d ef ln le 16 ra v an s zU ks eg Un k, a me ly ek a p ro gr amg ra ff al v a1 6 l ei ra sa ra e pU ln ek .Deflnle16: BBzisUtnak4 n ev ez zU k a p ro gr am gr af o ly an u tj at , a me ly- a k ez do po nt t6 l a l eg el so e la ga za s- v ag y e lk lu sf el te te l k le rt ek el es ei g

    tart,- e la ga za s- v ag y e lk lu sf el te te lt ol a k ov et ke zo e la ga za s- vagy elklusfel-

    t et el h el ye lg v ez et ,_ e la ga za s- vagy e lk lu sf el te te lt ol a p ro gr am v eg ei g t ar t, s k oz be n mAs

    feltetelklertekeles nines.D ef in le l6 : V ez er el a b az is ut e ls o e le .

    M os t m ar me go ld ha tju k a z e lo bb fe lv et et t p rob le ma t. H ely ez zU nk el aprogram minden vezere l en egy-egy szamla16t! Pr6M l juk ki a programotu ja bb e s u ja bb t es zt ad at ok ka l m ln da dd ig , a mi g m ln de gy lk s za ml a1 6 e rt ek ele ga la bb 1 ne m le sz !

    Alapveto problema, hogy ez a m6dszer nagyon gazdaaagt aj a n, h ls ze ns em mi ly en se gi ts eg et n em a d a t es zta da to k va la sz ta sa noz , s 19 y e set le ge sa k n ag yo n s ok k lp r6 ba la ss al t ud ju k m eg va l6 si ta nl a k lp r6 ba la si s tr at e-g i at . A j o bb m e go l dl ! .s h ozU j ab b d e fi n le i 6k a t n e zz U nk :D ef in lc i6 : T es zt ut ak na k n ev ez zU k a p ro gr am gr af on a tv ez et o, a k ez do po nt -t6 1 a v eg po nt ig ha la d6 o ly an ut aka t, am el ye k m in den be nn Uk sz er ep lo e lt

    4 E d ef lni el 6 az e le k e gys ze re s l efe de se he z i ll es zk ed lk , a e so m6p on to ke gy sze re s l ef ed ese he z e l ke ll ha gy nl az o ly an b az is ut aka t, am el ye k r e-szei mA s bazisutnak.

    44

    A p r og r aa k es z it e s t e ch n o1 6 gi a jap o nt o sa n e g ys z er t a rt a lm a .z n ak .D ef ln ic l6 : T es zt pr ed ik at ua na k n ev ez zU k a zo ka t a b em en o a da to kr a v on at ko -z 6 f el te te le ke t, a me ly ek t el je sU le se e se te n p on to sa n e gy t es zt ut on k el lveglghaladni.

    A t es zt es et ge ne ra la s e ls o l ep es e t eh l! .t m in im al ls s za mu o ly an t es zt -u t m eg ha ti ro za sa , a me ly ek l ef ed ik a k lp r6 ba la sl s tr at eg ia na k m eg fe le lo ena programgrafot.

    Ha ez ze l ke sz en va gyu nk , a kk or h at ar oz zu k m eg e ze n t es zt ut ak t es zt -p re dl ka tu ma l t ! E hh ez a p ro gr am s zi mb ol 1k us v eg re ha jt is ar a v an s zU ks eg .1 nd ul Ju nk k l a z e lo fe lt et el bB ll H al ad ju nk a p ro gr am ba n az e l so e l ag a za s -v ag y e lk lu sf el te te li g, s a f or mu la t a k oz bU ls o m Uv el et ek ne k m eg fe le lo entranszformaljuk! A t e sz t ut n ak m e gf e le H i 8.g f el te te le t e s k ap cs ol at ta lkapcsoljuk hozza a te sz t p r- ed lk at ua ho z , m aJ d f ol yt as su k a s zl mb ol 1k usv eg re ha jt as t e ge sz en a p ro gr am v eg po nt ja 1g !

    P ro bl em a l eh et ez ze l a z, h og y l eh et et le n t es zt ut at v al as zt ot tu nk , az -az a k ap ot t t es zt pr ed lk at um a zo no sa n h am is l es z.

    H ar ma di k l ep es ke nt m in de n e gy es t es zt pr ed 1k at um ho z ( am el ye k e gy -e gye k v1 v al e nc l ao s zt a ly t r e pr e ze n ta l na k ) v a la s sz u nk e g y- e gy t e sz t es e te t !P e ld a : E g y o s zt a ly t a nu 1 6i a t la g an a k a l ap J l! . na j e le s ek s z l! . mB . na ke g ha t a-

    r-ozasa.Program:B e: N ,A TDB : =0 : 1:=1C ik lu s a ia ig I:sN

    Ha AT(14.5 a k ko r D B := D B +l1:=1+1C ik lu s v eg eKi: DB

    P ro gr am v eg e.A p ro gr am ba n k et f el te te lk ie rt ek el es s ze re pe l. A p ro gr am on a tv ez e-

    t o t e sz t ut a k:A. a e ik lu sf elt et el e le ve ha m1 s, a c lkl us ba n em l ep Un k be ,B . a c 1k lu sf el te tel e los zo r i ga z, a c lk lus ba b el ep ve az el ag az as fel -t et el 1 9a z, s u ti l. naa c lk lu sf el te te l h am ls sa v al ik ,C . a c lk lu sf el te tel el os zo r i ga z, a c lk lus ba be le pve az el aga za sf el -t et el h am ls , s u ta na a c ik lu sf el te te l h am is sa v al ik ,

    45

  • 5/12/2018 Szlvi Pter-Zsak Lszl - A programkszts technolgija

    25/54

    Teszte16sE M rom utb61 minimUisklmt az utols6 kettBt vataszt juk, az elsB

    m i nd e gy i kU k ne k r e sz e .Az e 15 fe lt et el : N ~O e s V j ( 1s jS N) : 1 sA T( j) s5 .M in dk et t es zt ut na l e l k el l j ut ni e lB sz Br a c ik lu si g, e mi at t t es zt -

    p re di ka tu mu k i gy a la ku l:B -C . N ~O es Vj ( 1S jS N): 1 sA T(j )S 5 es D B= O e s 1 =1 .

    V eg yU k m os t f ig ye le mb e, h og y a c ik lu sf el te te ln ek e lB sz or i ga zn akk el l l en ni e:B-C. N~O es Vj (lsjSN): 1sAT(j)s5 es D B= O es 1=1 es IsN.

    E b bB l k o ve t ke z ik :B-C. N~l es Vj (1sjS N): 1sAT(j)s5 es DB=O es 1= 1.

    K Ov el ke zi k a z e la ga za sf el te te l, a me ly el a k et l es zt ul ni l. lk el fe le -keppen k el l f ig ye le mb e v en ni :B. N~l es Vj (1Sj SN) : 1s AT( j)S 5 e s D B= O e s 1= 1 e s AT (I 4.5 .C. N~l es Vj (1Sj SN) : 1s AT (j) s5 e s D B= O e s 1= 1 e s AT (I) S4. 5.

    Az e ls o es et ben ve gr e ke ll ha jt anl a z ela ga za sb an s ze re pl o n ov e-l es t, a m as od ik ba n n em , u ta nu k a t es zt pr ed ik at um e gy e gy sz er U a ta la -kitassaiB. N~ 1C. N~ 1

    ig y alakul :e s V j ( lS js N) :e s Vj ( lS jS N) : 1s AT( j) S5 e s D B= 1 e s 1= 1 e s AT (1 4.5 .1 sAT (j) s5 e s D B= O es 1 =1 es AT (1 )S 4.5 .

    A c ik lu sv Ul oz 6 n ov el es e u la n a c ik lu sf el te te ln ek m ar n em s za ba dteljesUlnie:B.C. N~l es Vj (lSjSN): 1sAT(J)s5 es DB= 1 es 1= 2 es AT(1 4.5 es I>N.N