• No results found

1 Språket C Valet av språket C++ för kompendiet. 1.2 Språket. 1.3 Att programmera. 1.4 Hello World Börja programmera

N/A
N/A
Protected

Academic year: 2022

Share "1 Språket C Valet av språket C++ för kompendiet. 1.2 Språket. 1.3 Att programmera. 1.4 Hello World Börja programmera"

Copied!
11
0
0

Loading.... (view fulltext now)

Full text

(1)

1 Språket C++ 

1.1 Valet av språket C++ för kompendiet

Språket C++ är ett språk som utvecklats för storskalig objektorienterad utveckling av 

sofistikerade och komplexa system. Det ligger då i sakens natur språket har flera vinklar och vrår  som inte kommer att vara viktiga under studier av grundläggande programmering, men som än  dock kommer att påverka den praktiska programmeringen.

Det kommer att dyka upp flera exempel på saker som inte har någon naturlig förklaring bland den  del av språket som texten behandlar, saker som då kan kännas obekväma eller onödiga. Men  tanken är att en stor andel av er som använder detta kompendium kommer att fortsätta studera  programmering i C++. C++ är ett av de mest omfattande programmeringsspråk som finns, men  det är samtidigt förmodligen det mest uttrycksfulla språk, trots det är den del som berörs i denna  text i all väsentlighet snarlik de flesta andra datorspråk. 

1.2 Språket

C++ är en blandning av ett objektorienterat språk och ett strukturerat språk, en sk hybrid, och har  troligtvis en större marknadsandel av komersiella applikationer än något annat språk. C++ är ett  relativt nytt språk, standardiseringen gjordes sent 1998. Språket har tidigare funnits i olika former  och dialekter sedan tidigt 80­tal.

Bjarne Strostrup är den ursprunglige konstruktören (eller uppfinnaren) av C++. Han har skrivit  flera böcker som i det närmaste erhållit bibelstatus bland C++ programmerare, bla "The C++ 

programming language", Addison­Wesley. 

1.3 Att programmera

För att kunna programmera behöver du en dator (duh?) och en utvecklingsmiljö (en kompilator  och en textredigerare). För kompendiet har valts Microsoft Visual Studio 2008 som testmiljö  eftersom den används på Mittuniversitetet och är dessutom en vanlig professionell miljö för  programvaruutvecklning på PC. För eget bruk finns Visual Studio Express som är gratis på  Mircosoft’s hemsida. Ett annat alternativ är ett gratispaket som heter DJGPP som finns att hämta  på nätet http://www.delorie.com/djgpp/.  Det finns dessutom en grafisk gratismiljö som heter  Dev­C++ som finns på http://www.bloodshed.net/devcpp.html.

1.4 Hello World 

Då man först introduceras till ett nytt programspråk eller en ny programmeringsmiljö bör man  först se till att man behärskar proceduren att skapa ett körbart program. Det sker väldigt ofta med  Hello World. Syftet med Hello World programmet är att se hur allting fungerar då man ska skapa  ett program. 

1.4.1 Börja programmera

För att komma igång att programmera börja med att starta programmet VS och följ bilderna  nedan för att skapa ett projekt. I denna kurs kommer vi uteslutande att skapa textbaserade  program i projekt av typen Win32 Console Application. 

(2)
(3)
(4)
(5)
(6)
(7)
(8)

  Nu är det dags att mata in programmet. 

I det nya textfönstret som dykt upp (editorn) kan vi nu mata in följande, eller ett liknande  program från boken

(9)

#include<iostream>

using namespace std;

int main() {

   cout<<"Hello World"<<endl;

   return 0;

}

Programmet körs genom att i VS välja menyn Debug/Start without Debugging …här ges en  statusrapport av miljön som beskriver hur den arbetar med att bygga programmet Hello World.

I VS ser det ut som 

­­­­­­­­­­­­­­­­­­­­Configuration: HelloWorld ­ Win32  Debug­­­­­­­­­­­­­­­­

Compiling...

main.cpp Linking...

HelloWorld.exe ­ 0 error(s), 0 warning(s)

Om du inte får 0 fel och 0 varningar har du med all sannolikhet matat in programmet fel, gå då  tillbaka till inmatningen och kontrollera att du matat in varje tecken, bokstav som specialtecken  på exakt rätt sätt. 

Ögonblicket efter du ser rapporten att allt går bra startas ditt program. I VS ser du då ett  konsolfönster med texten

Hello World

Press any key to continue

I andra miljöer är det ofta så att programmet körs utan att man får uppmaningen att trycka på en  knapp för att fortsätta. Då kan det hända att det ingenting syns, eller att det blinkar till, på  skärmen. Det som då hänt är att programmet körts och avslutats innan man han se resultatet. Det  är oftast helt normalt. 

Du har nu skapat ditt första körbara C++ program. Hur programmet fungerar gås igenom i detalj  längre fram.

1.5 Att skapa ett program, kompilering och länkning

Det som du skrev in i utvecklingsmiljöns editor var C++ källkod, dvs. programrader med C++ 

satser. Datorn förstår inte dessa satser naturligt utan måste först översätta dem till ett för datorn  förståeligt språk, s.k. objektkod.  Den objektkod som skapas måste därefter sättas ihop till ett  körbart program. Dessa procedurer kallas kompilering respektive länkning.

1.5.1 Kompilering

När ett program kompileras kontrolleras först att dess syntax är riktig. Det innebär att kompilatorn  ser till att de programrader som är skrivna i källkoden följer de regler som finns för språket C++. 

Ungefär på samma sätt som en modern ordbehandlare kan kontrollera stavning, avstavning och  andra språkregler.

(10)

