Presentation laddar. Vänta.

Presentation laddar. Vänta.

Anders Sjögren Iteration i C ”upprepa” Upprepa med WHILE - och FOR - satserna.

Liknande presentationer


En presentation över ämnet: "Anders Sjögren Iteration i C ”upprepa” Upprepa med WHILE - och FOR - satserna."— Presentationens avskrift:

1 Anders Sjögren Iteration i C ”upprepa” Upprepa med WHILE - och FOR - satserna

2 Anders Sjögren Iteration i C ”upprepa” while ( uttryck ) sats Syntaxen för while.

3 Anders Sjögren Iteration i C ”upprepa” while ( uttryck ) sats Medans ut- trycket är sant upprepas satsen.

4 Anders Sjögren Iteration i C ”upprepa” for ( uttryck_1 ; uttryck _2 ; uttryck_3) sats Syntaxen för for.

5 Anders Sjögren Iteration i C ”upprepa” for ( uttryck_1 ; uttryck _2 ; uttryck_3) sats Detta åstadkommer detsamma som denna while -konstruktion. uttryck_1 ; while ( uttryck_2 ){ sats uttryck_3 ; }

6 Anders Sjögren Iteration i C ”upprepa” for ( uttryck_1 ; uttryck _2 ; uttryck_3) sats Detta åstadkommer detsamma som denna while -konstruktion. uttryck_1 ; while ( uttryck_2 ){ sats uttryck_3 ; } initiera räknare i=1; t ex

7 Anders Sjögren Iteration i C ”upprepa” for ( uttryck_1 ; uttryck _2 ; uttryck_3) sats Detta åstadkommer detsamma som denna while -konstruktion. uttryck_1 ; while ( uttryck_2 ){ sats uttryck_3 ; } upprepningsvillkor i<5; initiera räknare i=1;

8 Anders Sjögren Iteration i C ”upprepa” for ( uttryck_1 ; uttryck _2 ; uttryck_3) sats Detta åstadkommer detsamma som denna while -konstruktion. uttryck_1 ; while ( uttryck_2 ){ sats uttryck_3 ; } upprepningsvillkor i<5; initiera räknare i=1; uppräkning i++;

9 Anders Sjögren For-loopens strukturdiagram

10 Anders Sjögren Iteration i C exempel #include #define DELAY L int main( void ){ long i; while ( 1==1 ) { printf("A"); for ( i=1; i < DELAY ; i++ ) ; printf("\tn"); for ( i=1; i < DELAY ; i++ ) ; printf("\td"); for ( i=1; i < DELAY ; i++ ) ; printf("\te"); for ( i=1; i < DELAY ; i++ ) ; printf("\tr"); for ( i=1; i < DELAY ; i++ ) ; printf("\ts"); for ( i=1; i < DELAY ; i++ ) ; printf("\r \t \t \t \t \t \r"); for ( i=1; i < DELAY ; i++ ) ; } return 0; } exekveringsstatus efter denna sats

11 Anders Sjögren Iteration i C exempel #include #define DELAY L int main( void ){ long i; while ( 1==1 ) { printf("A"); for ( i=1; i < DELAY ; i++ ) ; printf("\tn"); for ( i=1; i < DELAY ; i++ ) ; printf("\td"); for ( i=1; i < DELAY ; i++ ) ; printf("\te"); for ( i=1; i < DELAY ; i++ ) ; printf("\tr"); for ( i=1; i < DELAY ; i++ ) ; printf("\ts"); for ( i=1; i < DELAY ; i++ ) ; printf("\r \t \t \t \t \t \r"); for ( i=1; i < DELAY ; i++ ) ; } return 0; } uttrycket 1==1 ger en oändlig loop (alltid sant) och programmet måste brytas med CTRL-ALT-DELETE

