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

Hasonló dokumentumok
A C# programozási nyelv alapjai

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

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Objektumorientált Programozás VI.

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

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

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

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

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

Készítette: Nagy Tibor István

Egyszerű programozási tételek

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

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs

Programozási alapismeretek 1. előadá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,

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs

Java programozási nyelv

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

Vezérlési szerkezetek

Algoritmizálás, adatmodellezés 1. előadás

Bevezetés az informatikába

Összetett programozási tételek

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK

Objektum Orientált Programozás V.

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs

1. Jelölje meg az összes igaz állítást a következők közül!

ELEMI PROGRAMOZÁSI TÉTELEK

Objektumorientált Programozás V.

Webprogramozás szakkör

Programozási alapismeretek. 1. előadás. A problémamegoldás lépései. A programkészítés folyamata. Az algoritmus fogalma. Nyelvi szintek.

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

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

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

Rekurzió. (Horváth Gyula és Szlávi Péter előadásai felhasználásával)

Objektumorientált Programozás III.

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

PROGRAMOZÁSI TÉTELEK

Algoritmusok, adatszerkezetek, objektumok

Programozási segédlet

AZ ALGORITMUS. az eredményt szolgáltatja

Szoftvertervezés és -fejlesztés I.

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

A C# PROGRAMOZÁSI NYELV

Objektum Orientált Programozás VII.

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

Bevezetés a programozásba I.

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Programozás I. C# bevezető. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 17.

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

ALGORITMUSOK ÉS PROBLÉMAOSZTÁLYOK (1. előadás)

Algoritmus fogalma. Mi az algoritmus? HF: Al Khwarizmi. Egy adott probléma megoldásának leírása elemi lépések sorozatával

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

Vezérlési szerkezetek. Szelekció Ciklusok

Programozás alapjai (ANSI C)

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

Programozási alapismeretek 3. előadás

Objektumorientált Programozás I.

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

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

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

Mintavételes szabályozás mikrovezérlő segítségével

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

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Apple Swift kurzus 3. gyakorlat

Algoritmusok. Dr. Iványi Péter

Kiterjesztések sek szemantikája

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

Programozási tételek. Dr. Iványi Péter

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

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

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

Algoritmizálás, adatmodellezés 1. előadás

Programozási tételek. PPT 2007/2008 tavasz.

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

Rendezések. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar október 24.

Operációs rendszerek gyak.

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

A programozás alapjai

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

Nézzük tovább a lexikai egységeket!

Adatbázis és szoftverfejlesztés elmélet. Programozási tételek

Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa!

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

C programozás. 1 óra Bevezetés

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

Adatbázis rendszerek Gy: Algoritmusok C-ben

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

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

Algoritmusok tervezése

Komputeralgebra Rendszerek

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

Programozás I. házi feladat

Informatika terméktervezőknek

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

Gyakorló feladatok Gyakorló feladatok

Programozási Módszertan definíciók, stb.

Java II. I A Java programozási nyelv alapelemei

Átírás:

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

Programkészítés Megrendelői igények begyűjtése Megoldás megtervezése (algoritmuskészítés) Megoldás megvalósítása (implementálás) Tesztelés

Algoritmus Algoritmus kritériumai: Elemi lépésekre kell bontani (elemi lépés = az algoritmus végrehajtója számára egyértelmű, végrehajtható utasítás) Az összes lehetséges esetet számba kell venni Véges sok lépésből kell állnia

Algoritmusleíró eszközök Mondatokkal történő leírás Teljes magyar mondatokkal íródik az algoritmus Mondatszerű elemekkel történő leírás (pszeudo-kód) Kulcsszavakkal és az ezekből felépített tőmondatokkal íródik az algoritmus Blokk-diagram Irányított gráf ábrázolja az algoritmust Struktogram A teljes feladat egy téglalap, ennek részekre osztásával íródik az algoritmus

Algoritmusokban használt strukturált elemek Másnéven strukturált algoritmikus szerkezetek, vagy vezérlőszerkezetek: Szekvencia (utasítássorozat) : tevékenységek egymásutánja Szelekció (elágazás) : egy feltétel teljesülése, vagy nem teljesülése esetén más-más tevékenységeket kell elvégezni Iteráció (ciklus) : egy tevékenységet, vagy tevékenységsorozatot többször meg kell ismételni A vezérlőszerkezetek egymásba is ágyazhatók