Då felkontrollsproceduren är avklarad (den sker egentligen i flera steg) börjar översättningen till  objektkod. Resultatet av översättningen är vanligvis en fil som i vårt exempel heter 

HelloWorld.obj eller något liknande. I den filen finns lösryckta fragment av för datorn förståelig  programkod. Dessa måste nu sättas ihop för att kunna köras som ett program. Det görs av  länkaren.

1.5.2 Länkning

När objektfilerna skapats tar länkaren vid för att skapa ett körbart program. Det gör den genom att  foga ihop det skrivna programmet med andra befintliga objektfiler s.k. biblioteksfiler. Bland  annat kommer vårt Hello World programs objektfil att kopplas ihop med funktioner för att skriva  ut text på skärmen. Resultatet av länkningen läggs i exemplet i en fil med namnet HelloWorld.exe  som är ett helt vanligt Windowsprogram1

Man kan i alla miljöer göra en kompilering utan att göra en länkning med ett compile kommando,  hur detta görs varierar från miljö till miljö. Man kan dessutom utföra en länkning utan att behöva  köra programmet med ett build kommando. Syftet med dessa kommandon är vanligtvis att  kontrollera eventuella fel.

1.6 main() 

1.6.1 Hello World programmet rad för rad

Ett C++ program läses och körs som regel uppifrån och ned. Datorn tar den första C++ satsen den  stöter på, tolkar och utvärderar resultatet, och utför därefter nästa sats. Hello World programmet  har faktiskt bara en enda programsats som datorn ska utföra. Det övriga i källkoden är till för att  kompilering och länkning ska fungera.

Rad 1: #include<iostream>

Rad 2: using namespace std;

Dessa två rader hör ihop rad ett säger att vi ska använda oss av en fil döpt "iostream". Filen  iostream är en s.k. headerfil som innehåller fördefinierade funktioner, exempelvis att skriva text  till skärmen. Rad två säger att dessa funktioner tillhör C++ standarden. Namnet std i using  namespace std; är till för att undvika hopblandning med äldre varianter av C++, dvs. C++ innan  standardiseringen.

Rad 4: int main() Rad 5: {

Rad 4 anger programstart. Detta är en överenskommelse som finns till länkaren att man anger  programmets start på detta sätt. Raden är en "definition av en funktion döpt main()". En funktion  är en samling programsatser som kan utföras som en enhet. Rad 5 anger att här börjar 

programsatserna för main funktionen. Varje { tecken i ett C++ program har ett motsvarande }  tecken. Dessa klamrar grupperas på samma sätt som parenteser i räkneuttryck.

1 I vissa sammanhang ser man benämningen DOS­program. Den benämningen är i de allra flesta fall helt  felaktig

(11)

Rad 6:   cout<<"Hello World"<<endl;

Detta är den enda programsats som finns i programmet. Det är programsatserna som körs och  uträttar något konkret i ett program. Man känner igen en sats genom att den avslutas med ett  semikolon ;. Denna sats innehåller 4 olika delar 

1. cout – läses se­aout, bokstäverna står för "Console OUT", där console är  just det vi kallar för konsolfönstret och out anger output eller utmatning.

2. << ­ kallas utströmsoperator och används för att skicka det som står till  höger om operatorn till det som står till vänster. Symbolen dyker upp i olika  sammanhang men anger alltid att den information som står till höger skall  skickas till enheten (eller strömmen) som står till vänster.

3. "Hello World" – textsträngar anges i C++ som text omgiven av " 

tecken.

4. endl – läses ut som endline, är ett namn för ett specialtecken som anger  att en radmatning ska skrivas i textfönstret.

Semikolon avslutar satsen. Hela satsen kan alltså läsas ut som: Skicka texten "Hello World" till  cout. Skicka sen ett radmatningstecken till cout.

Satsen return 0; är en sats som avslutar programmet. Nollan är vårt sätt att berätta för den process  som startar programmet (i det här fallet operativsystemet) att allt gått bra.

Den sista raden } anger slutet på main funktionen och därför slutet på programmet. I de första  program vi kommer att skriva skall alla programsatser skrivas innanför mainfunktionens { och }  klamrar för att fungera. För att testa lösryckta programavsnitt skrivna i texten kan man foga in  dessa mellan klamrarna och kör programmet på nytt.

References

Related documents

Ett forskningsförslag kan vara att mer genomgående studera psykoterapeutens för- hållningssätt till sin egen språkutveckling och sitt språkanvändande, eget

I den första läroplanen för grundskolan, som kom år 1962, stod det att skolans fostran ska lägga grunderna för hur eleverna ska utvecklas för att förstärka demokratins principer

Box2D ser även till att alla kroppar på planeten utsätts för en kraft mot planetens mittpunkt i varje tidssteg, vilket gör att de stannar kvar på planeten....

(Det blir tyst. Alla stirrar på ALLAN. Stämningen är hotfull. ALLANS blick flackar runt. Han backar mot dörren. Han tar i handtaget, men dörren är låst. Han rycker i

Baserat på Nottinghams tankar om utmanande undervisning och diskussioner med hjälp av koncept (se J. 130, s 134 m fl.), kan ni diskutera med avstamp i koncepten:

En digital lektion från https://digitalalektioner.se | Sida 5 av 10 Titta på bilden och beskriv mönstret av former.. Skriv ner det: kvadrat,

Olika sätt att utforska företeelser och samband i natur, teknik och samhälle, till exempel genom observationer, mätningar och samtal om iakttagelser. Hur elevnära företeelser

Syftet med studien är att analysera och jämföra fördelningen av ord mellan skolspråk och vardagsspråk hos två läromedelsserier för årskurs 1–3 i matematik samt hur