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

Relevanta dokument
Programmering i C, 7,5 hp

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

Uttryck och villkor. Föreläsning 2

Uttryck och villkor. 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

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

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

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

Programmeringsteknik med C och Matlab

Logik och kontrollstrukturer

Introduktion C-programmering

Klassdeklaration. Metoddeklaration. Parameteröverföring

Repetition C-programmering

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

Variabler och konstanter

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

TDIU01 - Programmering i C++, grundkurs

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

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

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden

JavaScript del 3 If, Operatorer och Confirm

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

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

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

Loopar och datatyper. Föreläsning 3

Lösningsförslag till övningsuppgifter till föreläsning 6 Funktioner

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

Funktioner och programstruktur. Föreläsning 5

Föreläsning 3: Booleans, if, switch

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

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

Föreläsning 5 Mer om funktioner, villkor

F4. programmeringsteknik och Matlab

Loopar och datatyper. Föreläsning 3

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

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

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

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Tentamen i. Programmering i språket C

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

Skriv i mån av plats dina lösningar direkt i tentamen. Skriv ditt kodnummer längst upp på varje blad.

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

Fortsättningskurs i programmering F 3. Algoritmer i programutveckling II Hugo Quisbert Flödesplaner med selektion

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

DD1314 Programmeringsteknik

Föreläsning 3 Programmeringsteknik och Matlab DD1315. Importering av moduler. randrange

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

*Pekarvärden *Pekarvariabler & *

Tentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Översikt över Visual Basic

Exempel på ett litet Ada-program

Föreläsning 2 Programmeringsteknik och C DD1316

Objektorienterad programmering i Java

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

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman

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

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

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.

Föreläsning 9: Talteori

Tentamen i Programmering grundkurs och Programmering C

Beräkningsvetenskap föreläsning 2

OOP Objekt-orienterad programmering

Twincat: PLC Control

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman

Programmeringsteknik I

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

Lösningsförslag till övningsuppgifter till föreläsning 6 Funktioner

Funktioner och programstruktur. Föreläsning 5

En kort text om programmering i C.

Arrays (indicerade variabler) Föreläsning 6

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

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

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

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

OOP Objekt-orienterad programmering

Användarhandledning Version 1.2

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

Sanningar om programmering

Parameteröverföring. Exempel. Exempel. Metodkropp

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

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

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?

Tentamen i. Programmering i språket C

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

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

Imperativ programmering. Föreläsning 2

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4

Blandat. Föreläsning 5

LÖSNINGSFÖRSLAG TENTAMEN

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

Lathund. Pacific C för MS-DOS

Enkla datatyper minne

7 Programmeringsteknik

Tentamen i Programmering grundkurs och Programmering C

Föreläsning 8: Aritmetik och stora heltal

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

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

Programmeringsteknik för Ingenjörer VT06. Föreläsning 10

Transkript:

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

Exempel /* Programmeringsteknik med C och Matlab Programmering i C HT13 Exempel Fil: plus_one.c Författare: Jonny Pettersson Användare: jonny Datum: 7 oktober 2013 Beskrivning: Ett enkelt program för att visa utskrift, inläsning, variabler och tilldelning till variabler. Inpt: Ett heltal. Output: Heltalet närmast efter det inlästa. Begränsning: Det finns ingen kontroll av input. */ #include <stdio.h> int main(void) { int n; /* Läs in ett heltal från användaren */ printf("skriv in ett heltal > "); scanf("%d", &n); /* Lägg till 1 till talet */ n = n + 1; /* Skriv ut det nya talet */ printf("talet efter ditt tal är %d \n", n); return 0; #include <stdio.h> int main(void) { int n; printf("skriv in ett heltal > "); scanf("%d", &n); n = n + 1; printf("talet efter ditt tal är %d\n", n); return 0;

#include <stdio.h> int main(void) { int n; /* Läs in ett heltal från användaren */ printf("skriv in ett heltal > "); scanf("%d", &n); /* Lägg till 1 till talet */ n = n + 1; /* Skriv ut det nya talet */ printf("talet efter ditt tal är %d\n", n); return 0;

Sanningstabell A B A && B A B!A Sant Sant Sant Sant Falskt Sant Falskt Falskt Sant Falskt Falskt Sant Falskt Sant Sant Falskt Falskt Falskt Falskt Sant

Mer komplexa uttryck # include <stdio.h> int main( void ){ int a = 1, b = 2, c = a; if (a == c b <= a && 2!= b){ printf("skrivs detta ut?\n"); if ((a == c b <= a) && 2!= b){ printf("eller det här?\n");

Prioritetsordning () Paranteser! Icke/negering * / % Multiplikation, division, modulo + - Addition, substraktion < <= >= Relationsoperatorer ==!= Likhet, olikhet && Logiskt och Logiskt eller = Tilldelning Om flera operatorer har samma prioritet utförs de från vänster till höger (OBS det finns fler)