Blokk-diagram Szekvencia (utasítássorozat) utasítás1 utasítás2 utasítás3

Blokk-diagram Szelekció (elágazás) i feltétel n utasítás1 utasítás2

Blokk-diagram Iteráció (elöltesztelős ciklus) Nincs külön jelölés a ciklusra. Elágazással lehet megvalósítani. i feltétel n utasítás(ok)

Blokk-diagram Iteráció (hátultesztelős ciklus) Nincs külön jelölés a ciklusra. Elágazással lehet megvalósítani. utasítás(ok) i feltétel n

Példa Rablóbanda Feladat: Egy rablóbanda az erdőben les gazdag áldozataira. A gazdasági fellendülés következtében megnőtt az erdei úton közlekedő, kincsekkel megrakott konvojok száma, ezért szükségessé vált a bandát új taggal bővíteni. Az új tagnak el kell magyarázni a rablás folyamatát.

A rablás algoritmusa I. Bunkót kézbe Leshelyre ki i Lesés Jön karaván? n És ha nem volt a karavánnál pénz? Kirablás Kocsma Haza

A rablás algoritmusa II. Bunkót kézbe Leshelyre ki i Lesés Jön karaván? n És ha nem is jött karaván? Kirablás n Elég a pénz? i Kocsma Haza

A rablás algoritmusa III. Bunkót kézbe Leshelyre ki n Este van? Lesés i Ez már jó, de kusza Kirablás i Jön karaván? n n Elég a pénz? i Kocsma Haza

Struktogram Szekvencia (utasítássorozat) utasítás1 utasítás2 utasítás3 vagy utasítás1 utasítás2 utasítás3

Struktogram Szelekció (elágazás) i feltétel n utasítás2 utasítás3 vagy i feltétel n utasítás2

Struktogram Iteráció (ciklus) feltétel utasítás(ok) vagy utasítás(ok) feltétel

A rablás algoritmusa Bunkót kézbe Leshelyre ki Amíg nincs este és nem elég a pénz Lesés i Jön karaván? n Kirablás i Elég a pénz? n Kocsma Haza

Pszeudo-kód Szekvencia (utasítássorozat) Formátum: utasítás1 utasítás2 utasításn Az utasítások végrehajtása leírásuk sorrendjében történik

Pszeudo-kód Szelekció (elágazás) Formátum: Ha feltétel akkor utasítás(ok)1 különben utasítás(ok)2 Elágazás vége Ha a feltétel igaz, akkor utasítás(ok)1, különben utasítás(ok)2 hajtódik végre A feltétel logikai igaz, vagy hamis értékű lehet utasítás(ok)1 az elágazás igaz-ága, utasítás(ok)2 az elágazás hamis-ága. A hamis-ág elhagyható

Pszeudo-kód Szelekció (többirányú elágazás) Formátum: Elágazás feltétel1 esetén utasítás(ok)1 feltétel2 esetén utasítás(ok)2 különben utasítás(ok)n Elágazás vége Ha feltétel1 igaz, akkor utasítás(ok)1, ha feltétel2 igaz, akkor utasítás(ok)2, ha egyik feltétel sem igaz, utasítás(ok)n hajtódik végre Minden feltétel logikai igaz, vagy hamis értékű lehet A különben-ág elhagyható

Pszeudo-kód Iteráció (elöltesztelős ciklus) Formátum: Ciklus amíg feltétel Ciklusmag Ciklus vége A ciklusmag utasításai addig ismétlődnek, amíg a feltétel igaz

Pszeudo-kód Iteráció (hátultesztelős ciklus) Formátum: Ciklus Ciklusmag amíg feltétel Ciklus vége A ciklusmag utasításai addig ismétlődnek, amíg a feltétel igaz A ciklusmag egyszer mindenképp végrehajtódik a feltétel-től függetlenül

Pszeudo-kód Iteráció (számlálós ciklus) Formátum: Ciklus változó = kezdőérték-től végérték-ig Ciklusmag Ciklus vége A ciklusmag utasításai kezdőérték-végérték+1-szer ismétlődnek A változó értéke kezdetben kezdőérték-kel egyenlő, minden cikluslépés végén 1-gyel nő, amíg végértéknél nagyobb nem lesz

