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

Storlek: px
Starta visningen från sidan:

Download "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"

Transkript

1 1 Villkor och styrsatser I de program vi sett tidigare har programkörning inneburit att sats efter sats utförts i den ordning de skrivits i källkoden. Vi har inte kunna ändra programmets uppförande beroende på inmatningar eller beräkningsresultat. Vi kallar en sådan samling satser för en sekvens, eftersom de utförs en efter en. Sekvens: Start: Sats1 > sats 2 > sats 3 > sats 4 Slut. Vi ska nu titta på en ny struktur som kallas för selektion. Selektion innebär att programmet kan under programkörning fatta beslut om vilken av en, två eller flera alternativa sekvenser som ska utföras. 1.1 Villkorssatsen if 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 alternativt if ( logiskt_uttryck ) sats / satsblock else sats / satsblock if ( logiskt_uttryck ) sats / satsblock Det logiska uttrycket anger ett villkor som är antingen sant eller falskt. Den första sats/satsblocksdelen är det programavsnitt som ska utföras om villkoret är sant. Den andra sats/satsblocksdelen är det som ska utföras om villkoret är falskt. else och det efterföljande sats/satsblock är valfritt. Några enkla exempel: int antal_husdjur; cout << "Ange hur många husdjur du har hemma"<<endl; cin >> antal_husdjur; cout << "Jaså du har "<< antal_husdjur<< " husdjur"<<endl; if ( antal_husdjur > 5 ) cout << "Oj det var många"<<endl; cout << "slut"<< endl; Programavsnittet måste fogas in i en main() funktion för att fungera. Detta program har nu två möjliga vägar att gå:

2 1. Villkoret är sant. Användaren har matat in en siffra större än 5. Ange hur många husdjur du har hemma 12 Jaså du har 12 husdjur Oj det var många slut 2. Villkoret är falskt. Användaren har matat in en siffra som är 5 eller lägre. Ange hur många husdjur du har hemma 2 Jaså du har 2 husdjur slut Villkorssatsen i exemplet utnyttjar att else delen av if satsen är valfri. Dessutom läggs det en sats och inte ett satsblock efter if satsen. if satsen väljer bara den sats som ligger direkt efter villkoret. Notera indragningen av satsen cout<<"oj det var många"<<endl; Indragningen är densamma som ses efter klammern efter main(). Syftet med indragningen är att då man läser programmet ska man enkelt kunna se vilken eller vilka satser som hör till villkoret. Indraget bör vara ungefär 3 4 mellanslag Satsblock För att kunna utföra flera satser styrda av ett villkor konstruerar man ett satsblock. Ett satsblock är helt enkelt en sekvens av satser omgärdade av och klamrar. Funktionen main() har också ett satsblock, klamrarna och som anger början respektive slut på programmet. Ett liknande program med satsblock och else satser

3 int antal_husdjur; cout << "Ange hur många husdjur du har hemma"<<endl; cin >> antal_husdjur; if ( antal_husdjur > 5 ) cout << "Oj det var många hela "; cout << antal_husdjur << " stycken"; cout << endl; else cout << Jaså du har bara"; cout << antal husdjur << " stycken"; cout << endl; cout<<"slut"<<endl; Observera hur indraget ( kallad indentering ) går över hela satsblocken. Programmet kommer nu att välja endast en av vägarna efter if satsen. Om villkoret är uppfyllt utförs satsblocket direkt efter villkoret, annars utförs satsblocket efter else Övning: Sätt in ovanstående exempel i ett komplett program och provkör. Blev resultatet det du förväntade dig? Rätta till indenteringen i föregående program. Ett vanligt fel är att man råkar lägga en ensam sats mellan if satsen och satsblocket. Kompilatorn har svårt att ge en rimlig felbeskrivning för detta fel. Ett annat vanligt fel är att man påbörjar satsblocket innan villkorssatsen eller else. Satsblocket blir då som regel betydelselöst. if ( antal_husdjur > 5 ) // FEL! Satsblocket börjar inte direkt efter villkoret cout << "Oj det var många hela "; cout << antal_husdjur << " stycken"; cout << endl; else cout << Jaså du har bara"; // FEL! Satsblocket börjar inte direkt efter else satsen. cout << antal husdjur << " stycken"; cout << endl; Det händer också att man ibland råkar sätta ett semikolon direkt efter if satsens villkor.

4 if ( längd < 30.7 ); // FEL! cout << "kort längd"; Detta får till följd att en tom sats direkt efter villkoret styrs av if satsen. Eftersom satsen är tom påverkar den inte programmet på något sätt. cout satsen däremot som var tänkt att påverkas av villkoret utförs oavsett resultatet på villkoret eftersom if satsen tar slut i och med semikolonet. 1.2 Logiska villkor I och med villkorssatsen stöter vi på en ny typ at uttryck, de logiska. De logiska uttrycken följer samma mönster som de tidigare operationerna vi sett med den skillnaden att resultatet av en logisk operation alltid är ett booleskt(logiskt) värde, sant eller falskt. Operatorerna som ger logiska resultat kallas, logiskt nog, logiska operatorer. Logiska binära operatorer == Lika med!= Icke lika med < Mindre än <= Mindre än lika med > Större än >= Större än lika med && Logiskt AND Logiskt OR and Borttaget ur C++: Logiskt AND synonymt med && or Borttaget ur C++: Logiskt OR synonymt med I villkoret i exemplet ovan användes den logiska operatorn > på formen ( int ) > ( int ) : bool Varje logisk operation ger ett resultat av typen bool. Man kan använda sig av variabler deklarerade med typen bool för att lagra logiska värden. Villkoret i exemplet ovan hade kunnat skrivas utförligare som: bool manga_husdjur; manga_husdjur = antal_husdjur > 5; if ( manga_husdjur ) // satsblocken som tidigare med samma betydelse. Variabeln manga_husdjur kan alltså anta värdena true eller false. Om ett logiskt värde av typen bool i något uttryck kan betraktas som ett heltal kommer värdet true att vara värdet 1, och false kommer att vara värdet 0. De flesta logiska operationer är tämligen rättframma. Här följer några exempel på hur uttrycken kan se ut:

5 Antag att förekommande variabler är deklarerade med en rimlig datatyp ( vikt < 60.0 ) ( antal_hundar== 2 ) ( antal_valar!= 2 ) // motsatsen till ovan ( antal*2 >= 52 ) // räkneoperationen utvärderas först Man kan dessutom kombinera uttryck med de logiska operatorerna && ( OCH ) och (ELLER). Dessa operatorer har formen ( bool ) && ( bool ): bool ( bool ) ( bool ): bool Man använder alltså dessa operatorer på logiska värden eller uttryck ( antal == 2 && vikt < 20.0 ) // Jämförelserna utvärderas först och // därefter utvärderas && // båda jämförelserna måste vara sanna för // att hela uttrycket ska vara sant ( antal == 2 vikt < 20.0 ) // om någon av jämförelserna är sanna // är uttrycket sant Det finns även en unär logisk operator! eller not. Operatorn fungerar så att den vänder ett sant värde falskt, och tvärtom. Exempel (!( 3 > 4 ) ) // är sant ( not( 7 == 12 ) ) // är sant (! (4==4) ) // är falskt Det bör sägas ett varningens ord om likhetsjämförelser av flyttal. Om man har två flyttal är det ofta svårt att kontrollera om de är lika, eftersom jämförelsen kräver att de är exakt lika i varje bit. Då varningar utfärdas får man inte glömma bort att varna för en viss typ av sammansatta jämförelser. Betrakta följande programavsnitt int hur_gammal; cout << "Ange din ålder "<<endl; cin >> hur_gammal; // kolla om tonåring, äldre än 12 och yngre än 20 år if ( 12 < hur_gammal < 20 ) // FEL! cout << "Du är tonåring"<<endl; Villkoret kan till en början se riktigt ut, kompilatorn upptäcker troligtvis inget fel. Faktum är att skrivsättet är väldigt vanligt inom algebra. Om man däremot ser i detalj vad villkoret utvärderar ser man ett problem. Den första operationen som utförs är jämförelsen ( från vänster till höger ) 12 < hur_gammal

6 resultatet av denna operation är av typen bool och används som vänster operand i nästa < operation. Resultatet av uttrycket är antingen 0 eller 1, nästa jämförelse blir därför 1 < 20 om hur_gammal var större än 12 annars 0 < 20 Båda dessa villkor är sanna och hela uttrycket är i princip värdelöst. För att skriva jämförelsen på ett riktigt sätt måste man dela upp den i två jämförelser, dels 12 < hur_gammal och dels i hur_gammal < 20 kombinerade med && (and). // kolla om tonåring, äldre än 12 och yngre än 20 år if ( 12 < hur_gammal && hur_gammal < 20 ) // RÄTT! cout << "Du är tonåring"<<endl; Nästlade if satser Ett sats i satsblocket kan innehålla vilken annan typ av sats som helst, även andra if satser. Ett villkor sammansatt med && kan även skrivas om som ett nästlat villkor // kolla om tonåring, äldre än 12 och yngre än 20 år alternativ lösning if ( hur_gammal > 12) // personen är äldre än 12 if ( hur_gammal < 20 ) cout << "Du är tonåring"<<endl; Var uppmärksam på skillnaden mellan denna konstruktion och // kolla om tonåring, äldre än 12 och yngre än 20 år felaktig lösning if ( hur_gammal > 12) // personen är äldre än 12 cout << "Du är äldre än 12"<<endl; if ( hur_gammal < 20 ) // personen är äldre än 20 cout << "Du yngre än 20"<<endl; Se också hur indenteringen ändras för nästlade satser. Observera att kommentarerna inte påverkar if satserna och de satser de styr. Testa gärna de olika varianterna vid en dator.

7 #include<iostream> using namespace std; int main() double tal1, tal2; Exempel, enkel sortering av två tal // ledtext cout << "Detta program undersöker vilket av två tal som är störst"; cout << endl << "Ange det första talet:"<<endl; cin >> tal1; cout << "Ange det andra talet:"<<endl; cin >> tal2; if ( tal1 > tal2 ) cout << "Det första talet, "<<tal1; cout << " är störst"<<endl; else cout << "Det andra talet, "<< tal2<<" är störst"; return 0; Övning Komplettera programmet så att det även skriver ut det mindre av talen. Vad händer om talen är lika? 1.3 Iteration Iteration innebär en upprepning, repetition av satser. Vi har nu sett hur en villkorssats kan välja att utföra ett satsblock beroende på om ett villkor är uppfyllt, selektion. För selektion formulerades ett villkor om ett satsblock skulle behandlas eller inte. För iterationen gäller att dess satsblock repeteras till dess att villkoret inte är längre är sant. Man till exempel beskriva läsandet av en bok schematiskt med iteration 1: Öppna boken 2: Om det finns sidor kvar att läsa: 2.1: Läs en sida 2.2: Bläddra till nästa sida Kontrollera villkor 3: Stäng bok 4: Lämna tillbaks boken till biblioteket Essensen i en iteration kan man se i exemplet består av tre beståndsdelar. 1. Iterationsvillkor ( 2: Finns det sidor kvar att läsa ) 2. Sats som påverkar iterationsvillkoret, tar iterationen närmare slutförandet. ( 2.2: Bläddra till nästa sida )

