You are on page 1of 11

2015.03.16.

Programozsialapismeretek

Tanulsitmutat
sszefoglals
Code::Blocks letltsi s teleptsi tudnivalk els tapasztalatok szerzse a
Code::Blockskrnyezetrlforrsfjl,futtathatkd

Kvetelmny
nllanmegoldhatfeladatok
{essz}
Aprogramksztsifolyamatlpseikzlsoroljonfllegalbbtt!
{/essz}
{essz}
Azalgoritmusfogalmt5fontoskijelentsselhatroztukmeg.Mikezek?
{/essz}
{essz}
Azalgoritmusmely3sszelltsimdjtemltettkazelzleckben?
{/essz}

Tartalomjegyzk

Fel
alap

AzelsCode::Blocksostapasztalatok

tetejre

ACode::Blocksmegszerzse
Afejlesztikrnyezetrlnhnyalapvettudnival
Telepts
Tapasztalatszerzs
Azelselindtskor
Atovbbilpsek
1.feladat
2.feladat
3.feladat
4.feladat
5.feladat
Tovbbihasznoskdolsiszoksok

data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p

1/11

2015.03.16.

Programozsialapismeretek

Minimlisprograminformcikaforrskdban
6.feladat
Aprogramfejlesztskvetsnek
adminisztrlsa
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++programozsinyelvhezbiztostknyelmes
programfejlesztsikrnyezetettbbflefordtprogramotkpesmagba
integrlni(javasolt:GNUGCC)lehetvteszinyomkvetrendszer
beplstsknyelmeshasznlatt(javasolt:GNUGDB)
szolgltatsai(tbbekkzt):tbbprogramegyidejszerkesztse
rugalmasanmdosthatszintaxiskiemels(syntaxhighlighting)
interaktvkdsgs(codecompletion)

Telepts
Windows krnyezetben (ez az ajnlott) a letlt anyag eleve tartalmazza az
ajnlottfordtprogramotsanyomkvetrendszert.Ateleptstermszetesen
rendszergazdai jogokat ignyel, de a sgja vgig vezeti a teleptt. Kb. 100
MB(megabjt)lemezterletetignyel.
Az elkvetkezkben a Windows krnyezetben fut Code::Blocks keretrendszerrl
leszsz.
Visszaatartalomjegyzkhez

Tapasztalatszerzs
Azelselindtskor

data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p

2/11

2015.03.16.

Programozsialapismeretek

ACode::Blockselselindtsakortrtnikafordtprogramhozzrendelse.Ekkor
jelzi ki, hogy mely szmra felismerhet C vagy C++ fordtprogramok
tallhatkalemezen,svlasztsraknlja,hogymelyiklegyenafelttelezett.

ACode::Blockselsindtsakorfeltrkpezi,hogymilyenfordtprogramok
tallhatkaszmtgpen.

Atovbbilpsek
Projektltrehozsaazrtlnyeges,mertaltrehozandprogramtbbfjlblll
rendszert alkot. Pldul lehet tbbforrsfjl (C++ nyelv programot tartalmaz
fjl)is(legalbbegy,ltalbanmain.cppnevvan),amelyekblafordtprogram
kszt n. flig lefordtott, o kiterjeszts (n. object) fjl(okat), majd
a futathat kdot (teht a processzor szmra rthet gpi utastsokat)
tartalmaz, exe kiterjeszts fjlt. Hogy ez a sok fjl ne keveredjen se
egymssal, se ms programok fjljaival, kln, sajtos knyvtrrendszerbe
csoportostja a Code::Blocks. Tbbek kzt ennek lerst jelenti a projekt,
amelyetegyklnfjlban(cbpCodeBlocksProject)trol.

ACode::Blocksnyitkpernyje.

data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p

3/11

2015.03.16.

Programozsialapismeretek

A Create a new project linkre kattintva, megjelenik egy vlasztk arrl, hogy
milyen alkalmazs elksztshez kell a projektet ltrehozni. A mi esetnkben ez
egyn.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 megegyez
knyvtrunkaksztendalkalmazsunkszmra.Ebblnylnakmajdaspecilis
fjljainkattartalmaztovbbiknyvtrak.Egylehetsgeskitltspldja:

data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p

4/11

2015.03.16.

Programozsialapismeretek

ACode::Blockskonzolalkalmazsprojektelsparamterezablaka,kitltve.

A fenti paramterezs szerint a projektnket ler fjl az elsoprogram.cbp lesz.


Tovbblpvedntnkafordtprogramrl.Azopcionlisatknljaflegybl,amit
most el is fogadunk. Az albbi bra mutatja, hogy bellthat mg a futtathat,
illetveafliglefordtottkdottartalmazfjlalknyvtrnakneve.Eztrdemesa
felknltnakmegfelelenelfogadni.

