Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

3. előadás (2005. március 1.) Utasítások, tömbök utasítás: üres, összetett, feltételes utasítás, switch utasítás, ciklus utasítások, tömbök.

Hasonló előadás


Az előadások a következő témára: "3. előadás (2005. március 1.) Utasítások, tömbök utasítás: üres, összetett, feltételes utasítás, switch utasítás, ciklus utasítások, tömbök."— Előadás másolata:

1 3. előadás (2005. március 1.) Utasítások, tömbök utasítás: üres, összetett, feltételes utasítás, switch utasítás, ciklus utasítások, tömbök.

2 2 C utasítások kifejezés; Üres utasítás:; Összetett utasítás (blokk vagy utasítás csoport): {.... } Belsejében változók deklarálhatók. Utána nem írunk pontosvesszőt (üres utasítás).

3 3 Vezérlési szerkezetek Elágazás 1: if (kifejezés) "igaz" utasítás else "hamis" utasítás Az else rész nem kötelező. A kifejezés csak int-re konvertálódó lehet.

4 4 Elágazás példa: if (a==5)/* Hibalehetőség: a=5 */ b=3; else b=8; Csellengő else: if (...)if (...)if (...) if (...) if (...){ elseelse if (...) } else

5 5 Elágazás: elseif if (kifejezés) "igaz" utasítás else if (kifejezés) utasítás

6 6 Több eset kezelése, switch utasítás: Formája: switch (kifejezés) { case konst_kif1: utasítás1 case konst_kif2: utasítás2... case konst_kifn: utasításn default: utasítás } Kifejezés: int, char, long, short típusú

7 7 Switch-default példa char c; c=getchar(); switch (c) { case 'a': case 'b': case 'c': printf("a vagy b vagy c"); return 1; default: return (0); }

8 8 int i=5; switch (i%3) { case 0: printf("\nhárommal osztható"); break; case 1: printf("\nmaradék 1"); break; case 2: printf("\nmaradék 2"); break; } Switch-break példa

9 9 A while ciklus utasítás while (kifejezés) utasítás Pl. char c; c='*'; while ((c!='n') && (c!='i')) c=getchar(); Előtesztelő ciklus utasítás, lehet, hogy a ciklusmag egyszer sem hajtódik végre.

10 10 A do... while ciklus utasítás do utasítás while (kifejezés); Pl. char c; do c=getchar(); while ((c!='n') && (c!='i')); Utótesztelő ciklus, a ciklusmag legalább egyszer végrehajtódik.

11 11 A for ciklus utasítás for ( inicializáló_kif; ellenőrző_kif; újrainic_kif ) utasítás Működése: 1. inicializáló_kif kiszámítása 2. ha az ellenőrző_kif hamis, akkor kilépés a for utasításból 3. utasítás (ciklusmag) végrehajtása 4. újrainic_kif kiszámítása 5. visszaugrás a 2. pontra

12 12 A for utasítással egyenértékű (ekvivalens) while utasítás inicializáló_kif ; while (ellenőrző_kif ) { utasítás újrainic_kif ; }

13 13 for utasítás példák 1. for (i=0; i 0; c--)... for (c=0; c<1000; c+=5)... c=1; for (; c<1000; c++)... for (c=1, printf("elkezdtem"); c<10; c++)... for (c=0; c<1000;) printf ("%d\n",c++);

14 14 for utasítás példák 2. for (c=0; c<1000 && a[c]!=0; c++) printf(" ", a[c]); for (c=0; c<1000 && a[c];) printf(" ", a[c++]); for (c=0; c<1000; a[c++]=5); for (i=0, j=999; i<1000; i++, j--) b[j] = a[i];

15 15 Végtelen ciklusok while (1) utasítás for (;;) utasítás Pl. hálózati szerver vagy interaktív programokban Leállítás: Adott feltétel esetén: exit(visszatérési_érték) Megszakítással: Ctrl+C, Ctrl+Break, Ctrl+\

16 16 A break utasítás for (i=0 ; ; i++) { if (getchar() == 'n') break; } printf ("\naz%d-edik leütött kar. az\'n\'!", i); Ciklusban a break-et tartalmazó ciklus megszakítására használható.

17 17 A continue utasítás int szamlalo; for (szamlalo=0, i=0; i

18 18 goto utasítás, címkék Hagyományőrzési céllal és néhány elkerülhetetlen esetben a hatékonyság növelésére. Pl. for (... ) for (... ) {... if (... ) goto errorc; } errorc: hibakezeles ();

19 19 Egymásbaágyazott ciklusok for (i=0; i

20 20 Tömbök Olyan összetett adattípus, amely azonos típusú elemekből áll és a memóriában folytonosan helyezkedik el. Tömb deklarációja típus név [elemszám1] {[elemszám2]…}; Az elemszám csak állandó kifejezés lehet. Hivatkozás egy elemre: név[indexkifejezés1]{[indexkifejezés2]…} Az index kifejezés tetszőleges egész típusú kifejezés. Az index alsó határa 0, 0 <= index <= elemszám-1. Az index érvényességét a fordítóprogram nem ellenőrzi!

21 21 A sizeof operátor használata A CPU függetlenség miatt fontos a sizeof operátor használata, pl.: int a[10]; sizeof(a[0]) sizeof(int)=4 (CPU függő) sizeof(a) 10*sizeof(int)=40 (CPU függő) sizeof(a)/sizeof(a[0]) =10 (CPU független)

22 22 Tömb elhelyezkedése a memóriában elemeltolás cím 0FFC a[0]01000 a[1]1*sizeof(int)1004 a[2]2*sizeof(int) 1008 a[3]3*sizeof(int) 100C (CPU függő)

23 23 Tömb inicializálása 1. Egydimenziós: típus név [elemszám]= {konst_1, konst_2,..., konst_elemszám-1}; Pl. double koord[3]={0.3, 0.6, 0.8}; double koord[]={0.3, 0.6, 0.8, 1.1};

24 24 Tömb inicializálása 2. Kétdimenziós: int a[2][3]={{2, 3, 6}, {3, 6, 8}}; vagy int a[][3]={{2, 3, 6}, {3, 6, 8}}; Az utolsó indexnek mindig ismertnek kell lennie, csak egy index lehet határozatlan (az első)!


Letölteni ppt "3. előadás (2005. március 1.) Utasítások, tömbök utasítás: üres, összetett, feltételes utasítás, switch utasítás, ciklus utasítások, tömbök."

Hasonló előadás


Google Hirdetések