Programozás I. Matematikai lehetőségek Műveletek tömbökkel

Slides:



Advertisements
Hasonló előadás
2012. tavaszi félév Véső Tamás. A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,
Advertisements

Algoritmusok.
Programozási tételek, és „négyzetes” rendezések
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Tömbök C#-ban.
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
Programozási feladatok az érettségin
3. előadás (2005. március 1.) Utasítások, tömbök
© Kozsik Tamás Tömbök, kollekciók és egyéb alaposztályok.
Programozási alapismeretek 4. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 4.2/  A szöveg A szöveg.
Programozási alapismeretek 10. előadás
Programozási alapismeretek 8. előadás. ELTE 2/  További programozási tételek További programozási tételek 
Dinamikus tömbök.
Sztringek.
Bevezetés a Java programozásba
C A C nyelv utasításai.
Egy feladat megoldásának gondolatmenete. Feladat: Generáljuk véletlen számokat 1 és 6 között, amíg legalább 10 darab egyes és 10 darab hatos nem lesz.
Készítette: Pető László
Java programozási nyelv 2. rész – Vezérlő szerkezetek
ELTE Szlávi-Zsakó: Programozási alapismeretek 10.1/ Összegzés mátrixra Feladat: Egy mátrix elemeinek összege.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Programozás I. Ciklusok
Programozás I Függvények általános jellemzői
Programozás C# -ban Elágazások.
P ROGRAMOZÁS I/O műveletek. S YSTEM.C ONSOLE A programjainknak fontos része a felhasználóval való kommunikáció. Adatokat kell kérni tőle, vagy közölnünk.
V 1.0 ÓE-NIK, Programozás I. A Microsoft Visual Studio 2010 használata.
Összetett adattípusok
Félévi típus feladatok
Szabványos függvények a Pascalban. Bevezetés Pascalban a függvények feladata, hogy a bemenő paraméterekből előállítsák a függvényértékeket Függvényeket.
2012. tavaszi félév Véső Tamás Véső Tamás OE­NIK / 29.
Tömbök és programozási tételek
Ciklusok (iterációk).
Összetett adattípusok
1. Gyakorlat - Alapok 1. Írjon konzolprogramot, amely kiírja a “Hello ELTE” üzenetet! Használja a System.out.println() -t! 2. Írjon konzolprogramot, amely.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
AAO Csink László november.
Nevezetes algoritmusok
Java programozási nyelv Adatbekérés konzolról
Objektum orientált programozás
2. Gyakorlat Zalatnai Csongor
V 1.0 ÓE-NIK-AII, Programozás I. Karaktersorozatok Feladatok.
A Visual Basic nyelvi elemei
Operátorok Vezérlési szerkezetek Gyakorlás
Táblázatkezelés KÉPLETEK.
ProgramozásProgramozás célja hosszabb számítások elvégzése ill. kiíratása akkor érdemes programot írni, ha sok számolni való van illetve ha ugyanazt az.
Feladatok (értékadás)
Programozási alapismeretek * A Zh-írás módszertana.
1. feladat  Készíts olyan függvényt, mely paraméterül kapja két egész típusú változó címét, s hívása után a két változó értéke helyet cserél.
Programozási alapismeretek 10. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 10.2/  Kiválogatás + összegzés.
Excel programozás (makró)
C++2. Ciklusok elöltesztelő (for, while) A ciklusmag feldolgozása előtt történik a vizsgálat  lehet, hogy egyszer sem fut le. A soronkövetkező iteráció.
Informatikai gyakorlatok 11. évfolyam
TÁMOP /1-2F Felkészítés szakmai vizsgára, informatika területre modulhoz II/14. évfolyam Az interaktív vizsga jellegzetes feladattípusainak.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Utasítás és blokk. Elágazás típusai, alkalmazása Kovács.
1 Mivel foglalkoz(t)unk a laborokon? 1.Labor: Word alapok Excel alapok: Excel alapok: Cellahivatkozás, munkalapfüggvény, diagram varázsló, trendvonal 2.
V 1.0 OE-NIK, Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok.
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009.
Gépészeti informatika (BMEGEMIBXGI)
Nevezetes algoritmusok
Programozás C# -ban Elágazások.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Informatikai gyakorlatok 11. évfolyam
B M Java Programozás 1. Gy: Java alapok IT A N Ismétlés ++
Algoritmus készítés.
Programozási tételek.
Előadás másolata:

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

Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges, de nem elégséges feltétele a sikeres zárthelyinek, illetve vizsgának. Sikeres zárthelyihez, illetve vizsgához a jelen bemutató tartalmán felül a kötelező irodalomként megjelölt anyag, a gyakorlatokon szóban, illetve a táblán átadott tudnivalók ismerete, valamint a gyakorlatokon megoldott példák és az otthoni feldolgozás céljából kiadott feladatok önálló megoldásának képessége is szükséges. OE-NIK-AII, 2014

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

