Adminisztrációs feladatok Strukturált programok A C programnyelv elemei



Hasonló dokumentumok
Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Java programozási nyelv

C programozás. 1 óra Bevezetés

2.3. A C nyelv utasításai

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

Programozás alapjai 5. gyakorlat Vezérlési szerkezetek egymásba ágyazása

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Vezérlési szerkezetek

Programozás I. gyakorlat

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Internet programozása. 3. előadás

Webprogramozás szakkör

Adatbázis rendszerek Gy: Algoritmusok C-ben

Algoritmizálás + kódolás C++ nyelven és Pascalban

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

Óbudai Egyetem. C programozási nyelv

/* Az iter függvény meghívása és a visszatérő érték átadása a gyok változóba */ gyok = iter( n, a, e ) ;

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

A C programozási nyelv II. Utasítások. A függvény.

Vezérlési szerkezetek. Szelekció Ciklusok

Objektumorientált Programozás III.

Algoritmusok tervezése

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

A C# programozási nyelv alapjai

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 3. előadás

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Programozás I gyakorlat

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Programozás I gyakorlat

1. Írjunk programot mely beolvas két számot és ellenőrzi hogy mindkét szám zérus-e:

A programozás alapjai

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

Programozási segédlet

Algoritmizálás és adatmodellezés tanítása 1. előadás

Programozás alapjai 9.Gy: Struktúra 2.

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

Bevezetés a programozásba I.

BASH script programozás II. Vezérlési szerkezetek

Programozás alapjai (ANSI C)

Komputeralgebra Rendszerek

Java II. I A Java programozási nyelv alapelemei

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Bemutatkozás. Bemutatkozás. Bemutatkozás. Bemutatkozás. 1. előadás. A tárgy címe: A programozás alapjai 1

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

Operátorok, házi feladat adatszerkezetek

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

INFORMATIKA tétel 2019

Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

Adatszerkezetek és algoritmusok

Apple Swift kurzus 3. gyakorlat

I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis

Programozás alapjai 8.Gy: Program struktúra

A C nyelv aritmetikai típusai. Struktúrák.

Java II. I A Java programozási nyelv alapelemei

INFORMATIKA javítókulcs 2016

Bevezetés a programozásba. 12. Előadás: 8 királynő

Programozás II. 2. Dr. Iványi Péter

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Szelekció. Döntéshozatal

ALGORITMUSOK, ALGORITMUS-LEÍRÓ ESZKÖZÖK

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

AWK programozás, minták, vezérlési szerkezetek

Programozás alapjai 3.Gy: C elágazások, ciklusok P R O

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa

C változók. Feladat: Deklaralj egy valos, egy karakter es ket egesz tipusu valtozot! int main() {

Programozás alapjai 1.Gy: Algoritmizálás P R O

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE cím: Név: Kurzuskód:

Programozás I gyakorlat

A C programozási nyelv III. Pointerek és tömbök.

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Programozás I gyakorlat. 10. Stringek, mutatók

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

10. gyakorlat Tömb, mint függvény argumentum

A programozás alapjai 1 Rekurzió

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

A C programozási nyelv I. Bevezetés

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

A C programozási nyelv III. Pointerek és tömbök.

Programozási nyelvek JAVA EA+GY 1. gyakolat

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Programozás I. gyakorlat

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

1. Alapok. #!/bin/bash

AWK programozás, minták, vezérlési szerkezetek

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Elıírt lépésszámú ciklusok

Átírás:

Strukturált C-Strukturált Egyéb elemek Strukturált C-Strukturált Egyéb elemek Adminisztrációs feladatok Strukturált programok A C programnyelv elemei A programozás alapjai. álózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán 2015. szeptember 14. Aki még nem tette meg... BME címtáras azonosító lekérése, jelszó beállítása Szükség van rá a laborgépek használatához https://login.bme.hu/admin Moodle bejelentkezés és kipróbálás A tárggyal kapcsolatos adatokat (jelenlét, pontok) itt találhatók Felhasználónév a neptun kód El ször az elfelejtett jelszó linket használjuk https://moodle.hit.bme.hu Próbáljuk ki a feladatleadást a laborkurzus Próbafeladat feladatán Regisztráció további szolgáltatásokra (opcionális) https://accadmin.hszk.bme.hu c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 1 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 2 / 47 Strukturált C-Strukturált Egyéb elemek Tartalom 1 Strukturált programozás Bevezetés Deníció Strukturált programok elemei Strukturált programozás tétele A struktogram 2 Strukturált programozás C-ben Szekvencia Választás Elöltesztel ciklus Alkalmazás 3 Egyéb strukturált elemek Elöltesztel másként átultesztel ciklus Egész értéken alapuló választás 1. fejezet Strukturált programozás c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 3 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 4 / 47

Algoritmusok Algoritmusok smétlés gyakorlatról: Keressük az f (x) monoton növekv függvény zérushelyét n és p között ɛ pontossággal. smétlés gyakorlatról: Keressük az f (x) monoton növekv függvény zérushelyét n és p között ɛ pontossággal. n k f(x) p x 1 p-n < eps? 2 A GAZ, UGORJ 10- re 3 k (n+p) / 2 4 f( k) < 0? 5 A GAZ, UGORJ 8- ra 6 p k; 7 UGORJ 1- re 8 n k; 9 UGORJ 1- re 10 A zé rushely : n n k f(x) p x AMÍG p-n > eps, SMÉTELD k (n+p) / 2 A f( k) > 0 p k; n k; A zé rushely : n c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 5 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 6 / 47 Strukturált vs strukturálatlan Strukturált vs strukturálatlan AMÍG p-n > eps, SMÉTELD k (n+p) / 2 A f( k) > 0 p k; n k; A zé rushely : n Strukturált program könnyen karbantartható komplex vezérlés magas szint 1 p-n < eps? 2 A GAZ, UGORJ 10- re 3 k (n+p) / 2 4 f( k) < 0? 5 A GAZ, UGORJ 8- ra 6 p k; 7 UGORJ 1- re 8 n k; 9 UGORJ 1- re 10 A zé rushely : n Strukturálatlan program spagettikód egyszer vezérlés hardverszint ardverszint Sok egyszer utasítás Egyszer vezérlés (UGORJ; A GAZ, UGORJ) Strukturálatlan szerkezet Processzor csak ezt érti Magas szint nyelvek Kevés komplex utasítás Bonyolultabb vezérlés (AMÍG...SMÉTELD...; A...AKKOR...) Strukturált szerkezet Processzor nem érti A fordítóprogram a magas szint strukturált programból hardverszint, de az eredetivel ekvivalens programot állít el c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 7 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 8 / 47

Minden strukturált program az alábbi egyszer sémát követi: START Elemi tevékenység ami nem szorul további kifejtésre STOP A program struktúráját bels szerkezete határozza meg. lehet Elemi tevékenység Szekvencia Ciklus Választás Elemi tev. Elemi tev. Az üres tevékenység (Ne csinálj semmit) is elemi tevékenység c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 9 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 10 / 47 A szekvencia minden eleme maga is tevékenység, így természetesen kifejthet szekvenciaként Szekvencia Két tevékenység egymás utáni végrehajtása adott sorrendben 1. Tev. 1. Tev. 1. Tev. 2. Tev. 1. Tev. 2. Tev. 2. Tev. 2a. Tev. 2b. Tev. A kifejtést folytatva a szekvencia gyakorlatilag tetsz leges hosszú (véges) tevékenységsorozatot jelenthet c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 11 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 12 / 47

gazságértéken alapuló választás Két tevékenység alternatív végrehajtása egy feltétel igazságértékének megfelel en Gyakran az egyik ág üres Tev. ha igaz Tev. ha hamis A Felt étel Tev. ha igaz Tev. ha hamis Tev. ha igaz A Felt étel Tev. ha igaz c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 13 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 14 / 47 Elöltesztel ciklus ismétlése mindaddig, míg egy feltétel teljesül Strukturált programozás tétele Elemi tevékenység, AMÍG Felt., SMÉTELD szekvencia, választás és ciklus alkalmazásával MNDEN algoritmus megfogalmazható. c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 15 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 16 / 47

Strukturált programozás tétele bizonyítás Strukturált programozás tétele bizonyítás START 0 Tev. 1 1 Felt. 1 2 Felt. 2 3 STOP á llapot 0 AM ÍG á llapot nem 3, SM É TELD A á llapot = 0 Tev. 1 á llapot 1 A á llapot = 1 A Felt. 1 á llapot 0 á llapot 2 A á llapot = 2 A Felt. 2 á llapot 1 á llapot 3 START 0 Tev. 1 1 Felt. 1 2 Felt. 2 3 STOP Most, hogy tudjuk, hogy mindig lehet, gondolkodhatunk egyszer bb strukturált megfelel n is: Tev. 1 AMÍG ( Felt. 1 VAGY Felt. 2.), SM. A Felt. 1 Tev. 1 Mi a továbbiakban eleve strukturált szerkezetben fogalmazzuk meg algoritmusainkat c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 17 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 18 / 47 A struktogram A struktogram A program egy téglalap A folyamatábra a strukturáltalan programok leírási eszköze azonnal kódolható bel le strukturálatlan program (A GAZ, UGORJ) a strukturált elemek (f leg a ciklusok) sokszor nehezen ismerhet ek fel benne A struktogram a strukturált programok ábrázolási eszköze csak strukturált program írható le vele könnyen kódolható bel le strukturált program további téglalapokra bontható az alábbi szerkezeti elemekkel Szekvencia Tev. 1 Elöltesztel ciklus Választás Tev. ha igaz Tev. ha hamis c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 19 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 20 / 47

Strukturált C-Strukturált Egyéb elemek Szekv. Vál. Elölteszt. Alkalm. A struktogram Gyökhelykeresés folyamatábrával, struktogrammal és strukturált pszeudokóddal START p n > ɛ 2. fejezet p n > ɛ k n+p 2 STOP p k k n+p 2 f (k) > 0 n k Strukturált programozás C-ben f (k) > 0 p k n k AMÍG p-n > eps, SMÉTELD k (n+p) / 2 A f( k) > 0 p k; n k; c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 21 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 22 / 47 Strukturált C-Strukturált Egyéb elemek Szekv. Vál. Elölteszt. Alkalm. Szekvencia C-ben Strukturált C-Strukturált Egyéb elemek Szekv. Vál. Elölteszt. Alkalm. Választás C-ben az if utasítás Szekvencia megfogalmazása egymás után kiadott utasításokkal 1 /* football. c -- szurkol ó program */ 2 # include <stdio.h> 3 int main () 4 { 5 printf ("Szódásü veget "); /* nincs ú jsor */ 6 printf (" a bírónak,\n"); /* itt van */ 7 printf (" hajr á, Fradi!"); 8 return 0; 9 } Szódásüveget a bírónak, hajrá, Fradi! Írjunk programot, mely a bekért egész számról eldönti, hogy az kicsi (< 10) vagy nagy ( 10)! K: kicsi K: infó BE: x x < 10 K: nagy Legyen x eg é sz K: infó BE: x A x < 10 K: kicsi K: nagy 1 # include <stdio.h> 2 int main () 3 { 4 int x; 5 printf (" Adjon meg egy számot: "); 6 scanf ("%d", &x); 7 if (x < 10) /* felt étel */ 8 printf (" kicsi "); /* igaz ág*/ 9 else 10 printf (" nagy "); /* hamis ág*/ 11 return 0; 12 } Adjon meg egy számot: 5 kicsi c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 23 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 24 / 47

Strukturált C-Strukturált Egyéb elemek Szekv. Vál. Elölteszt. Alkalm. Választás az if utasítás Strukturált C-Strukturált Egyéb elemek Szekv. Vál. Elölteszt. Alkalm. Elöltesztel ciklus C-ben a while utasítás Az if utasítás szintaxisa if (<feltétel kifejezés>) <utasítás ha igaz> [ else <utasítás ha hamis> ] opt 1 if (x < 10) /* felt étel */ 2 printf (" kicsi "); /* igaz ág */ 3 else 4 printf (" nagy "); /* hamis ág */ 1 if (a < 0) /* abszol útérték képzése */ 2 a = -a; 3 /* nincs hamis ág */ Írjuk ki 1-t l 10-ig az egész számok négyzeteit! n 1 n 10 K: n n n n + 1 Legyen n eg é sz n 1 AM ÍG n <= 10 K: n*n n n+1 1 # include <stdio.h> 2 int main () 3 { 4 int n; 5 n = 1; /* inicializ álás */ 6 while (n <= 10) /* felt étel */ 7 { 8 printf ("%d ", n*n); /* Kiírás */ 9 n = n+1; /* növelés */ 10 } 11 return 0; 12 } 1 4 9 16 25 36 49 64 81 100 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 25 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 26 / 47 Strukturált C-Strukturált Egyéb elemek Szekv. Vál. Elölteszt. Alkalm. Elöltesztel ciklus a while utasítás Strukturált C-Strukturált Egyéb elemek Szekv. Vál. Elölteszt. Alkalm. Komplex alkalmazás A while utasítás szintaxisa while (<feltétel kifejezés>) <utasítás> 1 while ( n <= 10) 2 { 3 printf ("%d ", n*n); 4 n = n+1; 5 } C-ben utasítás mindig helyettesíthet blokkal. Szekvenciával, ciklussal és választással minden megfogalmazható! Most már mindent tudunk, megírhatjuk a gyökhelykeresés programját C-ben! Új elem: a valós számok tárolására alkalmas double típus (kés bb részletezzük) 1 double a; /* a val ós sz ám */ 2 a = 2.0; /* értékadás */ 3 printf ("%f", a); /* kiírás */ c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 27 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 28 / 47

Strukturált C-Strukturált Egyéb elemek Szekv. Vál. Elölteszt. Alkalm. Zérushely keresése Keressük az f (x) = x 2 2 függvény gyökhelyét n = 0 és p = 2 között ɛ = 0,001 pontossággal! n 0 p 2 p n > ɛ k n+p 2 k 2 2 > 0 p k K: n n k 1 # include <stdio.h> 2 3 int main () 4 { 5 double n = 0.0, p = 2.0; 6 while (p- n > 0.001) 7 { 8 double k = ( n+p )/2.0; 9 if ( k*k -2.0 > 0.0) 10 p = k; 11 else 12 n = k; 13 } 14 printf ("A gyö khely : %f", n); 15 16 return 0; 17 } 3. fejezet Egyéb strukturált elemek c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 29 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 30 / 47 Elöltesztel ciklus C-ben a for utasítás Láttuk, hogy az eddig deniált strukturált elemek mindenre elegend ek Pusztán kényelmi okból új elemeket vezetünk be, melyek természetesen visszavezethet ek a korábbiakra Írjuk ki 1-t l 10-ig az egész számok négyzeteit! n 1 n 10 K: n n n n + 1 Legyen n eg é sz n 1 AM ÍG n <= 10 K: n*n n n+1 Az nicializálás Amíg GAZ Léptetés struktúra annyira gyakori a programozásban, hogy külön utasítással egyszer sítjük alkalmazását. c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 31 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 32 / 47

Elöltesztel ciklus C-ben a for utasítás Elöltesztel ciklus a for utasítás Írjuk ki 1-t l 10-ig az egész számok négyzeteit! n 1 n 10 K: n n n n + 1 Legyen n eg é sz n=1-t l, AMÍG n <=10, egyes ével K: n*n 1 # include <stdio.h> 2 int main () 3 { 4 int n; 5 for ( n = 1; n <= 10; n = n +1) 6 printf ("%d ", n*n); 7 return 0; 8 } 1 4 9 16 25 36 49 64 81 100 A for utasítás szintaxisa for (<inic kif>; <felt kif>; <utótev kif>) <utasítás> 1 for ( n = 1; n <= 10; n = n +1) 2 printf ("%d ", n*n); Utótevékenység az utasítás végrehajtása után történik meg. n: 11 1 4 9 16 25 36 49 64 81 100 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 33 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 34 / 47 Szorzótábla Szorzótábla Írjuk ki a 10 10-es szorzótáblát! 1 int row; 10 sort kell kiírnunk (row = 1, 2, 3,...10) Minden sorban 10 oszlopba írunk (col = 1, 2, 3,...10) Minden oszlopban Kiírjuk row*col értékét Majd új sort kell kezdenünk 2 for ( row = 1; row <= 10; row = row +1) 3 { 4 int col; /* blokk elej én deklar á ci ó */ 5 for ( col = 1; col <= 10; col = col +1) 6 printf ("%4d", row*col ); /* kiírás 4 szé lesen */ 7 printf ("\n"); /* már nincs benne a col for -ban */ 8 } 1 int row; Ne sajnáljunk blokkba zárni akár egyetlen utasítást is, ha ez követhet bbé teszi a kódot! 2 for ( row = 1; row <= 10; row = row +1) 3 { 4 int col; /* blokk elej én deklar á ci ó */ 5 for ( col = 1; col <= 10; col = col +1) 6 { 7 printf ("%4d", row*col ); /* kiírás 4 szé lesen */ 8 } 9 printf ("\n"); 10 } c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 35 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 36 / 47

átultesztel ciklus ismétlése mindaddig, míg egy feltétel teljesül Visszavezethet szekvenciára és elöltesztel ciklusra SMÉTELD AMÍG Felt étel c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 37 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 38 / 47 átultesztel ciklus a do utasítás átultesztel ciklus a do utasítás Olvassunk be pozitív egész számokat! Akkor hagyjuk abba, ha az összeg meghaladta a 10-et! sum 0 K: A következ szám: BE: n sum sum+n sum <= 10 sum 0 SMÉTELD K: nfó BE: n sum sum +n AM ÍG sum 10 1 # include <stdio.h> 2 int main () 3 { 4 int sum = 0, n; 5 do 6 { 7 printf ("A kö vetkez szám: "); 8 scanf ("%d", &n); 9 sum = sum +n; 10 } 11 while ( sum <= 10); 12 return 0; 13 } 1 do 2 { A do utasítás szintaxisa do <utasítás> while (<feltétel kifejezés>); 3 printf ("A kö vetkez szám: "); 4 scanf ("%d", &n); 5 sum = sum +n; 6 } 7 while ( sum <= 10 ); c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 39 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 40 / 47

Egész értéken alapuló választás ek alternatív végrehajtása egy egész kifejezés értéke alapján Megvalósítható egymásba ágyazott választásokkal kif.= 1 kif. vizsg. Tev. ha 1 kif.= 2 Tev. ha 2 kif.= 3 1 2 3? Tev. ha 3 Tev.ha más Tev. ha 1 Tev. ha 2 Tev. ha 3 Tev.ha más c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 41 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 42 / 47 Egész értéken alapuló választás a switch utasítás Egész értéken alapuló választás a switch utasítás Rendeljünk szöveges értékelést számmal kifejezett jegyekhez! Rendeljünk szöveges értékelést számmal kifejezett jegyekhez! 1 K: 2 K: 3 K: K: infó BE: n n =? elégtelen elégséges közepes jó jeles baj van 4 K: 5 más K: K: 1 # include <stdio.h> 2 int main () { 3 int n; 4 printf (" Adja meg a jegyet : "); 5 scanf ("%d", &n); 6 switch (n) 7 { 8 case 1: printf ("elé gtelen "); break ; 9 case 2: printf ("elégséges"); break ; 10 case 3: printf ("kö zepes "); break ; 11 case 4: printf (" jó"); break ; 12 case 5: printf (" jeles "); break ; 13 default : printf ("baj van"); 14 } 15 return 0; 16 } c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 43 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 44 / 47

Egész értéken alapuló választás a switch utasítás Egész értéken alapuló választás a switch utasítás A switch utasítás szintaxisa switch(<egész kifejezés>) { case <konstans kif1>: <utasítás 1> [case <konstans kif2>: <utasítás 2>...] opt [default: <default utasítás> ] opt } 1 switch (n) 2 { 3 case 1: printf ("elé gtelen "); break ; 4 case 2: printf ("elégséges"); break ; 5 case 3: printf ("kö zepes "); break ; 6 case 4: printf (" jó"); break ; 7 case 5: printf (" jeles "); break ; 8 default : printf ("baj van"); 9 } A break utasítások nem részei a szintaxisnak. a lehagyjuk ket, a switch akkor is értelmes, de nem a korábban specikált eredményt adja: 1 switch (n) 2 { 3 case 1: printf ("elé gtelen "); 4 case 2: printf ("elégséges"); 5 case 3: printf ("kö zepes "); 6 case 4: printf ("jó"); 7 case 5: printf (" jeles "); 8 default : printf ("baj van"); 9 } Adja meg a jegyet: 2 elégségesközepesjójelesbaj van c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 45 / 47 c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 46 / 47 Egész értéken alapuló választás a switch utasítás A konstans kifejezések csak belépési pontok, ahonnan minden utasítást végrehajtunk az els break-ig vagy a blokk végéig: 1 switch (n) 2 { 3 case 1: printf (" megbukott "); break ; 4 case 2: 5 case 3: 6 case 4: 7 case 5: printf ("á tment "); break ; 8 default : printf ("baj van"); 9 } Adja meg a jegyet: 2 átment c Farkas B., Fiala P., Vitéz A., Zsóka Z. Strukturált C alapok 2015. szeptember 14. 47 / 47