Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Informatikai gyakorlatok 11. évfolyam
Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009 TÁMOP /1-2F
2
Programozási tételek (1.)
Vannak olyan típusfeladatok, amelyeket igen hasonlóan kell megoldani. Például: átlagszámítás egy sorozat elemein bizonyos feltételnek megfelelő elemek megszámolása legkisebb / legnagyobb elem meghatározása adott elem megkeresése Ezen feladatok megoldására általános algoritmusokat adunk, amelyeket programozási tételeknek nevezünk.
3
Programozási tételek (2.)
A továbbiakban legyen: v: tetszőleges elemtípusú vektor n: egész (a vektor tényleges, valódi elemszáma) adott tulajdonság: a feladat szövegéből következő logikai függvény (pl. egy adott szám páros, nagyobb mint 1000, egyenlő egy konkrét értékkel, stb.) A vektor elemtípusa lehet struktúra is, de a tételt mindig a rekord egy mezőjére kell felírni.
4
Összegzés tétele (algoritmus)
Adott a v[1..n] vektor, amelynek elemein értelmezhető az összeadás művelete. Számítsuk ki a vektor elemeinek összegét (ossz változó)! Algoritmus: ossz := 0 ciklus i:=1-től n-ig ossz := ossz + v[i] ciklus vége. Mire kell figyelni a kódolásnál? A kezdőérték nem biztos, hogy 0. C# nyelvben a tömb indexelése 0-tól indul.
5
Összegzés tétele (kód)
int ossz = 0; for (int i=0; i<n; i++) { ossz += v[i]; } Alkalmazás: átlagszámítás összegzés után double atl = ossz / (double)n;
6
Megszámlálás tétele (algoritmus)
Adott a v[1..n] vektor, amelynek elemein értelmezhető az adott tulajdonságfüggvény. Számoljuk meg, hogy a vektorban hány darab, az adott tulajdonságnak megfelelő elem található (db változó)! Algoritmus: db := 0 ciklus i:=1-től n-ig ha v[i] adott tulajdonságú akkor db := db + 1 ciklus vége. Mire kell figyelni a kódolásnál? Mindig adjunk 0-t kezdőértéknek! C# nyelvben a tömb indexelése 0-tól indul.
7
Megszámlálás tétele (kód)
Kód (például legyen a tulajdonságfüggvény, hogy az adott elem páros): int db = 0; for (int i=0; i<n; i++) { if (v[i]%2 == 0) db++; } Konkrét feladat esetén csak a pirossal jelölt feltételt kell másra kicserélni!
8
Minimum- és maximumkiválasztás tétele (algoritmus)
Adott a v[1..n] vektor, amelynek elemein értelmezhető a kisebb / nagyobb reláció. Válasszuk ki a vektor legkisebb / legnagyobb elemét! A min változó jelentse a minimum helyét, azaz indexét! Algoritmus: min := 1 ciklus i:=2-től n-ig ha v[i]<v[min] akkor min := i ciklus vége. Mire kell figyelni a kódolásnál? C# esetén 0 kezdőértékkel kell indulnunk. Maximumkiválasztásnál a reláció megfordul.
9
Minimum- és maximumkiválasztás tétele (kód)
int min = 0; for (int i=1; i<n; i++) { if (v[i]<v[min]) min = i; } Struktúrából álló tömb esetén a feltételvizsgálat például így nézhet ki: if (v[i].terulet<v[min].terulet)
10
Lineáris keresés tétele (algoritmus)
Adott a v[1..n] vektor, amelynek elemein értelmezhető az adott tulajdonságfüggvény. Keressük meg a vektor első adott tulajdonságú elemét! Az l logikai változó legyen igaz, ha sikerült találni ilyen elemet, és ekkor az i tartalmazza az első adott tulajdonságú elem indexét. Algoritmus: i := 1 ciklus amíg i<=n és NEM(v[i] adott tulajdonságú) i := i+1 ciklus vége. l := (i<=n)
11
Lineáris keresés tétele (algoritmus)
Mire kell figyelni a kódolásnál? C# esetén 0 kezdőértékkel kell indulnunk, és i<=n helyett mindenhol i<n szerepel. C# nyelvben a tagadás a ! operátor segítségével írható. Speciális esetben, ha a tulajdonság egyenlőségvizsgálat, akkor annak tagadását a != jellel vizsgálhatjuk.
12
Lineáris keresés tétele (kód)
Kód (például legyen a tulajdonságfüggvény, hogy az adott elem páros): int i = 0; while (i<n && v[i]%2 != 0) { i++; } bool l = (i<n); Konkrét feladat esetén csak a pirossal jelölt feltételt kell másra kicserélni!
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.