int x = 10; if(x > 10) printf("större än 10"); if(x > 10){ printf("större än 10"); printf("eller hur"); if(x > 10) printf("större än 10"); printf("eller hur"); Detta är hur en if-sats ser ut i C, villkoret skrivs inom parenteser och nästa rad är den kod som ska utföras om villkoret var sant. Om det är flera saker som ska utföras måste måsvingar användas. Det som finns innanför dem utförs om det är sant. Vanligt fel - avsikten är att utföra två satser men det är inga måsvingar där!! Då blir det samma sak som if(x > 10) printf("större än 10"); printf("eller hur"); dvs den sista utskriften kommer alltid att ske!! Använd ALLTID måsvingar även om det bara är en sats

if-else if(villkor) /* Kod som utförs om villkoret är sant */ else /* Kod som utförs om villkoret är falskt */ /* Kod som alltid utförs */ Detta sätt att skriva lider av samma problem som jag nyss visade så jag råder er att skriva på detta sätt i stället if(villkor){ /* Kod som utförs om villkoret är sant */ else{ /* Kod som utförs om villkoret är falskt */ /* Kod som alltid utförs */

#include <stdio.h> int main(void) { int first, second; printf("skriv in ett heltal > "); scanf("%d", &first); printf("skriv in ett heltal till > "); scanf("%d", &second); if( first == second ){ printf("talen är lika\n"); else{ if( first < second ){ printf("det första talet är minst\n"); else{ printf("det andra talet är minst\n"); return 0;

#include <stdio.h> int main(void) { int first, second; printf("skriv in ett heltal > "); scanf("%d", &first); printf("skriv in ett heltal till > "); scanf("%d", &second); if( first == second ){ printf("talen är lika\n"); else if( first < second ){ printf("det första talet är minst\n"); else{ printf("det andra talet är minst\n"); return 0;

Sammansatta villkor if( n == 0 ){ if( m > 1 ){ printf("the number n is zero\n"); printf("the number m is greater than 1\n"); if( n == 0 && m > 1 ){ printf("the number n is zero\n"); printf("the number m is greater than 1\n");

Kolla vikten på en matkasse. Skriv ut att den är för tung om den väger mer är 30 kg. Om den väger mindre än 30 kg Tung, om den väger mindre än 5 kg Lätt och väger den mindre än 15 kg OK if( weight > 30 ){ printf("matkassen är för tung\n"); if( weight <= 30 ){ printf("matkassen är tung\n"); if( weight <= 5 ){ printf("matkassen är lätt\n"); if( weight <= 15 ){ printf("mattkassens vikt är OK\n"); Test: 32 kg: Matkassen är för tung 25 kg: Matkassen är tung 15 kg: Matkassen är tung och Mattkassens vikt är OK

if( weight > 30 ){ printf("matkassen är för tung\n"); if( weight > 15 && weight <= 30 ){ printf("matkassen är tung\n"); if( weight <= 5 ){ printf("matkassen är lätt\n"); if( weight > 5 && weight <= 15 ){ printf("mattkassens vikt är OK\n");

Byt strategi <= 5 <= 15 <= 30 > 30 if( weight <= 5 ){ printf("matkassen är lätt\n"); else if( weight <= 15 ){ printf("mattkassens vikt är OK\n"); else if( weight <= 30 ){ printf("matkassen är tung\n"); else{ printf("matkassen är för tung\n");

Ett annat problem med if printf("mata in ett tal i intervallet 1-5 > "); scanf("%d", &input); if (input == 1) printf("hejsan\n"); else if (input == 2) printf("godagens\n"); else if (input == 3) printf("tjena\n"); else if (input == 4) printf("hej\n"); else if (input == 5) printf("angenämt\n"); else printf("nämen nu blev det fel");

printf("mata in ett tal i intervallet 1-5 > "); scanf("%d", &input); switch(input) { case 1: printf("hejsan\n"); case 2: printf("godagens\n"); case 3: printf("tjena\n"); case 4: printf("hej\n"); case 5: printf("angenämt\n"); default: printf("nämen nu blev det fel\n");

switch(input) { case 1: printf("hejsan\n"); case 2: printf("godagens\n"); case 3: printf("tjena\n"); case 4: printf("hej\n"); case 5: printf("angenämt\n"); default: printf("nämen nu blev det fel\n");

switch(input) { case 1: printf("hejsan\n"); case 2: printf("godagens\n"); case 3: printf("tjena\n"); case 4: printf("hej\n"); case 5: printf("angenämt\n"); default: printf("nämen nu blev det fel\n");

switch(input) { case 1: printf("hejsan\n"); case 2: printf("godagens\n"); case 3: printf("tjena\n"); case 4: printf("hej\n"); case 5: printf("angenämt\n"); default: printf("nämen nu blev det fel\n");

Vanliga fel if( 0 <= x <= 4 ){ printf("alltid sant\n"); if( 0 <= x && x <= 4){ printf("bara om x är 0, 1, 2, 3 eller 4\n");

Vanliga fel a = 1; if( a = 3 ){ printf("detta skrivs alltid ut"); a = 0; if( a = 0 ){ printf("detta skrivs aldrig ut"); a = 1; if( a == 3 ){ printf("om a är 3"); a = 0; if( a == 0 ){ printf("om a är 0");

Vanliga fel if( a == 0) printf("hej "); printf("världen"); if( a == 0){ printf("hej "); printf("världen");