Uttryck och villkor. Föreläsning 2

Relevanta dokument
Uttryck och villkor. Föreläsning 2

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

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

Planering Programmering grundkurs HI1024 HT 2014

Planering Programmering grundkurs HI1024 HT TIDAA

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

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

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

Föreläsning 9. Repetition och exempelproblem

Planering Programmering grundkurs HI1024 HT data

Loopar och datatyper. Föreläsning 3

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

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

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

Programmering i C, 7,5 hp

Funktioner och programstruktur. Föreläsning 5

Programmeringsteknik med C och Matlab

Logik och kontrollstrukturer

Funktioner och programstruktur. Föreläsning 5

Data, typ, selektion, iteration

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

Föreläsning 10. Pekare (Pointers)

Loopar och datatyper. Föreläsning 3

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

Klassdeklaration. Metoddeklaration. Parameteröverföring

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.

TDIU01 - Programmering i C++, grundkurs

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

TDIU01 - Programmering i C++, grundkurs

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4

Parameteröverföring. Exempel. Exempel. Metodkropp

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen

Arrays (indicerade variabler) Föreläsning 4

Repetition C-programmering

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

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

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

Exempel på ett litet Ada-program

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

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

Introduktion C-programmering

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

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

*Pekarvärden *Pekarvariabler & *

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

JavaScript del 3 If, Operatorer och Confirm

Arrays (indicerade variabler) Föreläsning 6

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

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.

Indexerade variabler

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

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

Programmering A. Johan Eliasson

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

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?

3.3 for-satsen. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Föreläsning 3

DD1314 Programmeringsteknik

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

Extramaterial till Matematik Y

Indicerade variabler

Variabler använder man sig av för att under programkörningen spara data eller information i primärminnet. En variabel har typ, namn och värde.

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

Objektorienterad programmering i Java

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

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

Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1,

En kort text om programmering i C.

Föreläsning 6 pekare och pekare tillsammans med arrayer

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

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

Extramaterial till Matematik Y

Blandat. Föreläsning 5

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

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

C++ Slumptalsfunktioner + switch-satsen

C++ - En introduktion

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

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

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

Övning2. Variabler. Data typer

Agenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då

Programmeringsuppgifter 1

Översikt över Visual Basic

SMD 134 Objektorienterad programmering

Villkor och tester. Utförande satser bygger upp metoderna, man brukar finindela detta i: sekvenser. Ett program består i princip av: selektioner (val)

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

översiktskurs (5DV031)

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman

Programmeringsteknik I

F4. programmeringsteknik och Matlab

"Crash Course in Programming"

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

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

Enkla datatyper minne

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

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

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl Tentamen i Programmering C, Fri, Kväll,

Statistik över heltal

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

Transkript:

Uttryck och villkor Föreläsning 2

Dagens kluring Finn fem fel! #include <stdio.h> int main(void) printf("resistans hos R1 (ohm) : ") scanf("%d",r1); printf("resistans hos R2 (ohm) : "); scanf("%d",r2); r3=r1*r2/(r1+r2); printf("r3 beräknas till %6.3f ohm\n",r3); return 0;

Uttryck och selektion Operatorer Tilldelning Kodblock if satsen Logiska uttryck Att programmera

Operatorer En operator tar ett eller två data och producerar ett svar. Typexemplet är +. Den tar t.ex två heltal och producerar ett annat heltal nämligen summan: 3 + 5 blir 8 De aritmetiska operatorerna *, /, +, - fungerar som på era miniräknare. Fungerar både för heltal och decimaltal. Heltalsdivision är lite speciell: 5 / 2 blir 2 % - modulus, dvs resten vid heltalsdivision: 5 % 2 blir 1

Tilldelning = Att ge en variabel ett värde görs med tilldelningsoperatorn i = 4; Observera att den inte betyder lika med: i = i+4; Att = är en operator betyder att i=4 får ett resultat nämligen 4 som kan användas: n = i=4;

Förändringsoperatorer i++; -ökar i s värde med ett, kan göras med i = i + 1; i--; -minskar i s värde med 1 i += 4; -ökar i s värde med 4 i -= 4; -minskar i s värde med 4 i *= 4;? i /= 4;? Vad är skillnaden på i++ och ++i? Skriv aldrig i=i++

Prioritering I ett uttryck med flera operatorer måste de göras i en viss ordning. Vilken bestäms av operatorernas prioritet. Du kan precis som i matematiken ändra prioritetsordningen med hjälp av parenteser. Dessa beräknas först. Det är bättre att ha en parentes för mycket än en för litet. Sätt ut parenteser om du är osäker!

Prioritetsordning 1. () 2. ++ 3. * / % 4. + 5. = += -= - Använd parenteser om du är osäker - Läsbarheten är viktig

Kodblock klumpar ihop flera satser till ett kodblock som utifrån ses som en sats. Ex: int i; i =0; i=i+1; En deklaration är bara giltig i kodblocket nedanför deklarationen!

Villkor Om du ger mig hundra kronor så får du en biobiljett. Om du hjälper mig med städningen så följer jag med dig på hockey, annars får du gå själv. Om klockan är mer än tio så går jag och lägger mig, annars dricker jag kaffe.

if-satsen if(logiskt_uttryck) sats int time = 21; if(time > 22) printf( Gå och lägg dig );

if else if(logiskt_uttryck) sats1 else sats2 int time = 21; if(time > 22) printf( Gå och lägg dig ); else printf( Drick kaffe! );

