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

Relevanta dokument
TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs

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

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.

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

1 Funktioner och procedurell abstraktion

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

Programmeringsteknik med C och Matlab

TDIU01 - Programmering i C++, grundkurs

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

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

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Programmering A. Johan Eliasson

Objektorienterad Programmering (TDDC77)

Enkla datatyper minne

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

Föreläsning 1: Momstabellen i C++

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4

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

C++ - En introduktion

SMD 134 Objektorienterad programmering

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

En kort text om programmering i C.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Objektorienterad programmering i Java

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

Klassdeklaration. Metoddeklaration. Parameteröverföring

Programmering i C, 7,5 hp

Introduktionslaboration

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

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

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

Lektion 1 - Steg 1. Introduktion. Hello World

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

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

Inledande programmering med C# (1DV402) 85/2=42. OBS! Heltal 1 (13)

F4. programmeringsteknik och Matlab

FÖRSLAG TILL LÖSNING AV Tentamen i Objektorienterad programmering C++ I

Introduktion till programmering och Python Grundkurs i programmering med Python

Objektorienterad programmering Föreläsning 2

Repetera snabbt vad du lärde dig förra veckan. Du är nu redo att kasta dig in i nästa fas, teorin om villkor.

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

TDDC76 - Programmering och Datastrukturer

Användarhandledning Version 1.2

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

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

C++ - En introduktion

Introduktionslaboration

Föreläsning 5: Introduktion av pekare

TDDC76 - Programmering och Datastrukturer

Program & programmering

NetBeans 5.5. Avsikt. Projektfönster

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

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

C-programmering, föreläsning 1 Jesper Wilhelmsson

DD1314 Programmeringsteknik

C++ Lektion Tecken och teckenfält

+Överskådlighet Normalt sätt blir ett program skrivet i det procedurella paradigmet överskådligt. Modifikationer på delproblem kan ske med lätthet.

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

NetBeans 7. Avsikt. Projektfönster

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

Nedan skapar vi klassen Person innehållande datamedlemmar för förnamn, efternamn, ålder, längd och vikt:

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

Visual Basic, en snabbgenomgång

Instuderingsfrågor till Steg 1

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

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

LÖSNINGSFÖRSLAG TILL Tentamen i objektorienterad programmering i C++ I

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

Övningsuppgifter till föreläsning 2 Variabler och uttryck

Övningar Dag 2 En första klass

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

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

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

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

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

Inledande programmering med C# (1DV402) Summera med while"-satsen

C++ Slumptalsfunktioner + switch-satsen

Föreläsning 2. Operativsystem och programmering

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Extramaterial till Matematik Y

Övning2. Variabler. Data typer

Dagens program. Programmeringsteknik och Matlab. Viktiga datum. Ett första exempel. Programmall, vad behöver vi i ett javaprogram?

2.1 Variabler. 2.2 Regler för namngivning i C. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Föreläsning 2

Objektorienterad Programmering (TDDC77)

1 Iteration. 1.1 for-satsen

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

Föreläsning 1 & 2 INTRODUKTION

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret Lektion 1

TDDC77 Objektorienterad Programmering

Skapa modeller i Vikingen

Transkript:

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson

Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället för koden. C++ är ett högnivåspråk som har stöd för objektorientering. Språket är en vidareutveckling av språket C. I denna kurs behandlas inte objektorienterad programmering utan traditionell funktionell programmering. Ett program byggs upp av en eller flera funktioner, det måste finnas åtminstone en funktion i programmet som heter main. I main-funktionen startar exekveringen #include <iostream> using namespace std; return 0; En funktion har en kropp (body) som skrivs inom och ett huvud där in och utmatning från funktionen specificeras. Ett högnivåspråk som C++ har en syntax (reserverade ord och regler för hur språket får skrivas). Ett program skrivs i texteditor, koden som du skriver kallas källkod och är ren text. Källkoden översätts till maskinkod av kompilaton. En kompilator är ett program som kontrollerar att koden du skrivit är syntatix korrekt och över sätter sedan koden till maskin kod. Kompileras till maskinkod Källkoden Maskinkod Skrivet av Michael Andersson 2