ACode::Blockskonzolalkalmazsprojektmsodikparamterezablaka.

Az bra elrulja azt az rdekessget is, hogy md van ktfle clra fejleszteni a
programot. Fejleszts alatt j, ha a kd tartalmaz olyan informcikat is, amely
tmogatja a nyomkvet programot (debugger). Ennek a kdjai (futtathat s

data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p

5/11

2015.03.16.

Programozsialapismeretek

object) kerlnek a Debug rszben belltottakba. A vglegesben mr csak a


minimlisan szksges kdok tallhatk. Ezek a fjlok a Release rszben
belltottalknyvtrprbakerlnek.
ACode::Blockskrnyezetkszaprogramszerkesztsre.

ACode::Blockskonzolalkalmazsprojektablaka,aforrsprogramszerkesztskezdetn.

A bal oldali rsz Sourcest kinyitva s dupln rkattintva a lthatv vl


main.cppre, a jobb oldali rszben egy ksz, tovbbi mintul szolgl program
forrsajelenikmeg.

ACode::Blockskonzolalkalmazsprojektablaka,aforrsprogramszerkesztskezdetn.A
forrsablakkinyitsautn.

E program egy tipikus, n. hell vilg program, amelyszintaktikusan is,


s szemantikusan is helyes. Fordtsuk le, azaz a Build men Build
menpontjravagykzvetlenlazeszkzkszlet,fogaskereketmintzikonjra
kattintsunk r. A fordts eredmnyeknt a jobb oldali als ablaktartomnyban
jelenikmegafordtzenete,tbbekkzt,hogy0errors,0warnings.

data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p

6/11

2015.03.16.

Programozsialapismeretek

1.feladat
Nzzk meg, hogy ekkorra a munkaknyvtrunk szerkezete elvrsunknak
megfelelenalakulte,valaminthogymilyenfjlokattartalmaznak!Rajzoljukfela
kialakult knyvtrszerkezetet! rdemes az egyes fjlok tartalmt, valamilyen
egyszer szvegszerkesztvel (pl. jegyzettmb) bellrl is megnzni. Mit
tapasztalt, melyek tartalmaztak olvashat informcikat, melyek voltak
megfejthetetlenek?
Az ismerkeds utols lpseknt, nzzk meg, mit is csinl a gyri program!
A futtats kvetkezik: rkattintva a Build men Run menpontjra (vagy a zld
hromszgre)azalbbiablaknylikki.

ACode::Blocksindulsakor"felknltmintaprogram"fordtssfutsutn
(konzolalkalmazsvlasztsaesetn).

Felismerhet benne az amgy is sejthet programzenet: Hello world!. A


mintaprogram tevkenysge utn megjelen tovbbi zeneteket a Code::Blocks
teszihozz,amivelmegakadlyozza,hogyakonzolalkalmazsunkablakamgaz
elttbecsukdjk,hogyelolvashatnnkaprogramunksokatmondzenett.

2.feladat
A bin/Debug knyvtrban keletkezett futtathat kdot (elsoprogram.exe)
kzvetlenl,azopercisrendszerbenisindtsukel!Mitapasztalhat?

3.feladat
A munkaknyvtron bell hny olyan fjlt tallt, amely nevben felismerhet a
projektneve(mostazelsoprogram)?

4.feladat
Keresse meg azt a menpontot, amellyel vlasztani tud az n. debug (azaz
fejlesztsalattll)sazn.release(vgleges)vltozatkztt!
Ugyemegtallta:Build+Select?

data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p

7/11

2015.03.16.

Programozsialapismeretek

5.feladat
Trgykdknt(azaz futtathat kdknt) a vglegeset kivlasztva vgezze el az
jrafordtst! Ehhez hasznlja a Build+Rebuild menpontot! Ezutn vesse ssze a
kt(bin/Debugsbin/Release)knyvtrbeliexekmrett!

Tovbbihasznoskdolsiszoksok
A tovbbiak nem nlklzhetetlen tudni valkat jelentenek, de igen hasznos lesz
a ksbbi programfejlesztsi munklatok sorn. Az egyik ilyen kialaktand
szoks a program ksr informciinak elhelyezsre, a msik a tbb
lpcsbentrtnfejlesztsegyfajtatmogatsilehetsgrevonatkozik.

Minimlisprograminformcikaforrskdban
A programba clszer elhelyezni a szerzrl s a feladatrl nhny ismeretet. A
szerznevemellettEHAkdjt,emailcmt.Afeladatrlazinformlisszvegt,
snagyonjszolglatottehetaspecifikcija.
Mindezeket,
termszetesen,
a
forrsprogramba
n.kommentknt,
megjegyzsknt (azaz a fordtprogram szmra kihagyand informciknt)
illesszkbeaprogramnyitsoraigyannt.Pldulgy:
1
2
3
4
5
6
7
8
9
10
11
12
13
14

