1 / 14

Příkazy

Příkazy. Přednáška č. 4. Příkazy (statements). Příkaz – dílčí krok programu (část kódu – zpravidla jeden řádek) Program – posloupnost příkazů Příkazy jsou vykonávány sekvenčně (postupně jeden za druhým)

cirila
Download Presentation

Příkazy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Příkazy Přednáška č. 4

  2. Příkazy (statements) • Příkaz – dílčí krok programu (část kódu – zpravidla jeden řádek) • Program – posloupnost příkazů • Příkazy jsou vykonávány sekvenčně (postupně jeden za druhým) • Existují však speciální příkazy ovlivňující pořadí vykonávaných příkazů (podmínky, cykly, příkazy skoku)

  3. Prázdný příkaz • Prázný příkaz neprovádí nic int iPodm = 1; if (iPodm ) ; // prazdny prikaz else printf("false"); if (iPodm ) { } // prazdny slozeny prikaz (blok) else { printf("false"); }

  4. Výrazový příkaz • Výraz ukončený středníkem (přiřazení, volání funkcí, …) int x = 1; int y; y = x + 1; // vyrazovy prikaz - prirazeni y = sin(x); // vyrazovy prikaz – prirazeni, volani funkce x++; // vyrazovy prikaz – inkrementace // (v podstate x = x + 1)

  5. Složený příkaz • Složený příkaz (compound statement) – blok je posloupnost příkazů uzavřených do složených závorek { } • Může obsahovat vnořený blok • Pro nadřazený blok se složený příkaz jeví jako jeden příkaz int main(int argc, char* argv[]) { char str[] = "A31B6CD2"; int n; int iZmen = 0; for ( n=4; n<9; n++) { if( str[n] >= '0' && str[n] <= '9') { str[n] = '_'; iZmen++; } } printf("Opraveny retezec: %s Pocet zmen: %d\r\n\n", str, iZmen); getchar(); return 0; }

  6. Příkazy pro větvení (1) • Podmínka – příkaz if • Syntaxe: if (podm) prikaz_pri_pravdivosti_podminky; else prikaz_pri_nepravdivosti_podminky; if( str[n] >= '0' && str[n] <= '9') { str[n] = '_'; iZmen++; } else iPonech++;

  7. Příkazy pro větvení (2) • Přepínač – příkaz switch • Syntaxe: switch (celocislelna_promenna) { case 1: prikaz_1a; prikaz_1b; break; case ‘A‘: prikaz_A; break; default: prikaz_ostatni; }

  8. Příkazy pro větvení (3) • Přepínač – příkaz switch - příklad #include <stdlib.h>// rand() - generator nahodnych cisel #include <time.h> int main(int argc, char* argv[]) { srand( 1000*(unsigned)time( NULL ) ); printf("Co budu vecer delat:\r\n"); switch ( rand()%3) { case 0: printf("Pujdu spat."); break; case 1: printf("Pujdu na jedno."); break; case 2: printf("Budu programovat ;-)."); break; default: printf("Toto by nemelo nikdy nastat."); } getchar(); return 0; }

  9. Příkazy pro cykly (1) • Příkaz for • Syntaxe: for (inicializ; podm; aktual) prikaz; • Parametry jsou nepovinné • Např. for(;;) prikaz; je nekonečný příkaz char text[] = "dole v dole"; unsignedint n; for( n=0; text[n]!='\0'; n++) if( text[n]!=' ') text[n] -= 32; printf( "%s\r\n", text);

  10. Příkazy pro cykly (2) • Příkaz while • Syntaxe: while (podm) prikaz; • Pozor, zapomenete-li ovlivňovat podmínku v příkazu, může dojít k nekonečnému cyklu • Knihovna <math.h> float x=3, y, min=1000;// double pro vetsi presnost int count=0; while( (y=fabs( x*x-1.0))<min)// je-li akt fcni hod. mensi nez min { min = y; // uloz akt fcni hod. do min x -= 0.1; // dalsi krok count++; // pocitadlo kroku } x += 0.1; // krok zpet printf("Min %f v %d krocich\r\n", x, count); getchar();

  11. Příkazy pro cykly (3) • Příkaz do • Syntaxe: do prikaz; while (podm); • Pozor, zapomenete-li ovlivňovat podmínku v příkazu, může dojít k nekonečnému cyklu • Příkaz se vždy provede alespoň jedenkrát y=fabs( x*x-1.0);// pocatecni naplneni y do { min = y; // uloz akt fcni hod. do min x -= 0.1; // dalsi krok count++; // pocitadlo kroku } while( (y=fabs( x*x-1.0))<min); x += 0.1; // krok zpet printf("Min %f v %d krocich\r\n", x, count); getchar();

  12. Příkazy pro skoky • Příkazy break, continue, goto, return • Příkaz break – okamžité ukončení bloku switch, for, while, nebodo a vystoupení z iterací • Příkaz continue – okamžité ukončení bloku for, while, nebodo, ale pokračování v další iteraci cyklu • Příkaz goto – skok na definované návěští • Příkaz return – okamžitý návrat z funkce char* dist = "59a0.c2:25"; // chybne cislo int test, n; for( n=0; dist[n]!='\0'; n++) { if( dist[n] == ':' ) break; test = (dist[n]>='0') && (dist[n]<='9'); test = test || (dist[n]=='.'); if( !test) continue; printf("%c", dist[n]); } getchar();

  13. Příklad (1) • Vytvořte program, který vypočítá kořeny libovolné kvadratické rovnice: y = ax2 + bx + c • Koeficienty a, b, c deklarujte jako racionální čísla. Hodnoty koeficientů načtěte jako řetězce z konzolového okna, a následně tyto řetězce na čísla převeďte. Vyjdou-li kořeny komplexní, vypište chybové hlášení.

  14. Příklad (2) • Vývojový diagram

More Related