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

Hasonló dokumentumok
Objektumorientált Programozás III.

Objektumorientált Programozás V.

Objektum Orientált Programozás V.

Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII,

Objektumorientált Programozás VI.

Objektum Orientált Programozás VII.

Objektumorientált Programozás VI.

Objektum Orientált Programozás IV.

OOP III. A C# nyelv alapelemei

Objektumorientált Programozás IV.

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

A C# programozási nyelv alapjai

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

Készítette: Nagy Tibor István

BME MOGI Gépészeti informatika 5.

Egyszerű programozási tételek

Szoftvertervezés és -fejlesztés I.

Bevezetés a programozásba I.

Informatika terméktervezőknek

A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például: 3. feladat:)!

Bevezetés a programozásba I.

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

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

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

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

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

INFORMATIKAI ALAPISMERETEK

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

OOP III. A C# nyelv alapelemei II.

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

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

OOP: Java 1.Gy: Java alapok

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

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

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

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

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

Összetett programozási tételek

Vezérlési szerkezetek

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt:

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

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

Gyakorló feladatok az 1. nagy zárthelyire

BME MOGI Gépészeti informatika 13.

Java Programozás 1. Gy: Java alapok. Ismétlés ++

Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól.

C# gyorstalpaló. Készítette: Major Péter

C# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán

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

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

Programozási segédlet

Maximum kiválasztás tömbben

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

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

6. fejezet: Ciklusok

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

1. Alapok. Programozás II

BME MOGI Gépészeti informatika 4.

A C# PROGRAMOZÁSI NYELV

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

Programozás I. Szöveges fájlok kezelése Felsorolástípus Objektumtömb Gyakorló feladatok

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

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

INFORMATIKAI ALAPISMERETEK

PROGRAMOZÁS ALAPFELADATOK

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

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.

Java programozási nyelv

Programozási nyelvek Java

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

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

Objektumorientált Programozás II.

Bevezetés a programozásba I.

S z á m í t ó g é p e s a l a p i s m e r e t e k

C# feladatok gyűjteménye

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

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

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

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.

Java II. I A Java programozási nyelv alapelemei

BME MOGI Gépészeti informatika 1.

Bevezetés a Programozásba II 2. előadás. Adattípusok megvalósítása egységbe zárással. Adattípusok megvalósítása egységbe zárással

Objektumorientált programozás C# nyelven

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

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

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

Entity Framework alapú adatbáziselérés

Programozás C nyelven 5. ELŐADÁS. Sapientia EMTE

OOP: Java 8.Gy: Gyakorlás

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Kalapácsvetés 2016 szöveges

Programozás Minta programterv a 1. házi feladathoz 1.

INFORMATIKAI ALAPISMERETEK

Algoritmusok, adatszerkezetek, objektumok

Objektumorientált programozás C# nyelven

Vizuális, eseményvezérelt programozás XI.

Átírás:

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

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, 2013 2

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

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 double Pow() hatvány double + double double Sin(), Cos(), Tan() double (radián) double Asin(), Acos(), Atan() double double (radián) Abs() abszolút érték tetszőleges = bemenet típusa Min(), Max() 2 tetszőleges = bemenet típusa Round(), Ceiling(), Floor() (kerekítések) decimal / double = bemenet típusa OE-NIK, 2013 4

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 számítógép írja ki, hogy a tipp Túl nagy, vagy Túl kicsi using System; Random R = new Random(); int szam=r.next(0, 101); OE-NIK, 2013 5

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

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

Tömbbel végezhető tevékenységek C#-ban 1. Deklaráció int[] tomb; 2. Tömblétrehozás tomb = new int[10]; 3. Értékadás tomb[5] = 25; vagy tomb[5] = 6 * 2 29; 4. É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, 2013 8

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, 2013 9

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 OE-NIK, 2013 10

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ó OE-NIK, 2013 11

Break, continue Minden C#-os ciklusban alkalmazhatóak 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... } 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! 12

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

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.) ÓE-NIK, 2013 14

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; } ÓE-NIK, 2013 15

Feladatok 1. Határozza meg a tömb elemeinek összegét! (sorozatszámítás tétel) 2. Szerepel-e a tömbben öttel osztható szám? (eldöntés tétel) 3. Ha tudjuk, hogy szerepel a tömbben öttel osztható szám, akkor mi az indexe? (kiválasztás tétel) 4. 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) ÓE-NIK, 2013 16

Feladatok 5. Hány darab öttel osztható szám van a tömbben? (megszámlálás tétel) 6. Határozza meg a tömb legkisebb értékének indexét! (maximumkiválasztás tétel) ÓE-NIK, 2013 17

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, 2013 18

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 Tömb oszlopindexe legyen 0 OE-NIK, 2013 19

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, 2013 20

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, 2013 21

OE-NIK, 2013 22

OE-NIK, 2013 23