1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.

Slides:



Advertisements
Hasonló előadás
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Advertisements

1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Összetett adattípusok 8/b tétel
Tömbök C#-ban.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Objective- C Bereczki Gréta Tamara
JavaScript.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
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.
C# tagfüggvények.
C# tagfüggvények.
Web-grafika (VRML) 10. gyakorlat Kereszty Gábor. Script típusok Elemi típusok: szám: egész vagy lebegőpontos – int / float – 1 / 1.1 string: ‘Hello World!’
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
A JAVA TECHNOLÓGIA LÉNYEGE Többlépcsős fordítás A JAVA TECHNOLÓGIA LÉNYEGE Platformfüggetlenség.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Programozás C# -ban Elágazások.
Programozás C# -ban Tömbök.
P ROGRAMOZÁS C# - BAN Kivételkezelés. P ÉLDA I. Nullával való osztás miatt kapjuk a hibaüzenetet.
Programozás Az adatokról C# -ban.
Tömbök Csernoch Mária.
Összetett adattípusok
Beolvasó utasítás Console.Read();  Int típusú adatot kapunk. Console.ReadLine();  String típusú adatot kapunk. Console.ReadKey();  Tetszőleges billentyű.
VI. Konténerek 18. Tömbök 19. Rendezés, keresés, karbantartás
A REKORD TIPUS Páll Boglárka. Ismétlés: Feladat Készítsünk kimutatást a XI.B osztály tanulóiról. Minden tanuló esetén a következő adatokat tartjuk nyilván:
Készítette: Csíki Gyula
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
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 Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
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 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 Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
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.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Generics Krizsán Zoltán. Bemutató A.NET 2.0 verziótól. A.NET 2.0 verziótól. Típusparaméter Típusparaméter Más nyelvben ez a template (sablon). Más nyelvben.
Egyenesvonalú (lineáris) adatszerkezetek
Objektum orientált programozás
Programozás I. Matematikai lehetőségek Műveletek tömbökkel
A Visual Basic nyelvi elemei
Excel programozás (makró)
Programtervezés, programozás I. 2.5 tömbök,stringek
Informatikai gyakorlatok 11. évfolyam
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Excel programozás (makró)
Hernyák Zoltán Programozási Nyelvek II.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hernyák Zoltán Programozási Nyelvek II.
Informatikai gyakorlatok 11. évfolyam
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
A struct, az union és az enum típus
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Informatikai gyakorlatok 11. évfolyam
Előadás másolata:

1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy Károly Főiskola Számítástudományi tsz

2 Kezdőérték Köv. véletlen szám Ál-véletlen szám: a köv. véletlen számot az előzőből kapjuk valamilyen számítás végeredményeképp…

3 Véletlen számok használata Random rnd = new Random(); int a = rnd.Next(10,30); double d = rnd.NextDouble(); int a = rnd.Next(25); rnd változón keresztül lehet majd később véletlen számokat előállítani [10,30) intervallumbeli egész szám [0,25) intervallumbeli egész szám [0,1) intervallumbeli valós szám

4 Rekordok használata A rekord egy összetett, felhasználó által definiált adatszerkezet A rekord mezőkből áll Minden mező tetszőleges (más-más) típusú lehet Vagyis a rekord egy inhomogén adatszerkezet A mezők száma nem korlátos

