Hernyák Zoltán Magasszintű Programozási Nyelvek I.

Slides:



Advertisements
Hasonló előadás
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Advertisements

A diákigazolvány igénylés menete TIK Hallgatói CentrumEszterházy Károly Főiskola.
Bevezetés a C# nyelvbe Az alapok összefoglalása Farkas Csaba.
Elhárító mechanizmusok. A szorongásról A szorongás két típusa ( ) A szorongás két típusa ( ) reális szorongás neurotikus szorongás: a.
A kifizetési kérelem összeállítása TÁMOP-3.2.9/B-08 Audiovizuális emlékgyűjtés.
CÉLCÉLCSOPORT  Egészségügyi szakmai tájékoztatás és betegtájékoztatás, az egészséges életvitelhez szükséges információk szolgáltatása, publikálása, áttekint-
2. A szoftverek csoportosítása: a. Rendszerszoftverek: A számítógép zavartalan mûködését biztosítják: BIOS (alapvetõ bemeneti/kimeneti rendszer): olyan.
A szaktanácsadás szolgáltatási terület dokumentációja Némethné Józsa Ágnes Intézményfejlesztési referens.
Forrás: Reiter István C_Sharp programozás lépésről lépésre (frissített tartalommal )
Iskolai információs rendszer. Alapkövetelmények Oktatási, nevelési intézmények részére fejlesztett Oktatási, nevelési intézmények részére fejlesztett.
Programozás alapjai 1. gyakorlat Hirling Dominik.
EU pályázati programok A szervezet / változások 1.A pályázók adminisztrációs terheinek csökkentése a projektfejlesztési, pályázati szakaszban.
FELVÉTELI TÁJÉKOZTATÓ
NIIF Behívás projekt aktualitások
Nagyméretű állományok küldése
vizuális megismerés – vizuális „nyelv” vizuális kultúra
Adatbázis normalizálás
Pályaválasztási tanácsadás
Alhálózat számítás Osztályok Kezdő Kezdete Vége Alapértelmezett CIDR bitek alhálózati maszk megfelelője A /8 B
Programstruktúrák.
A Scala programozási nyelv
Mezőgazdasági kisüzemek fejlesztése
Program utasítássorozat
Scilab programozás alapjai

A C++ programozási nyelv
PHP - függvények.
Az integrált áramkörök (IC-k) típusai és tervezése
Downstream Power Back Off (DPBO)
Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök
Az Országos Egészségfejlesztési Intézet fejlesztési projektjei az iskolai egészségfejlesztés területén DR. TÖRÖK KRISZTINA.
Microsoft songsmith Zenekészító program.
Szervezetfejlesztés II. előadás
C# SZINTAKTIKÁJA Az egyes utasítások végén pontosvessző áll
Visual Studio Code Metrics
Animációk.
VEREM.
Az elővásárlási és előhaszonbérleti jog gyakorlása érdekében az adás-vételi és a haszonbérleti szerződés hirdetményi úton történő közlésére vonatkozó eljárási.
Nyelvek típusossága.
Bevezetés Az ivóvizek minősége törvényileg szabályozott
Adatbázis-kezelés (PL/SQL)
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Algebrai specifikációk
Ez a címdia 1. szövegdoboza
Meghatározása, formái, mikéntje és „forrásai”
A létminimum-számítás megújítása
Downstream Power Back Off (DPBO)
Adatszerkezetek.
A Nyugat (Folyóirat) A Nyugat a 20. századi magyar irodalom meghatározó folyóirata volt január 1. és augusztus 1. között jelent meg Budapesten.
Nyílt nap Iskola neve Dátum.
Kóbor Ervin, 10. hét Programozási alapismeretek
IDŐZÍTÉS PROGRAMOZÁSA
3. A robot képernyőmenüje
Magyar Világörökség Kiemelkedő természeti és kulturális kincseink.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
B M Java Programozás 4. Gy: Java GUI IT A N Tipper, MVC kalkulátor
2. A KVANTUMMECHANIKA AXIÓMÁI
Az iskolai szervezet és fejlesztése
Összeállította: J. Balázs Katalin
B M Java Programozás 9. Gy: Java alapok IT A N Adatkezelő 5.rész
A kutatási projekt címe Név Oktató neve Tanulmányi intézmény neve
További rendező és kereső algoritmusok
A szállítási probléma.
B M Java Programozás 2. Gy: Java alapok IT A N Adatszerkezetek
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
LIA Alapítványi Ált. Isk. és Szki. Piliscsabai Tagintézménye
Generali Alapkezelő beszámolója Gyöngyház Nyugdíjpénztár részére
VÁLTOZÓ EURÓPA (Nemzet)Biztonsági szemmel
KONFERENCIA Adminisztráció Óvári Márta
Digitális kárrendezés
Előadás másolata:

Hernyák Zoltán Magasszintű Programozási Nyelvek I. Alprogramok Hernyák Zoltán Web: http://dragon.ektf.hu/aroan, E-Mail: aroan@aries.ektf.hu Magasszintű Programozási Nyelvek I. Eszterházy Károly Főiskola Számítástudományi tsz http://aries.ektf.hu 1

Alprogramok Paraméterek típusai: Bemenő paraméter: az értéket az alprogram felhasználja Átmenő paraméter: az érték helyén egy egyező típusú változót kell megadni, az alprogram felhasználja a benne lévő értéket, és meg is változtatja Kimenő paraméter: az érték helyén egy egyező típusú változót kell megadni, az alprogram nem használja fel a benne levő értéket, de megváltoztatja 2

Alprogramok Bemenő paraméter: static int Osszege( int[] tomb ) { int sum=0; foreach(int x in tomb) sum+=x; return sum; } static void Main() { int[] a = new int[300]; … feltöltés elemekkel … int x = Osszege(a); int[] b = new int[15]; int z = Osszege(b); } 3

Alprogramok Átmenő paraméter: static void Rendezes( int[] tomb ) { for(int i=0;i<tomb.Length-1;i++) for(int j=i+1;j<tomb.Length;j++) if( tomb[i]>tomb[j]) int z=tomb[i]; tomb[i] = tomb[j]; tomb[j]=z; } static void Main() { int[] a = new int[300]; … feltöltés elemekkel … Rendezes (a); } 4

Alprogramok Kimenő paraméter: static void Feltoltes( int[] tomb ) { Random rnd = new Random(); for(int i=0;i<tomb.Length;i++) tomb[i] = rnd.Next(10,100); } static void Main() { int[] a = new int[300]; Feltoltes (a); } 5

Alprogramok Paraméterek típusai: Bemenő paraméter: az értéket az alprogram felhasználja Alapértelmezett paraméterátadás, nem kell semmilyen extra jelölést használni A hívás helyén egyszerű adattípus esetén akár kifejezést is lehet írni 6

Alprogramok Bemenő paraméter: static int Osszead( int a, int b ) { return a+b; } static void Main() { int x = 13; int f = Osszead( 3, x ); int g = Osszead( f-1, f*2 ); int h = Osszead( Szoroz(2,8)+1 ,f*2 ); } 7

Alprogramok Kimenő paraméter: static void ElsoUtolso( int[] t, int elso, int utolso ) { elso=-1; utolso=-1; for(int i=0;i<t.Length;i++) if (t[i]==0 && elso==-1) elso=i; if (t[i]==0) utolso=i; } static void Main() { int[] h = new int[30]; int a,b; ElsoUtolso(h, a, b); Console.WriteLine(”{0},{1}”,a,b); } 8

Alprogramok Kimenő paraméter: static void ElsoUtolso( int[] t, int elso, int utolso ) { } int a=0,b=0; ElsoUtolso(h, a, b); a b elso utolso elso = a; utolso = b; elindul az alprogram nincs ilyen a = elso ; b = utolso; 9

