-
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