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

Slides:



Advertisements
Liknande presentationer
Relationsoperatorer Java/C# C/C++ Visual Basic FORTRAN PASCAL ORACLE
Advertisements

Repetition av språket Java
Villkor Booelska operatorer Villkorsatser Switchsatser Villkor och annat.
Sid 1 CD5250 Daniel Flemström MDH/IDT Windowsprogrammering.
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
Programstruktur: C för enchipsdatorer
Funktioner och programorganisation
Föreläsning 3 Lista Array/länkad lista Lista implementerad som länkad lista Inlämningsuppgifter.
Vilken/vilka av följande satser ger syntaxfel:
#include void fun(char s[]) { int i=-1; while(s[++i]!=0) { if('a'
William Sandqvist Programmet onoffred.c.
Föreläsning 2. Operatorer Tilldelning Kodblock { } if – satsen Logiska uttryck Att programmera.
William Sandqvist Varför använda en liten 8-bitars processor när det finns billiga kraftfulla 32-bitars? William Sandqvist
Om Java C =>Java syntax variabler metoder färdiga klasser
Föreläsning 2 Datalogi för E1 2D1343
Realtidsprog. - Anders Arvidsson1 Realtidsprogrammering En introduktion – Implementering (med exempel från PIC)
Participants: educators, leaders, representatives from Cau Giay DOET - Monday, Mai Dich Kindergarten, 50 pers - Tuesday, Dich Vong primary school, 50.
Flödeskontroll Satser i ett program utförs en och en efter varandra. Detta kallas sekvensiell flödeskontroll. Ofta är det dock nödvändigt att modifiera.
Programmering i C# 2. Inledande detaljer.
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Programmering B PHP Lektion 3
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Deklarera en struct som kan användas för att representera en rät linje Använd den I main för att deklarera en variabel som du initierar så att den representerar.
Anders Sjögren Minnen, variabler, att lagra i primärminnet forts.
Internet A Javaskript.
Funktioner, styrstrukturer, manipulering av matriser
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
Anders Sjögren Mer om datatyper. Anders Sjögren const det finns ett elegantare sätt att skapa konstanter i C än sättet med makro som vi använt tidigare.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Modulär programutveckling
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
William Sandqvist Databuffer Omvandlar mellan olika storlekar på dataobjekt Anpassar mellan olika dataöverföringshastigheter Databuffer.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Anders Sjögren Bitfält exempel Nu kommer ett förbättrat program. Det är funktions- uppdelat och kan lägga till poster som lagras på fil.
Problemlösningsmetodik
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
Reflektioner kring OU1 Generellt sett bra kvalitet på dokumentationen! Första intryck... –Skulle du lämna in en jobbansökan med ett häftstift/gem eller.
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
Föreläsning 1 Om kursen Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 3. Flödesscheman while For Max/min-algoritm Datatyper Konvertering Dubbelloop (m. For)
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Undantag - eng. Exceptions Viktig del av klassbiblioteksdesign “Hoppa direkt ut med felkod” class.
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
Anders Sjögren Deklarationsområde och funktioner.
William Sandqvist Flera saker samtidigt? /* Blink1: 1s ON - 1s OFF */ /* Blink2: 0,2s ON - 0,2s OFF - 1s ON - 1s OFF */
Central-enhet PM CPU BIOS Skiv- minne Sekundär- minnes- enheter (SM)
Ledningsgrupp Swedish Lapland Från ord till handling.
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
Mer om operatorer logiska operatorer bit-operatorer adress-operatorn ”komma”-operatorn punkt - operatorn.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Get-id.c main( ) { printf( "My PID is %d\n", getpid( ) ); printf( "My parent's PID is %d\n", getppid( ) ); printf( "My User ID (UID) is %d\n", getuid(
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
OOP&M - teori1 OOP – Föreläsning 7 (Sista oop I) Konstruktioner för att hantera upprepningar Kapitel 11.
Selektion jämförande och logiska operatorer
Anders Sjögren Modulär programutveckling. Anders Sjögren Ett programmeringsprojekt, flera personer utvecklar ett program Vi ska utveckla ett ränteberäkningsprogram.
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
Mer om operatorer logiska operatorer bit-operatorer adress-operatorn ”komma”-operatorn punkt - operatorn.
INLÄGG FÖR SOCIALA MEDIER SHAREWEAR. 1.INSTAGRAM 2.FACEBOOK 3.TWITTER INNEHÅLL.
KPP053, HT2015 MATLAB, Föreläsning 4
Vi bjuder på fika eller lunchmackor!
Föreläsning 2 Programmeringsteknik DD1310
Föreläsning 3: Booleans, if, switch
Iteration – Repetitionssats - while
Lennart Jirden CERN EP Department Genève
420kV Bus coupler Busbar in Service Busbar in Service
Season 2018.
Presentationens avskrift:

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

switch jmf: if(weekday==1) printf("Monday\n"); else if(weekday==2) int weekday; printf("Mata in veckodagnummer 1-7: "); scanf("%d", &weekday); switch(weekday) { case 1: printf("Monday\n"); break; case 2: printf("Tuesday\n"); case 3: printf("Wednesday\n"); case 4: printf("Thursday\n"); case 5: printf("Friday\n"); 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 "); diskutera att break behövs annars görs alla satser efter den som är sann, weekday ska vara heltalsuttryck

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, do-while) den står i Med undantag för switch-satsen 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

Diskutera gärna uppdelningen indata, beräkning, utdata 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; Diskutera gärna uppdelningen indata, beräkning, utdata

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