8 3. Den sats som ska itereras. ( 2.1: Läs en sida ) Man skulle även kunna ta med den första satsen 1: Öppna boken, som möjliggör iterationen. Denna typ av sats som förbereder iterationen kallas för initieringssats. När man diskuterar iterationssatser i programkod kallar man dom ofta för "loopar". De iterationssatser som finns i kan delas in i två kategorier, nämligen Räknande loopar Villkorsloopar Exemplet ovan är ett typiskt exempel på en stegande loop. Man kan betrakta det som att man tar steg från sidan 1 till sidan 2 till sidan 3 osv. till den sista sidan i boken. Skillnaden mellan dessa två typer av loopar är i huvudsak satsen som påverkar iterationsvillkoret. I exemplet är det satsen att bläddra till nästa sida, dvs. ta ytterligare ett steg i boken, som påverkar iterationsvillkoret for satsen En for sats är en av de vanligaste satserna i programkod och är mycket viktigt att behärska. Syftet med for satsen är att skapa räknande loopar. Formen för en for sats är for ( initieringslista; iterationsvillkor; inkrementsatslista ) sats / satsblock Man kan i formen skönja flera likheter med if satsen. Den stora skillnaden ligger i initieringslistan och inkrementlistan, och naturligtvis det faktum att for satsen är iterativ. Kom ihåg att en lista är noll, ett eller flera element separerade med kommatecken. Vi kan nu visa på bokexemplet först schematiskt med en forsats: for(öppna bok; om det finns sidor kvar att läsa; bläddra till nästa sida ) Läs en sida; Stäng bok; Lämna tillbaka boken till biblioteket; Detta är principen bakom varje forsats. Denna typ av kod kallas för pseudokod och används med fördel om man vill diskutera programkodslösningar. En C++ kompilator förstår naturligtvis inte pseudokod, använd penna och papper istället. Bokexemplet som ett komplett program Det går att skapa ett enkelt komplett program av bokexemplet, om man på förhand bestämmer antalet sidor i boken. Vi fastställer härmed att antalet sidor är 12.

9 #include<iostream> using namespace std; int main() int antal_sidor = 12; cout << "Öppnar boken"<<endl; for( int nuvarande = 0; nuvarande < antal_sidor; nuvarande++) cout<<"läser en sida i boken"<<endl; cout<<"stänger boken"<<endl; cout<<"lämnar tillbaks boken till biblioteket"<<endl; return 0; Detta bokexempel läser naturligtvis inte igenom någon riktig bok, men visar ändå ganska tydligt hur iterationen fungerar. Programmet följer exakt samma ordning som det schematiska exemplet ovan utan forsats. Då programmet körs utförs följande satser i tur och ordning Rad 6: Heltalsvariabeln antal_sidor initieras till 12 Rad 7: Texten "Öppnar boken" skrivs till skärmen Rad 8: Heltalsvariabeln nuvarande initieras till noll. Detta är alltså en initieringslista med ett element. Variabeln nuvarande kallas allmänt för loopvariabel. Rad 8: Iterationsvillkoret kontrolleras. Om villkoret nuvarande < antal_sidor, dvs ( här: 0 < 12 : sant ) är sant ( ja ), utförs satsblocket tillhörande for satsen. Rad 10: Texten "Läser en sida i boken" skrivs på skärmen Rad 8: Inkrementsatsen, nuvarande++, utförs. Variabeln nuvarande får alltså värdet 1 Rad 8: Iterationsvillkoret kontrolleras. Nu kan villkoret läsas som 1 < 12 : sant, och satsblocket tillhörande for satsen utförs. Rad 10: Texten "Läser en sida i boken" skrivs på skärmen Rad 8: Inkrementsatsen, nuvarande++, utförs. Variabeln nuvarande får värdet 2 Iterationen fortsätter på detta vis med villkor, satsblock, inkrement, villkor, satsblock, inkrement osv. tills dess att villkoret inte längre är uppfyllt. Detta inträffar då variabeln nuvarande fått värdet 12. Satsutvärderingen blir då vid den sista iterationen Rad 8: Inkrementsats, nuvarande++ ger variabeln värdet 12. Rad 8: Iterationsvillkoret gör jämförelsen, nuvarande < antal_sidor (nu 12<12: falskt). Eftersom villkoret inte längre är sant avbryts iterationen och fortsätter med Rad 12: cout<<"stänger boken"<<endl; Rad 13: Skriver till skärmen "Lämna tillbaks " Satserna i programmet utförs i exakt samma ordning som i det första schematiska bokexemplet utan for sats.

10 Övning: Övertyga dig själv om att det första schematiska exemplet fungerar på samma sätt som for satsen i exemplet ovan Iterationsvariabeln Betrakta programavsnittet for( int i=0; i< 10;i++) cout<<"i = "<< i <<", "; cout satsen i satsblocket skriver ut texten "i = ", därefter värdet på variabeln i, därefter ett kommatecken. Eftersom satsen står i en forsats kommer iterationsvillkoret och inkrementsatsen att avgöra hur många gånger cout <<.. utförs. Om man kör ett komplett program med ovanstående forsats kommer man att få följande utskrift, observera särskilt start och slutvärdet på i. i = 0, i = 1, i = 2, i = 3, i = 4, i = 5, i = 6, i = 7, i = 8, i = 9, Press any key to continue Det som är särskilt intressant i denna forsats är hur iterationsvariabeln kan användas inuti forsatsen. Detta är en mycket användbar egenskap, i synnerhet vid olika typer av beräkningar. Om man sätter ett endl sist i cout satsen kommer det att skrivas ut på tabellform. Denna typ av utskrift tillsammans med formatering av tal beskrivet i avsnittet utskrift ger ett bra sätt att skriva ut tabeller med beräkningar. Exempel, summaberäkning med for sats Antag att vi vill beräkna summan av serien Utformning av lösning: De olika termerna i summan kan räknas fram med hjälp av for satsen. För att beräkna summan krävs ytterligare en variabel av heltalstyp, (int) + (int) ger resultat av typen int. Startvärdet i for satsen skall vara 1. Iterationsvillkoret skall vara utformat så att den sista iteration som utförs, skall vara för värdet 100. int total_summa = 0; // viktigt att nollställa for( int i = 1; i< 101; i++) total_summa += i; // öka total_summa med värdet på i cout<< "summan är:" << total_summa<<endl; Rad 1: Om man glömmer bort att nollställa total_summan kan man få helt oväntade resultat. Rad 2: Initieringssatsen låter värdet på i börja med 1 eftersom summeringen skulle börja med termen 1. Rad 2: Iterationsvillkoret ska medge att satsblocket utförs för värdet i = 100 men inte i = 101, villkoret avbryter nu vid jämförelsen 101 < 101.