Matematikai függvények Elérésük: System.Math.Bármi(); using System; esetén Math.Bármi(); Math.PI (nem kell zárójel, mert ez nem eljárás, hanem konstans!) Függvény Bemenet Kimenet Sqrt() – négyzetgyök double Pow() – hatvány double + double Sin(), Cos(), Tan() double (radián) Asin(), Acos(), Atan() Abs() – abszolút érték tetszőleges = bemenet típusa Min(), Max() 2 tetszőleges Round(), Ceiling(), Floor() – (kerekítések) decimal / double Min(a,b)  kisebb érték Max(a, b)  nagyobb érték Round(a), Ceiling(a), Floor(a)  megfelelő irányba kerekít, de NEM CSERÉL TÍPUST! OE-NIK-AII, 2014

Gyakorló feladat Készítsük el a következő feladat C# kódját: A számítógép hozzon létre egy véletlen számot a [0..100] intervallumban! A felhasználónak a feladata a szám kitalálása. A program írja ki, hogy a tipp „Túl nagy”, vagy „Túl kicsi” Mondjuk el a using System-et, hogy ne kelljen System.Bármi –t írni using System; Random R = new Random(); int szam=R.Next(0, 101); OE-NIK-AII, 2014

Készítsünk másodfokú egyenletet megoldó programot! Gyakorló feladat Készítsünk másodfokú egyenletet megoldó programot! OE-NIK-AII, 2014

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

Tömbbel végezhető tevékenységek C#-ban Deklaráció int[] tomb; Tömblétrehozás tomb = new int[10]; Értékadás tomb[5] = 25; vagy tomb[5] = 6 * 2 – 29; Érték lekérdezése 5 * 10 – tomb[5] + 2 A deklaráció és a tömblétrehozás összevonható: int[] tomb = new int[10]; OE-NIK-AII, 2014

Tömbbel végezhető tevékenységek C#-ban (melyik kód helyes?) int[] tomb; Console.WriteLine(tomb[2]); int[] tomb = new int[4]; Console.WriteLine(tomb[-1]); int[] tomb = new int[4]; Console.WriteLine(tomb[4]); int[] tomb = new int[4]; Console.WriteLine(tomb[0]); int[] tomb = new int[4]; Console.WriteLine( tomb[tomb.Length]); int[] tomb = new int[4]; tomb[3] = 22; Console.WriteLine(tomb[3]); OE-NIK-AII, 2014

A for utasítás for (inicializátor ; feltétel ; iterátor ) utasítás Az inicializátor és az iterátor tetszőleges utasítás lehet Működése: Belépéskor egyszer végrehajtódik az inicializátor Minden ciklusmenetben kiértékelődik a feltétel Amennyiben a feltétel igaz, az utasítás ciklusmag egyszer lefut A ciklusmag végeztével végrehajtódik az iterátor és ismét kiértékelődik a feltétel A ciklus akkor ér véget, amikor a feltétel hamissá válik, ellenkező esetben újabb ciklusmenet következik Általában az inicializátor egy számlálót állít be, az iterátor pedig ezt a számlálót növeli vagy csökkenti Legtöbbször akkor használjuk, ha előre ismert számú alkalommal szeretnénk végrehajtani egy utasítást A „for”, „while” és „do…while” utasítások egyenértékűek Az inicializátor és az iterátor állhat több helyi változót deklaráló utasításból is, ilyenkor kivételesen vesszővel kell őket elválasztani és nincs szükség a { } karakterekre sem OE-NIK-AII, 2014

A foreach foreach (típus változó in gyűjtemény) utasítás Lehetővé teszi egy utasítás végrehajtását egy adott gyűjtemény összes elemére A „gyűjtemény” pontos fogalmát később részletesen tárgyaljuk A tömbök gyűjtemények, tehát a foreach utasítás használható hozzájuk Működése: Belépéskor létrejön egy „típus” típusú változó („iterációs változó”) Ez a változó csak az utasításon belül használható Az utasítás annyiszor hajtódik végre, ahány elemet tartalmaz a gyűjtemény Az iterációs változó minden egyes végrehajtásnál felveszi a gyűjtemény soron következő elemének értékét Az iterációs változó az utasításban nem módosítható Erre a célra a for utasítás használható Az iteráció sorrendjét maga a gyűjtemény dönti el, ezért nincs arra garancia, hogy az iteráció az első elemtől kezdődik és növekvő sorrendben hajtódik végre (bár általában így történik) OE-NIK-AII, 2014

