Några småsaker. switch break, continue, goto Kommentarer

Relevanta dokument
Blandat. Föreläsning 5

Switch, Array (fält) switch break, continue, goto (scary) Sammansatta tilldelningar Kommentarer Array Sortering

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman

Programmering i C, 7,5 hp

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

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

BMI = (vikt i kg) / (längd i m) 2. Lösningsförslag

Föreläsning 4. Val, boolska värden, läsbarhet, osv

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

Loopar och datatyper. Föreläsning 3

En kort text om programmering i C.

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

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

F4. programmeringsteknik och Matlab

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

Uttryck och villkor. Föreläsning 2

Uttryck och villkor. Föreläsning 2

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010

Agenda (obs! halvdag)

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

Planering Programmering grundkurs HI1024 HT TIDAA

Loopar och datatyper. Föreläsning 3

Planering Programmering grundkurs HI1024 HT data

Programmering, grundkurs, 8.0 hp HI1024, omtentamen, TEN1. Tisdagen den 7 juni 2011,

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

Programmering, grundkurs, 8.0 hp HI1024, extra tentamen, TEN1, för TIDAA1. Fredagen den 11 mars 2011,

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

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

#include <stdio.h> #include <string.h>

Föreläsning 10. Pekare (Pointers)

C++ Slumptalsfunktioner + switch-satsen

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

Funktioner och programstruktur. Föreläsning 5

Funktioner och programstruktur. Föreläsning 5

Planering Programmering grundkurs HI1024 HT 2014

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

3 Styrning av programflöde. Här exekveras satserna enligt först sats1 sedan sats2 och sist sats3.

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

TDIU01 - Programmering i C++, grundkurs

Arbetsblad 1:1. Tiondelar på tallinjen 0,1 0,5 0,9 0,2 0,8 0,3 0,8 1,1 1,5 1,6 2,1 2,4 1,1 1,4 2,6 3,2 3,8

Arbetsblad 1:1. Tiondelar på tallinjen 0,9 1,1 0,8. 6 Sätt ut pilar som pekar på talen: A = 0,3 B = 0,8 C = 1,4

Arbetsblad 1:1. Tiondelar på tallinjen. 6 Sätt ut pilar som pekar på talen: A = 0,3 B = 0,8 C = 1,4

Programmering, grundkurs, 8.0 hp HI1024, TEN1. Fredagen den 2 mars 2012

Användarhandledning Version 1.2

Belopp Belopp > procent

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

DD1314 Programmeringsteknik

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

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011,

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

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

Att förstå bråk och decimaltal

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4

TRÄNING I HUVUDRÄKNING. Schema för systematik och individualisering

Enkla datatyper minne

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

GPT- föreläsning 10. För en vecka sedan Problemlösning på lägre nivå kan sortera funktioner Förra gången

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?

Lathund. C för inbyggda system

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Variabler och konstanter

Imperativ programmering. Föreläsning 2

Följande, ur problemsynpunkt enkla uppgifter, är till för att nöta in dagens teori.

Programmering Grundkurs (HI1900) Teoridel

GPT föreläsning 8. Förra veckan: Man kan ta tiden på en sorterad teckensträng Förra gången: Problemlösning på lägre nivå kan sortera funktioner

OOP Tenta

Data, typ, selektion, iteration

Steg-Vis. Innehållsförteckning

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

Grundkurs i programmering, 6 hp (725G61) Dugga 1 tillfälle 3

a) A = 3 B = 4 C = 9 D = b) A = 250 B = 500 C = a) Tvåhundrasjuttiotre b) Ettusenfemhundranittio

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

DOP-matematik Copyright Tord Persson Övning Bråkräkning. Matematik 1. Uppgift nr 14 Addera 9. Uppgift nr 15 Addera 3. Uppgift nr 16 Subtrahera

Extramaterial till Matematik Y

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

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

Vad har vi lärt oss så här långt Vad är en sträng? Strängkonstanter. Att skriva ut och läsa in strängar. Att arbeta med strängar.

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

6.1 Kompilering och lite grundläggande information

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

Heltal(int) Programmeringsteknik 54

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

a = a a a a a a ± ± ± ±500

OOP Omtenta

Realtidsprogrammering. En introduktion Implementering (med exempel från PIC)

Programmeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner

Programmeringsuppgifter 1

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

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

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

Föreläsning 4: for, while, do-while

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

7 Programmeringsteknik

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

Enkla uppgifter. Uppgift 1. Uppgift 2

Matematik EXTRAUPPGIFTER FÖR SKOLÅR 7-9

Chapter 4: Writing Classes/ Att skriva egna klasser.

Transkript:

Några småsaker switch break, continue, goto Kommentarer