5 Első lépés – a típus leírása class Alkalmazott { public string Neve; public int Eletkora; public int Fizetese; public char Beosztasa; } class Alkalmazott { public string Neve; public int Eletkora; public int Fizetese; public char Beosztasa; } A típus neve A mezők felsorolása Kötelező kulcsszó, jelentését a II. félévben (OOP tisztázzuk A mező típusa A mező neve

6 Második lépés – változó deklarálása Alkalmazott alk; alk = new Alkalmazott(); Harmadik lépés – változó kezdőértékadása MemóriafoglalásA mezők kezdőértékeinek beállítása Alkalmazott alk = new Alkalmazott();

7 Negyedik lépés – a változó használata alk.Neve = ”Kis Barnabás”; alk.Eletkora = 35; alk.Fizetese = ; alk.Beosztasa = ‘F’; alk.Neve = ”Kis Barnabás”; alk.Eletkora = 35; alk.Fizetese = ; alk.Beosztasa = ‘F’;

8 Mezőkhöz is lehet kezdőértéked megadni class Kor { public int x_koord = 0; public int y_koord = 0; public double sugar = 1.0; public string szine = ”fekete”; } class Kor { public int x_koord = 0; public int y_koord = 0; public double sugar = 1.0; public string szine = ”fekete”; } Kor k = new Kor(); Console.WriteLine(k.sugar); Kor k = new Kor(); Console.WriteLine(k.sugar);

9 Napok nap = Napok.Hetfo; if (nap==Napok.Kedd)... Console.WriteLine( nap ); Napok nap = Napok.Hetfo; if (nap==Napok.Kedd)... Console.WriteLine( nap ); enum Napok { Hetfo, Kedd, Szerda, Csutortok, Pentek, Szombat, Vasarnap } enum Napok { Hetfo, Kedd, Szerda, Csutortok, Pentek, Szombat, Vasarnap } Kötelező kulcsszóAz új típus neve Változódeklaráció: típus + azonosító

10 Napok nap; string s = Console.ReadLine(); if (s==”Hetfo”) nap = Napok.Hetfo; … Napok nap; string s = Console.ReadLine(); if (s==”Hetfo”) nap = Napok.Hetfo; … switch( s ) { case „Hetfo”: nap = Napok.Hetfo;break; case „Kedd” : nap = Napok.Kedd;break;... default: Console.WriteLine(”HIBAS ERTEK!”); break; } switch( s ) { case „Hetfo”: nap = Napok.Hetfo;break; case „Kedd” : nap = Napok.Kedd;break;... default: Console.WriteLine(”HIBAS ERTEK!”); break; }

11 string s = Console.ReadLine(); nap = (Napok)Enum.Parse(typeof(Napok),s); string s = Console.ReadLine(); nap = (Napok)Enum.Parse(typeof(Napok),s); Bár ezzel vigyázni kell, mert ha nem megfelelő az ‘s’ string tartalma (nem felismerhető), akkor ez futás közbeni hibát fog okozni!

12 class Kor { public int x_koord = 0; public int y_koord = 0; public double sugar = 1.0; public Szinek szine = Szinek.Zold; } class Kor { public int x_koord = 0; public int y_koord = 0; public double sugar = 1.0; public Szinek szine = Szinek.Zold; } Kor k = new Kor(); Console.WriteLine(k.sugar); Kor k = new Kor(); Console.WriteLine(k.sugar); enum Szinek { Piros, Fekete, Zold }

13 int[] jegyek = new int [35]; Int alapú tömb változónévMemória- foglalás 35 db int- nek jegyek jegyek[0] jegyek[1] jegyek[2]jegyek[34]

14 Tömbök A tömb egy összetett, felhasználó által definiált adatszerkezet A tömb elemekből áll Minden elem ugyanazon típusú kell legyen (tömb alaptípusa) Vagyis a tömb egy homogén adatszerkezet Az elemek száma nem korlátos, de a tömb létrehozásakor meg kell adni a maximális elemszámot

15 int [ ] jegyek = new int [35]; Egydimenziós tömb – VEKTOR jegyek [ 34 ] int [, ] iskola = new int [10,40]; Kétdimenziós tömb – MÁTRIX Első index 0..9, második index x40 = 400 elem iskola [ 9, 39 ]

16 int[] jegyek = new int [35]; for(int i=0; i<jegyek.Length; i++) { string s = Console.ReadLine(); jegyek[i] = int.Parse( s ); } for(int i=0; i<jegyek.Length; i++) { string s = Console.ReadLine(); jegyek[i] = int.Parse( s ); } int osszeg = 0; for(int i=0; i<jegyek.Length; i++) { osszeg += jegyek[i]; } int osszeg = 0; for(int i=0; i<jegyek.Length; i++) { osszeg += jegyek[i]; }

17 int[] jegyek = new int [35]; int osszeg = 0; for(int i=0; i<jegyek.Length; i++) { osszeg += jegyek[i]; } int osszeg = 0; for(int i=0; i<jegyek.Length; i++) { osszeg += jegyek[i]; } int osszeg = 0; foreach(int a in jegyek) { osszeg += a; } int osszeg = 0; foreach(int a in jegyek) { osszeg += a; }

18 int[] jegyek = new int [35]; int osszeg = 0; foreach(int a in jegyek) { osszeg += a; } int osszeg = 0; foreach(int a in jegyek) { osszeg += a; } a a

19 int[] jegyek = new int [35]; int osszeg = 0; foreach(int a in jegyek) { a = 0;// hibás!!! } int osszeg = 0; foreach(int a in jegyek) { a = 0;// hibás!!! } A kapcsolat a tömb elemei és a foreach iterációs változója között csak egyirányú, így a változó a foreach ciklus belsejében csak kiolvasható, értéke nem változhatható meg! for(int i=0;i<jegyek.Length;i++) { jegyek[i] = 0; } for(int i=0;i<jegyek.Length;i++) { jegyek[i] = 0; }

20 Kor[] korok = new Kor[20]; for(int i=0;i<korok.Length;i++) korok[i] = new Kor(); for(int i=0;i<korok.Length;i++) korok[i] = new Kor(); foreach(Kor k in korok) k.sugar = 20; foreach(Kor k in korok) k.sugar = 20; for(int i=0;i<korok.Length;i++) korok[i].sugar = 20; for(int i=0;i<korok.Length;i++) korok[i].sugar = 20; Ez viszont működik, mert nem magát a k változót változtatjuk (nem rá vonatkozik az értékadás), hanem a k valamely mezőjére foreach(Kor k in korok) k = new Kor(); foreach(Kor k in korok) k = new Kor(); Ez viszont továbbra sem működik az előző okok miatt!

21 ArrayList lista = new ArrayList(); Tetszőleges típusú elemekből alkotott listák változónévMemória- foglalás A lista inicializálása (kezdetben 0 elemű üres lista) for(int i=0; i<35; i++) { string s = Console.ReadLine(); int a = int.Parse( s ); lista.Add( a ); } for(int i=0; i<35; i++) { string s = Console.ReadLine(); int a = int.Parse( s ); lista.Add( a ); }

22 ArrayList lista = new ArrayList(); int osszeg = 0; for(int i=0; i<lista.Count; i++) { int a = (int)lista[i]; osszeg = osszeg + a; } int osszeg = 0; for(int i=0; i<lista.Count; i++) { int a = (int)lista[i]; osszeg = osszeg + a; } int osszeg = 0; foreach(int x in lista) { osszeg = osszeg + x; } int osszeg = 0; foreach(int x in lista) { osszeg = osszeg + x; }

23 ArrayList lista = new ArrayList(); int osszeg = 0; for(int i=0; i<lista.Count; i++) { int a = (int)lista[i]; … } int osszeg = 0; for(int i=0; i<lista.Count; i++) { int a = (int)lista[i]; … } Explicit típuskonverzió! Kötelező elem, e nélkül a lista elemek típusa egy Object nevű típus lesz, amely semelyik típussal nem kompatibilis implicite

24 Listák A lista egy előre definiált összetett adatszerkezet A lista elemekből áll Az elemek típusa lehet különböző is … Ennek ellenére a lista egységes módon kezeli az elemeket (referencia-alapon) így a lista valójában egy homogén adatszerkezet Az elemek száma nem korlátos, és nem kell előre definiálni a maximális elemek

25 ArrayList lista = new ArrayList(); lista.Add( ”Hello” ); lista.Add( ‘a’ ); lista.Add( 123 ); lista.Add( ”Hello” ); lista.Add( ‘a’ ); lista.Add( 123 ); foreach(???? x in lista) { … } foreach(???? x in lista) { … } for(int i=0; i<lista.Count; i++) { ???? a = (????)lista[i]; …. } for(int i=0; i<lista.Count; i++) { ???? a = (????)lista[i]; …. }