En kompilering sker i flera steg översättningen till maskinkoden är det sista steget. Varje språk har förutbestämda regler (syntax) som måste följas. I språket finns fördefinerad ord (reserverade ord) som ingår i språket. Reserverade ord skrivs ofta med fetstil eller med någon färg (blå är vanlig). Koden som du kommer att skriva i denna kurs skrivs inom main-funktionen inom. Symbolerna kallas ofta för fiskmåsar och beskriver början respektive slut på ett block av kod. #include <iostream> using namespace std; Koden skriver du inom blocket cout << Datavetenskaplig introduktionskurs 5p << endl; return 0; Ovanför main-funktionen står direktiv för att komma åt funktioner som in- o ut-matning. I den här kursen kommer du bara skriva koden som står inom main-funktionen. In- och ut-matning i C++ In- och ut-matning i c++ sker genom strömmar. Strömmar kan ses som rör som tecken skickas in eller plockas ut från. Vanligast är att inläsning sker ifrån tangentbordet och utmatning sker till bildskärmen. I C++ används cin för inläsning, c(onsole)in läser ifrån inströmmen in till en variabel. Utmatning sker med cout som skriver till bildskärmen. cout << Datavetenskaplig << endl; return 0; För utmatningen ovan används cout och << (pilar) som anger att det som står till höger skall matas till cout strömmen (bildskärmen). Texten som matas ut kommer ut i den ordning den står (vänster till höger). Endl är ett formatering för att programmer skall göra en radbrytning. Skrivet av Michael Andersson 3

För att förstå inläsning måste begreppet variabler förklaras. Variabler En variabel är ett minnesutrymme där data kan sparas. När du skapar en variabel så ger den en datatyp och ett namn. Datatyp namn Datatyp anger vad för typ av data som variablen kan spara Datatyp Förklaring Exempel Int Heltal positiva och negativa -123, 0, 5, 23232553 Char Tecken och symboler A, #,!, 0, x, q Double Flyttal -12.34, 0.003, 3.1415, 3434.0 int, char, double är exempel på datatyper i C++ och är reserverade ord. En variabel har ett namn som används när man vill läsa eller skriva data till minnesutrymmet. Det finns regler för hur ett variabelnamn kan se ut, grundprincipen är att det ska börja med en bokstav (a-z eller A-Z)och får inte vara något reserverat ord. int tal; Deklarerar en variabel som kallas tal och kan spara heltal (integer). Variabelns namn tal används när man vill tilldela den ett värde eller skriva ut värdet. En bra regel är att namnge variabler till det vad används för eller innehåller. Exempel int antaltecken; char tecknet; double rantan; En annan bra regel som gäller generellt när kod skrivs är att skriva koden så att den blir lätt att förstå för andra personer. Skrivet av Michael Andersson 4

int tal; cin >> tal; cout << tal << endl; return 0; I koden skapas först en variabel tal (heltal), på nästa rad läses ett värde in från tangentbordet till variabeln tal. >> (pilarna) anger att data tas från inströmmen (cin tangentbordet) in till variabeln tal. Vid inläsning väntar programmet på att användarna skall mata in ett värde. På tredje raden sker utskriften av variabelnsvärde på bildskärmen. I exemplerna ovan avslutas många rader med ; (semikolon), de används för att markera slutet på en sats (t.ex. utmatning av text). Variabeldeklaration Variabler måste deklareras innan de används, när en variabel deklareras anges datatyp och namn. int tal; cin >> tal; Det går att deklarera flera variabler av samma datatyp efter varandra. int tal1,tal2,antal; char tecknet, resultat; När en variabel deklareras är dess värde odefinerat, därför brukar man ofta sätta värdet vid deklarationen. int tal=3,res=4,summa=0; Variabler används för att spara data som lästs in, men även för att spara resultat av beräkningar. Skrivet av Michael Andersson 5

int bredd=0, hojd=0, area=0; Cout << Ange bredd ; cin >> bredd; cout << Ange hojd ; cin >> hojd; area = hojd * bredd; cout << area = << area << endl; return 0; Programmet ovan låter användaren mata in höjd och bredd på en rektangel och räknar sedan ut arean genom att multiplicera. Variabeln area används för att spara resultatet av beräkningen. Vid utskrift (cout) är viktigt att tänka på att det som skall skrivas ut som text måste skrivas inom cout << area << area << endl; Först skrivs ordet area ut sedan kommer innehållet i variabeln area att skrivas ut. cout << 5*6 << 5*6 << endl; Om en variabel eller annat uttryck (5*6) står med i en utskrift beräknas resultatet innan utskriften sker. I exemplet ovan kommer multiplikationen 5*6 att utföras innan utskriften sker, det som står inom kommer inte att beräknas, resultatet blir 5*630 Olika datatyper används vid olika tillfällen I exemplen som visats har heltal (int) används, vill man använda decimaler måste datatypen double användas. Double har en heltals del och en decimaldel. int diametern=4; double PI = 3.1415, omkretsen = 0; omkretsen = diametern * PI; Skrivet av Michael Andersson 6

