2015.03.16. Programozsialapismeretek
data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p 1/11
Fel
alap
tetejre
Tanulsitmutat
sszefoglalsCode::Blocks letltsi s teleptsi tudnivalk els tapasztalatok szerzse aCode::Blockskrnyezetrlforrsfjl,futtathatkd
Kvetelmny
nllanmegoldhatfeladatok{essz}
Aprogramksztsifolyamatlpseikzlsoroljonfllegalbbtt!
{/essz}
{essz}
Azalgoritmusfogalmt5fontoskijelentsselhatroztukmeg.Mikezek?
{/essz}
{essz}
Azalgoritmusmely3sszelltsimdjtemltettkazelzleckben?
{/essz}
Tartalomjegyzk
AzelsCode::Blocksostapasztalatok
ACode::Blocksmegszerzse
Afejlesztikrnyezetrlnhnyalapvettudnival
Telepts
Tapasztalatszerzs
Azelselindtskor
Atovbbilpsek
1.feladat
2.feladat
3.feladat
4.feladat
5.feladat
Tovbbihasznoskdolsiszoksok
2015.03.16. Programozsialapismeretek
data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p 2/11
Minimlisprograminformcikaforrskdban
6.feladat
Aprogramfejlesztskvetsnekadminisztrlsa
7.feladat
AzelsCode::Blocksostapasztalatok
ACode::Blocksmegszerzse
Afejlesztikrnyezetrlnhnyalapvettudnival
neve:Code::Blocks
letlthelye:http://www.codeblocks.org
hasznlatijog:nyltforrskd,szabadonfelhasznlhat
lnyege:keretrendszer,amelysokfleplatformon(Windows,Mac,Linux),elssorbanC++programozsinyelvhezbiztostknyelmesprogramfejlesztsikrnyezetettbbflefordtprogramotkpesmagbaintegrlni(javasolt:GNUGCC)lehetvteszinyomkvetrendszerbeplstsknyelmeshasznlatt(javasolt:GNUGDB)
szolgltatsai(tbbekkzt):tbbprogramegyidejszerkesztserugalmasanmdosthatszintaxiskiemels(syntaxhighlighting)interaktvkdsgs(codecompletion)
Telepts
Windows krnyezetben (ez az ajnlott) a letlt anyag eleve tartalmazza azajnlottfordtprogramotsanyomkvetrendszert.Ateleptstermszetesen rendszergazdai jogokat ignyel, de a sgja vgig vezeti a teleptt. Kb. 100MB(megabjt)lemezterletetignyel.
Az elkvetkezkbenaWindows krnyezetben futCode::Blocks keretrendszerrlleszsz.
Visszaatartalomjegyzkhez
Tapasztalatszerzs
Azelselindtskor
2015.03.16. Programozsialapismeretek
data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p 3/11
ACode::Blockselselindtsakortrtnikafordtprogramhozzrendelse.Ekkorjelzi ki, hogy mely szmra felismerhet C vagy C++ fordtprogramoktallhatkalemezen,svlasztsraknlja,hogymelyiklegyenafelttelezett.
ACode::Blockselsindtsakorfeltrkpezi,hogymilyenfordtprogramoktallhatkaszmtgpen.
Atovbbilpsek
Projektltrehozsaazrtlnyeges,mertaltrehozandprogramtbbfjlblllrendszert alkot. Pldul lehet tbbforrsfjl (C++ nyelv programot tartalmazfjl)is(legalbbegy,ltalbanmain.cppnevvan),amelyekblafordtprogramkszt n. flig lefordtott, o kiterjeszts (n. object) fjl(okat), majda futathat kdot (teht a processzor szmra rthet gpi utastsokat)tartalmaz, exe kiterjeszts fjlt. Hogy ez a sok fjl ne keveredjen seegymssal, se ms programok fjljaival, kln, sajtos knyvtrrendszerbecsoportostja a Code::Blocks. Tbbek kzt ennek lerst jelenti a projekt,amelyetegyklnfjlban(cbpCodeBlocksProject)trol.
ACode::Blocksnyitkpernyje.
2015.03.16. Programozsialapismeretek
data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p 4/11
A Create a new project linkre kattintva, megjelenik egy vlasztk arrl, hogymilyenalkalmazselksztshezkellaprojektetltrehozni.Amiesetnkbenezegyn.konzolalkalmazs(ConsoleApplication)lesz.
ACode::Blocksprojektflkvlasztka.
Miutn a C++ nyelvet kivlasztottuk, az ezt kvet lpsek a munkakrnyezet(knyvtrszerkezet)felptstclozzk.
ACode::Blockskonzolalkalmazsprojektelsparamterezablaka.
A projektnv kitltse utn annak a knyvtrnak a kivlasztsa kvetkezik,amelybl (mint szlknyvtrbl) nylik a projekt nevvel megegyezknyvtrunkaksztendalkalmazsunkszmra.Ebblnylnakmajdaspecilisfjljainkattartalmaztovbbiknyvtrak.Egylehetsgeskitltspldja:
2015.03.16. Programozsialapismeretek
data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p 5/11
ACode::Blockskonzolalkalmazsprojektelsparamterezablaka,kitltve.
A fentiparamterezsszerintaprojektnket ler fjlaz elsoprogram.cbp lesz.Tovbblpvedntnkafordtprogramrl.Azopcionlisatknljaflegybl,amitmost el is fogadunk. Az albbi bramutatja, hogy bellthatmg a futtathat,illetveafliglefordtottkdottartalmazfjlalknyvtrnakneve.Eztrdemesafelknltnakmegfelelenelfogadni.
ACode::Blockskonzolalkalmazsprojektmsodikparamterezablaka.
Azbraelruljaaztazrdekessget is,hogymdvanktfleclra fejleszteniaprogramot. Fejleszts alatt j, ha a kd tartalmaz olyan informcikat is, amelytmogatja a nyomkvet programot (debugger). Ennek a kdjai (futtathat s
2015.03.16. Programozsialapismeretek
data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p 6/11
object) kerlnek a Debug rszben belltottakba. A vglegesben mr csak aminimlisan szksges kdok tallhatk. Ezek a fjlok a Release rszbenbelltottalknyvtrprbakerlnek.
ACode::Blockskrnyezetkszaprogramszerkesztsre.
ACode::Blockskonzolalkalmazsprojektablaka,aforrsprogramszerkesztskezdetn.
A bal oldali rsz Sourcest kinyitva s dupln rkattintva a lthatv vlmain.cppre, a jobb oldali rszben egy ksz, tovbbi mintul szolgl programforrsajelenikmeg.
ACode::Blockskonzolalkalmazsprojektablaka,aforrsprogramszerkesztskezdetn.Aforrsablakkinyitsautn.
E program egy tipikus, n. hell vilg program, amelyszintaktikusan is,s szemantikusan is helyes. Fordtsuk le, azaz a Build men Buildmenpontjravagykzvetlenlazeszkzkszlet,fogaskereketmintzikonjrakattintsunk r. A fordts eredmnyeknt a jobb oldali als ablaktartomnybanjelenikmegafordtzenete,tbbekkzt,hogy0errors,0warnings.
2015.03.16. Programozsialapismeretek
data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p 7/11
1.feladat
Nzzk meg, hogy ekkorra a munkaknyvtrunk szerkezete elvrsunknakmegfelelenalakulte,valaminthogymilyenfjlokattartalmaznak!Rajzoljukfelakialakult knyvtrszerkezetet! rdemes az egyes fjlok tartalmt, valamilyenegyszer szvegszerkesztvel (pl. jegyzettmb) bellrl is megnzni. Mittapasztalt, melyek tartalmaztak olvashat informcikat, melyek voltakmegfejthetetlenek?
Az ismerkeds utols lpseknt, nzzk meg, mit is csinl a gyri program!Afuttatskvetkezik: rkattintvaaBuildmenRunmenpontjra(vagyazldhromszgre)azalbbiablaknylikki.
ACode::Blocksindulsakor"felknltmintaprogram"fordtssfutsutn(konzolalkalmazsvlasztsaesetn).
Felismerhet benne az amgy is sejthet programzenet: Hello world!. Amintaprogram tevkenysge utn megjelen tovbbi zeneteket a Code::Blocksteszihozz,amivelmegakadlyozza,hogyakonzolalkalmazsunkablakamgazelttbecsukdjk,hogyelolvashatnnkaprogramunksokatmondzenett.
2.feladat
A bin/Debug knyvtrban keletkezett futtathat kdot (elsoprogram.exe)kzvetlenl,azopercisrendszerbenisindtsukel!Mitapasztalhat?
3.feladat
Amunkaknyvtron bell hny olyan fjlt tallt, amely nevben felismerhet aprojektneve(mostazelsoprogram)?
4.feladat
Keresse meg azt a menpontot, amellyel vlasztani tud az n. debug (azazfejlesztsalattll)sazn.release(vgleges)vltozatkztt!
Ugyemegtallta:Build+Select?
2015.03.16. Programozsialapismeretek
data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p 8/11
5.feladat
Trgykdknt(azazfuttathatkdknt)avglegesetkivlasztvavgezzeelazjrafordtst!EhhezhasznljaaBuild+Rebuildmenpontot!Ezutnvessesszeakt(bin/Debugsbin/Release)knyvtrbeliexekmrett!
Tovbbihasznoskdolsiszoksok
Atovbbiaknemnlklzhetetlentudnivalkat jelentenek,de igenhasznos lesza ksbbi programfejlesztsi munklatok sorn. Az egyik ilyen kialaktandszoks a program ksr informciinak elhelyezsre, a msik a tbblpcsbentrtnfejlesztsegyfajtatmogatsilehetsgrevonatkozik.
Minimlisprograminformcikaforrskdban
Aprogramba clszer elhelyezni a szerzrl s a feladatrl nhny ismeretet. AszerznevemellettEHAkdjt,emailcmt.Afeladatrlazinformlisszvegt,snagyonjszolglatottehetaspecifikcija.
Mindezeket, termszetesen, a forrsprogramba n.kommentknt,megjegyzsknt (azaz a fordtprogram szmra kihagyand informciknt)illesszkbeaprogramnyitsoraigyannt.Pldulgy:
Ha az a clunk, hogy a fenti sablontminden ksbb szerkesztett programunkbabeillesszk,akkorehhezaCode::Blockssegtsgetistudadni.Annakrdekben,hogy legalbb a vltozatlan rszeit e kommentsorozatnak ne kelljenminduntalan bebillentyznnk, n. sablonknt(template) kimentjk: File+Saveproject as usertemplate menpont, majd a sablon nevt megadjuk. gy kerlkimentsre a merevlemeznk (a Code::Blocks sajt munkaterletre. Sajnosebbl a filozfibl az is kvetkezik, hogy csak az ltaluk llandan hasznltgpenlehetlniezzelagpelstsprollehetsggel.
1234567891011121314
//Nv:SzlviPter//ETRAZONOST:SZPKAFT.ELTE//MAIL:[email protected]//Feladat:ittaszveg//ittaszvegfolytatsa,akrtbbsoronkeresztl//Specifikci://Bemenet:ittaspecifikcibemenetirsze//Kimenet:ittaspecifikcikimenetirsze//Elfelttel:ittaspecifikcielfelttelirsze//Utfelttel:ittaspecifikciutfelttellirsze//Definci:ittaspecifikcidefincirsze//#include
2015.03.16. Programozsialapismeretek
data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p 9/11
ACode::Blockssablonmentse.
A sablon betltse sem bonyolult: New+From template, majd a sablonkivlasztsa (az addigra kimentett esetleg tbb kzl), s a mr megszokottmunkakrnyezetltrehozszertartskvetkezik.
2015.03.16. Programozsialapismeretek
data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200 10/11
ACode::Blockssablonbetltse.
6.feladat
Dertse ki, hova s milyen fjlok kerltek a sablon gyannt kimentsre!Segtsgknt: az n szemlyhez ktd informcik kzt kell keresnie arendszerterleten!
Aprogramfejlesztskvetsnekadminisztrlsa
A programfejleszts, ha csak a kdolssal sszefgg rsztevkenysgregondolunk,akkor istbbfordult ignyltevkenysg.Annakrdekben,hogyegyegy flbe hagyott fejlesztsi lps torz ne maradjon, rdemesemlkeztetket elhelyezni magban a kdba. Ehhez az hajunkhoz is nyjtsegdkezet a keretrendszer az n. TODOkkal. A TODO, azaz to do (magyarulteend, megcsinland) nem ms, mint egy specilis kommentfajta aforrskdban. Alakja: {forraskodbe}//TODO az emlkeztet szveg {/forraskodbe}
Egy tipikus programdarab, amelyet az elbbi sablon bvtsvel nyertnk (ssablonkntmentettnkki),azalbbi:
2015.03.16. Programozsialapismeretek
data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200 11/11
Termszetesen tovbbi TODOkat is el lehet helyezni a legklnflbbkdrszeknl.Pldulilyeneket:
A krds csak az,miknt lehet az gy feltuprozott forrsbl kinyerni ezeket atbbletinformcikat anlkl, hogy vgig kelljen olvasni a teljes forrst. AView+ToDolistmenpontotkivlasztvaegyklnablakbanmegjelenikaTODOk felsorolsa, amely brmelyikre rkattintva, a kurzor az adott programpontrakerl,megsprolvaneknkahosszaskeresglst.
123456789101112131415161718
//Nv:SzlviPter//ETRAZONOST:SZPKAFT.ELTE//MAIL:[email protected]//Feladat:ittaszveg//ittaszvegfolytatsa,akrtbbsoronkeresztl//Specifikci://Bemenet:ittaspecifikcibemenetirsze//Kimenet:ittaspecifikcikimenetirsze//Elfelttel:ittaspecifikcielfelttelirsze//Utfelttel:ittaspecifikciutfelttellirsze//Definci:ittaspecifikcidefincirsze////TODOafeladatszvegkitltse//TODOaspecifikcimegalkotsa//TODO//#include
123456
coutN;//TODOellenrzsselbvtendabeolvassfor(inti=0;i