emelt érettségi c++

Embed Size (px)

Citation preview

  • Psztor Attila

    Algoritmizls s programozs

    tanknyv az emeltszint rettsgihez

    11. RETTSGI FELADATOK.................................................................................................................124

    11.1. LOTTO (2005. V.) ..............................................................................................................................124 11.2. A VIGENRE TBLA (2005. X.)..........................................................................................................128 11.3. FEHRJE (2006. V.) ...........................................................................................................................133

  • 11.1. Lotto (2005. V.) 11. rettsgi feladatok

    124

    11. rettsgi feladatok Ebben a fejezetben az elmlt 4 rettsgi idszak emeltszint informatika rettsgik prog-ramozsi feladatai kzl fogunk nhnyat megoldani. Elssorban a mkdkpes megol-dsra koncentrlunk, nem fordtunk majd klns figyelmes az elegancira s a hat-konysgra. A feladatok megoldst rszfeladatonknt egybl kdolva fogjuk megoldani.

    11.1. Lotto (2005. V.) Magyarorszgon 1957 ta lehet ts lottt jtszani. A jtk lnyege a kvetkez: a lott-szelvnyeken 90 szm kzl 5 szmot kell a fogadnak megjellnie. Ha ezek kzl 2 vagy annl tbb megegyezik a kisorsolt szmokkal, akkor nyer. Az vek sorn egyre tbben hdoltak ennek a szerencsejtknak s a nyeremnyek is egyre nttek. Adottak a lottosz.dat1 szveges llomnyban a 2003. v 51 hetnek ts lott szmai. Az els sorban az els hten hzott szmok vannak, szkzzel elvlasztva, a msodik sorban a msodik ht lottszmai vannak stb. Pldul: 37 42 44 61 62 18 42 54 83 89 ... 9 20 21 59 68 A lottszmok minden sorban emelked szmsorrendben szerepelnek. Az llomnybl kimaradtak az 52. ht lottszmai. Ezek a kvetkezk voltak: 89 24 34 11 64.

    Ksztsen programot a kvetkez feladatok megoldsra!

    1. Krje be a felhasznltl az 52. ht megadott lottszmait! 2. A program rendezze a bekrt lottszmokat emelked sorrendbe! A rendezett sz-

    mokat rja ki a kpernyre! 3. Krjen be a felhasznltl egy egsz szmot 1-51 kztt! A bekrt adatot nem kell

    ellenrizni! 4. rja ki a kpernyre a bekrt szmnak megfelel sorszm ht lottszmait, a

    lottosz.dat llomnyban lv adatok alapjn! 5. A lottosz.dat llomnybl beolvasott adatok alapjn dntse el, hogy volt-e olyan

    szm, amit egyszer sem hztak ki az 51 ht alatt! A dnts eredmnyt (Van/Nincs) rja ki a kpernyre!

    6. A lottosz.dat llomnyban lv adatok alapjn llaptsa meg, hogy hnyszor volt pratlan szm a kihzott lottszmok kztt! Az eredmnyt a kpernyre rja ki!

    1 A lottosz.dat llomny a www.okev.hu cmrl tlthet le. Az rettsgi vizsgk linkre kattintva ki kell vlasztani a 2005. mjus-jniusi rettsgi rsbeli feladatok linket, majd az Emeltszint rsbeli retts-gi vizsgk linket, s ezen az oldalon az informatika trgy mellett letlthetk a forrsok. Az llomny megtallhat a http://pasztora.web.fazekas.hu/tankonyv cmen is.

  • 11. rettsgi feladatok 11.1. Lotto (2005. V.)

    Fzze hozz a lottosz.dat llomnybl beolvasott lottszmok utn a felhasznltl bekrt, s rendezett 52. ht lottszmait, majd rja ki az sszes lottszmot a lotto52.ki szveges fjlba! A fjlban egy sorba egy ht lottszmai kerljenek, szkzzel elvlasztva egyms-tl! Hatrozza meg a lotto52.ki llomny adatai alapjn, hogy az egyes szmokat hnyszor hztk ki 2003-ban. Az eredmnyt rja ki a kpernyre a kvetkez formban: az els sor els eleme az a szm legyen ahnyszor az egyest kihztk! Az els sor msodik eleme az az rtk legyen, ahnyszor a kettes szmot kihztk stb.! (Annyit biztosan tudunk az rt-kekrl, hogy mindegyikk egyjegy.) Plda egy lehetsges eredmny elrendezsre (6 sorban, soronknt 15 rtk). 4 2 2 4 2 2 6 1 1 2 1 5 2 1 1 1 3 5 0 5 5 2 6 6 5 1 0 6 4 3 3 3 5 4 3 1 4 2 2 4 2 4 1 2 3 4 2 1 2 3 2 2 2 4 4 5 1 3 5 5 5 2 0 2 2 4 4 3 1 3 6 1 5 6 2 4 3 2 2 3 1 1 4 1 3 3 2 1 5 3 Adja meg, hogy az 1-90 kztti prmszmokbl melyiket nem hztk ki egyszer sem az elmlt vben. A feladat megoldsa sorn az itt megadott prmszmokat felhasznlhatja vagy elllthatja! (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89.) Megolds: A program kszts els fzisban az elre lthatan szksges vltozkat deklarljuk, s elksztjk a fprogramot. A megadott prmszmokat tpusos tmbkonstansban troljuk (TP megengedi). Az lsz tmbbe olvassuk majd be a lottszmokat, s a gyak tmbben szmolunk elfordulsi gyakorisgot.

    A fprogram gyakorlatilag a 9 feladat eljrsnak meghvst tartalmazza:

    125

  • 11.1. Lotto (2005. V.) 11. rettsgi feladatok

    Az els eljrs bekr t szmot szkzzel elvlasztva (a vgn kell csak ENTER-t tni. Semmit nem ellenriz, de egybl az lsz tmb 52. sorban trolja azokat:

    A msodik feladatban krt rendezst a minimumkivlasztsos rendezssel valstjuk meg (az lsz tmb 52. sorban dolgozik), majd kirjuk a rendezett elemeket:

    A harmadik feladatban egy szmot kell bekrni (1 s 51 kztt), de nem kell ellenrizni a beolvasst:

    A negyedik feladatban ki kell rni a bekrt szm ht lottszmait, amihez be kell olvasni a lottosz.dat fjlbl az adatokat (gyeljnk r, hogy 51 ht adatai vannak benne, az 52. hetet mr feltltttk):

    Az tdik feladatban el kell dnteni, hogy van-e olyan szm, amit nem hztak ki az llo-mny 51 heti adatai alapjn. Az eldnts ttel alkalmazst gyakorolhatjuk:

    126

  • 11. rettsgi feladatok 11.1. Lotto (2005. V.)

    A hatodik feladatban megszmols ttelt alkalmazunk s kirjuk, hogy hny pratlan sz-mot hztak ki (51 ht alatt):

    A hetedik feladatban ki kell rni a teljes 52 heti adatot a lotto52.ki llomnyba. Vigyzzunk arra, hogy a szmok kztt szkz legyen, a sorok vgn pedig sorvge karakterek!

    A nyolcadik feladatban ismt el kell lltani a gyakorisg tmbt, de 52 htre. A kisz-molt rtkeket tblzatosan rjuk ki, a pldnak megfelelen:

    127

  • 11. rettsgi feladatok

    A kilencedik feladatban a ki nem hzott prmszmokat kell megadni. Igen, ezt is tanultuk: kivlogats kirssal, aminek a belsejben egy egyszer eldnts van:

    Egy lehetsges kimeneti kperny: Az 52. ht szmai (szkzzel elvlasztva): 89 24 34 11 64 Az 52. ht szmai rendezve: 11 24 34 64 89 Adjon meg egy szmot 1 s 51 kztt: 1 1. ht lottszmai: 37 42 44 61 62 Van. Pratlan szmok darabszma: 126 Elfordulsi statisztika: 4 2 2 4 2 2 6 1 1 2 1 5 2 1 1 1 3 5 0 5 5 2 6 6 5 1 0 6 4 3 3 3 5 4 3 1 4 2 2 4 2 4 1 2 3 4 2 1 2 3 2 2 2 4 4 5 1 3 5 5 5 2 0 2 2 4 4 3 1 3 6 1 5 6 2 4 3 2 2 3 1 1 4 1 3 3 2 1 5 3 Ki nem hzott prmszmok: 19 Nyomjon meg egy gombot!

    11.2. A Vigenre tbla (2005. X.)

    Mr a XVI. szzadban komoly titkostsi mdszereket talltak ki az zenetek elrejts-re. A szzad egyik legjobb kriptogrfusnak Blaise de Vigenre-nek a mdszert olvashat-ja a kvetkezkben. A kdolshoz egy tbl-zatot s egy n. kulcsszt hasznlt. A tblza-tot (pontosabban egy rszlett) a jobb oldali bra tartalmazza

    A tbla adatait a vtabla.dat fjlban tallja a kvetkez formban.

    ABCDEFGHIJKLMNOPQRSTUVWXYZBCDEFGHIJKLMNOPQRSTUVWXYZACDEFGHIJKLMNOPQRSTUVWXYZABDEFGHIJKLMNOPQRSTUVWXYZABCEFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDE

    Ksztsen programot kodol nven a kvetkez feladatok vgrehajtsra!

    128

  • 11. rettsgi feladatok 11.2. A Vigenre tbla (2005. X.)

    129

    1. Krjen be a felhasznltl egy maximum 255 karakternyi, nem res szveget! A tovbbiakban ez a nylt szveg.

    2. Alaktsa t a nylt szveget, hogy a ksbbi kdols feltteleinek megfeleljen! A kdols felttelei:

    o A magyar kezetes karakterek helyett kezetmenteseket kell hasznlni. (Pldul helyett a; helyett o stb.)

    o A nylt szvegben az talakts utn csak az angol bc beti szerepelhet-nek.

    o A nylt szveg az talakts utn legyen csupa nagybets. 3. rja ki a kpernyre az talaktott nylt szveget! 4. Krjen be a felhasznltl egy maximum 5 karakteres, nem res kulcsszt! A

    kulcssz a kdols feltteleinek megfelel legyen! (Sem talakts, sem ellenrzs nem kell!) Alaktsa t a kulcsszt csupa nagybetss!

    5. A kdols els lpseknt fzze ssze a kulcsszt egyms utn annyiszor, hogy az gy kapott karaktersorozat (tovbbiakban kulcsszveg) hossza legyen egyenl a k-doland szveg hosszval! rja ki a kpernyre az gy kapott kulcsszveget!

    6. A kdols msodik lpseknt a kvetkezket hajtsa vgre! Vegye az talaktott nylt szveg els karaktert, s keresse meg a vtabla.dat2 fjlbl beolvasott tblzat els oszlopban! Ezutn vegye a kulcsszveg els karaktert, s keresse meg a tb-lzat els sorban! Az gy kivlasztott sor s oszlop metszspontjban lv karakter lesz a kdolt szveg els karaktere. Ezt ismtelje a kdoland szveg tbbi karak-tervel is!

    7. rja ki a kpernyre s a kodolt.dat fjlba a kapott kdolt szveget!

    Plda: Nylt szveg: Ez a prba szveg, amit kdolunk! Szveg talaktsa: EZAPROBASZOVEGAMITKODOLUNK

    Kulcssz: auto Kulcssz nagybetss alaktsa: AUTO

    Nylt szveg s kulcsszveg egytt: E Z A P R O B A S Z O V E G A M I T K O D O L U N K A U T O A U T O A U T O A U T O A U T O A U T O A U

    Kdolt szveg: E T T D R I U O S T H J E A T A I N D C D I E I N E

    Megolds: A program mkdkpessge rdekben a szksges vltozkat deklarljuk. Az kezet-mentestshez szveges konstansokat fogunk hasznlni: az angol szveg i-edik karakter-ben van a magyar karakter helyettestje.

    2 A vtabla.dat llomny a www.okev.hu cmrl tlthet le. Az rettsgi vizsgk linkre kattintva ki kell vlasztani a 2005. oktber-novemberi rettsgi rsbeli feladatok linket, majd az Emeltszint rsbeli rettsgi vizsgk linket, s ezen az oldalon az informatika trgy mellett letlthetk a forrsok. Az llo-mny megtallhat a http://pasztora.web.fazekas.hu/tankonyv cmen is.

  • 11.2. A Vigenre tbla (2005. X.) 11. rettsgi feladatok

    A fprogram a kperny trlsn kvl meghvja az egyes feladatok eljrsait. Elnys gy elkszteni a programot, hiszen jl tagolt kdot eredmnyez. A fprogram vgn egy bil-lenty megnyomsra vrunk, hogy lthat maradjon a kimeneti kperny. A fprogram-ban van egy ellenrz eljrs meghvs is, ez termszetesen nem felttlenl szksges.

    Els lpsknt a nylt szveg bekrst, s talaktst valstjuk meg, azaz az 1.,2., 3. feladatot. A szveg beolvas eljrsrl nincs mit beszlni, me:

    Az kezetmentests elve az, hogy karakterenknt megvizsgljuk, hogy magyar kezetes bet-e. Ha az, akkor az angol bc megfelel betit tartalmaz szveg ugyanazon sorsz-

    130

  • 11. rettsgi feladatok 11.2. A Vigenre tbla (2005. X.)

    m karaktert tesszk a szvegbe. Ezt kveten a szveget karakterenknt az UpCase fggvnnyel nagybetsre konvertljuk. A konvertlst csak a betkre vgezzk el, rsjel esetn tovbbmegynk:

    A 3. feladatban ki kell rni az talaktott nylt szveget:

    A 4. feladatban a titkostshoz hasznlt legfeljebb 5 bets szveget kell beolvasni (nem kell ellenrizni, hogy nem res, csak angol abc-ben szerepl betket tartalmaz), de nagybe-tsre kell alaktani:

    Az 5. feladatban a nylt szveggel azonos hosszsg kulcsszveget kell kszteni a kulcs-sz ismtlsvel: annyiszor ismtlem, hogy legalbb olyan hossz legyen, majd levgom a flsleget. Vgl kpernyre rjuk a nylt szveget s a kulcsszveget:

    131

  • 11.2. A Vigenre tbla (2005. X.) 11. rettsgi feladatok

    A 6. feladatban beolvassuk a vtabla.dat llomnybl a kdtblt. Mivel az angol bc nagybetivel indexelt ktdimenzis tmbt vlasztottunk, gy a beolvass nagyon egysze-r. Ezt kveti az tkdols, ami roppant egyszer: a tbla sorindexe a nyltszveg aktulis karaktere lesz, mg oszlopindexe a kulcsszveg ugyanannyiadik karaktere lesz:

    A 7. feladatban az tkdolt szveget ki kell rni a kpernyre s egy kodolt.dat nev llo-mnyba. Ez sem ismeretlen szmunkra:

    Ezzel a feladatot befejeztk, de a kiprbls eltt mg ksztsnk egy ellenrz eljrst: a kdolt szveget alaktsuk vissza. Haladva a kdolt szvegben az i-edik karakternek meg kell egyeznie a tblzat kdoland (ismeretlen) karakternek megfelel sor kulcsszveg ugyanannyiadik karakternek megfelel oszlopban lv karakterrel. Mivel a tmb tarta-lom szerint nem indexelhet, ezrt ezt egy ciklussal lehet elvgezni.

    132

  • 11. rettsgi feladatok 11.3. Fehrje (2006. V.)

    A konkrt feladatra gy nz ki a kimeneti kperny Krem a szveget: Ez a prba szveg, amit kdolunk! (3) Az talaktott nylt szveg: EZAPROBASZOVEGAMITKODOLUNK Krem a kulcsszt: auto Kulcssz nagybetss alaktsa: AUTO Nylt szveg s kulcsszveg egytt: EZAPROBASZOVEGAMITKODOLUNK AUTOAUTOAUTOAUTOAUTOAUTOAU A kdolt szveg: ETTDRIUOSTHJEATAINDCDIEINE Visszakdolt szveg: EZAPROBASZOVEGAMITKODOLUNK Megegyezik. Nyomjon meg egy gombot!

    Befejezsl teszteljk a programot ms szvegekkel is. Ellenrizzk, hogy a kodolt.dat llomnyban is megtallhat-e a kdolt szveg!

    11.3. Fehrje (2006. V.) A fehrjk ris molekulk, amelyeknek egy rsze az l szervezetekben vgbemen fo-lyamatokat katalizljk. Egy-egy fehrje aminosavak szzaibl pl fel, melyek lncszer-en kapcsoldnak egymshoz. A termszetben a fehrjk fajtja tbb milli. Minden fehrje hszfle aminosav klnbz mennyisg s sorrend sszekapcsoldsval pl fel. Az albbi tblzat tartalmazza az aminosavak legfontosabb adatait, a megnevezseket s az ket alkot atomok szmt (az aminosavak mindegyike tartalmaz szenet, hidrognt, oxi-gnt s nitrognt, nhnyban kn is van):

    133

  • 11.3. Fehrje (2006. V.) 11. rettsgi feladatok

    134

    Ksztsen programot feherje nven, ami megoldja a kvetkez feladatokat! gyeljen arra, hogy a program forrskdjt a megadott helyre mentse! 1. Tltse be az aminosav.txt3 fjlbl az aminosavak adatait! A fjlban minden adat kln

    sorban tallhat, a fjl az aminosavak nevt nem tartalmazza. Ha az adatbetlts nem sikerl, vegye fel a fenti tblzat alapjn llandknt az els t adatsort, s azzal dol-gozzon! Az els nhny adat:

    Gly G 2 5 2 1 0 Ala A 3 7 2 1 0

    2. Hatrozza meg az aminosavak relatv molekulatmegt, ha a szn atomtmege 12, a

    hidrogn 1, az oxign 16, a nitrogn 14 s a kn atomtmege 32! Pldul a Glicin esetn a relatv molekulatmeg 212 + 51 + 216 + 114 + 032 = 75. A kvetkez fel-adatok eredmnyeit rja kpernyre, illetve az eredmeny.txt fjlba! A kirst a feladat sorszmnak feltntetsvel kezdje (pldul: 4. feladat)!

    3. Rendezze nvekv sorrendbe az aminosavakat a relatv molekulatmeg szerint! rja ki a kpernyre s az eredmeny.txt fjlba az aminosavak hrombets azonostjt s a molekulatmeget! Az azonostt s hozztartoz molekulatmeget egy sorba, szkz-zel elvlasztva rja ki!

    4. A bsa.txt a BSA nev fehrje aminosav sorrendjt tartalmazza egybets jellssel. (A fehrjelnc legfeljebb 1000 aminosavat tartalmaz.) Hatrozza meg a fehrje sszeg-kplett (azaz a C, H, O, N s S szmt)! A meghatrozsnl vegye figyelembe, hogy az aminosavak sszekapcsoldsa sorn minden kapcsolat ltrejttekor egy vzmoleku-la (H2O) lp ki! Az sszegkpletet a kpernyre s az eredmeny.txt fjlba az albbi formban rja ki:

    5. Pldul: C 16321 H 34324 O 4234 N 8210 S 2231 6. (Amennyiben a bsa.txt beolvassa sikertelen, helyette trolja a G, A, R, F, C betjele-

    ket tzszer egyms utn s a feladatokat erre a lncra oldja meg!) 7. A fehrjk szekvencia szerkezett hastsos eljrssal hatrozzk meg. Egyes enzimek

    bizonyos aminosavak utn ketthastjk a fehrjemolekult. Pldul a Kimotripszin en-zim a Tirozin (Y), Fenilalanin (F) s a Triptofn (W) utn hast.

    3 Az aminosav.txt llomny a www.okev.hu cmrl tlthet le. Az rettsgi vizsgk linkre kattintva ki kell vlasztani a 2006. mjus-jniusi rettsgi rsbeli feladatok linket, majd az Emeltszint rsbeli retts-gi vizsgk linket, s ezen az oldalon az informatika trgy mellett letlthetk a forrsok. Az llomny megtallhat a http://pasztora.web.fazekas.hu/tankonyv cmen is.

  • 11. rettsgi feladatok 11.3. Fehrje (2006. V.)

    8. Hatrozza meg, s rja ki kpernyre a Kimotripszin enzimmel szthastott BSA lnc leghosszabb darabjnak hosszt s az eredeti lncban elfoglalt helyt (els s utols aminosavnak sorszmt)! A kirskor nevezze meg a kirt adatot, pldul: kezdet he-lye:!

    9. Egy msik enzim (a Factor XI) az Arginin (R) utn hast, de csak akkor, ha Alinin (A) vagy Valin (V) kveti. Hatrozza meg, hogy a hasts sorn keletkez els fehrjelnc rszletben hny Cisztein (C) tallhat! A vlaszt teljes mondatba illesztve rja ki a kp-ernyre!

    Megolds: Elszr szeretnm megjegyezni, hogy a feladat megoldhat rekord adattpus hasznlata nlkl is, de vlemnyem szerint elegnsabb megolds szlethet hasznlatval, s kifeje-zetten erre val. Felvehettem volna oszloponknt egydimenzis tmbket, de pldul a rendezsnl (3. feladat) sokkal tbbet kellett volna kdolni. Elszr ksztsk el a program vzt: konstansknt definilom az aminosav.txt llomny sorainak szmt (mivel nincs megadva r maximum, ezrt felttelezem, hogy ennl tbb nem lehet). Deklarlom egy aminosav jellemzit (rvidts, betjel, s az t atom darab-szma) az AminoTip tpussal. Felveszek egy tmbt, amelyik ilyen rekordbl tartalmazhat 20-at. A rekordban tallhat mg egy tulajdonsg: a relatv molekulatmeg (rmt). Ez a 3. feladathoz hasznos, hiszen ezen tulajdonsg (mez) szerint kell majd a rekordokat rendez-ni. Elksztem ksbbi feladatokat is: felveszem a BSA nev fehrje aminosav sorrendj-nek trolsra szolgl tmbt, s darabszm vltozjt is. A deklarcis rsz kdja:

    A fprogram a szoksos knyelmi funkcikon kvl a feladat sorszmnak megfelel elj-rs hvst tartalmazza. A fprogram kdja:

    135

  • 11.3. Fehrje (2006. V.) 11. rettsgi feladatok

    Az els feladatban be kell olvasni az aminosav.txt file tartalmt a rekordokat tartalmaz a nev tmbbe. Az adatok kln sorban vannak, gy minden mezt klnll ReadLn-nel lehet beolvasni rdemes megfontolni, hogy hogyan mdosulna a program, ha egy amino-sav adatai egy sorban lennnek szkzzel, vagy ms alkalmas karakterrel elvlasztva. A kd:

    A beolvass helyessgt mindig rdemes ellenrizni, ezrt ksztsnk egy Kiir_a_kepre nev eljrst, mely az a tmb tartalmt (oszlopokba rendezve) kirja a kpernyre. Ha meggyzdtnk a beolvass helyessgrl, akkor ezt az eljrshvst megjegyzsbe tehet-jk. A tesztelshez ksztett kir eljrs:

    A msodik feladatban az a tmb rekordjain haladva ki kell szmtani a relatv molekulat-meget (sszegezni kell az atomok darabszmval megszorzott relatv atomtmeget). Mivel az atomok relatv atomtmege ritkn vltozik, ezrt beptettem a konkrt rtkeket a kdba. Most vesszk a hasznt annak, hogy felvettnk az aminosav rekordjba egy relatv molekulatmeg vltozt is (rmt). Termszetesen eltrolhatnnk ezeket az adatokat egy kln tmbben, de a kvetkez feladat sokkal bonyolultabb lenne. Ezt az eljrst is tesztel-jk a Kiir_a_kepre eljrssal.. Az utols oszlopban jelennek meg a relatv molekulatmeg rtkek. Jl lthat, hogy a sorok nincsenek rendezve relatv molekulatmeg szerint.

    136

  • 11. rettsgi feladatok 11.3. Fehrje (2006. V.)

    A 2. feladat eljrsa:

    A kd tartalmaz egy jdonsgot is, a With a[i] do utastst. Az utasts lehetv teszi, hogy ne kelljen a mezkre trtn hivatkozsnl a tmb indext mindig kirni. A harmadik feladatban relatv molekulatmeg szerint kell rendezni a beolvasott adatokat. Mivel mi rekordokban troltuk az aminosavak adatait, agy a rendezs sorn az adatok egytt mozgathatk. Most is minimumkivlasztsos rendezst hasznljuk. A rendezs v-gn a kpernyn teszteljk az eredmnyt (ksbb megjegyzsbe tesszk), s a kperny mellett az eredmeny.txt llomnyba is kirjuk a krt adatokat (rvidts, relatv moleku-latmeg). Javaslom, hogy a kimeneti fjlra ms azonostt hasznlj, mert gy elkerlheted, hogy az esetleg nyitva maradt bemen fjlt rd fell! A kirs vgn bezrjuk az llomnyt, br kell majd rni bele mg.

    A negyedik feladatban beolvasom a bsa.txt llomny tartalmt egy karaktereket tartal-maz tmbbe. Mivel nem ismerem az adatok szmt, ezrt a fjl vgig olvasok. A fehrje sszegkpletnek meghatrozshoz vgig megyek a bsa tmb elemein, minden karakter-hez megkeresem az aminosavak adatait tartalmaz tmb megfelel rekordjt (nem keress, hanem kivlaszts, mert tudom, hogy van megfelel), s a rekordban szerepl atom darab-szmokat sszegzem. Az sszegzs vgn a kapcsoldsok miatti vzvesztssel korriglom az eredmnyt (eggyel kevesebb kapcsolds van, mint aminosav a tmbben). Az ered-mnyt a kpernyre s az elz eredmny.txt llomnyba is ki kell rni. A kimeneti fjlt gy kell megnyitni, hogy fellrs helyett hozzfzs trtnjen. A kd az albbi:

    137

  • 11.3. Fehrje (2006. V.) 11. rettsgi feladatok

    Az 5. feladatban az enzimek hatsra megszakad lnc leghosszabb rszt kell meghat-rozni. Megtehetnnk, hogy kivlogatjuk a rszek kezd s vgpontjait, majd ezek kzl keresnk maximlist, de a kt algoritmus sszeptse is egyszer: Elszr azt felttelezem, hogy az els elem az els rsz: ennek megfelel kezdponttal, vgponttal s hosszal. Ezt kveten vgig megyek a bsa tmb elemein (praktikusan szm-ll ciklussal), s amennyiben valamelyik (ezrt van vagy kapcsolat a felttelek kztt) megadott aminosav jelt tallom, akkor trni fog a lnc. A lnc trsnl megvizsglom, hogy a most kialakult szakasz hosszabb-e, mint az eddigi leghosszabb. Ha hosszabb, akkor eme j szakasz adatait trolom el leghosszabbknt. Ha hosszabb, ha nem, akkor is a kvet-kez aminosavnl kezddik az j szakasz. A szakasz hossznak szmtsa felfogs krdse. Plda nem fogalmaz egyrtelmen, hogy hossz alatt a szakaszt alkot aminosavak darabszmt rti, vagy az aminosav-aminosav szakaszok szmt (ezt adja a vgpont-kezdpont rtk). A feladat hivatalos megoldsbl ltszik, hogy az els vlaszt vrtk, ezrt az ltalam kiszmtott hossz rtket eggyel meg kell nvelni. Az eredmnyt most csak a kpernyre kell kirni, de gyelni kell arra, hogy a krt szveges informci is benne legyen!

    138

  • 11. rettsgi feladatok 11.3. Fehrje (2006. V.)

    A 6. feladatban egy msik enzim ltal sztszaktott lnc els rszben kell megszmolni egy megadott aminosav szmt. A feladat elvgezhet lenne gy, hogy kivlogatjuk az els szakasz aminosavait, majd megszmoljuk a benne lv adott tulajdonsg aminosa-vakat. Az elemi algoritmusok sszeptse itt is hatkonyabb megoldst ad: Addig sszegezzk a bsa tmbben tallhat megfelel (cisztein) aminosavak darabszmt, amg a fehrje el nem trik az enzim hatsra. A trs felttele most kicsit bonyolultabb, az s s a vagy kapcso-latokat helyesen kell zrjelezni! A feladat szvegbl biztosak lehetnk abban, hogy van ilyen trs, teht a tmbn halad-va nem kell figyelnnk arra, hogy biztosan benne maradjuk. A vgn kiratjuk az ered-mnyt (a krt formban) a kpernyre. Ha ez nem gy lenne, akkor mg egy felttelt be kellene rni. Eddig ltalban szmll, vagy elltesztel ciklust hasznltunk, most htultesztel ciklust ksztnk. gyelni kell arra, hogy a kdban a kilpsi felttelt kell megadni, s nem a bennmaradsit!

    139

  • 11.3. Fehrje (2006. V.) 11. rettsgi feladatok

    A tesztelshez hasznlt kirsok kitrlhetk, de megjegyzsknt benne maradhatnak a forrsban. rdemes mg egyszer megtekinteni, hogy mind a kpernyn, mind a kimeneti fjlban a feladatban elvrt tartalom olvashat. me a kperny tartalma: 3.feladat Gly 75 Ala 89 Ser 105 Pro 115 Val 117 Thr 119 Cys 121 Leu 131 Ile 131 Asn 132 Asp 133 Gln 146 Lys 146 Glu 147 Met 149 His 155 Phe 165 Arg 174 Tyr 181 Trp 204 4.feladat C 2923 H 4594 O 895 N 778 S 39 5.feladat Kezdete: 261 vge: 306 hossza: 46 6.feladat Az els fehrjelncban 12 cisztein van. Nyomjon meg egy gombot!

    Az eredmeny.txt kimeneti fjl tartalma:

    Mindkt tartalom megfelel a feladat szvegnek. Befejeztk a megoldst.

    140

    11. rettsgi feladatok11.1. Lotto (2005. V.)11.2. A Vigenre tbla (2005. X.)11.3. Fehrje (2006. V.)