A változó Egy memóriában elhelyezkedő rekesz Egy értéket tárol Van azonosítója (vagyis neve) Van típusa (milyen értéket tárolhat) Az értéke értékadással módosítható Az értéke egy kifejezésben lekérdezhető

Változókkal végezhető tevékenységek Értékadás Érték elhelyezése a változóban változónév = érték változónév = kifejezés Érték lekérdezése A változó tartalmának kiolvasása. Az érték a kiolvasás után is megmarad a változóban. Pl.: Ha változónév > 10 akkor változó2 = 3 * változónév + 12

Feladat másodfokú egyenlet megoldása ax 2 + bx + c = 0 a = 0 bx + c = 0 a 0 ax 2 + bx + c = 0 b = 0 c = 0 c = 0 Azonosság b 0 x = c b c 0 Ellentmondás b 2 4ac < 0 x 1,2 = b ± b 2 4ac > 0 b2 4ac 2a b 2 4ac = 0 x 1,2 = b 2a x 1,2 = b 2a ± b2 4ac 2a j

Feladat másodfokú egyenlet megoldása i a = 0 n i b = 0 n i b 2 4ac = 0 n i c = 0 n Azon. Ellentm. x = c b x 1,2 = b 2a i x 1,2 = b ± b 2 4ac > 0 b2 4ac 2a x 1,2 = b 2a ± n b2 4ac j 2a

Algoritmusok specifikációja Négy részből áll: Bemenet: az algoritmusnak milyen bemenő adat(ok)ra van szüksége Kimenet: az algoritmus milyen eredmény(eke)t állít elő Előfeltétel: a bemenő adatok milyen feltételeknek kell, hogy eleget tegyenek ahhoz, hogy az algoritmus helyesen tudjon működni Utófeltétel: Milyen feltételeknek tesz eleget a kimenet az algoritmus végrehajtása után, vagy másképpen: hogyan állítja elő az algoritmus a bemenő adatokból a kimenetet

Feladat másodfokú egyenlet megoldása specifikációval Bemenet: a, b, c R Kimenet: x 1, x 2 C Előfeltétel: - Utófeltétel: i a = 0 n i b = 0 n i b 2 4ac = 0 n i c = 0 n Azon. Ellentm. x = c b x 1,2 = b 2a i x 1,2 = b ± b 2 4ac > 0 b2 4ac 2a x 1,2 = b 2a ± n b2 4ac j 2a

Feladatok 1. Adott a, b, c oldalhossz. Állapítsuk meg, hogy a három oldal milyen háromszöget alkot. Adott a, b, c oldalhossz. Adjuk meg a háromszög kerületét és területét. Adott x és y. Adjuk meg x * y értékét az + művelet felhasználásával. Adott a és x. Adjuk meg a x értékét, a * művelet felhasználásával Adott a és x. Adjuk meg a x értékét, az + művelet felhasználásával

Feladatok 2. Adott x és y. Határozzuk meg a két szám legkisebb közös többszörösét. Adott x és y. Határozzuk meg a két szám legnagyobb közös osztóját. Adott x. Mondjuk meg, hogy x prímszám-e.

Feladatok 3. Egy meteorológiai állomáson mérik a napi középhőmérséklet-értékeket egy hónapon keresztül. Írjuk ki azoknak a napoknak a sorszámát, amikor: a hőmérséklet fagypont alatt volt a leghidegebb volt a legmelegebb volt

Feladatok 4. Egy toronyugró versenyen N versenyző indul. Minden versenyzőnek egy ugrásra van lehetősége. Az ugrásokat 7 bíró pontozza. Egy ugrás összpontszáma a pontok összegéből számítódik, amelyben a legkisebb és a legnagyobb pont nincs benne. Az a versenyző győz, aki a legtöbb pontot kapta az ugrására. Adjuk meg ennek a versenyzőnek a nevét! (Tételezzük fel, hogy van egy utasítás, amellyel a versenyző nevét és a bírói pontokat tudjuk bekérni)

