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

Hasonló dokumentumok
Objektumorientált Programozás I.

Objektumorientált Programozás III.

Java II. I A Java programozási nyelv alapelemei

Szoftvertervezés és -fejlesztés I.

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

PASzSz. Dr. Kotsis Domokos

OOP III. A C# nyelv alapelemei II.

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

Objektumorientált Programozás VI.

Java II. I A Java programozási nyelv alapelemei

Objektumorientált Programozás IV.

A C# programozási nyelv alapjai

Objektum Orientált Programozás IV.

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

Kifejezések. Kozsik Tamás. December 11, 2016

OOP III. A C# nyelv alapelemei

OOP II. A C# nyelv alapelemei I.

OOP II. A C# nyelv alapelemei I.

A C# PROGRAMOZÁSI NYELV

Készítette: Nagy Tibor István

Objektumorientált Programozás VI.

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

Informatika terméktervezőknek

OOP: Java 1.Gy: Java alapok

OOP II. A C# nyelv alapelemei I.

INFORMATIKA MATEMATIKAI ALAPJAI

3. Gyakorlat Ismerkedés a Java nyelvvel

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

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

OOP II. A C# nyelv alapelemei

Szoftvertechnológia alapjai Java előadások

Vektorok. Octave: alapok. A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István

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

Objektumorientált programozás C# nyelven III.

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Programozás alapjai. 5. előadás

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

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

7. fejezet: Mutatók és tömbök

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

INFORMATIKAI ALAPISMERETEK

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

A C# nyelv alapelemei

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

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

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.

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

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

Maximum kiválasztás tömbben

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

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév

Objektumorientált programozás C# nyelven III.

Objektum Orientált Programozás VII.

Szoftvertervezés és -fejlesztés I.

Stack Vezérlés szerkezet Adat 2.

Programozás I gyakorlat

7. Strukturált típusok

Occam 1. Készítette: Szabó Éva

Objektumorientált Programozás II.

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

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

117. AA Megoldó Alfréd AA 117.

Objektumorientált programozás C# nyelven

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

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

Bevezetés a programozásba I.

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

GYAKORLATIAS JAVA MINTA

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

1. Alapok. Programozás II

Programozás 1. Dr. Iványi Péter

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

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

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

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

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

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

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

Amortizációs költségelemzés

Bevezetés a programozásba I.

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

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

6. A Pascal nyelv utasításai

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

2. Fejezet : Számrendszerek

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

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

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

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

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

Bevezetés a programozásba I.

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

Webprogramozás szakkör

Algoritmusok, adatszerkezetek, objektumok

Objektumorientált programozás C# nyelven

BME MOGI Gépészeti informatika 5.

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

Átírás:

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

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. 2007.10.20. 2

Algoritmus készítése Elemi lépésekre kell bontani. Az összes lehetséges eseményt számba kell venni. Véges sok lépésben érjen véget. 2007.10.20. 3

Blokkdiagram Teendı Ezt kell tenni Döntés i Így van? n Sorrend 2007.10.20. 4

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

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

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

Struktogram Szekvencia Ezt kell tenni. Azután ezt. Utána ezt. Elágaztatás Ha igaz Állítás Ha hamis Újra? Ciklus Nincsenek nyilak! Teendık Újra? Teendık 2007.10.20. 8

Rablók IV. Bunkót kézbe Leshelyre ki Amíg nincs este és nem elég a pénz n Lesés Lesés i Jön a karaván? n kirablás Kirablás Várakozás i Van elég pénz? n Kocsma Haza Haza 2007.10.20. 9

Feladat Készítsen algoritmust a másodfokú egyenlet megoldására. (ax 2 + bx + c = 0) a 0? i n b 2 4ac? b 0? i n i n b 2 > 4ac? c 0? x 1,2 i = b ± 2 b 2a 4ac x = n b 2a Nincs valós gyök x = c b i Ellentmondás n Azonosság 2007.10.20. 10