11 Rad 4: Operatorn += används för att öka på värdet på variabeln total_summa med värdet av i. Kom ihåg utvärderingsordningen: initiering, villkor, satsblock, inkrement, villkor, satsblock, inkrement, villkor, satsblock, inkrement, villkor Resultatet blir: summan är:5050 Man kan även skriva for satsen med båda variabeldeklarationerna i initieringslistan for ( int total_summa = 0, int i = 0; i < 101; i++)... med samma resultat. Man bör undvika att lägga onödiga deklarationer i initeringslistan till forsatsen eftersom det kan försämra läsbarheten hos programmet Övning Skriv ett program som skriver ut treans multiplikationstabell upp till 10. Programutskrift 1*3 3 2*3 6 3*3 9 Tips: Skriv ut varje värde som en utmatning i en for sats, låt iterationsvariabeln stega från 1 till 10. Tecknen "*3 " på varje rad kan skrivas ut som vanlig text. Formatera utskriften med cout.width( ) while och do while satserna Den andra typen av iterationssatser är villkorsloopar. Skillnaden mellan dessa satser och forsatsen är att de används när man inte utför en räknande iteration, i synnerhet då man på förhand inte känner till hur många iterationer som ska utföras. Ett vanligt förekommande sammanhang för dessa iterationer är för felkontroll av inmatningar från användaren. Villkorslooparna kommer två olika varianter, en med preevaluering, while, och en med postevaluering, do while. Preevaluering innebär att ett villkor utvärderas innan ett satsblock utförs medan postevaluering innebär att ett villkor utvärderas efter ett satsblock utförs. While satsen While satsen använder preevaluering dvs. först utvärdera villkor därefter utförs tillhörande satsblock. Formen på en while sats är följande while ( iterationsvillkor ) sats / satsblock Funktionen hos satsen är densamma som hos for satsen, men den saknar både initieringslista och inkrementsatslista.

12 Exempel, inmatning av en födelsemånad. Programmet ska ta emot en inmatning om vilken månad som användaren är född i och därefter konstatera om användaren föddes tidigt på året eller sent på året. Programmet innehåller en felkontroll av inmatad månad. En programkörning kan se ut som Vilken månad är du född? Ange ett tal mellan 1 och Du har angett ett felaktigt tal, försök igen! 4 Du har angett ett felaktigt tal, försök igen! 2 Du är född tidigt på året. Programlösning #include<iostream> using namespace std; int main() int fodelse_manad; cout<<"vilken månad är du född? Ange en siffra mellan 1 och 12."<<endl; cin>> fodelse_manad; // felkontroll while( fodelse_manad < 1 fodelse_manad > 12 ) cout<<"du har angett ett felaktigt tal, försök igen!"<<endl; cin>> fodelse_manad; // slut felkontroll if ( fodelse_manad <=6 ) cout <<"Du är född tidigt på året"<<endl; else cout <<"Du är född sent på året"<<endl; return 0; Observera att det finns två satser för samma inmatning i programmet, en före iterationen och en inuti iterationen. Inmatningssatsen inuti iterationen kommer bara att utföras om man har matat in ett felaktigt värde vid den första inmatningen. For satsen som while sats For satsen och while satsen skiljer sig bara på for satsens initieringslista och dess inkrementlista. Eftersom en lista kan bestå av inget element är det syntaktiskt korrekt att helt utelämna dessa satser. Gör man det får man exakt samma funktion som hos while satsen. Exemplet ovan hade även kunnat skrivas med for sats genom att byta ut while satsen mot

13 for ( ; fodelse_manad < 1 fodelse_manad > 12 ; )... som tidigare Observera att for satsens semikolon inte får utelämnas. Do while satsen #include<iostream> using namespace std; int main() int fodelse_manad; Do while satsen har ett samma funktion som while satsen med den skillnaden att den använder sig av postevaluering, villkoret om att fortsätta iterationen utförs efter det tillhörande satsblocket. Det får till följd att satsblocket till en do while sats alltid kommer att utföras minst en gång. Formen på en do while sats är do sats / satsblock while ( iterationsvillkor ); Exemplet ovan skrivet med en do while sats kan bli do cout<<"vilken månad är du född? "; cout<<"ange en siffra mellan 1 och 12."<<endl; cin>> fodelse_manad; while( fodelse_manad < 1 fodelse_manad > 12 ); if ( fodelse_manad <=6 ) cout <<"Du är född tidigt på året"<<endl; else cout <<"Du är född sent på året"<<endl; return 0; I denna variant finns det bara en sats som tar emot inmatningen av månaden, så programkoden är något enklare, men användaren får heller inget tydligt felmeddelande att inmatningen som gjordes var felaktig. En programkörning kan se ut som Vilken månad är du född? Ange ett tal mellan 1 och Vilken månad är du född? Ange ett tal mellan 1 och Du är född sent på året.