Az ‘out’ kulcsszót mindkét helyen alkalmazni kell! Alprogramok Kimenő paraméter: static void ElsoUtolso( int[] t, out int elso, out int utolso ) { } int a,b; ElsoUtolso(h, out a, out b); elso utolso Az ‘out’ kulcsszót mindkét helyen alkalmazni kell! a b 10

Alprogramok Kimenő paraméter: static void ElsoUtolso( int[] t, out int elso, out int utolso ) { … } A formális paraméterlistában az ‘out’ azt jelenti, hogy ezen változót nem akárhol kell a memóriában létrehozni, hanem pontosan azon a helyen, ahol az aktuális paraméterlistában megadott változó is van A két változó egy helyen szerepel a memóriában! 11

Alprogramok Kimenő paraméter: int a,b; ElsoUtolso(h, out a, out b); Az aktuális paraméterlistában az ‘out’ azt jelenti, hogy ezen változóknak nem szükséges megelőzően értéket adni, mivel a bennük lévő értékeket az alprogram nem kívánja felhasználni majd Ezen változók értékét az al-program kötelezően meg kell változtassa! 12

Az ‘out’ paramétereknek kötelező értéket adni! Alprogramok Kimenő paraméter: static void ElsoUtolso( int[] t, out int elso, out int utolso ) { for(int i=0;i<t.Length;i++) if (t[i]==0 && elso==-1) elso=i; if (t[i]==0) utolso=i; } The out parameter ‘elso’ must be assigned to before control leaves the current method. Az ‘out’ paramétereknek kötelező értéket adni! A C# fordító nem biztos benne, hogy ez bekövetkezik ebben az esetben (pl ha a t tömb 0 elemszámú, vagy nincs nulla a tömbön belül)! 13

Alprogramok Referencia típusú paraméter: 1 1 eletkor | nev | ferfi static void Oregedes( Hallgato akarki ) { akarki.eletkor++; } Hallgato h = new Hallgato(); h.Eletkor = 20; Oregedes(h); Console.WriteLine(h.eletkor); akarki = h; 1 1 eletkor | nev | ferfi h akarki 1 14

Alprogramok Referencia típusú paraméter: static void Oregedes( Hallgato akarki ) { akarki.eletkor++; } Oregedes(h); A referencia-típusú paraméter-változókra is ugyanaz a szabály, de… A híváskor a kezdőérték beállításakor a memóriacímet veszik át Így rajtuk keresztül elérhető a másodlagos memóriaterület, és meg is változtatható 15

Alprogramok Referencia típusú paraméter: static void Feltoltes( int[] t ) { for(int i=0;i<t.Length;i++) t[i] = i+1; } int[] a = new int[20]; Feltoltes(a); 16

Alprogramok Referencia típusú paraméter: static void Feltoltes( int[] t ) { t = new int[20]; for(int i=0;i<t.Length;i++) t[i] = i+1; } int[] a=null; Feltoltes(a); int[] b=new int[30]; Feltoltes(b); 17

Alprogramok Referencia típusú paraméter: static void Feltoltes( out int[] t ) { t = new int[20]; for(int i=0;i<t.Length;i++) t[i] = i+1; } int[] a; Feltoltes( out a ); int[] b=new int[30]; Feltoltes( out b ); 18

Alprogramok Átmenő paraméter: static void Csere( ref int a, ref int b ) { int z = a; a = b; b = z; } int x=2, y=3; Csere( ref x, ref y ); A referencia-típusú paraméterátadás gyakorlatilag megegyezik a kimenő paraméterek kezelésével De a fordítóprogram megköveteli, hogy hívás előtt már legyen értéke az adott változónak, akit átadunk az eljárásnak! 19

Alprogramok Átmenő paraméter: static void Csere( ref int a, ref int b ) { if (a!=b) int z = a; a = b; b = z; } int x=2, y=3; Csere( ref x, ref y ); Az átmenő paramétereket az eljárás nem kötelezően kell megváltoztatnia! (ellentétben a kimenő paraméterekkel) 20