Szöveges leírás I. Szekvencia Elágaztatás Ez a sor nem kötelezı A végén ;, az egész sorozatot tegyük kapcsos zárójelek közé: {ez legyen; az legyen;} Ha (feltétel) {ez legyen;} egyébként {az legyen;} 2007.10.20. 11

Szöveges leírás II. Ciklus 1. amíg (feltétel) {ezek ismétlıdjenek;} Ciklus 2. tedd {ezek ismétlıdjenek;} amíg (feltétel) 2007.10.20. 12

Szöveges leírás III. Szekvencia A végén ;, az egész sorozatot tegyük kapcsos zárójelek közé: {ez legyen; az legyen;} Elágaztatás if (feltétel) {ez legyen;} else{az legyen;} Ez a sor nem kötelezı 2007.10.20. 13

Szöveges leírás IV. Ciklus 1. while (feltétel) {ezek ismétlıdjenek;} Ciklus 2. do {ezek ismétlıdjenek;} while (feltétel) 2007.10.20. 14

Feladat Készítsük el az alábbi feladat megoldásának struktogramját és szöveges leírását: Beolvasunk egész számokat. Ha negatív az éppen beolvasott szám, akkor számítsuk ki az eddig beolvasott számok átlagát! Tegyük fel, hogy ismert egy beolvasó és egy kiíró parancs. 2007.10.20. 15

Feladat Készítsük el az alábbi feladat megoldásának struktogramját és szöveges leírását: Beolvasunk egész számokat. Ha negatív az éppen beolvasott szám, akkor számítsuk ki az eddig beolvasott számok átlagát, de a számításból hagyjuk ki a legnagyobbat és a legkisebbet! Tegyük fel, hogy ismert egy beolvasó és egy kiíró parancs. 2007.10.20. 16

Algoritmus végrehajtása számítógépen Neumann elvő számítógép: Processzor Operatív memória I/O 2007.10.20. 17

Parancsok, adatok A számítógépben minden adat és utasítás bináris módon ábrázolódik, a felhasználás dönti el, parancs, vagy adat, és ha adat, minek tekintsük, hogyan értelmezzük. A deklarációval rendelkezhetünk arról, hogy egy-egy adatot hogyan értelmezzünk 2007.10.20. 18

Egyszerő adattípusok Számok Egész Valós Karakterek, stringek Logikai értékek 2007.10.20. 19

Egész (fixpontos) számok Bináris (kettes számrendszerbeli) számok. Elıjeles, elıjel nélküli. Mérete a byte (= 8 bit) többszöröse. Kis számtartomány ábrázolható, de pontos. Elnevezés jellemzıen: integer,int az elıjeles, u betővel (unsigned) az elıjel nélküli. 2007.10.20. 20

Valós (lebegıpontos) számok Karakterisztika, mantissza ábrázolás. Nagy számtartomány, nem pontos. A karakterisztika mérete az ábrázolás Határait, A mantissza mérete a pontosságot határozza meg. Elnevezés jellemzıen: real, float, double. (Ez utóbbi hosszabb, pontosabb.) 2007.10.20. 21

Karakterek, stringek Karakter: régebben egy byte, újabban UNICODE. Elnevezés jellemzıen: char. String: karaktersorozat (karakterfüzér). Elnevezés jellemzıen: string. 2007.10.20. 22

Logikai értékek Igaz (true), vagy hamis (false) érték. Elnevezés jellemzıen: bool, boolean. 2007.10.20. 23

Értékek használata I. Az értékeket változókban tárolhatjuk, A legtöbb nyelvnél meg kell adni a változó típusát (deklarálás): Pl. egy egész típusú változó: int i; Ennek adhatunk értéket: i=3; Mindezt késıbb magyarázzuk részletesen. 2007.10.20. 24

Értékek használata II. Pl. egy valós típusú változó: float x; Ennek is adhatunk értéket: x=3.14; Pl. egy karakter típusú változó: char c; Ennek adhatunk értéket: c= c ; Mindezt késıbb magyarázzuk részletesen. 2007.10.20. 25