12 Anders Sjögren Iteration i C exempel #include #define DELAY L int main( void ){ long i; while ( 1==1 ) { printf("A"); for ( i=1; i < DELAY ; i++ ) ; printf("\tn"); for ( i=1; i < DELAY ; i++ ) ; printf("\td"); for ( i=1; i < DELAY ; i++ ) ; printf("\te"); for ( i=1; i < DELAY ; i++ ) ; printf("\tr"); for ( i=1; i < DELAY ; i++ ) ; printf("\ts"); for ( i=1; i < DELAY ; i++ ) ; printf("\r \t \t \t \t \t \r"); for ( i=1; i < DELAY ; i++ ) ; } return 0; } loop i loopen ger nästlad loop. Räknaren i initieras till 1 vid varje ” while ” - varv.

13 Anders Sjögren Iteration i C exempel #include #define DELAY L int main( void ){ long i; while ( 1==1 ) { printf("A"); for ( i=1; i < DELAY ; i++ ) ; printf("\tn"); for ( i=1; i < DELAY ; i++ ) ; printf("\td"); for ( i=1; i < DELAY ; i++ ) ; printf("\te"); for ( i=1; i < DELAY ; i++ ) ; printf("\tr"); for ( i=1; i < DELAY ; i++ ) ; printf("\ts"); for ( i=1; i < DELAY ; i++ ) ; printf("\r \t \t \t \t \t \r"); for ( i=1; i < DELAY ; i++ ) ; } return 0; } en tom sats, for - satsens uppgift är endast att fördröja visningstiden.

14 Anders Sjögren Kursexempel Här kommer några exempel ur kursen.

15 Anders Sjögren Iteration i C exempel /* Beräknar kapitaltillväxt på 10 år */ #include #define RANTESATS 8.5 #define ANTAL_AR 10 int main ( void ) { floatstartKapital, saldo, kapital ; intar ; printf("Insatt kapital? "); scanf("%f", &kapital); printf("\n År Saldo\n == =====\n"); for ( ar = 1; ar <= ANTAL_AR ; ar++ ) { kapital = kapital * ( 1 + RANTESATS/100 ); printf("%3d%11.2f\n", ar, kapital); } return 0; } lite förändringar och några nya rader ger - iteration !

16 Anders Sjögren for-loopen i programmet interest.c

17 Anders Sjögren void Kalkylator( void ) /* Enkel kalkylator */ { float x, y; char c; printf( "\nKalkylator som klarar de fyra räknesätten t ex 3+2\n"); printf( "a, avslutar\n"); while (printf("-->"), scanf("%f%c%f", &x, &c, &y ) == 3) { switch(c) { case '+': printf("%f\n", x + y); break; case '-': printf("%f\n", x - y); break; case '*': printf("%f\n", x * y); break; case '/': if (y != 0) printf("%f\n", x / y); else printf("Division med noll\n"); break; default: printf("Felaktig operator\n"); break; } return; } heltalstyp om inte break finns med testas varje ”case”, man trillar igenom. Selektion i C

18 Anders Sjögren switch-satsen i programmet easycalc.c

19 Anders Sjögren while (printf("-->"), scanf("%f%c%f", &x, &c, &y ) == 3) { sats.. } Iteration i C exempel scanf() returnerar antalet lyckade konverteringar om detta antal är 3 blir uttrycket sant och loopen går vidare (upprepningsvillkoret) innan scanf() anropas vill man ha en ”pil”-prompt på skärmen kommaoperatorn (, ) ger möjlighet till detta

20 Anders Sjögren Iteration i C ”upprepa” do { sats } while ( uttryck ); Det finns ytterligare en iterations- möjlighet med följande syntax

21 Anders Sjögren Iteration i C ”upprepa” do { sats } while ( uttryck ); Observera att det finns skolor som anser att man inte skall ha eftertestade loopar utan bara använda while och for.

22 Anders Sjögren Favorit på övningen … Ge triangelns höjd: 12 1> * > *** > ***** > ******* > ********* > *********** >......************* >.....*************** >....***************** >...*******************... 11>..*********************.. 12>.***********************.

23 Anders Sjögren Webfråga …

24 Anders Sjögren Slut


Ladda ner ppt "Anders Sjögren Iteration i C ”upprepa” Upprepa med WHILE - och FOR - satserna."

Liknande presentationer


Google-annonser