14 #include<iostream> using namespace std; Exempel, nästlade loopar, multiplikationstabellen På samma sätt som en villkorssats kan innehålla vilken annan sats som helst kan iterationssatser även innehålla iterationssatser. Det blir då en sk. nästlad iteration. Ett tydligt exempel på hur det kan fungera är multiplikationstabellen int main() for( int i = 1; i <= 10;i++) // anger raden i tabellen for( int j = 1; j <= 10;j++) // skriv ett tal i tabellen cout.width( 5 ); cout << i*j ; cout<< endl; /// nästa rad i tabellen return 0; Observera indenteringen (indraget) av programkoden i forsatserna. Resultatet blir Press any key to continue Observera att rad 12: cout << i*j ; bara skriver ut ett tal åt gången, och resultatet innehållet en utskrift av hundra tal. cout satsen måste alltså ha utförts hundra gånger. Detta kommer sig av att den ena for satsen ligger i den andres satsblock. För varje gång som den första for satsen (rad 6) repeterar sitt satsblock kommer den inre for satsen (rad 8) att utföra cout satsen 10 gånger, vilket ger totalt hundra repetitioner av rad Övning Skriv multiplikationsprogrammet så att det använder while satser istället.

1 Iteration. 1.1 for-satsen

1 Iteration. 1.1 for-satsen 1 Iteration Iteration innebär en upprepning, repetition av satser. Vi har nu sett hur en villkorssats kan välja att utföra ett satsblock beroende på om ett villkor är uppfyllt, selektion. För selektion

Läs mer

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

System.out.println(Jaså du har + antalhusdjur+  husdjur); if ( antalhusdjur > 5 ) System.out.println(Oj det var många); 1 Villkor och styrsatser I de program vi sett tidigare har programkörning inneburit att sats efter sats utförts i den ordning de skrivits i källkoden. Vi har inte kunna ändra programmets uppförande beroende

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner

Läs mer

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

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p 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

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Grundläggande satser och uttryck Eric Elfving Institutionen för datavetenskap 5 augusti 2014 Översikt Uttryck Litteraler Operatorer Satser Villkor Upprepning Teckenhantering

Läs mer

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.

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. Lektion C2 Villkor 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. Du gör ofta val i livet, och valet du gör får olika konsekvenser och följder.

Läs mer

JavaScript del 3 If, Operatorer och Confirm

JavaScript del 3 If, Operatorer och Confirm JavaScript del 3 If, Operatorer och Confirm Under förra uppgiften så kollade vi på hur användaren kan ge oss information via promt(), vi använde den informationen både för att skriva ut den och för att

Läs mer

C++ - En introduktion

C++ - En introduktion C++ - En introduktion De imperativa grunderna för dig som kan programmera Eric Elfving Institutionen för datavetenskap 1 / 72 Översikt 1 Grunderna 2 Uttryck och satser 3 Funktioner 4 Poster 1 Grunderna

Läs mer

Data, typ, selektion, iteration

Data, typ, selektion, iteration Data, typ, selektion, iteration En programmeringkurs på halvfart IDT, MDH ttp://www.negative-g.com/nolimits/no%20limits%20defunct%20coasters.htm 1 Dagens agenda Talrepresentation Typkonvertering Sekvens

Läs mer

Introduktion till programmering

Introduktion till programmering Introduktion till programmering v. 1.12-2007-02-10 Mittuniversitetet Institutionen för Informationsteknologi och medier Datateknik Innehållsförteckning 1 Inledning...4 2 Språket C++...5 2.1 Valet av språket

Läs mer

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

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i

Läs mer

Programmering i C, 7,5 hp

