Professional Documents
Culture Documents
C#feladatgyjtemny|DigitlisTanknyvtr
Ugrsatartalomhoz(#sdt_slot_Layout_Page_Main)
Keress
(http://www.tankonyvtar.hu/hu)
Belps(http://www.tankonyvtar.hu/Shibboleth.sso/Login?target=http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html)
Informci(/hu/informacio)
Kapcsolat(/hu/kapcsolat)
English(/en/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html)
(#)
A(#)A(#)A+(#)
Kezdoldal(/hu)
Hrek(/hu/hirek/tankonyvtar/cikkek)
Bngszs(/hu/bongeszes)
Foldal(/hu)>TAMOP4.2.5Plyzatknyvei>Knyvek(/hu/bongeszes/konyvek)>Alkalmazotttudomnyok(/hu/bongeszes/konyvek/alkalmazott_tudomanyok)>
Szmtstechnika.Informatika.Adatbzisok(/hu/bongeszes/konyvek/alkalmazott_tudomanyok/szamitastechnika)
(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch13.html)
(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch15.html)
C#feladatgyjtemny
KovcsEmd,RadvnyiTibor,KirlyRoland,HernykZoltn
KempelenFarkasHallgatiInformcisKzpont
Tweet(https://twitter.com/share)
Begyazs
14.fejezetKpernykezelsselkapcsolatosfeladatok(szerz:HernykZoltn)
Tartalom
Afejezetforrskdjai(ch14.html#id536059)
14.1.feladat(Csillagokmindenholszint:3).A
konzolkpernyrerajzoljunk*(csillag)karaktereketvletlenszerpozcikra(alegalssorttechnikaiokokblhagyjuk
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
1/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
resen)!Aprogramakkorlljonle,amikormindenpozcirakerlt*karakter!
Magyarzat:Amegoldsegyszernektnik,az
,az
koordintkatvletlenszerenlehetvlasztani,majdazadottkoordintkraa
Console.SetCursorPositionfggvnysegtsgvellehetelmozgatniakurzort,skirniacsillagot.Ebbenafeladatbancsakegyetlennehzsgvan:ugyanazonkoordintkat
tbbszriskisorsolhatjukvletlenszeren,ekkpp
csillagkirsakorakpernymgnincsteljesentele.Lnyegesenemelveakirtdarabszmot(mondjuk
8000ismtlsutn),akpernyvalsznlegtelevan.
Hogyeldnthessk,akpernyteljesentelevane,szeretnnkkiolvasniakpernyadottpozciinaktartalmt,szeretnnkellenrizni,hogymindenkaraktercellbancsillag
vane.Errenincsmd.
Helyetteduplaadminisztrlstkellvgeznnk.Egyakpernyvelegyezmret
esmtrixotkellltrehoznunk.rdemeseztlogikaitpusravlasztani,gy
kiindulskorfalsertkekkelleszamtrixtele.Amikorvalamelyx,ykoordintracsillagotrunkki,akkoralogikaimtrixegyezkoordintjcelljbahelyezznktruertket!
Ekkorakpernytelellapotnakellenrzsemregyszer.
14.2.feladat(Randomtechnikaiellenrzseszint:3).Azelzfeladatmegoldsasornmegfigyelhetjk,hogyadottkoordintkatavletlenszersorsolstbbszriselllt.
Szmoljukmeg,melykoordintthnyszorlltottelasorsols,amgmindenpozciellltsranemkerl(acsillagokkalteleakperny)!Adjukmeg,hogyalegtbbetkisorsolt
cellahnyszorkerltsorraavletlenszerkoordintagenerlskzben!Adjukmegastatisztikt,hogymelyikelfordulsidarabszmhnycellaesetnszerepelt!
Magyarzat:Azelzfeladatbanismertetettmegoldssornbemutatottnagylogikaimtrixhelyettalkalmazzunkinttpusmtrixot,melybenmegtudjukszmolni,melyikcella
hnyszorkerltkisorsolsra.Azelfordulsidarabszmokategylistbakigyjtveafeladatkrdseiremrknnyvlaszolni.
14.3.feladat(Csillagokmindenholegyenletesenszint:4).rjkel,hogyazelzfeladatbankirajzolsrakerlcsillagkarakterekegyenletessebessggeljelenjenekmega
kpernyn!.Deezneillzilegyen,sneaszerencsnmljon,hanemaprogramlegyengymegrva,hogyazgarantltanegyenletesenrakjakiacsillagokatakpernyre!Az
utolscsillagkiraksautnaprogramlljonle!
Magyarzat:Haakoordintksorsolsavletlenszer,akkorgyakoriazazeset,hogyolyancellkatvlasztunkki,melyekbemrrtunkkicsillagkaraktert.Ekkornem
garantlhatazegyenletessg.Ahelyesgondolatmenetszerintgondolatbanszmozzukbeacellkat0tl1919ig!Helyezzkelezeketaszmokategy1920elemvektorban,
majdkeverjksszeaszmokatavektoronbell!gygarantlhatamegadottszmokegyedisgeavektorban.Haavektorelemeitsorbankiolvassuk(feldolgozzuk),akkora
szmokmrvletlenszersorrendbenkerlnekel.Egyilyen
szmhozkitudjukszmolni,mely
vletlenszersorrendben)mindencellbacsillagotrhatunkki(14.1(ch14.html#x127001r1).forrskd).
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
koordintjcelltazonostja,sgysorban(demgis
2/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
14.4.feladat(Figyelemtesztszint:3).Akpernytosszukfelfgglegesenhrom,vzszintesenktrszre(ilymdonsszesen6kisebbtglalapalakterletre)!Minden
terletenmsmssznthasznlunk(zld,kk,srga,piros,stb.).Akpernyreadottsebessggel(msodpercenknt)villantsunkfelegyvletlenszerpozcinegycsillag
karaktertazzalasznnel,amelyaterletjellemzje,ahovaavletlenszerenvlasztottpozciesik!Villantsunkfelsszesen50ilyencsillagkaraktert!Afelhasznlnakmegkell
adnia,szerintemelyikterletreesettalegtbbcsillagkarakter.Aprogramdntseel,hogyigazvolteavlasz!Arrafigyeljenaprogram,hogygarantltanlegyenilyenterlet,
vagyishamegvoltaz50csillag,skt(vagytbb)terletholtversenybenvan,akkoraprogramnhnyextracsillaggaltoldjamegaz50esdarabszmot,amgazegyrtelmsg
kialakul!
Magyarzat:Akpernyvzszintesen80karakterszles.Eztaszlessgethromrszrekellosztani,vagyisazegyesrszeka
tartalmazzk.Fgglegesen24hasznlhatsorvan,azegyesterleteka
ellenrzsekkelaterletekbebesorolsegyszerenelvgezhet.
kzttioszlopokat
kzttisorindexek.Ennekmegfelelen,azxsyrtkekrevonatkoz
Azegyesterletekhezrendeljnkszmllkat,ehhezrdemesegy6elemintvektortalkalmazni.Azegyesterletekbebesorolsesetnazadottterletheztartozszmllt
nveljk1gyel.Az50villantselrseutnellenrizzk,hogyamaximlisrtkcsakegyszerszerepele!Hanem,akkorfolytassukmgavillantsokat,amgamaximlis
rtkegyedivvlik!rdemesazegyedisgrekicsitersteni,merthaazegyikterletenmondjuk10,alegtbbvillansttartalmazterletenpedig11villantsvolt,eza
klnbsgnehezenrzkelhetaprogramkezeljeltal.Elrhatjukaztis,hogyalegtbbvillansttartalmazcellbalegalbb30aklnbsgmrszignifikns.
AvillantstaThread.Sleep(10)vrakozssaltudjukelrni:akpernyrekirjukacsillagot,vrakozunkaSleepsegtsgvel,majdletrljkacsillagot.
14.5.feladat(Labirintusszint:4).Egytextfjlbanegylabirintustrunkle*s.karakterekekkel(*afal,.afolyos).Olvassukbesjelentskmegalabirintustakpernyn!
Keresskmeg,holszerepelazelemekkzttazSkarakter(startpozci),saKkarakter(kijrat)!AzSkarakterblpontosanegyszerepelhet,Kkijratbllegalbbegyneklennie
kell.Hatrozzukmeg,hogyaSstartpozciblvalamelykijratigellehetejutni!Mutassukmegazutat!
Magyarzat:Afjlblolvassrlmrtbbhelyen,elsknta9.13(ch09.html#x116300r13).feladatkapcsnrtunk.Hasonlanelvgezhetabeolvass(14.2(ch14.html#x1
27027r2).forrskd).Amegjelentskarakterenknttrtnhet,gyaklnbzkaraktereketmsmssznneljelenthetjkmeg(14.3(ch14.html#x127041r3).forrskd,14.1
(ch14.html#x126006r1).bra).
AzSkarakterpozcijblkiindulfestsselalabirintuselrhetcellitjelljkmeg(pontkarakterthelyeznkezekbeacellkba).Afestalgoritmusta14.3(ch14.html#x1
27041r3).forrskd,afestseredmnyta14.1(ch14.html#x126006r1).bratartalmazza.
Afestsutnakijratokelrhetsgnekellenrzseegyszer:vaneolyanKkarakteramtrixban,amelynek1sugarszomszdsgbanvanpontkarakter?Haigen,akkoraz
Sblezakijratelrhetvalamilyentvonalon.
Haaztraisszksgnkvan,akkormdostanunkkellafestalgoritmust.Ezenmdszerrelugyanisnemtudjukmegazodavezetutat.rdemesbevezetniegymsik,egyez
mret,deinttpusmtrixot,melybenindulskorlegyenek0rtkek!Abefestssornbevezetjkatvolsgfogalmt,melyazStlmrtlpsekszmtjelli.Mindenjabb
festsilpssornatvolsgotnveljk1gyel.Azinttpusmtrixbanapontkarakterekelhelyezsekorberjukazoktvolsgt(aKhozazelrsekoritvolsgot).Aztvonal
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
3/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
visszakeresseaKblindulki.Haegycellatvolsganvolt,akkorkeressk,holvanakrnyezetbenazn1tvolsgcella(mertamikorfestettnk,errlazn1tvolsg
cellrllptnkelre).Avisszakeressta0tvolsgelrsekorfejezzkbe.Ekzbenaztvonalbanrsztvevcellktartalmt#ra(hashmark)cserljk.Azeredmnyta14.3
(ch14.html#x126008r3).brntekinthetjkmeg.Afeladathoztartozprogramrszleteka14.2(ch14.html#x127027r2)....a14.6(ch14.html#x127097r6).forrskdokban
tekinthetkmeg.
14.1.bra.Alabirintusalap(beolvassutni)megjelentse
14.2.bra.AlabirintusbefestseSblkiindulva
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
4/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
14.3.bra.Ameneklsitvonal
14.6.feladat(Falbontszint:3).Akpernyrekerljenekfel#(hashmark,kettskereszt)jelek(vagyvletlenszerhelyekre,vagyolvassukbeakpernykezdllapottfjlbl)!
Akpernynjelenjenmegegypattoglabda(*karakter),mely8irnybakpespattanni!Alabdapattanjonvisszaakpernyszlrl(sasarkokblis),valaminta#jelekrlis!
Figyeljnkarra,hogya#jelsarkhozrkezvesarokpattanstkelladni,mglapjrarkezvelaprlpattanskell!
Magyarzat:Atitoknyitjaafolyamatosmozgs.Haalabdaelindultvalamelyirnyba,akkoraztazirnytrzi,amgvalamiannakmegvltoztatsranemknyszerti.Kdoljuk
beamozgsiirnyokatpldula14.4(ch14.html#x126010r4).brnlthatakszerint!Troljukalabdaaktulispozcijt(x,ykoordinta),valamintazaktulismozgsiirnyt
akdnakmegfelelen!Ekkorknnykiszmolni,hogyakvetkezlpsbenmilegyenazjkoordintja.Haazjkoordintafalatrne(kpernyszle,kpernynbelli
akadly),akkormdostanikellamozgsiirnyt(lsdpldula14.5(ch14.html#x126011r5).brnakmegfelelen).
14.4.bra.Mozgsiirnyokkdjai
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
5/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
14.5.bra.Irnyvltozs2esmozgsiirnybl
Azakadlyok(#karakterek)helytkoordintkformjbanegyvektorbanvagylistbantrolhatjukel,esetlegalkalmazhatunkegy
melynekmegfelelcellibanvagyaszkz(cellares),vagya#(akadly)rtkekettrolhatjukel.
(kperny)mretmtrixot,
14.7.feladat(Sokpattoglabdaszint:4).AkpernynjelenjenmegNdarabpattoglabda,melyeketegyegy*karakterszimbolizl!Alabdkpattanjanakvisszaafalrlsa
sarkokrl,deegymshoztkzsesetnispattanjanakvissza!Alabdkszmt,alabdkmozgsisebessgtaprogramindulskorkrjebebillentyzetrl!
Magyarzat:AzNdarablabdaesetenemklnbziksokbanazelzfeladatbanismertetettmegoldsimenettl.AzNlabdhozNkoordintasNmozgsiirnytartozik.A
labdksorbanveszikfelazjkoordintjukat(halehet),illetvepattannakvisszaakregymsrlis.Azakadlyokkrtgybvtenikell:nemcsakafalrl,valaminta#
karakterekkeljelltakadlyokrltudvisszapattannialabda,hanemakkoris,haazjkoordintnegymsiklabdallppen.
gyelnikellarra,hogyktsszetkzlabdaklcsnsenmdostjaegymsmozgsiirnyt(mindktlabdnakmdosulazaktulisirnya).
14.8.feladat(Almaevcsigaszint:3).Ismertjtk,ahogyakpernynelindulegycsiga(@karakterekbl)valamelyirnyban.Acsigakezdetbencsak3karakterhossz,
melyblafejmsszn.Akpernynalmk(zldszn*karakterek)bukkannakfel,melyeketacsigamegehet.Ezakkorkvetkezikbe,haafejezenpozciralpner.Minden
almamegevsekoracsigahosszan1gyel.Acsigagyztesenkerlkiajtkbl,hamreteelriazelrebelltottrtket(pl.a10eshosszat).Azalmkcsakrvidideig
maradnakakpernyadottpontjn,acsignakemiattcsakkevsidejevan,hogyodarjen.Acsigaveszt,haadottidnbellamretenemrielakvntmrtket,vagyafejegy,
acsigatesttalkot@karakterenhaladnat(acsigasajtmagbaharap).
Aprogrammkdstvezrlparamterekrtke(idk,mretek,almkszmastb.)konstansokformjbanszerepeljenaprogramban,hogyamkdstknnyednmeg
lehessenvltoztatni!Acsigtakurzornyilakkalkellirnytani.
Magyarzat:Egynegysgblllcsigapontosangyviselkedik,mintegynlabdblllsor.Alabdamozgsiirnynakmegfelelenkellkiszmolniafejjkoordintjt,afej
mgtticsigaegysgpedigfelvesziafejkorbbipozcijtsmozgsiirnyt,aharmadikegysgamsodikegysgrgikoordintjtsmozgsiirnyt,stb.Ebbla
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
6/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
szemszgblnzveaproblmamrkezelhet,inkbbidignyes,mintalgoritmikusannehz.
14.9.feladat(Pingpongszint:3).Akpernynegypingponglabdapattogjon,azalsrszenegy8karakternyiszles(#karakterblll)pingpongtmozogjonvzszintesen!A
feladat:azttalefeleeslabdaalkellirnytani,hogyvisszapattanjonrla.Haeznemsikerl,akkoralabdaleesik.Aprogramalabdtvletlenszerpozcirlindtsael
alapvetenfelfeletlsirnyba,aztpediglljonbeakpernykzepre,hogyminltbbidlegyenazelejnazttazelsleessidpontjrahelyzetbelltani!
Magyarzat:Apattoglabda,amelyvisszapattanazakadlyokrl,mrismersproblma.Ebbenafeladatbancsakazakadlymozgatsaagond.Egyetlentechnikai
problmtkellmegoldani:aConsole.Readkey()fggvnyszksgesaztmozgatsnaklekrdezshez.Ezafggvnyazonbangyviselkedik,hogyhanincslettt
billentyppen,akkormegvrja,mgaztletik.Ezmegengedhetetlen,mivelalabdaesseekzbennemllhatle.
Eztaproblmtgyorvosolhatjuk,hogyaConsole.KeyAvailablepropertyvelellenrizzkle,hogyvaneppenletttbillenty,melyesetbennyugodtanhasznlhatjuka
ReadKeyt,nemfogjamegakasztaniafutsfolyamatossgt.
ConsoleKeyInfok=newConsoleKeyInfo();
if(Console.KeyAvailable)
k=Console.ReadKey();
switch(k.Key)
{
caseConsoleKey.LeftArrow:
//...
break;
}
14.10.feladat(Falteniszszint:3).Ajtknagyonhasonlazelzpingpongosfeladathoz,dekttvan,akpernyktoldaln,alabdapedigakpernyalsszlrl
visszapattan,viszontaktszlnkpeskireplni.Eztszeretnakttaktoldalonmegakadlyozni,melyekfgglegesenmozognak.Alabdaaztkrlvisszapattan.
Egyjtkoszemmdbanaktoldalonakttszinkronbanmozog,egyjtkoskpesmindktttirnytani.Ktjtkosesetnklnirnythatjukabaloldali,sklnajobb
oldalitt.
Magyarzat:Azelzproblmamegoldsautnezafeladatmrjlkezelhetmennyisgproblmttartalmaz.gyeljnk,hogyaktjtkoszemmdbanabillentyzeten
egymstlnagytvolsgralv22billentytjelljkkiakezelshez,hogyelfrjenek!
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
7/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
Bevezetinformcik:letjtk:angyzetrcsmezitcellknak,akorongokatsejtekneknevezzk.Egycellakrnyezeteahozzlegkzelebbes8mez(tehtacellhoz
kpesttlsanelhelyezkedcellkatisfigyelembevesszk,feltesszk,hogyangyzetrcsnaknincsszle).Egysejt/cellaszomszdaiakrnyezetbenlvsejtek.Ajtk
krkreosztott,akezdllapotbantetszlegesszm(egyvagytbb)cellbasejtekethelyeznk.Eztkvetenajtkosnaknincsbeleszlsaajtkmenetbe.Egysejttel
(cellval)egykrbenakvetkezhromdologtrtnhet:
asejttlliakrt,haktvagyhromszomszdjavan,
asejtelpusztul,hakettnlkevesebb(elszigetelds)vagyhromnltbb(tlnpeseds)szomszdjavan,
jsejtszletikmindenolyancellban,melynekkrnyezetbenpontosanhromsejttallhat.
Fontos,hogyavltozsokcsakakrvgnkvetkeznekbe,tehtazelhallozknemakadlyozzkaszletstsatllst(legalbbisazadottkrben),saszletseknem
mentikmegazelhallozkat.Agyakorlatbanezrtakvetkezlpseketclszerilyensorrendbenvgrehajtani:
azelhalsejtekmegjellse,
aszletsejtekelhelyezse,
amegjelltsejtekeltvoltsa.
14.11.feladat(letjtkszint:4).Olvassukbeegy
mretlettrmtrixkezdllapott,ahola.(pont)karakterjelliacellaresllapott,az#karakterjellihogya
mtrixadottcelljbanlsejtvan!Akezdllapototjelentskmegakpernyn,azrescellkatszrkepont,alsejtescellkatzldszn#karakterjellje!Futtassuklea
szimulcit,majdjelentskmegazlettrjllapott!Folytassukaszimulcit,amgaz<esc>billentyletsvelkinemlpnkbelle!
Magyarzat:Amegoldssornrdemesktegyformamtrixotkezelni.Azelsmtrixtartalmazzaazaktulisllapotot,amsodikmtrixbangenerljukakvetkezllapotot
(azjonnanszletettcellkatmrisberakjuk,azezenkrbenelhallozottakatelevenemrakjukt).Akijelzsalabirintusfeladatkapcsnismertetettmdonismegvalsthat
(14.6(ch14.html#x126026r6).bra).
14.6.bra.Azletjtkkpernyje
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
8/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
14.12.feladat(Digitlisraszint:4).Egydigitlisrnmegjelentjkara,perc,msodpercrtkeketktszmjegyesalakbanemiattsszesen6szmoszlopvan.Azegyes
szmjegyekrtktdigitlisanjelentjkmeg4LEDsegtsgvel,aLEDekegymsalattfgglegesenjelennekmeg!A4LEDelg,mivel1szmjegy
rtkeketvehet
csakfel.Amsodpercek,perceksrkszmjegyeitmsmssznneljelentskmeg!AzonllapotLEDetegy#,azoffllapotLEDetpedigegyjellelhelyettestsk!A
programindulskorolvassabeazraaktulisllapottlermtrixotegyfjlbl,ahol4sorvan,soronknt66jel,sazelbblertakszerint#sjelekettartalmaz!Abeolvass
utnaprogramllaptsameg,hogyazvalsidtrele,majdjelezzekiaLEDeket,smsodpercenkntfrisstseazidkijelzstamtrixbanlertidhzkpestindtvaa
szmolst!
Magyarzat:rdemeselkszteniegyfggvnyt,amelyegyetlenszmjegyetrkiakpernyre.Ehhezkettesszmrendszerbeli(pontosan4szmjegyrekiegsztve)alakjbl
lehetkiindulni.Egyktszmjegy(pl.azrkszma)szmkirsaezenfggvnyfelhasznlsvalmregyszer,csaka2szmjegyetkellelvlasztaniegymstl(egyika10
zelvalosztsimaradk,amsika10zelvalegszosztseredmnye).Azrk,percek,msodpercekkirsaklnkln,a2szmotkirnitudfggvnysegtsgvel
trtnhetmeg.Azrintettforrskdoka14.11(ch14.html#x127214r11)....14.13(ch14.html#x127234r13).forrskdokbanolvashatak.
14.7.bra.Adigitlisrakpernyje
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
9/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
Bevezetinformcik:VerneGyulaSndorMtysc.knyvbenbemutategytitkostsimdszert,melyneklnyege,hogyegy
mretmtrixcellitegypaprlapra
rajzoltkr,majdapaprlapotadottcellknlkilyukasztottk.Azgykapottmaszkltalszabadcellkbabertkatitkoszenetelsbetit,cellnknt1bett.Aztnelforgattk
amaszkot,sazgykapottszabadcellkbabertkazzenetkvetkezbetit.Mgktszerforgatvasismtelveazeljrstamegfelelhosszzenetmindenkaraktere
bekerltazilymdongenerltmtrixvalamelycelljba.Amaszkismeretbenazzenetknnyedndekdolhat.
14.8.bra.ASndorMtystitkostsmaszkja
14.9.bra.Adekdolandszveg
14.13.feladat(SndorMtysmtrixaszint:4).Egyfjlbana.(pont)s#(hashmark)karakterekblalkotottsorokrnakleegy
mtrixotolymdon,hogyNsoravan,
soronkntNpontvagyhashmarkkarakter.Olvassukbeeztamtrixotegy
mretlogikaitpusmtrixba,aholapontkarakterafalse,ahashmarkkarakteratruertket
kpviseli!AmtrixebbenazalakbanegySndorMtysfletitkostmaszkotrle,atruejelzi,hogyazonapozcinamtrixcelljakivanvgva,afalseanemkivgottcellajele.
Aprogramellenrizzele,hogyamtrixalkalmasezenetkdolsra(vagyisamtrixotngyszerkrbeforgatvamindencellaflkerlkivgottcellaamaszkbl,segyetlen
cellaflsemkerlegykivgottcellasemktszervagytbbszr)!
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
10/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
Magyarzat:Elsfelttel:azNrtkeproskell,hogylegyen.ApratlanNesetnugyanisvanolyancella,amelyamtrixkellskzepnhelyezkedikel,saforgatskzben
helybenmarad.
Aforgatssornamtrixvalamelyi,jkoordintjhozhozzkellrendelniaforgatsutnii,jkoordintt.Ahozzrendelsisszefggseknmigondolkodssalelllthatak:
j=Ni1
i=(j+N)%N
AVerneknyvbenismertetettmtrixelforgatsnakfzisaita14.10(ch14.html#x126032r10).bramutatja,azemltettsszefggstalkalmazprogramkimenetikpernyje
pediga14.11(ch14.html#x126033r11).brnlthat.Aproblmamegoldshozlekellgenerlnunkminda4fzist,majdegyegyezmretintmtrixothasznlvaminden#
elemheztartozcellartktnvelni1gyel(megszmoljuk,hnyszorkerltazadottcellakitakarsra).Amegszmllseredmnyealapjnafeladatknnyenmegvlaszolhat:
mindencellban1szerepel?
14.10.bra.Amtrixa4elforgatsillapotban
14.11.bra.Amtrixelforgatstkijelzprogramkpernyje
14.14.feladat(SndorMtysdekdolszint:4).AzelzfeladatbanismertetettmdonolvassunkbeegySndorMtysflemaszkot,majdegy
karakterblll
titkoszenetet!Aprogramksztseelazzenettitkostottalakjtamaszkhasznlatval!
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
11/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
Magyarzat:Soronknt,balrljobbrahaladvakikellolvasniazokatakaraktereketaz
mretkaraktermtrixbl,amelyekflttamaszk#kerl.Majdelforgatjuka
maszkot,smegismteljkakiolvasst.Eztkellismtelni,mgminda4elforgatsifzisbankiolvastukakitakartkaraktereket.
14.12.bra.Akitakartbetka4elforgatsillapotban
Akialakultszveg:HAZRXTRGSNELTEGGFGZSRORAYGAMLEF.Esetnkben,aVerneknyvbeneztaszvegetvisszafelekellolvasni,sazadotttrtnelmi
korban(1867.v,az1848asszabadsgharcutniidszakban)rtelmezhet.Ateljeszenetaknyvfszerepljnek,SndorMtysgrfnakszl,alzadstsztcsoport
egytitkoszenete.Ateljesszveggenerlshozmindhromkaraktermtrixraalkalmaznikellamaszkot,amaszkmindangyelfogatsifzisban.Ahromszvegesmtrix
dekdolva:
HAZRXTRGSNELTEGGFGZSRORAYGAMLEF
KENLEKKEGEMTYGANLANNOZAERLEJSLEGE
LZEKRLBTZSEIRTNZALLNEZSKNEDNIM
Amelyetvisszafeleolvasvaeztkapjuk:MINDENKSZENLL.AZNTRIESZTBLRKEZLEGELSJELREAZONNALNAGYTMEGEKKELNEKFEL
MAGYARORSZGFGGETLENSGRT.XRZAH.Avgnllrtelmezhetetlentkarakterazzenetetkldszemlytitkosalrsa.
14.15.feladat(SndorMtyskdolszint:4).AzelzfeladatbanismertetettmdonolvassunkbeegySndorMtysflemaszkot,majdegyvalahnykarakterbllltitkos
zenetet!Aprogramksztseelazzenettitkostottalakjtamaszkhasznlatval!Azzenettitkostsasornvegykfigyelembe,hogyazzenetrvidebbvagyhosszabbislehet,
mint
karakter!Ahosszabbzenetesetntbbmintegytitkostottmtrixgenerldik.Amennyibenazzenetvagyazzenetegyrszemrrvidebblenne,mintaz
mret,gyazzenetetegsztskkirandomkarakterekkelmegfelelmretre,sgykdoljukle!
Magyarzat:Azelzfeladatlnyegbenvisszafelevgrehajtva.Amaszkelforgatsautnakaraktermtrixkitakartcellibabekellrniaszvegsoronkvetkezbetit.A4
elforgatsutnegykarakterekkelfeltlttt,telimtrixotkellkapnunk.Azrtkellaszvegetesetlegkiegszteni,hogyazutolskdoltszvegettartalmazkaraktermtrixbanse
legyenkimaradt,rescella.
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
12/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
14.16.feladat(SndorMtysdekdolszint:4).AzelzfeladatokbanismertetettmdonolvassunkbeegySndorMtysflemaszkot,majdegyegyez
mret
karakterekbl(betk,szmok)llmtrixotis!EzenkaraktermtrixszintnNsort,ssoronkntNkarakterttartalmaz.Adekdolmaszksegtsgvelksztskelatitkostottszveg
dekdolst,srjukkiakpernyre!Aprogramjelezzeki,haadekdolmaszkfelptsenemmegfelel,vagyisakaraktermtrixbannemmindenkarakterkerltsorra,vagy
valamelyikkaraktertbbszrissorrakerlt!
Magyarzat:A14.14(ch14.html#x126034r14).feladatmegoldsbanellltmdszerblkellkiindulni.Abeolvasskicsitbonyolultabb,mertnem1,hanemtbbdekdoland
karaktermtrixunkvan,demindegyikreugyangykellvgrehajtaniadekdolst,tehtafeladatnemtartalmazlnyegesneheztstazeredetidekdolsosfeladathozkpest.
Afejezetforrskdjai
14.1.forrskd.Kpernyfeltltsecsillagkarakterekkelegyenletessebessggel
int[]v=newint[1920];
//feltlts
for(inti=0;i<v.Length;i++)
v[i]=i;
//sszekevers
Randomrnd=newRandom();
for(inti=0;i<v.Length*5;i++)
{
intk=rnd.Next(0,v.Length);
intl=rnd.Next(0,v.Length);
intx=v[k];
v[k]=v[l];
v[l]=x;
}
//megjelents
foreach(intninv)
{
intx=n%80;
inty=n/80;
Console.SetCursorPosition(x,y);
Console.Write("*");
}
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
13/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
//kesz
Console.SetCursorPosition(37,12);
Console.Write("KESZ");
14.2.forrskd.Labirintusbeolvassa
//staticchar[,]M=newchar[25,80];
StreamReaderf=
newStreamReader("labiritnus1.txt",Encoding.Default);
intS=0;
while(f.EndOfStream==false)
{
strings=f.ReadLine();
for(intj=0;j<s.Length;j++)
M[S,j]=s[j];
S++;
}
f.Close();
14.3.forrskd.Labirintusmegjelentse
staticvoidkiir()
{
Console.SetCursorPosition(0,0);
for(inti=0;i<24;i++)
{
for(intj=0;j<79;j++)
{
switch(M[i,j])
{
case*:
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
14/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
Console.ForegroundColor=ConsoleColor.Green;
break;
caseS:
Console.ForegroundColor=ConsoleColor.White;
break;
caseK:
Console.ForegroundColor=ConsoleColor.Red;
break;
case.:
Console.ForegroundColor=ConsoleColor.Yellow;
break;
case#:
Console.ForegroundColor=ConsoleColor.Blue;
break;
}
Console.Write(M[i,j]);
}
Console.WriteLine();
}
}
14.4.forrskd.Abefestalgoritmus
staticvoidbefest(intx,inty)
{
if(M[y,x]!=)return;
M[y,x]=.;
befest(x,y1);
befest(x,y+1);
befest(x+1,y);
befest(x1,y);
}
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
15/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
14.5.forrskd.Amdostottbefestalgoritmus
staticvoidbefest(intx,inty,inttavolsag)
{
if(M[y,x]==K)L[y,x]=tavolsag;
if(M[y,x]!=&&M[y,x]!=S)return;
if(M[y,x]==)
{
M[y,x]=.;
L[y,x]=tavolsag;
}
befest(x,y1,tavolsag+1);
befest(x,y+1,tavolsag+1);
befest(x+1,y,tavolsag+1);
befest(x1,y,tavolsag+1);
}
14.6.forrskd.Aztvonalvisszakeresse
staticvoidutkeres(intx,inty)
{
inttav=L[y,x];
if(tav==0)return;
if(L[y1,x]==tav1)
{
M[y1,x]=#;
utkeres(x,y1);
}
elseif(L[y+1,x]==tav1)
{
M[y+1,x]=#;
utkeres(x,y+1);
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
16/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
}
elseif(L[y,x1]==tav1)
{
M[y,x1]=#;
utkeres(x1,y);
}
elseif(L[y,x+1]==tav1)
{
M[y,x+1]=#;
utkeres(x+1,y);
}
}
14.7.forrskd.Azletjtkfprogramja
constintN=20;
constintM=60;
char[,]T=newchar[N,M];
char[,]T2=newchar[N,M];
for(inti=0;i<N;i++)
for(intj=0;j<M;j++)
T[i,j]=.;
//
StreamReaderf=
newStreamReader(@"c:\feladatok\eletjatek1.txt",Encoding.Default);
intS=0;
while(f.EndOfStream==false)
{
strings=f.ReadLine();
for(intj=0;j<s.Length;j++)
T[S,j]=s[j];
S++;
}
f.Close();
//
while(true)
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
17/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
{
kiir(T,N,M);
Thread.Sleep(200);
kalkulacio(T,T2,N,M);
if(Console.KeyAvailable)
if(Console.ReadKey(false).Key==ConsoleKey.Escape)
break;
}
14.8.forrskd.Acellaszomszdokmegszmolsa
staticintszomszedokSzama(char[,]T,intN,intM,inti,intj)
{
intdb=0;
if(i>0&&T[i1,j]!=.)db++;
if(i<N1&&T[i+1,j]!=.)db++;
if(j>0&&T[i,j1]!=.)db++;
if(j<M1&&T[i,j+1]!=.)db++;
//
if(i>0&&j>0&&T[i1,j1]!=.)db++;
if(i<N1&&j>0&&T[i+1,j1]!=.)db++;
if(i>0&&j<M1&&T[i1,j+1]!=.)db++;
if(i<N1&&j<M1&&T[i+1,j+1]!=.)db++;
returndb;
}
14.9.forrskd.Akvetkezllapotkalkulcija
staticvoidkalkulacio(char[,]T,char[,]uj,intN,intM)
{
for(inti=0;i<N;i++)
for(intj=0;j<M;j++)
{
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
18/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
uj[i,j]=T[i,j];
intdb=szomszedokSzama(T,N,M,i,j);
if(T[i,j]==#)
{
if(db<2||db>3)uj[i,j]=.;
}
elseif(T[i,j]==.)
{
if(db==3)uj[i,j]=#;
}
}
//
for(inti=0;i<N;i++)
for(intj=0;j<M;j++)
T[i,j]=uj[i,j];
}
14.10.forrskd.Azaktulisllapotmegjelentse
staticvoidkiir(char[,]T,intN,intM)
{
Console.SetCursorPosition(0,0);
for(inti=0;i<N;i++)
{
for(intj=0;j<M;j++)
{
switch(T[i,j])
{
case#:
Console.ForegroundColor=ConsoleColor.Green;
break;
default:
Console.ForegroundColor=ConsoleColor.Gray;
break;
}
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
19/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
Console.Write(T[i,j]);
}
Console.WriteLine();
}
}
14.11.forrskd.Adigitlisrafprogramja
while(true)
{
DateTimen=DateTime.Now;
kijelez2(n.Hour,3,3,ConsoleColor.Green);
kijelez2(n.Minute,6,3,ConsoleColor.Blue);
kijelez2(n.Second,9,3,ConsoleColor.Yellow);
Console.SetCursorPosition(3,1);
Console.ForegroundColor=ConsoleColor.Gray;
Console.Write("{0,2}:{1,2}:{2,2}",n.Hour,n.Minute,n.Second);
Thread.Sleep(1000);
}
14.12.forrskd.Ktszmjegykijelzse
staticvoidkijelez2(intszam,intx,inty,ConsoleColorszin)
{
inta=szam%10;
intb=szam/10;
kijelez(x,y,b,szin);
kijelez(x+1,y,a,szin);
}
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
20/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
14.13.forrskd.Egyszmjegykijelzse
staticvoidkijelez(intx,inty,intszamjegy,ConsoleColorszin)
{
for(inti=0;i<4;i++)
{
intbit=szamjegy%2;
szamjegy=szamjegy/2;
Console.SetCursorPosition(x,y+3i);
Console.ForegroundColor=szin;
if(bit==1)Console.Write(#);
elseConsole.Write(.);
}
}
tartalomjegyzk(#)
adatlap(#)
C#feladatgyjtemny(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/index.html)
Elsz(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch01.html)
Azadatokbeskivitele,sazelgazsok(szerz:KirlyRoland)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch02.html)
Afejezetforrskdjai(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch02.html)
Ujjgyakorlatok(szerz:KirlyRoland)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch03.html)
Afejezetforrskdjai(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch03.html)
Ciklusokhozkapcsoldfeladatok(szerz:KirlyRoland)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch04.html)
Afejezetforrskdjai(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch04.html)
Szmokssorozatok(szerz:KirlyRoland)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch05.html)
Afejezetforrskdjai(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch05.html)
Vektorokkalsazokkezelsvelkapcsolatosfeladatok(szerz:KirlyRoland)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch06.html)
Afejezetforrskdjai(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch06.html)
Aforeachciklussalkapcsolatosfeladatok(szerz:KirlyRoland)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch07.html)
Afejezetforrskdjai(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch07.html)
Ciklusoksvektorokhasznlatasszetettszvegelemzsre(szerz:KirlyRoland)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch08.html)
Afejezetforrskdjai(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch08.html)
Mtrixokfeltltsvelkapcsolatosfeladatok(szerz:HernykZoltn)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch09.html)
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
21/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
Afejezetforrskdjai(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch09.html)
Numerikusmveletekmtrixokkal(szerz:HernykZoltn)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch10.html)
Afejezetforrskdjai(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch10.html)
Mtrixokvizsglata(szerz:Hernykzoltn)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch11.html)
Afejezetforrskdjai(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch11.html)
Transzformcismtrixok(szerz:HernykZoltn)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch12.html)
Amgikussbvsngyzetek(szerz:HernykZoltn)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch13.html)
Afejezetforrskdjai(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch13.html)
Kpernykezelsselkapcsolatosfeladatok(szerz:HernykZoltn)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html)
Afejezetforrskdjai(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html)
Listkfeltltsvelkapcsolatosfeladatok(szerz:Hernykzoltn)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch15.html)
Afejezetforrskdjai(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch15.html)
Listkkalkapcsolatosfeladatok(szerz:HernykZoltn)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch16.html)
Afejezetforrskdjai(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch16.html)
Rekordokslistkegytt(szerz:HernykZoltn)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch17.html)
Afejezetforrskdjai(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch17.html)
WindowsForm(szerz:RadvnyiTibor)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch18.html)
Aformstulajdonsgai(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch18.html)
Alapvetkomponensek,adatbekrssmegjelents(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch18s02.html)
Vlasztsok(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch18s03.html)
Listkkezelse(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch18s04.html)
Egybeszkzk,id,dtum,rtkbellts(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch18s05.html)
Menkseszkztrak(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch18s06.html)
Tbbinfoegyformon(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch18s07.html)
Dialgusok(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch18s08.html)
Modlissnemmodlisformok(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch18s09.html)
Idztsszenetek(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch18s10.html)
Adatkezels(szerz:RadvnyiTibor)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch19.html)
SqlConnection,ConnectionString(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch19.html)
AzSqlCommand(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch19s02.html)
Adatokmegjelentse,adatkts,DateSetsDataTable(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch19s03.html)
Trolteljrsokrsashasznlata(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch19s04.html)
Grafikaifeladatok(szerz:KovcsEmd)(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch20.html)
Grafikaifeladatok(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch20.html)
Afejezetforrskdjai1.(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch20s02.html)
Afejezetforrskdjai2.(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch20s03.html)
Afejezetforrskdjai3.(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch20s04.html)
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
22/23
6/27/2016
C#feladatgyjtemny|DigitlisTanknyvtr
Afejezetforrskdjai4.(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch20s05.html)
Afejezetforrskdjai5.(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch20s06.html)
Afejezetforrskdjai6.(/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch20s07.html)
(http://www.nfu.hu)
(http://www.esza.hu)
(http://www.eisz.hu)
(http://www.educatio.hu)
(http://www.nfu.hu)
http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_csharp_feladatgyujtemeny/ch14.html
23/23