Értékek használata III. Az értékeket változókban tárolhatunk, A legtöbb nyelvnél meg kell adni a változó típusát (deklarálás): Pl. s egy string típusú változó: string s; Ennek adhatunk értéket: s= kutya füle ; Mindezt késıbb magyarázzuk részletesen. 2007.10.20. 26

Értékek használata IV. Használhatunk konstansokat is: A számokat egyszerően, a karaktereket, a stringeket jelek között beírhatjuk. Logikai esetben a true, ill. false szavakat használjuk. Mindezt késıbb magyarázzuk részletesen. 2007.10.20. 27

Felületes segítség 1. A programot az alábbi keretbe írjuk: class mindegy { static void Main() ide jön a program } /* és */ között megjegyzéseket írhatunk. Mindezt késıbb magyarázzuk részletesen. 2007.10.20. 28

Felületes segítség 2. A számítógép számára elemi utasítások pl. az alapmőveletek, továbbá egyes elemi funkciók pl. a s=system.console.readline(); beolvas s-be (s string) egy karakter sorozatot, a System.Console.Write(a); System.Console.WriteLine(a); kiírja a értékét (az utóbbi sort is emel). Mindezt késıbb magyarázzuk részletesen. 2007.10.20. 29

Felületes segítség 3. A programokat bármely text editorban (pl. Notepad) megírhatjuk, a program neve valami.cs legyen. A programot (pl. Total Commander-bıl) a cmd paranccsal meghívott ablakból, a csc valami.cs parancssorral indíthatjuk, ha jó, elkészül a valami.exe ami elindítható. (Ehhez a Path rendszerváltozónak tartalmaznia kell a \WINDOWS\Microsoft.NET\Framework\v2.0.50727\ hivatkozást.) Mindezt késıbb magyarázzuk részletesen. 2007.10.20. 30

Feladat Készítsük el az alábbi feladat megoldásának programját: Beolvasunk egész számokat. Ha negatív az éppen beolvasott szám, akkor számítsuk ki az eddig beolvasott számok átlagát! A beolvasott s string-et pl. egy (célszerően valós) k számmá kell konvertálni. Ez pl. a k=float.parse(s) kifejezéssel lehetséges. Mindezt késıbb magyarázzuk részletesen. 2007.10.20. 31

Deklarácók, elsı érték adások static void Main() { float szumma,utolsó; int darab; szumma=0; darab=0; string s1; s1=system.console.readline(); utolsó=float.parse(s1); 2007.10.20. 32

Fı ciklus, eredmény kiíratás while (utolsó>=0) { szumma=szumma+utolsó; darab=darab+1; s1=system.console.readline(); utolsó=float.parse(s1); } if (darab>0) System.Console.WriteLine(szumma/darab); else System.Console.WriteLine("Nincs elég adat!"); System.Console.ReadLine(); } 2007.10.20. 33

Feladat Készítsük el az alábbi feladat megoldásának programját: Beolvasunk egész számokat. Ha negatív az éppen beolvasott szám, akkor számítsuk ki az eddig beolvasott számok átlagát, de a számításból hagyjuk ki a legnagyobbat és a legkisebbet! 2007.10.20. 34

Deklarácók, elsı érték adások { static void Main() { float szumma,utolsó,max,min; int darab; szumma=0; darab=0; max=0; string s1; s1=system.console.readline(); utolsó=float.parse(s1); min=utolsó; 2007.10.20. 35

Fı ciklus while (utolsó>=0) { szumma=szumma+utolsó; darab=darab+1; if (utolsó>max) max=utolsó; if (utolsó<min) min=utolsó; s1=system.console.readline(); utolsó=float.parse(s1); } 2007.10.20. 36

Eredmény kiíratás } } if (darab>2) System.Console.WriteLine((szumma-max-min)/(darab-2)); else System.Console.WriteLine("Nincs elég adat!"); System.Console.ReadLine(); 2007.10.20. 37