I exemplet bräknas omkretsen för en cirkel. Pi är inte fördefinerat utan vi sätter variabeln till 3.1415. Eftersom PI har decimaler kommer omkretsen att bli ett decimaltal. Villkor (if satser) Ett program körs rad för rad uppifrån och ner. För att göra kontroller i ett program går att skapa if-satser som innehåller villkor. En användning av villkor är att testa om en användare matat in ett korrekt värde eller ej. int tal=0; cout << Mata in ett tal > 0 ; cin >> tal; if(tal < 1) cout << Felaktig inmatning << endl; Programmet låter användare mata in ett tal, därefter sker en test med villkoret om tal < 1. Ett villkor testas alltid om det är sant eller falskt, alltså om innehållet i tal är mindre än 1. Om villkoret blir sant körs koden som ligger inom blocket under if-satsen if(tal < 1) cout << Felaktig inmatning << endl Koden som ligger mellen körs bara om villkoret är sant. Med if-satser går det att styra flödet genom programmet. En if-sats kombineras ofta med en else-sats som körs om villkoret i if-satsen är falskt. if(saldo < 0) cout << Konto övertrasserat << saldo << endl; else cout << Ditt saldo är << saldo << endl; Skrivet av Michael Andersson 7

I koden körs blocket som står under if-satsen om saldo mindre än 0 (negativt) annars körs koden som står under else delen. För en if-else sats så körs bra en av dem aldrig båda. Efter en if eller if-else sats körts fortsätter programmet rad för rad. Indentering och kommentarer Programkoden som man skriver ska skrivas så att den är lätt att förstå för andra personer. Det finns inom programutveckling många regler som om alla följer dem blir programen lättare att läsa. En sån regel är indentering, vilket innebär att när ett nytt block påbörjas ska man flytta in alla rader några blanksteg åt höger tills blocket tar slut. if (tal>0) tal = tal + 1; cout << tal << endl; Genom att använda indentering blir programkoden mycket lättare att läsa. if (tal>0) tal = tal + 1; if (tal2 > 0) tal2 = tal1 + tal2; cout << tal2 << endl; Även om man väljer bra namn på varibaler så måste man ibland lägga till yttligare kommentarer för att öka förståelsen av koden. Kommentarer skrivs med // och allt står till höger är en kommentar. Kommentarer är till för den som läser koden kompilatorn bryr sig inte om kommentarer. Det finns två varianter av kommentarer. // komenterar en rad. /* kommenterar tills kombinationen */ Skrivet av Michael Andersson 8

Exempel 1) // Testar om talet större än 0 if (tal>0) tal = tal + 1; // Ökar värdet på tal med 1 cout << tal << endl; Exempel 2) /* Detta program är skrivet av Michael Andersson på mitthögskolan den 7 oktober 2004 */ version 1.0b #include <iostream>... Det första exemplet visar kommentarer som sträcker sig en rad. Obs att allt som står före // på en rad ej är kommentar. Det andra exemplet visar en kommentar som sträcker sig över flera rader, det är ett exempel på hur källkodsfiler kan se ut. Iteration (repetion) Koden som du skriver körs rad för tills slutet på funktionen. Ofta i ett program behöver en del av koden repeteras ett antal gånger eller tills ett villkor uppfylls. I C++ finns två typer typer av repetion (loopar) while och for while-loopen upprepar det block () som står under sig tills villkoret blir falskt. int tal=0; while(tal < 2) cout << tal << endl; tal = tal + 1; Skrivet av Michael Andersson 9

I exemplet skapas en variabel tal som sätts till 0. I while-loopen testas först om villkoret (tal < 5) är sant, sedan körs koden cout << tal... När exekveringen kommer till slutet av blocket hoppar den tillbaka till början på whileloopen och en ny test utförs. En while-loop fungerar på samma sätt som en if-sats med skillnaden att den kan upprepas. int tal=0; while(tal < 10) cout << * ; tal = 0; while(tal < 5) cout << * ; Det som tagits upp i detta dokument är bara en introduktion av C++ för att du skall kunna komma igång med programmeringen, vill du har mer information finns det många böcker skrivna om C++. Skrivet av Michael Andersson 10