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

Relevanta dokument
Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Introduktion till programmering

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Så här skriver du ditt första program i C++

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

TDIU01 - Programmering i C++, grundkurs

Föreläsning 3. Programmering, C och programmeringsmiljö

NetBeans 5.5. Avsikt. Projektfönster

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar.

Objektorienterad programmering i Java I

Föreläsning 3. Programmering, C och programmeringsmiljö

NetBeans 7. Avsikt. Projektfönster

Lektion 1 - Steg 1. Introduktion. Hello World

2 INNEHÅLLSFÖRTECKNING

Programmering i C++ Kompilering från kommandoraden

Editering, Kompilering och Exekvering av Javaprogram

Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips

Datorlaboration 0, Programmering i C++ (EDA623)

Introduktion till programmering, hösten 2011

1 Funktioner och procedurell abstraktion

TDP005 Projekt: Objektorienterat system

Frekvenstabell över tärningskast med C#

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

En villkorssats är den konstruktion som finns i C++ för att göra en selektion av två alternativa sekvenser. Formen för if satsen är

Programmering A med Visual C

Inledande programmering med C# (1DV402) Introduktion till C#

IDA kursmaterial Informationsblad make. make

Programsystemkonstruktion med C++: Övning 1. Karl Palmskog september 2010

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

Föreläsning 2. Operativsystem och programmering

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

Innehålls förteckning

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Backcode. Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på:

AVR Studio 4 Och AVRFLASH

Microsoft Visual Studio 2017

Kompilatorer och interpretatorer

Datorlaboration 0, Programmering i C++ (EDAF30)

Att komma igång. Föreläsning 1

Metoder. Inledande programmering med C# (1DV402)

Introduktion till programmering. Programspråk och paradigmer

Frekvenstabell över tärningskast med C#

Objektorienterad Programmering (TDDC77)

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

2 Eclipse en handledning

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Code-Lite tutorial ( /RoJ)

Eclipse en handledning

Introduktion till algoritmer - L0 - Grunder i C++ Matematikgymnasiet, Läsåret L0 - Grunder i C++

Innehåll. Introduktion till objektorientering. OOP (objektorienterad programmering) Objekt, instanser, klasser

Föreläsning 5 5DV086 - Programspråk

TDP005, Projekt: objektorienterade system

Laboration 1. En första bekantskap med C++ Namn: Godkänd den: Rest:

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Datorövning 1 Calc i OpenOffice 1

TDDC76 - Programmering och Datastrukturer

Introduktion till Matlab

Introduktion till programmering och Python Grundkurs i programmering med Python

Det finns många flaggor till g++,

System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);

Grundkurs i programmering - intro

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

TDIU01 (725G67) - Programmering i C++, grundkurs

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

Programmering för språkteknologer I, VT2012. Rum

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Boken?!?! Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Variabler printf

TDIU01 - Programmering i C++, grundkurs

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Introduktion till Matlab

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Prova på-laboration i Ada

Instuderingsfrågor till Steg 1

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Laboration 10 - Eclipse

TDIU01 - Programmering i C++, grundkurs

TUTORIAL: KLASSER & OBJEKT

Introduktionslaboration

Programmering i C++ EDAF hp. EDAF30 (Föreläsning 2) HT / 18

Objektorienterad programmering i Java

SMD 134 Objektorienterad programmering

Pascal... Pascal. Pascal... Pascal...

Introduktionslaboration

Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt

Att komma igång. Föreläsning 1

Digitalt lärande och programmering i klassrummet

Program & programmering

Föreläsning 1: Intro till kursen och programmering

Föreläsning 1: Intro till kursen och programmering

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen

TDP005, Projekt: Objektorienterade System. Laboration: Eclipse

Eclipse en handledning

Program. Kapitel make Program Interpreterande och kompilerande program

Transkript:

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.

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

#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.

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 Windowsprogram 1. 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; Rad 4: int main() Rad 5: { 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 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

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.