//Nv:SzlviPter
//ETRAZONOST:SZPKAFT.ELTE
//MAIL:szlavip@elte.hu
//Feladat:ittaszveg
//ittaszvegfolytatsa,akrtbbsoronkeresztl
//Specifikci:
//Bemenet:ittaspecifikcibemenetirsze
//Kimenet:ittaspecifikcikimenetirsze
//Elfelttel:ittaspecifikcielfelttelirsze
//Utfelttel:ittaspecifikciutfelttellirsze
//Definci:ittaspecifikcidefincirsze
//
#include<iostream>

Ha az a clunk, hogy a fenti sablont minden ksbb szerkesztett programunkba


beillesszk,akkorehhezaCode::Blockssegtsgetistudadni.Annakrdekben,
hogy legalbb a vltozatlan rszeit e kommentsorozatnak ne kelljen
minduntalan bebillentyznnk, n. sablonknt(template) kimentjk: File+Save
project as usertemplate menpont, majd a sablon nevt megadjuk. gy kerl
kimentsre a merevlemeznk (a Code::Blocks sajt munkaterletre. Sajnos
ebbl a filozfibl az is kvetkezik, hogy csak az ltaluk llandan hasznlt
gpenlehetlniezzelagpelstsprollehetsggel.

data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p

8/11

2015.03.16.

Programozsialapismeretek

ACode::Blockssablonmentse.

A sablon betltse sem bonyolult: New+From template, majd a sablon


kivlasztsa (az addigra kimentett esetleg tbb kzl), s a mr megszokott
munkakrnyezetltrehozszertartskvetkezik.

data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200p

9/11

2015.03.16.

Programozsialapismeretek

ACode::Blockssablonbetltse.

6.feladat
Dertse ki, hova s milyen fjlok kerltek a sablon gyannt kimentsre!
Segtsgknt: az n szemlyhez ktd informcik kzt kell keresnie a
rendszerterleten!

Aprogramfejlesztskvetsnekadminisztrlsa
A programfejleszts, ha csak a kdolssal sszefgg rsztevkenysgre
gondolunk, akkor is tbb fordult ignyl tevkenysg. Annak rdekben, hogy
egyegy flbe hagyott fejlesztsi lps torz ne maradjon, rdemes
emlkeztetket elhelyezni magban a kdba. Ehhez az hajunkhoz is nyjt
segdkezet a keretrendszer az n. TODOkkal. A TODO, azaz to do (magyarul
teend, megcsinland) nem ms, mint egy specilis kommentfajta a
forrskdban. Alakja: {forraskodbe}//TODO az emlkeztet szveg
{/forraskodbe}
Egy tipikus programdarab, amelyet az elbbi sablon bvtsvel nyertnk (s
sablonkntmentettnkki),azalbbi:

data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200

10/11

2015.03.16.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

Programozsialapismeretek

//Nv:SzlviPter
//ETRAZONOST:SZPKAFT.ELTE
//MAIL:szlavip@elte.hu
//Feladat:ittaszveg
//ittaszvegfolytatsa,akrtbbsoronkeresztl
//Specifikci:
//Bemenet:ittaspecifikcibemenetirsze
//Kimenet:ittaspecifikcikimenetirsze
//Elfelttel:ittaspecifikcielfelttelirsze
//Utfelttel:ittaspecifikciutfelttellirsze
//Definci:ittaspecifikcidefincirsze
//
//TODOafeladatszvegkitltse
//TODOaspecifikcimegalkotsa
//TODO
//
#include<iostream>

Termszetesen tovbbi TODOkat is el lehet helyezni a legklnflbb


kdrszeknl.Pldulilyeneket:
1
2
3
4
5
6

cout<<"N:";cin>>N;//TODOellenrzsselbvtendabeolvass

for(inti=0;i<N;++i)//TODOaciklusszervezsmgmeggondoland
{

A krds csak az, miknt lehet az gy feltuprozott forrsbl kinyerni ezeket a


tbbletinformcikat anlkl, hogy vgig kelljen olvasni a teljes forrst. A
View+ToDolistmenpontotkivlasztvaegyklnablakbanmegjelenikaTODO
k felsorolsa, amely brmelyikre rkattintva, a kurzor az adott programpontra
kerl,megsprolvaneknkahosszaskeresglst.

data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22utmutato%22%20style%3D%22padding%3A%200px%3B%20margin%3A%2030px%205px%200

11/11

You might also like