programozási alapismeretek

11
Fel a lap tetejére Tanulási útmutató Összefoglalás Code::Blocks letöltési és telepítési tudnivalók; első tapasztalatok szerzése a Code::Blocks környezetről; forrásfájl, futtatható kód Követelmény Önállóan megoldható feladatok {esszé} A programkészítési folyamat lépései közül soroljon föl legalább ötöt! {/esszé} {esszé} Az algoritmus fogalmát 5 fontos kijelentéssel határoztuk meg. Mik ezek? {/esszé} {esszé} Az algoritmus mely 3 összeállítási módját említettük az előző leckében? {/esszé} Tartalomjegyzék Az első Code::Blocksos tapasztalatok A Code::Blocks „megszerzése” A fejlesztői környezetről néhány alapvető tudnivaló Telepítés Tapasztalatszerzés Az első elindításkor A további lépések 1. feladat 2. feladat 3. feladat 4. feladat 5. feladat További hasznos kódolási szokások

Upload: gyttibi

Post on 02-Oct-2015

53 views

Category:

Documents


5 download

DESCRIPTION

Code:Block telepítése

TRANSCRIPT

  • 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