5. előadás (2005. március 22.) Függvények definíciója, deklarációja, hívása Enumerációs adattípus 1.

Slides:



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

Összetett adattípusok 8/b tétel
Tömbök C#-ban.
Kifejezések 2+3 Egy egyszerű kifejezés… © Pasztuhov Dániel, www.programozas-oktatas.hu.
LEgyméretű tömbök, vektorok Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 17./0. lVektorok definiálása lVektorok definiálása kezdőértékekkel.
LFüggvények Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 20./0. lFüggvények deklarációja és prototípusa lA függvénydefiníció lHivatkozás.
Objective- C Bereczki Gréta Tamara
9. előadás (2005. április 26.) Parancssor argumentum kezelés példák (K&R) Fordítóprogramok A C előfordító 1.
8. előadás (2005. április 19.) Pozicionálás fájlban (folyt.) I/O mechanizmus váltás Hibakezelő függvények Változók tárolási osztályai Parancssor-argumentumok.
3. előadás (2005. március 1.) Utasítások, tömbök
Rekurzió (Horváth Gyula és Szlávi Péter előadásai felhasználásával)
Programozási Nyelvek (C++) Gyakorlat Gyak 03.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Bevezetés a Java programozásba
10. előadás (2004. április 20.) A C előfordító (folytatás) Néhány hasznos compiler opció Egy tanulságos könyvtári függvény Változó hosszúságú argumentum.
1 Programozás alapjai GEIAL312B (ANSI C) BSc (Bachelor of Science) / Alap képzés 2005/2006. őszi félév Miskolci Egyetem Általános Informatikai Tanszék.
6. előadás (2005. április 5.) Struktúrák Úniók Új adattípus definíálása Dinamikus memória foglalás 1.
7. előadás (2005. április 12.) Láncolt lista File kezelés 1.
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.
Függvények, mutatók Csernoch Mária.
Mutatók, tömbök, függvények
Borland C/C++ mintapéldák
Borland C/C++ mintapéldák függvényekre. 1. példa Írjunk olyan függvényt amely egy számot kiirat.
Java programozási nyelv 3. rész – Osztályok I.
1 Programozás alapjai GEIAL312B (ANSI C) BSc (Bachelor of Science) / Alap képzés 2005/2006. őszi félév Miskolci Egyetem Általános Informatikai Tanszék.
6. előadás Hatókör, láthatóság, élettartam. Változók leképzése a memóriára. Blokkszerkezetes nyelvek. Kivételkezelés.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Programozás I Függvények általános jellemzői
Ficsor Lajos Template-ek CPP8/ 1 Template-ek. Ficsor Lajos Template-ek CPP8/ 2 A template fogalma Kiindulási probléma: tetszőleges típusokon kellene ugyanolyan.
C nyelv utasításai.
Tömbök Csernoch Mária.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Alprogramok deklarációja, definíciója és meghívása Páll Boglárka.
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.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
AAO Csink László november.
A D programozási nyelv Angeli Dávid. Nagy vonalakban  C++  
Java programozási nyelv Metódusok
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 4. Gyakorlat Függvény paraméterek, dinamikus.
Objektum orientált programozás 3. Függvények Nagy Szilvia.
Objektum orientált programozás
Objektum orientált programozás
Objektum orientált programozás
Függvények a C nyelvben 1 Függvényeket a következő esetekben szokás írni: Ha ugyanazt a tevékenységet többször is el kell végeznünk ugyanolyan típusú,
C Programozási alapok.
CUDA C/C++ programozás CUDA C bevezetés A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt keretében.
Ficsor Lajos A C++ programozási nyelv I. CPP1/ 1 Osztály és objektum fogalma.
Algoritmizálás, adatmodellezés
A 2. géptermi beszámoló VBA anyagának összefoglalása
Excel programozás (makró)
Programtervezés, programozás I. 2.5 tömbök,stringek
Objektum orientált programozás 4. Mutatók, típusok és struktúrák Nagy Szilvia.
Struktúrák a C nyelvben 1 Akkor használjuk, ha az egy egyedre jellemző különböző típusú adatokat együtt akarjuk tárolni. Lényegében típusdeklaráció. A.
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
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.
a programegységek között
Kifejezések C#-ban.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
A CLIPS keretrendszer
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
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
Konverziós operátorok
Az objektum-orientáltság
Függvénysablonok használata
Előadás másolata:

5. előadás (2005. március 22.) Függvények definíciója, deklarációja, hívása Enumerációs adattípus 1

Függvény definíció 1. [típus] függvénynév ([argumentum lista]) argumentum deklaráció { függvénytörzs } A függvény törzsében: return kifejezés A visszatérő érték tömb és függvény kivételével bármilyen típus lehet. Kerüljük a nagyméretű struktúrákat. Default: int, ha nincs: void 2

Függvény definíció 2. Az argumentum lista és az argumentum deklaráció összevonható. Pl. double vhossz(x, y, z) double x, y, z; { return (sqrt(x*x+y*y+z*z)); } vagy összevonva: double vhossz(double x, double y, double z) { ... } 3

Függvény definíció 3. Függvény definíciók nem ágyazhatók egymásba! A definícióban szereplő argumentum lista a formális paraméter lista. 4

Függvény hivatkozás 1. függvénynév (aktuális paraméter lista) Pl. c = vhossz (2.0, 4.1, 5.0); Paraméter átadási mechanizmusok: érték szerinti, cím szerinti. A C-ben csak érték szerinti. Cím szerinti: pointerrel. Az aktuális paraméterekről átmeneti másolat készül és ezek lokális változókként viselkednek. Az aktuális és a formális paraméter lista elemei között típusegyeztetés történik. 5

Függvény hivatkozás 2. Automatikus típus konverzió paraméter átadáskor: char, short -> int float -> double tömb -> pointer 6

Függvény deklaráció Minden hivatkozás előtt az adott szimbólumra vonatkozó összes információnak rendelkezésre kell állnia. Prototípus: típus függvénynév (típus lista); Pl. double vhossz (double, double, double); Header állomány szerepe. 7

Rekurzív függvény definíció A függvény törzsében önmagára hivatkozik. Pl. long fakt (long n) { if (n == 0) return 1; else return n*fakt (n-1); } Pl. fakt(5)=5*4*3*2*1*1 Végtelen egymásba ágyazás! Memória probléma! 8

Visszatérő érték: pointer Pl. int *maxcim (int *x1, int *x2) { if (*x1 > *x2) return x1; else return x2; } 9

Függvény pointerek 1. A függvények azonosítói a tömbökhöz hasonlóan címek, bár nem adatcímek, hanem önálló kódok belépési pontjai, amelyek értéket állítanak elő. Deklaráció: típus (*név) (argumentum lista); int osszeg(int a, int b) { return a+b; } main () { int (*pf) (); pf = osszeg; printf("\n%d",(*pf)(7,76)); } 10

Függvény pointerek 2. Az int (*pf)(); és az int *pf(); /*prototípus*/ /*függvény pointer deklaráció*/ és az int *pf(); /*prototípus*/ deklarációk nem egyenértékűek! 11

Függvény pointer tömbök int osszeg(int a, int b) { return a+b; } int szorzat(int a, int b) { return a*b; } main () { int (*pft[2]) (); pft[0] = osszeg; pft[1] = szorzat; printf("\n%d%d", (*pft[0])(7, 76),(*pft[1])(8, 44)); } 12

Enumerációs adattípus 1. Olyan szimbólumkészlet (nevek) használata, amelyeknek kódolása nem fontos. Két lehetőség van: egyenként: #define HAROMSZOG 1 #define NEGYSZOG 2 #define OTSZOG 3 13

Enumerációs adattípus 2. enum enum_azonosító {haromszog, negyszog, otszog}sikidom; vagy enum {pont, egyenes, szakasz} elemek; Használata: sikidom = otszog; sikidom = pont; /* illegális */ A felsorolt típusok konstansok, 0-tól sorszámozódnak, relációs operátor használható, értékadásnál típusellenőrzés (Pascal: set). 14

Enumerációs adattípus 3. Eltérő sorszámozás: enum {pont=3, egyenes=1, szakasz=-1} elem; vagy enum {jan=1, febr, marc, ... } honapok; 15