A tömb Több, memóriában elhelyezkedő rekesz együttese Több, azonos típusú értéket tárol Elemei a tömbön belüli sorszámukkal (index) érhetők el Egy elem értéke értékadással módosítható Egy elem értéke egy kifejezésben lekérdezhető

Tömbbel végezhető tevékenységek Értékadás Érték elhelyezése egy tömbelemben Érték lekérdezése Egy tömbelem tartalmának kiolvasása. Az érték a kiolvasás után is megmarad a tömbelemben

Tömbelem elérése (indexelés) A tömb egy adott eleméhez a tömb neve után szögletes zárójelek között megadott sorszámmal (index) férhetünk hozzá: tömbnév[index] A tömb első elemének indexe: 0 A tömb utolsó elemének indexe: elemszám 1 0. 1. 2. 3. 4. tomb 28 3 17 11 50 tomb[3]

Feladatok Egy meteorológiai állomáson mérik a napi középhőmérséklet-értékeket egy hónapon keresztül. Tároljuk el ezeket az értékeket egy tömbben valósítsuk meg a feladatot mindhárom ciklusfajtával Határozzuk meg a havi átlaghőmérsékletet Írjuk ki azoknak a napoknak a hőmérsékletét, amikor hidegebb volt a havi átlagnál Írjuk ki azoknak a napoknak a hőmérsékletét, amikor fagyott Írjuk ki azoknak a napoknak a számát, amikor fagyott

Programozási tételek Egy adott feladatosztályba tartozó összes feladatra megoldást adó algoritmus. pl.: a keresés tétel bármilyen elemsorozatban bármilyen feltételnek megfelelő elemek keresésére használható

Programozási tételek alkalmazott jelölések H : valamilyen (azonos) típusú elemek halmaza. Például H lehet a természetes számok halmaza, vagy a karakterek halmaza, H N : H összes lehetséges N elemű részsorozata Például: N 3 = * 0,1,2, 1,0,2, 1,2,0, 1,1,1, +

Programozási tételek alkalmazott jelölések T: H L igaz, a a megfelel a tulajdonságnak T a = amis, egyébként Például: T a = vagy T a = igaz, a a < 0 amis, egyébként igaz, a a páros amis, egyébként

Eldöntés tétele Adott egy N elemű sorozat és egy a sorozaton értelmezett T tulajdonság. Mondjuk meg, hogy a sorozatban van-e T tulajdonságú elem. Bemenet: N N, A H N Kimenet: VAN L Előfeltétel:- Utófeltétel: VAN ( i 0 i < N : T A i ) Algoritmus Eldöntés: i = 0; Ciklus amíg i<n és T(A[i]) i = i + 1 Ciklus vége VAN = i<n Algoritmus vége

Kiválasztás tétele Adott egy N elemű sorozat és egy a sorozaton értelmezett T tulajdonság. Biztosan tudjuk, hogy a sorozatban van T tulajdonságú elem. Mondjuk meg az első ilyen elem sorszámát. Bemenet: N N, A H N Kimenet: SORSZ N Előfeltétel: i 0 i < N : T(A i ) Utófeltétel: 0 SORSZ < N és T(A SORSZ ) Algoritmus Kiválasztás: i = 0; Ciklus amíg T(A[i]) i = i + 1 Ciklus vége SORSZ = i Algoritmus vége

Lineáris keresés tétele Adott egy N elemű sorozat és egy a sorozaton értelmezett T tulajdonság. Mondjuk meg, hogy van-e T tulajdonságú elem a sorozatban, és adjuk meg az első ilyen elem sorszámát. Bemenet: N N, A H N Kimenet: VAN L, SORSZ N Előfeltétel: - Utófeltétel: VAN i 0 i < N : T A i és VAN (0 SORSZ < N és T A SORSZ ) Algoritmus Keresés: i = 0; Ciklus amíg i<n és T(A[i]) i = i + 1 Ciklus vége VAN = i<n Ha VAN akkor SORSZ = i Algoritmus vége

