Lärobok Programmering 1 (C++) - Alesna ?· Jag ska börja den här läroboken i programmering med att…

  • View
    215

  • Download
    2

Embed Size (px)

Transcript

  • LrobokProgrammering1(C++)NybrjarprogrammeringEnenkelstartpdininlrningavdensknaprogrammeringskonsten.IbokenarbetarvimedC++,menbokeninnehllermycketgenerellkunskap.morgan.augustsson20100902

  • InledningSomprogrammerarefrmanoftafrnandraickeprogrammerarehra,jagbegriperintehurduharkunnatlradigallkodutantill.Alladessakonstigakrumelurerochlustigatecken!

    Frdeallraflestasavskrckerfrstakontaktenmedprogrammeringskodochfrdeflestaskommerdataprogrammeringattfrbliettmysteriumfrbehlletettftalunderligafigurerattbehrska.

    Jagtalarganskaoftamedminakollegorpdenskola,drjagarbetar,ochframfralltsslsjagavlikhetenmeddebekymmersommattelrarnamterisinundervisning.Mngaeleverharavintetillamenandefrldrarellerandranrstendeblivititutadeattmattersvrt,nstintillomjligtattlrasig.

    Jagskabrjadenhrlrobokeniprogrammeringmedattslhlpettantalmyterochdummavanfrestllningar.

    1. Viprogrammerarekaninteenmassakodutantill.Vihartillgnatossenmetodochviharhjlpligtlrtossattbehrskaettellerfleraprogrammeringssprkmedalladerasgrammatiskaregler.Nrmantalaromprogrammeringssprktalarmanvisserligeninteomsprkligareglersomgrammatiskareglerutanomsprketssyntax,ettannatuttryck,mendetbetyderprecissammasak.Ivrigtsrvitacksammafrattdetfinnsmanualerochinformationpntet.

    2. Detrfaktisktintesjttesvrtattlrasiggrundernaiprogrammering.Detrheltenkeltettsrskiltsttatttnkap.Manfrnogsgaattdethrsttetatttnkaprbetydligtmerbegrnsat,egentligenstrikt,nvadtankeverksamhetvanligtvisr.

    3. Harmanlrtsigattprogrammeraiettsprk,srdetsomregelintesmycketarbetemedattlrasigettnyttsprk,Programmeringsprocessenrdensammaochdeallraflestamomentterfinnspettellerannatsttideflestaprogrammeringssprk.Jmfrtillexempelmeddensprkintresserade,somhargodakunskaperiLatin.Detrintessvrtfrvederbrandeattlradesprk,somingridenlatinskasprkgruppen.

    Allrahelstsskulleennybrjarbokiprogrammeringvaraheltsprkoberoende.Dkundemankoncentrerasigpgrundernaiprogrammeringskonstenochglmmabortdespecifikaegenskaper,somtrotsalltfinnsideolikasprken.

    Nackdelenmedettsdantangreppssttrattbokenbliralltfrteoretiskfrmlgruppen,ungdomarigymnasieskolan.Intesattungdomarperautomatikrmindreteoretisktbegvadenldremnniskor,menungdomarharstrrekravpmeningsfullhet.Manvillseattdethnderngontingpdatorskrmen,nrmanharskrivitettprogram.

    JaghardrfrtnktanvndamigavC++ideexempelsomtergesidenhrboken.Detkantnkasattjagfrordningensskulleocksskriverenvariantavboken,drexemplengesiJava.Orsakentillmittsprkvalrattsyntaxenrngorlundaintuitivochintessvrattfrst.DetrfrhllandevislttattkommaigngattprogrammeraiC++.

    2

  • ProgrammeringsprocesseniC++Nrmanprogrammerar,sskrivermaninstruktionertilldatorn.Frattdenhrbokenskablibegripligfrosssvenskar,srdetenbraidattbokenrskrivenpsvenska.Omjaghadevaltmandarinsomsprkfrboken,shadedetfungeratbraiKina,menbetydligtsmreiSverige,Mankanalltsslfast,attommnniskorskakunnakommuniceramedvarandra,srettgemensamtsprkenfrutsttningfrdetta.Frhllandetrprecisdetsammameddatorerna.Frattkunnaskrivainstruktionertillendator,smstemangradetpettsprksomdatornfrstr.Datornshjrna,processorn,frstrintevaresigSvenska,KinesiskaellerC++hellerfrdendelen.Processornfrstrsigenbartpettorochnollors.k.binrtsprk.Iblandkallasdetsprksomfrstsavprocessornfrmaskinkod.Dethelablirintelttareavattolikatyperavprocessorerfrstrolikatyperavmaskinkod.

    Attskrivamaskinkodrjttesvrt.Vadbetyderegentligen00100001osv.?Idatorernasbarndomfrekomskertattdessaprogrammeradesmedmaskinkod.Ivissafallvardetsattdetfannsbrytarepdatorernaoch1betyddebrytarepslagenoch0brytareavslagen.

    Numersprogrammerarmaniettsprk,sommerpminneromdetmnskligasprket,t.ex.C++.Sedananvndermanenprogramvara,kompilator,somverstterdenkodmanskrivittillmaskinkod.NrmanprogrammerariC++tillkommerytterligareettmomentnmligenlnkningen.Efterenlyckadkompileringerhllermanenellerfleraobjektsfilerdessalnkasinstastegsammantillenexekverbarfil.Detsistamomentetterfinnsinteiallaprogrammeringssprk.It.ex.Javalnkasettprogramsresursersammanunderexekveringengng.

    DetbetyderfrdigsomskafljaexemplenidenhrbokenattdubrhaendatormedeninstalleradC++kompilator.

    AttinstalleraochkommaigngDetfinnsmngdermedfrnmligaC++kompilatorerpmarknaden.Deflestaavdessafinnsintegreradeietts.k.IDE,IntegratedDevelopmentEnvironment.Detinnebrattmanharkompilator,texteditormedsyntaxhjlpsamtlnkarepettochsammastlle.Jagvillrekommenderadigattanvndaensdanprogramvara.

    JagkommerattanvndaDevCPP,somkanladdasnergratisfrnntetphttp://www.bloodshed.com.SedanharvifrstsMicrosoftsVisualStudio.Dmstemanfrstskpaenlicens.DetfinnsenliteenklaregratisversionavVisualStudio,somheterVisualStudioExpress.Nrdenhrbokenskrevs,sglldefljandeadress:http://www.microsoft.com/express/Downloads/.

    Jagtror,attomduvljerattarbetaingotannatnDevCPP,sskadetnoggbra,venomexemplenidenhrbokenrskrivnafrDevCPP.

    3

    http://www.bloodshed.com/http://www.microsoft.com/express/Downloads/

  • Vadrettprogram?Ja,skamanlrasigprogrammera,srdetnaturligtvisavstrstaviktattmanfrstrvadettprogramrfrngot.Duharskertanvntmngderavdataprogram,nyttoprogram,spelosv.Detbrukarfrvrigttidigtilrobckernaframhllasattprogramrlikamedoperativsystemochalltingannatrapplikationer.Detbrukarsnartglmmasbortochsfortsttermanatttalaomprogram.Denhrbokenringetundantag,jagkommerocksatttalaomprogram.

    Manskullekunnadefinieraettprogramsom,instruktionerochdedatasominstruktionernaarbetarmed.

    Jagtyckerattduskalggadefinitionenovanpminnet,eftersomdenkommerattlpasomenrdtrdgenomhelaboken.

    InstruktionerDublirvlbesviken,omjaghvdarattprocessornrganskaenfaldigochkorkad.Denklararinteavsrskiltavanceradesaker.Denkanlggaihoptvtal,multiplicera,dividera,subtraheraochgrajmfrelseravtvtal.Detsomverkligenimponerarrmngdenoperationerochmedvilkenfartprocessornlsersinauppgifter.

    Attdeoperationer,somprocessornkanutfra,renklamedfr,attmansomprogrammeraremstebrytanerdeproblem,sommanhartnktsigskalsasavdatorn,tillssmoperationersomprocessornklararav.Dennanedbrytningavproblemkommerocksattvaraettbrandeinslagidennabok.

    DataStrngttagetsfinnsdetvltvtyperavdata,indataochutdata.Indatardedata,sominstruktionernaiprogrammetskaarbetamedochgraomtillutdata.

    Dedata,sominstruktionernaarbetarmedkankommafrnmngaolikakllor.Detkanfinnashrdkodatiprogrammetskllkod,detkanvaradataanvndarenharmatatinviatangentbordet,detkanvaradatasomhmtatsfrnendatabas,osv.

    Frgansomdryftasiblandr,vadrdetfrskillnadpdataochinformation?Enligtfrfattarensochmngaandrasmeningrinformationtolkaddata.

    Nrdataanvndsiettprogram,sbearbetasdeiformavvariabler.Drfrskommernstaavsnittheltfljdriktigtatthandlaomvariablerochdatatyper.

    VariablerochdatatyperEnvariabelrenplatshllarefrdataavngontypochsomuttrycketvariabelantyder,skanvrdetpdatavariera.Pnstaradkanduseenvariabel.

    intdata;

    Variabelnharnamnetdataochravdatatypenint.Egentligensrnamnetdataettaliasfrenprimrminnesadress.Ramminnetidatornruppdelatiminnescelleravvissstorlek,frdetmestafyrabytes.Varjesdancellharenadress.Viterkommertillprimrminnesadresser,nrvikikar

    4

  • nrmarepenvariabeltyp,somkallasfrpekare.Vilkenadressiminnetvariabelndatahar,spelarintengonroll,utannrvariabelndeklarerasstilldelasdenenprimrminnesadressavoperativsystemet.

    Vidaresrvariabelndataavtypenint.Intrettheltal,dvs.talutandecimaler.Hurstorplatsdenupptariminnetberorlitepdatornsbeskaffenhet,men4bytesrganskavanligt.

    Mankanocksdeklarerafleravariableravsammatyppenrad.

    int tal,nummer,antalglassar;

    Pnstarad,skanduseettexempelphurentilldelninggrtill.

    data=5;

    Ettalternativtilldettakanvaraatttilldelavariabelnettvrderedanfrnbrjan.

    int data=5;

    Visstfinnsdetflerdatatyperochjagskangotversiktligtgigenomdessanu.Jagkommerinteattgsdjuptinp,hurdatarepresenterasidatorn.Menngotmstendsgasom,hurstorplatsdeolikadatatypernaockuperaridatornsminne.Dettarnmligendatorberoende.

    Behvermanveta,hurstorplatsenvissdatatypt.ex.intupptar,skanmanskrivacout

  • bool

    Detfinnsytterligareendatatyp,somvlnrmastfransesvaraenheltalstyp,nmligenbool(boolean).DetriC/C++sammanhangenganskanydatatyp.ProgrammerareisprketCanvndeintebool,utanmananvndetalen0respektive1,frattfvrdenasantellerfalskt.Numeranvndsistlletdatatypenbool,somkanhatvvrden,santellerfalskt.

    charMedcharrepresenterarmantecken,bdevanligaskrivteckenochstyrteckenavolikaslag.Attdcharskullevaraenheltalstypkankanskefrvna.Detblirintessvrtattfrst,ommanvetatttecknenterfinnsienteckentabell.Detfinnstvvanligatyper,ASCII7ochASCII8.TaletefterASCIIangeromteckentabellenrsjubitarsellerttabitars.Dethgstatalmankanlagrapsjubitarr128.Detinnebrattdetfinnsplatsfr128tecken.Tyvrrfrossnordborochandraickeengelsktalandemnniskor,sfinnsdetinteplatsfr,ochiASCCI7.IASCCI8finnsdetplatsfr256olikateckenochdrfinnsdetplatsfr,och.

    IASCCItabellernaharvarjeplatsettindex.Pplatsnummer65harvibokstavenAochpplats66harviBosv.Detrdettasomrorsakentillattcharintebararteckenutanocksheltal.

    Nrmandeklarerarochinitierarenvariabelavtypenchariettprogram,skanmanskrivapfljandestt:charc=a.Observeraattrunttecknetharvienklacitattecken.Frattskrivautvariabelnkanviskriva,cout

  • Programmetgavmycketriktigtdetresultatvihadetnktoss.

    a

    b

    Tryck p en valfri tangent fr att fortstta...

    FlyttaldecimaltalDetrintessllan,sommanfrattlsavissaproblemmsteanvndasigavdecimaltal.Dessabrukariprogrammeringssammanhangkallasfrflyttal.Detberorpattdecimaldelenliksomflyter.

    Vadsomsadesovan,nrdetglldestorlekenpdatatyperna,gllerockshr,dvs.lagringsutrymmetrdatorberoende.Detkanisammanhangetberttas,attdetrenganskakompliceradprocessattlagradecimaltalidatornsminne.versatttilldetbinratalsystemet,skallasdenfrstadelenavdecimaltaletfrmantissaochdecimaldelenfrexponent.

    Vadsomrviktigtfrdig,somprogrammerareattknnatill,rattdeolikadatatypernaharolikaexakthet.Vanligtvisbrukarmanhellreanvndadoublenfloat,eftersomprecisionenidoublerbttrenifloat.

    Hrvisasensammanstllningverflyttalsstyperna.

    float double longdouble

    KonstanterEnspecialvariantpvariablerrvariabler,sommanintekanndravrdetp,kosntanter.Detfrtillfljd