Break, continue Minden C#-os ciklusban alkalmazhatóak Többnyire helyettesíthetők (continue helyett if v. if-else, break helyett pl. a for ciklus fejében feltétel) Elméleten (pl. vizsgán) és egyelőre gyakorlaton is TILOS őket használni! foreach (int i in tomb) { if (i < 0) vanNegativ = true; break; //kilép a ciklusból } for (int i = 0; i < tomb.Length; i++) { if (tomb[i] < 0) continue; //kihagyja ezt a ciklusmenetet, //a következő jön azonnal //… csinálunk valamit a nemnegatív számmal... } OE-NIK-AII, 2014

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

Egyszerű programozási tételek A következő feladatokban az A tömb adott számú egész számot tartalmaz. A tömb elemei 0 és 100 között véletlen számok. A tömb feltöltése érdekében készítsen önálló metódust! Az A tömb mérete: A.Length segítségével határozható meg Készítsen metódust, mely kilistázza tömb elemeit! Minden egyes feladatot külön metódussal valósítson meg! (Érdemes egy olyan metódust is készíteni, amely egy szám öttel való oszthatóságát vizsgálja.) OE-NIK-AII, 2014

Metódus szintaktikája static Típus MetódusNév(ParTípus1 par1, ParTípus2 par2) { //metódustörzs return ...; } Példa1: static bool OszthatóÖttel(int szám) { return szám % 5 == 0; } Példa2: static int[] BeolvasTömb(int[] a) { Console.Write("Elemszám = "); a = new int[int.Parse(Console.ReadLine())]; for (int i = 0; i < a.Length; i++) Console.Write(i + ". elem = "); a[i] = int.Parse(Console.ReadLine(); } return a; OE-NIK-AII, 2014

Feladatok Határozza meg a tömb elemeinek összegét! (sorozatszámítás tétel) Szerepel-e a tömbben öttel osztható szám? (eldöntés tétel) Ha tudjuk, hogy szerepel a tömbben öttel osztható szám, akkor mi az indexe? (kiválasztás tétel) Szerepel-e a tömbben öttel osztható szám, és ha igen, akkor mi az indexe? (A metódus visszatérési értéke -1 legyen, ha nincs öttel osztható szám, egyébként pedig a megfelelő elem indexe.) (lineáris keresés tétel) OE-NIK-AII, 2014

Feladatok Hány darab öttel osztható szám van a tömbben? (megszámlálás tétel) Határozza meg a tömb legkisebb értékének indexét! (maximumkiválasztás tétel) OE-NIK-AII, 2014

Gyakorló feladatok Készítsünk algoritmust, majd programot, amely elvégzi egy egydimenziós tömb feltöltését a konzolról beolvasott adatokkal! Tömb indexe legyen 0 Amíg a tömb indexe nem haladja meg a maximumot Következő elem beolvasása Tömb indexének növelése OE-NIK-AII, 2014

Gyakorló feladatok Készítsünk algoritmust, majd programot, amely a konzolról beolvassa egy kétdimenziós, 3x3-as tömb minden elemét, majd kiírja a tömb teljes tartalmát! Tömb sorindexe legyen 0 Tömb oszlopindexe legyen 0 Amíg a tömb sorindexe nem haladja meg a maximumot Amíg a tömb oszlopindexe nem haladja meg a maximumot Következő elem beolvasása Tömb oszlopindexének növelése Tömb sorindexének növelése OE-NIK-AII, 2014

Gyakorló feladatok Olvasson be maximum n db. egész számot egy tömbbe, ezután döntse el a negatívok összegét, a pozitívok átlagát és a zérusok darabszámát! Az előző feladat tömbjéből másolja ki egy másik, megfelelő elemszámú tömbbe a nemnegatív számokat. Kérjen be a felhasználótól hónapnevet! Egészen addig ne fogadja el a bemenetet, amíg tényleg hónapnevet nem ír be. (Ellenőrizze: a hónapneveket tömbben tárolja, ha a felhasználó bemenete nem szerepel ebben, akkor kérje újra.) Töltsön fel egy mátrixot FOR ciklusok segítségével, majd állítsa elő a transzponáltját (a sorokat fel kell cserélni az oszlopokkal), és írassa ki mindkét mátrixot! OE-NIK-AII, 2014

Irodalom, feladatok Kotsis-Légrádi-Nagy-Szénási: Többnyelvű programozástechnika, PANEM, Budapest, 2007 Faraz Rasheed: C# School, Synchron Data, 2006 http://www.programmersheaven.com/2/CSharpBook Reiter István: C# jegyzet, DevPortal, 2010, http://devportal.hu/content/CSharpjegyzet.aspx OE-NIK-AII, 2014

OE-NIK-AII, 2014

OE-NIK-AII, 2014