if Med hjälp av klammrar kan vi göra flera saker i en if-sats. if (time > 22) printf( Borsta tänderna! ); printf( Gå och lägg dig! ); else printf( Koka kaffe ); printf( Drick kaffe ); Använd helst alltid och indentera!

Flera if Vi kan ha en if sats i en annan if sats nästlat Ex: if(0<x) if(x<10) printf( 0<x<10 ); En särskild form av detta är if else if: if(x<0) sats1 else if(x<10) sats2 else sats3

Logik och programmering Ett logiskt värde är antingen sant eller falskt När vi jämför tal är resultatet antingen sant eller falskt: 3 < 7 sant 3 > 7 falskt 3 == 7 falskt Resultatet av sådana jämförelser är mycket användbara i programmering. Vi kan säga åt datorn att göra något om resultatet är sant och något annat om det är falskt. I C är resultatet av en sådan jämförelse av typen int och sant representeras av 1 och falskt av 0. (dock tolkas alla värden utom 0 som sanna)

Relationsoperatorer == lika med 3==4 är falskt dvs resultatet blir 0!= skilt från 3!=4 är sant dvs resultatet blir 1 > större än >= större än eller lika med < mindre än <= mindre än eller lika med

Logiska operatorer Exempel på logiska uttryck: icke (sant) är falskt sant och sant är sant sant eller falskt är sant Logiska operatorer tar en eller två logiska värden och resultatet blir ett logiskt värde I C motsvaras då sant och falskt av 1 och 0

Logiska operatorer i C Icke -!!(1) blir 0!(0) blir 1 och - && 1&&1 blir 1 1&&0 blir 0 0&&1 blir 0 0&&0 blir 0 Eller - 1 1 blir 1 1 0 blir 1 0 1 blir 1 0 0 blir 0

Ett exempel if (x<0 10<x) printf( x är inte mellan 0 och 10 );

Att programmera Skriv en rad i taget Kompilera och testkör mellan varje rad Om du får kompileringsfel bör felet vara på senaste raden Rätta bara första kompileringsfelet övriga kan vara följdfel som försvinner av sig själv Välj beskrivande variabelnamn Indentera (tabba) och lämna blankrader så att koden blir lättläst Försök läsa kod så som kompilatorn gör: Läs första raden vad händer Läs nästa rad vad händer osv Använd extra printf satser för att följa koden

Studieanvisningar F2 Gör Cd-skiv-uppgiften som följer i denna föreläsning. Lös uppgiften steg för steg och kompilera hela tiden. Tjuvtitta på mina steg vid behov. Gör K4 E1, P1, P2 (sid 68, 71) Läs igenom kapitel 4 och kapitel 5 (hoppa över 83-90). Ha datorn redo och testprogrammera medans du läser så att du ser att du förstått. Skriv ett program som läser in två heltal i två variabler a och b med hjälp av scanf. Skriv kod som byter värdena så att a får värdet som lästs in till b och b får värdet som lästs in till a (tips: behövs en temporär variabel). Skriv ut a och b så att du ser att det fungerar. Gör K5 E1, E2, E9, P1, P4, P7 Gör fler uppgifter om du hinner Svara på instuderingsuppgifter E-excercises, P-programming projects

Ett exempel I den här uppgiften skall du skriva ett program som räknar ut priset för CD-R skivor. Grundpriset är 9,90 kr, men om man köper flera får man rabatt: fler än 10 st ger 5% rabatt fler än 50 st ger 10% rabatt Programmet skall börja med att fråga användaren hur många skivor han vill köpa för att sedan svara vad totala priset blir. Nu följer hur jag löste uppgiften steg för steg

Steg 1 (fungerar miljön?) #include <stdio.h> int main(void) printf("valkommen!\nhur manga skivor vill du kopa?"); return 0;

Steg 2 (kan jag hur man läser in) #include <stdio.h> int main(void) int nrofrecords; printf("valkommen!\nhur manga skivor vill du kopa?"); scanf("%d",& nrofrecords); return 0;

Steg 3 (har jag lyckats läsa in rätt tal?) #include <stdio.h> int main(void) int nrofrecords; printf("valkommen!\nhur manga skivor vill du kopa?"); scanf("%d",&nrofrecords); printf( du vill kopa %d", nrofrecords); return 0;

Steg 4 (Löser en enklare första uppgift) #include <stdio.h> int main(void) int nrofrecords; float price; printf("valkommen!\nhur manga skivor vill du kopa?"); scanf("%d",& nrofrecords); price= nrofrecords *9.9; printf("priset blir: %.0f",price); return 0;

Steg 5 (använder if med två fall) #include <stdio.h> int main(void) int nrofrecords; float price; printf("valkommen!\nhur manga skivor vill du kopa?"); scanf("%d",& nrofrecords); if(nrofrecords<11) price= nrofrecords*9.9; else price= nrofrecords*9.9*0.9; printf("priset blir: %.0f",price); return 0;

//Beräknar priset av cd-skiver med ev. rabatt #include <stdio.h> int main(void) int nrofrecords; float price; printf("valkommen!\nhur manga skivor vill du kopa?"); scanf("%d",&nrofrecords); if(nrofrecords<11) price=nrofrecords*9.9; else if(nrofrecords<51) price=nrofrecords*9.9*0.95; else price=nrofrecords*9.9*0.9; Steg 6 Klart! printf("priset blir: %.0f",price); return 0;