You are on page 1of 23

6/27/2016

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

You might also like