Megszámlálás tétele Adott egy N elemű sorozat és egy a sorozaton értelmezett T tulajdonság. Mondjuk meg, hogy hány T tulajdonságú elem van a sorozatban. Bemenet: N N, A H N, U x = Kimenet: DB N Előfeltétel: - Utófeltétel: DB = N U(A i ) i=1 Algoritmus Megszámlálás: DB = 0 Ciklus i = 0-től N-1-ig Ha T(A[i]) akkor DB = DB + 1 Ciklus vége Algoritmus vége 1, a T(x) 0, egyébként

Maximumkiválasztás tétele Adott egy N elemű sorozat. Mondjuk meg a sorozat legkisebb elemének sorszámát. Bemenet: N N, A H N Kimenet: maxindex N Előfeltétel: X teljesen rendezett és N>0 Utófeltétel: 0 maxindex < N és i 0 i < N : A maxindex A i Algoritmus Maximumkiválasztás: maxindex = 0 Ciklus i = 1-től N-1-ig Ha A[i] > A[maxindex] akkor maxindex = i Ciklus vége Algoritmus vége

Programkészítés lépései Megrendelői igények begyűjtése Megoldás megtervezése (algoritmuskészítés) Megoldás megvalósítása (implementálás) Tesztelés

Implementálás (parancssorból) 1. Algoritmus C# Forráskód 1. Forráskód megírása szövegszerkesztőben 2. Forráskód elmentése fájlnév.cs néven 2. C# forráskód Futtatható fájl (.exe) 1. Parancssori ablak megnyitása 2. Belépés a forráskódot tartalmazó könyvtárba (cd) 3. Forrásfájl lefordítása (csc fájlnév.cs) 3. Futtatható fájl végrehajtása 1. Parancssori ablak megnyitása 2. Program futtatása (fájlnév.exe)

Üres C# program class ProgramNév { static void Main() { } }

C# utasítások szekvencia Minden utasítást ; zár le Az utasítások írhatók külön sorokba: utasítás1; utasítás2; utasításn; Az utasítások írhatók egy sorba: utasítás1; utasítás2; utasításn;

C# utasítások szelekció if ( feltétel ) utasítás1; [else utasítás2;] if ( feltétel ) { utasítás1; utasítás2; } else { utasítás3; utasítás4; } else ág elhagyható Több utasítás esetén kötelező a { }

C# utasítások szelekció if ( feltétel1 ) utasítás1; [else if ( feltétel2 ) utasítás2; [else if ( feltétel3 ) utasítás2; ] [else utasításn; ] else ág elhagyható Több utasítás esetén kötelező a { } else if ágakból tetszőleges számú használható

C# utasítások szelekció switch( kifejezés ) { case érték1 : utasítás(ok)1; break; case érték2 : utasítás(ok)2; break; [default: utasítás(ok)n; break;] } Ha a kifejezés értéke = érték1, akkor utasítás(ok)1, = érték2, akkor utasítás(ok)2, hajtódik végre Ha kifejezés értéke egyik case-ben megadottal sem egyenlő, akkor utasítás(ok)n hajtódik végre

C# utasítások iteráció while ( feltétel ) utasítás; while ( feltétel ) { utasítások; } Amíg a feltétel igaz, utasítások újra és újra végrehajtódik Ha a ciklusmagban több utasítás van, kötelező a { }

C# utasítások iteráció do { utasítás(ok); } while ( feltétel ); Amíg a feltétel igaz, utasítás(ok) újra és újra végrehajtódik Mindig kötelező a { }

C# utasítások iteráció for ( inicializáló_rész; feltétel; módosító_rész ) { } utasítások; Amíg a feltétel igaz, utasítások újra és újra végrehajtódik Több utasítás esetén kötelező a { } inicializáló_rész: ciklusváltozó(k) inicializálása módosító_rész: ciklusváltozó(k) értékének módosítása A zárójelek közti három rész közül egyiket sem kötelező megadni (végtelen ciklus)

C# utasítások iteráció foreach (típus ciklusváltozó in gyűjtemény) { } utasítások; A gyűjtemény (pl. tömb) összes elemén végiglépked Több utasítás esetén kötelező a { } A ciklusváltozó minden cikluslépésben a gyűjtemény aktuális elemének értékét tartalmazza ciklusváltozó a ciklusban nem változtatható meg gyűjteményből elemet törölni, vagy új elemet felvenni a cikluson belül nem lehet!