Programmering i C, 7,5 hp Programmering i C, 7,5 hp Föreläsning 4 VÄLKOMNA! 31 switch-satsen Antag att vi har en heltalsvariabel a som skall styra programflödet Antag vidare att a kan anta tex 5 olika värden 1,2,3,4,5 printf( Mata

Läs mer

1 Funktioner och procedurell abstraktion

1 Funktioner och procedurell abstraktion 1 Funktioner och procedurell abstraktion Det som gör programkonstruktion hanterlig och övergripbar och överhuvudtaget genomförbar är möjligheten att dela upp program i olika avsnitt, i underprogram. Vår

Läs mer

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean

Läs mer

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

TDIU01 (725G67) - Programmering i C++, grundkurs . TDIU01 (725G67) - Programmering i C++, grundkurs Program, datatyper och IO Eric Elfving Institutionen för datavetenskap 7 oktober 2015 Översikt 2/14 Struktur på ett C++-program Köra ett program Variabler

Läs mer

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

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

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

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet 1 Texthantering I detta avsnitt tas det upp två sätt att arbeta med text i C++ program. Det första sättet som behandlas är hanteringen av textfält. Texter i C++ består utav en serie med enstaka tecken

Läs mer

float Mindre rella tal ( floating point number ) double Rella tal/flyttal ( double precision floating point number )

float Mindre rella tal ( floating point number ) double Rella tal/flyttal ( double precision floating point number ) 1 Datatyper och Uttryck I räkneprogrammet tidigare såg vi att C++ kräver deklarationer av alla variabler som används. I räkneprogrammet användes bara variabler av heltalstyp, int, men det finns naturligtvis

Läs mer

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska Matlab-föreläsning 3 (4), 17 september, 2015 Innehåll Sekvenser (från förra föreläsningen) Upprepning med for-slingor och while-slingor Villkorssatser med if - then -else - Logik Sekvenser - repetion från

Läs mer

Logik och kontrollstrukturer

Logik och kontrollstrukturer Logik och kontrollstrukturer Flödet av instruktioner i ett programmeringsspråk bygger vi upp med hjälp av dess kontrollstrukturer. I C har vi exemplen if, if else, while, do while. Dessutom finns switch

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor 732G11 Linköpings universitet 2011-02-01 1 2 3 Strukturdiagram Strukturdiagram används för att visa hur ett program fungerar. Man kan se alla val och upprepningar som sker i programmet. Består av tre (!)

Läs mer

Språket Python - Del 1 Grundkurs i programmering med Python

Språket Python - Del 1 Grundkurs i programmering med Python Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

Läs mer

TDDC76 - Programmering och Datastrukturer

TDDC76 - Programmering och Datastrukturer TDDC76 - Programmering och Datastrukturer C++ - en introduktion Eric Elfving Institutionen för datavetenskap 1 / 72 Översikt 1 Grunderna 2 Uttryck och satser 3 Funktioner 4 Poster 1 Grunderna Ett första

Läs mer

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

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program

Läs mer

Instuderingsfrågor till Steg 1

Instuderingsfrågor till Steg 1 Instuderingsfrågor till Steg 1 Följande frågor har till avsikt att underlätta inläsningen av det teoriavsnitt som hör till steg1. Frågorna är anpassade till kursboken C++ from the Ground Up av Herbert

Läs mer

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter. TAIU07 Föreläsning 3 Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter. 27 januari 2016 Sida 1 / 21 Logiska variabler

Läs mer

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

Läs mer

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

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik för ingenjörer, VT06 2 Repetition Repetition -

Läs mer

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer 729G04 Programmering och diskret matematik Python 2: Villkorssatser, sanningsvärden och logiska operatorer Föreläsningsöversikt Vad händer när vi kör vår pythonkod? Programmerare Villkorssatser Jämförelser

Läs mer

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4 Modul 2 Byggstenar PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4 Byggstenar 4 Nyckelord 4 Tecken 4 Syntax 5 Standardbibliotek 5 Vårt första program 5 Variabler 6 Konstanter 9 Operatorer 9 Övningar 9 Mer operatorer

Läs mer

Visual Basic, en snabbgenomgång

Visual Basic, en snabbgenomgång Visual Basic, en snabbgenomgång Variabler och Datatyper En variabel är som en behållare. Olika behållare passar bra till olika saker. I Visual Basic(härefter VB) finns olika typer av behållare för olika

Läs mer

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

Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY Grunderna i C++ ARK 385: Virtuella Verktyg i en Materiell värld AT Arkitektur & Teknik Chalmers Tekniska Högskola 2009 - Kursen skapades (3 förel.) 2010-6 förel. + 2 projekt 2011-8 förel. Helt omarbetade

Läs mer

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

Inledande programmering med C# (1DV402) Summera med while-satsen Summera med while"-satsen Upphovsrätt för detta verk Inledande programmering med C# (1DV402) Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får

Läs mer

Föreläsning 3. Iteration while-satsen

Föreläsning 3. Iteration while-satsen Föreläsning 3 Iteration while-satsen Datatypen double I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna, som används för att lagra tal (t.ex. int och double), har

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Underprogram - Funktioner Eric Elfving Institutionen för datavetenskap 18 september 2014 Översikt 2/22 Återblick till satsblocken Funktioner - Namngivna satsblock

Läs mer

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?

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? Föreläsning 10 Datalogi 1 DA2001 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer på skärmen print( Hej ) print( Hur är det?

Läs mer

Grundläggande programmering med C# 7,5 högskolepoäng

Grundläggande programmering med C# 7,5 högskolepoäng Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

Läs mer

JAVAUTVECKLING LEKTION 4

JAVAUTVECKLING LEKTION 4 JAVAUTVECKLING LEKTION 4 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Iterationer (loopar) Algoritmer Mer om felsökning 1 WHILE-SATSEN String s = JOptionPane.showInputDialog("Talet

Läs mer

Variabler och konstanter

Variabler och konstanter Variabler och konstanter Deklareras automatisk när man stoppar in data i dem. X = 7 Y = A Z = Kalle Definieras av att de har: ett namn (X) en datatyp (Integer) ett värde (t.ex. 7) Lagras i datorns minne!

Läs mer

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

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk Föreläsning 2 steknik DD1310 Python introduktion Variabler Datatyper Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program är

Läs mer

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga

Läs mer

Iteration while-satsen

Iteration while-satsen Datatypen double TDA143 I1 Programmerade system Föreläsning 3 (OH-bilder 3) Iteration while-satsen Christer Carlsson I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna,

Läs mer

MMA132: Laboration 2 Matriser i MATLAB

MMA132: Laboration 2 Matriser i MATLAB MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen

Läs mer

i LabVIEW. Några programmeringstekniska grundbegrepp

i LabVIEW. Några programmeringstekniska grundbegrepp Institutionen för elektroteknik Några programmeringstekniska grundbegrepp 1999-02-16 Inledning Inom datorprogrammering förekommer ett antal grundbegrepp som är i stort sett likadana oberoende om vi talar

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java

Läs mer

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

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära

Läs mer

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner 732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (

Läs mer

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

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning. Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java

Läs mer

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

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 Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java

Läs mer

Exempel på ett litet Ada-program

Exempel på ett litet Ada-program Exempel på ett litet Ada-program -- En kommentar som beskriver något. with Ada.Text_IO; procedure Mini is -- Deklarationer. K : constant Integer := 5; X, Y : Integer; -- Körbar kod. Ada.Text_IO.Put( Utskrift

Läs mer

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler 1 Datorn som miniräknare I detta avsnitt tas upp hur man kan skriva program som utför enkla räkneoperationer och skriver resultat på skärmen. Syftet är i huvudsak att se hur flera satser kan bygga upp

Läs mer

C++ Lektion Tecken och teckenfält

C++ Lektion Tecken och teckenfält C++ Lektion Tecken och teckenfält Teori Hittills har alla variabler du jobbat med varit olika typer av tal, men du kan också deklarera variabler som håller bokstavstecken. Denna variabeltyp kallas för

Läs mer

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

Introduktion till algoritmer - L0 - Grunder i C++ Matematikgymnasiet, Läsåret 2014-2015. L0 - Grunder i C++ Introduktion till algoritmer - L0 - Grunder i C++ Matematikgymnasiet, Läsåret 01-015 L0 - Grunder i C++ Det här är den första lektionen i kursen Introduktion till algoritmer vid Matematikgymnasiet, läsåret

Läs mer

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

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

Läs mer

C++ - En introduktion

C++ - En introduktion C++ - En introduktion De imperativa grunderna för dig som kan programmera Eric Elfving Institutionen för datavetenskap 1 / 77 Översikt 1 Grunderna 2 Uttryck och satser 3 Funktioner 4 Poster 1 Grunderna

Läs mer

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

2.1 Variabler. 2.2 Regler för namngivning i C. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Föreläsning 2 Föreläsning 2 2.1 Variabler Vi studerar exempel 1 från boken: int main(void) int a,b,c=7; float antal,pris=3.70,laengd; a=34; b=32767; antal=-123.978; pris=89.00; laengd=56; c=-38; laengd=laengd+1; Sex

Läs mer

Enkla datatyper minne

Enkla datatyper minne Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in

Läs mer

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C 1 of 7 Örebro universitet Institutionen för teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen fredag 15

Läs mer

Skizz till en enkel databas

Skizz till en enkel databas Skizz till en enkel databas Data: Register En vektor Funktioner: Databas Initiera huvudloop Avsluta Poster (struct( struct) val Mata in Skriv ut Spara Hämta Ändra Radera Enligt diskussion 1999-11-23 Bertil

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator Programmering C: Tentamen 2008-05-31 1 of 5 Örebro universitet Institutionen för teknik Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se) Tentamen i Programmering grundkurs och Programmering

Läs mer

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

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk Föreläsning 2 steknik DD1310 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer funktioner betyder att instruera en dator Ett program

Läs mer

Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python

Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python Repetition i Python 3 Exemplen fac Orginalet I Scheme använde vi rekursion för all slags repetition. Efterom Scheme är ett funktionellt språk återsänder alla språkkonstruktioner ett värde men i Python

Läs mer

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

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera Föreläsning 2 Variabler, tilldelning och kodblock if-satsen Logiska operatorer Andra operatorer Att programmera Variabler Det är i variabler som all data (information) lagras. Genom att ändra värde på

Läs mer

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

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1 Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens

Läs mer

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

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen C++ Funktioner 1 Teori När programmen blir större och mer komplicerade är det bra att kunna dela upp programmet i olika delar som gör specifika saker, vilket kan göra programmet mer lättläst. Ett sätt

Läs mer

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

Föreläsning 1: Momstabellen i C++ Nu sätter vi igång med C++! Föreläsning 1: Momstabellen i C++ På den här föreläsningen skall jag ta ett stort exempel och ett par små och med dessa hoppas jag att täcka in mycket av det som är grundläggande.

Läs mer

For-sats/slinga. Notis

For-sats/slinga. Notis Notis I koden för exemplen förekommer kommentarer. Kommentarer i Matlabkoden identieras med prexet %. Kommentarer är text/kod som Matlab bortse från. Alltså all text/kod som ligger till höger och på samma

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316

Föreläsning 2 Programmeringsteknik och C DD1316 Föreläsning 2 Programmeringsteknik och C DD1316 Föreläsning 2 Programmeringsteknik och C Datatyp Aritmetiska operatorer Omvandling av typer Reserverade ord Mikael Djurfeldt Logiska operatorer

Läs mer

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)

Läs mer

Lektion 1 - Steg 1. Introduktion. Hello World

Lektion 1 - Steg 1. Introduktion. Hello World Introduktion Kursen är utvecklad som ett projekt med syfte att stödja ett flexibelt lärande. Idéerna bakom den successiva examinationen är att synliggöra de enskilda inlärningsstegen i kursen. Tanken är

Läs mer

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn. Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0

Läs mer

int iarray[]= new int[3]; // deklarera ett heltalsfält med tre heltal int jarray[]={ 1, 3, 5, 7, 9, 11, 13, 15}; // initierat fält 8 element

int iarray[]= new int[3]; // deklarera ett heltalsfält med tre heltal int jarray[]={ 1, 3, 5, 7, 9, 11, 13, 15}; // initierat fält 8 element 1 Arrayer Vid beräkningar med större datamängder än några enstaka tal är det bekvämt att kunna betrakta en talmängd som en enhet. Detta åstadkommer man genom att deklarera och instantiera fält. Ett annat

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Pekare och Listor Eric Elfving Institutionen för datavetenskap 31 oktober 2014 Översikt 2/41 Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor Arbeta

Läs mer

Lite logik. Kap 6: Sid 2

Lite logik. Kap 6: Sid 2 6 Loopar och val Lite logik Val mellan två alternativ Val mellan flera alternativ Sammansatta villkor Boolska variabler Jämför strängar While-loopar Do-loopar For-loopar Kortformer Kap 6: Sid 2 Lite logik

Läs mer

Beräkningsvetenskap föreläsning 2

Beräkningsvetenskap föreläsning 2 Beräkningsvetenskap föreläsning 2 19/01 2010 - Per Wahlund if-satser if x > 0 y = 2 + log(x); else y = -1 If-satsen skall alltid ha ett villkor, samt en då det som skall hända är skrivet. Mellan dessa

Läs mer

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.

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. Värmdö Gymnasium Programmering A 110123 Lektion C1 Grunder Att programmera handlar mycket om att lära sig att analysera det problem eller den funktion man vill att programmet ska ha, och översätta det

Läs mer

729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 2 Jody Foo,

729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 2 Jody Foo, 729G74 IT och programmering, grundkurs Tema 3. Föreläsning 2 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Repetition: syntax-quiz Fler for-loopar (över listor och dictionaries) range() Nästlade strukturer

Läs mer

TDDC77 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering TDDC77 Objektorienterad Programmering Föreläsning 3 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Operatorer Java Standard Library Inmatning Operatorer operatorer En operator är en

Läs mer

Programmeringsteknik I

Programmeringsteknik I Programmeringsteknik I Föreläsning 2: Grundläggande Java Johan Öfverstedt Java Grundläggande begrepp Datatyper Selektion if Räckvidd (scope) Iteration while Klasser Objekt Metoder Metodhuvudet Kodstandarden

Läs mer

Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada

Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada Mer källkod Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne Erik Forslin efo@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 1 Styrstrukturer i Java En styrstruktur är något som påverkar

Läs mer

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

Övningsuppgifter till föreläsning 2 Variabler och uttryck Sid 1 (5) Övningsuppgifter till föreläsning 2 Variabler och uttryck Syfte Syftet med övningsuppgifterna är att träna på: Aritmetik, variabler, tilldelning, scanf och printf Generellt Diskutera gärna uppgifterna

Läs mer

Objektorienterad programmering Föreläsning 2

Objektorienterad programmering Föreläsning 2 Objektorienterad programmering Föreläsning 2 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Inläsning av data via dialogrutor Repetitioner (While-satsen och For-satsen) Nästlade

Läs mer

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

FÖRSLAG TILL LÖSNING AV Tentamen i Objektorienterad programmering C++ I FÖRSLAG TILL LÖSNING AV Tentamen i Objektorienterad programmering C++ I 2002-03-18 Betygsgränser: 3 14 poäng 4 20 poäng 5 27 poäng Maxpoäng: Hjälpmedel: 32 poäng Bilagd ASCII-tabell Lycka till Per Ekeroot

Läs mer

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

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011 1 of 7 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen

Läs mer

Lärobok Programmering 1 (C++) Nybörjarprogrammering

Lärobok Programmering 1 (C++) Nybörjarprogrammering Lärobok Programmering 1 (C++) Nybörjarprogrammering En enkel start på din inlärning av den sköna programmeringskonsten. I boken arbetar vi med C++, men boken innehåller mycket generell kunskap. morgan.augustsson

Läs mer

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera Föreläsning 2 Operatorer Tilldelning Kodblock if satsen Logiska uttryck Att programmera En operator tar ett eller två data och producerar ett svar. Typexemplet är +. Den tar t.ex två heltal och producerar

Läs mer

Programmering i C. Christer Sandberg, Gunilla Eken, Stefan Bygde Olof Andersson Linus Källberg Caroline Uppsäll Johan Hägg

Programmering i C. Christer Sandberg, Gunilla Eken, Stefan Bygde Olof Andersson Linus Källberg Caroline Uppsäll Johan Hägg Programmering i C En tuff kurs på halvfart för nybörjare i programmering Christer Sandberg, Gunilla Eken, Stefan Bygde Olof Andersson Linus Källberg Caroline Uppsäll Johan Hägg 1 Idag Kursupplägg Satser

Läs mer

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

Dagens program. Programmeringsteknik och Matlab. Viktiga datum. Ett första exempel. Programmall, vad behöver vi i ett javaprogram? Programmeringsteknik och Matlab Övning 2 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

Booleska variabler och översättning mellan programuttryck och booleska variabler

Booleska variabler och översättning mellan programuttryck och booleska variabler Vad är Boolesk algebra Lite förenklat kan man säga att Boolesk algebra är räkneregler konstruerade av den engelske matematikern Gerge Boole för att kunna räkna med logiska uttryck. I den booleska algebran

Läs mer

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och... Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»

Läs mer

Grunderna i stegkodsprogrammering

Grunderna i stegkodsprogrammering Kapitel 1 Grunderna i stegkodsprogrammering Följande bilaga innehåller grunderna i stegkodsprogrammering i den form som används under kursen. Vi kommer att kort diskutera olika datatyper, villkor, operationer

Läs mer

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis

Läs mer

729G04 Programmering och diskret matematik. Python 3: Loopar

729G04 Programmering och diskret matematik. Python 3: Loopar 729G04 Programmering och diskret matematik Python 3: Loopar Översikt Labbar Punktnotation och strängmetoder Loopar Labb 3 Labbar? Punktnotation Punktnotation Ni har stött på punktnotation tidigare - kapitel

Läs mer

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4: (22 januari 2016 F2.1 ) Föreläsning 2 Täcker material från lektion 1, 2, 3 och 4: Datatyper Aritmetik Tecken och strängar Klasser, Objekt Metoder Villkor, villkorssatser och iterationer main-metoden Kodstandard

Läs mer

725G61 - Laboration 2 Loopar och arrayer. Johan Falkenjack

725G61 - Laboration 2 Loopar och arrayer. Johan Falkenjack 725G61 - Laboration 2 Loopar och arrayer Johan Falkenjack October 29, 2013 1 Inledning I labb 1 lärde vi oss om de primitiva datatyperna (och lite om String). Vi lärde oss också att använda variabler av

Läs mer

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

+Överskådlighet Normalt sätt blir ett program skrivet i det procedurella paradigmet överskådligt. Modifikationer på delproblem kan ske med lätthet. Uppgift 1 Ett programmeringsparadigm är i grund och botten ett sätt att arbeta, ett sätt att möta problem. Det finns flera olika paradigm där varje paradigm har sina egna styrkor och svagheter. Det som

Läs mer

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser Introduktion till programmering Föreläsning 2: Variabler, uttryck och satser 1 1 Värden De grundläggande saker som en dator manipulerar resultaten av beräkningar kallas värden Värden vi stött på: 2 och

Läs mer