switch int weekday; printf("mata in veckodagnummer 1-7: "); scanf("%d", &weekday); switch(weekday) case 1: printf("monday\n"); break; case 2: printf("tuesday\n"); break; case 3: printf("wednesday\n"); break; case 4: printf("thursday\n"); break; case 5: printf("friday\n"); break; default: printf("weekend!\n"); jmf: if(weekday==1) printf("monday\n"); else if(weekday==2) printf( Tuesday\n"); else if(weekday==3) printf( Wednesday\n"); else if(weekday==4) printf( Thursday\n"); else if(weekday==5) printf( Friday\n"); else printf( Weekend! \n ");

break Skrivs inuti en switch, for, while eller do-while sats När den exekveras hoppar programmet genast ut ur den sats (switch, for, while, dowhile) den står i Med undantag för switchsatsen behöver den normalt inte användas int i=1,summa=0,tmp; for(i=0;i<10;i++) printf("skriv in tal %d:",i); scanf("%d",&tmp); if(tmp==0) break; else summa = summa+tmp; printf("summa:%d",summa);

continue Skrivs inuti en for, while eller do-while sats När den exekveras påbörjas ett nytt varv Finns egentligen aldrig en bra anledning att använda denna

goto Använd aldrig under några omständigheter denna sats! Om ni någon gång använder goto se då till att följa regeln ovan Möjligen kan användandet av goto tillfälligt under debugging vara motiverat men jag tycker att även här använder vi regel ett för att reglera användandet Den sammanlagda kostnaden för världen pga goto hann innan användandet begränsades överstiga kostnaden för NASA och CERN tillsammans! (källa: ingen alls men jag känner på mig att det stämmer)

Kommentarer Finns av två typer: //resten av raden ignoreras av kompilatorn /*kan löpa över flera rader och avslutas vid*/ OBS att den senare inte kan nästlas! Skall förklara koden men inte förklara sådant som man förstår om man förstår C. Man ska ha lagom många kommentarer! Endast genom övning lär man sig vilka kommentarer som behövs och vilka som är överflödiga. Till labbarna försök skriva de kommentarer du tror du behöver för att enkelt förstå koden om två veckor. Läs koden två veckor senare och se om det hade behövts fler kommentarer och om några var överflödiga.

Miniräknaren Konstruera en miniräknare som låter användaren addera, subtrahera, multiplicera eller dividera två tal valfritt antal gånger. Gör om miniräknaren så att användaren använder svaret från en beräkning i nästa beräkning

Steg 1 Skriv en start (hello world) och kompilera så att du vet att allt funkar

#include <stdio.h> int main() printf("valkommen till miniraknaren!"); return 0;

Steg 2 Fixa inläsningen av data ( vi väntar med att fixa så att man kan göra flera beräkningar till sist) Kontrollera att du lyckas läsas in dina indata!

int main() int val; float tal1,tal2; printf("valkommen till miniraknaren!\n"); printf("valj alternativ:\n"); printf("1. Addition\n"); printf("2. Subtraktion\n"); printf("3. Multiplikation\n"); printf("4. Division\n"); scanf("%d",&val); printf("ange tal 1:"); scanf("%f",&tal1); printf("ange tal 2:"); scanf("%f",&tal2); printf("%d %f %f\n",val,tal1,tal2); return 0;

Steg 3 Gör beräkningen baserat på indata

int main() int val; float tal1,tal2,resultat; printf("valkommen till miniraknaren!\n"); printf("valj alternativ:\n"); printf("1. Addition\n"); printf("2. Subtraktion\n"); printf("3. Multiplikation\n"); printf("4. Division\n"); scanf("%d",&val); printf("ange tal 1:"); scanf("%f",&tal1); printf("ange tal 2:"); scanf("%f",&tal2); if(val==1) resultat=tal1+tal2; else if(val==2) resultat=tal1-tal2; else if(val==3) resultat=tal1*tal2; else resultat=tal1/tal2; printf("resultatet blev: %f\n",resultat); return 0;

Steg 4 Ge användaren möjlighet att göra fler beräkningar

int main() int val,fortsatt=1; float tal1,tal2,resultat; printf("valkommen till miniraknaren!\n"); while(fortsatt) printf("valj alternativ:\n"); printf("1. Addition\n"); printf("2. Subtraktion\n"); printf("3. Multiplikation\n"); printf("4. Division\n"); scanf("%d",&val); printf("ange tal 1:"); scanf("%f",&tal1); printf("ange tal 2:"); scanf("%f",&tal2); if(val==1) resultat=tal1+tal2; else if(val==2) resultat=tal1-tal2; else if(val==3) resultat=tal1*tal2; else resultat=tal1/tal2; printf("resultatet blev: %f\n",resultat); printf("vill du fortsatta 0-Nej, 1-Ja"); scanf("%d",&fortsatt); return 0;

Steg 5 Använda svaret i nästa beräkning Nu ska vi göra om programmet så att det delvis löser en annan uppgift Det är vanligt att kunden ändrar sig under ett projekts gång. Det är när man ska införa ändringar man märker hur välskrivet programmet är. Ett bra program är modulärt uppbyggt och det är enkelt att göra ändringar utan att man behöver skriva om hela koden

int main() int val,fortsatt=1; float tal1,tal2,resultat; printf("valkommen till miniraknaren!\n"); printf("ange tal 1:"); scanf("%f",&tal1); while(fortsatt) printf("valj alternativ:\n"); printf("1. Addition\n"); printf("2. Subtraktion\n"); printf("3. Multiplikation\n"); printf("4. Division\n"); scanf("%d",&val); printf("ange tal 2:"); scanf("%f",&tal2); if(val==1) resultat=tal1+tal2; else if(val==2) resultat=tal1-tal2; else if(val==3) resultat=tal1*tal2; else resultat=tal1/tal2; printf("resultatet blev: %f\n",resultat); tal1=resultat; printf("vill du fortsatta 0-Nej, 1-Ja"); scanf("%d",&fortsatt); return 0;

Tändsticksspel Det finns ett tändsticksspel där man lägger upp 15 tändstickor på ett bord. Två spelare ska sedan turas om att ta en, två eller tre tändstickor. Den som tar den sista stickan vinner. Programmera ett program som låter användaren spela mot datorn. Extra för den som hinner och vill: Implementera en strategi där datorn vinner varje gång om denne får börja