Iteration i C ”upprepa” Upprepa med WHILE - och FOR - satserna
Iteration i C ”upprepa” Syntaxen för while. while ( uttryck ) sats
Iteration i C ”upprepa” Medans ut-trycket är sant upprepas satsen. while ( uttryck ) sats
Iteration i C ”upprepa” Syntaxen för for. for ( uttryck_1 ; uttryck _2 ; uttryck_3) sats
Iteration i C ”upprepa” Detta åstadkommer detsamma som denna while-konstruktion. Iteration i C ”upprepa” uttryck_1 ; while ( uttryck_2 ){ sats uttryck_3 ; } for ( uttryck_1 ; uttryck _2 ; uttryck_3) sats
Iteration i C ”upprepa” Detta åstadkommer detsamma som denna while-konstruktion. Iteration i C ”upprepa” initiera räknare i=1; t ex uttryck_1 ; while ( uttryck_2 ){ sats uttryck_3 ; } for ( uttryck_1 ; uttryck _2 ; uttryck_3) sats
Iteration i C ”upprepa” Detta åstadkommer detsamma som denna while-konstruktion. Iteration i C ”upprepa” initiera räknare i=1; uttryck_1 ; while ( uttryck_2 ){ sats uttryck_3 ; } upprepningsvillkor i<5; for ( uttryck_1 ; uttryck _2 ; uttryck_3) sats
Iteration i C ”upprepa” Detta åstadkommer detsamma som denna while-konstruktion. Iteration i C ”upprepa” initiera räknare i=1; uttryck_1 ; while ( uttryck_2 ){ sats uttryck_3 ; } upprepningsvillkor i<5; uppräkning i++; for ( uttryck_1 ; uttryck _2 ; uttryck_3) sats
For-loopens strukturdiagram
Iteration i C exempel exekveringsstatus efter denna sats #include <stdio.h> #define DELAY 1000000L int main( void ){ long i; while ( 1==1 ) { printf("A"); for ( i=1; i < DELAY ; i++ ) ; printf("\tn"); printf("\td"); printf("\te"); printf("\tr"); printf("\ts"); printf("\r \t \t \t \t \t \r"); } return 0; exekveringsstatus efter denna sats
Iteration i C exempel #include <stdio.h> #define DELAY 1000000L int main( void ){ long i; while ( 1==1 ) { printf("A"); for ( i=1; i < DELAY ; i++ ) ; printf("\tn"); printf("\td"); printf("\te"); printf("\tr"); printf("\ts"); printf("\r \t \t \t \t \t \r"); } return 0; Iteration i C exempel uttrycket 1==1 ger en oändlig loop (alltid sant) och programmet måste brytas med CTRL-ALT-DELETE
Iteration i C exempel #include <stdio.h> #define DELAY 1000000L int main( void ){ long i; while ( 1==1 ) { printf("A"); for ( i=1; i < DELAY ; i++ ) ; printf("\tn"); printf("\td"); printf("\te"); printf("\tr"); printf("\ts"); printf("\r \t \t \t \t \t \r"); } return 0; Iteration i C exempel loop i loopen ger nästlad loop. Räknaren i initieras till 1 vid varje ”while” - varv.
Iteration i C exempel #include <stdio.h> #define DELAY 1000000L int main( void ){ long i; while ( 1==1 ) { printf("A"); for ( i=1; i < DELAY ; i++ ) ; printf("\tn"); printf("\td"); printf("\te"); printf("\tr"); printf("\ts"); printf("\r \t \t \t \t \t \r"); } return 0; Iteration i C exempel en tom sats, for - satsens uppgift är endast att fördröja visningstiden.
Kursexempel Här kommer några exempel ur kursen.
Iteration i C exempel /* Beräknar kapitaltillväxt på 10 år */ #include <stdio.h> #define RANTESATS 8.5 #define ANTAL_AR 10 int main ( void ) { float startKapital, saldo, kapital ; int ar ; 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 !
for-loopen i programmet interest.c
Selektion i C heltalstyp 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); case '*': printf("%f\n", x * y); case '/': if (y != 0) printf("%f\n", x / y); else printf("Division med noll\n"); default: printf("Felaktig operator\n"); } return; Selektion i C heltalstyp om inte break finns med testas varje ”case”, man trillar igenom.
switch-satsen i programmet easycalc.c
Iteration i C exempel while (printf("-->"), scanf("%f%c%f", &x, &c, &y ) == 3) { sats .. } 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
Iteration i C ”upprepa” Det finns ytterligare en iterations-möjlighet med följande syntax do { sats } while ( uttryck );
Iteration i C ”upprepa” Observera att det finns skolor som anser att man inte skall ha eftertestade loopar utan bara använda while och for. do { sats } while ( uttryck );
Favorit på övningen … Ge triangelns höjd: 12 1> ............*............ 2> ...........***........... 3> ..........*****.......... 4> .........*******......... 5> ........*********........ 6> .......***********....... 7> ......*************...... 8> .....***************..... 9> ....*****************.... 10> ...*******************... 11> ..*********************.. 12> .***********************.
Webfråga …
Slut