Mutatók, tömbök, függvények

Slides:



Advertisements
Hasonló előadás
Sor láncolt ábrázolással
Advertisements

Eljárások és függvények
C++ programozási nyelv Gyakorlat hét
Összetett adattípusok 8/b tétel
Tömbök C#-ban.
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.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
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.
Dinamikus tömbök.
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.
Sztringek.
Bevezetés a Java programozásba
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.
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.
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Tömbök ismétlés Osztályok Java-ban Garbage collection
A CLIPS keretrendszer CLIPS "C" Language Integration Production System.
Függvények, mutatók Csernoch Mária.
C A C nyelv utasításai.
C A C nyelv utasításai. Ismétlés Utasítások csoportosítása.
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1 Programozó matematikus szak 2003/2004-es tanév II. félév.
LDinamikus tömbök, kétdimenziós tömbök Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 21./0. lVektorok létrehozása futásidőben, dinamikusan.
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.
Bevezetés a C++ programozási nyelvbe
P ROGRAMOZÁS I/O műveletek. S YSTEM.C ONSOLE A programjainknak fontos része a felhasználóval való kommunikáció. Adatokat kell kérni tőle, vagy közölnünk.
Programozás Az adatokról C# -ban.
Tömbök Csernoch Mária.
Összetett adattípusok
Alprogramok deklarációja, definíciója és meghívása Páll Boglárka.
Készítette: Csíki Gyula
Hernyák Zoltán Programozási Nyelvek II.
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.
Visual Basic 2008 Express Edition
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
A Visual Basic nyelvi elemei
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.
1. feladat  Készíts olyan függvényt, mely paraméterül kapja két egész típusú változó címét, s hívása után a két változó értéke helyet cserél.
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.
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.
Informatikai gyakorlatok 11. évfolyam
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 Osztályok, objektumok definiálása és alkalmazása. Saját.
Programstruktúrák. Program A program utasítások olyan sorozata, amely a számítógépen önállóan képes megoldani egy feladatot. A program háttértáron futtatható.
Programozási nyelvek csoportosítása.
Informatikai gyakorlatok 11. évfolyam
A C++ programozási nyelv
a programegységek között
Programozási nyelvek típusossága.
A C++ programozási nyelv
Beépített függvények használata programozáskor
A CLIPS keretrendszer
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Változók.
String osztály létrehozása
Konverziós operátorok
Az objektum-orientáltság
Előadás másolata:

Mutatók, tömbök, függvények C Mutatók, tömbök, függvények

Változók tulajdonságai Mutatók A mutatók (pointerek) olyan speciális objektumok amelyek más objektumok címét tárolják. Változók tulajdonságai Mutatók tul. Típusa Neve Értéke Címe Ha egy mutató egy váltózóra mutat, a mutató értéke a mutatott változó memóriacíme lesz. Ha kiíratjuk a mutató értékét, egy memóriacímet kapunk, de hivatkozhatunk a mutató által mutatott területre is, ilyenkor a mutató által mutatott változóra hivatkozunk. Ha a mutatott területnek új értéket adunk, a változó értékét változtatjuk meg. Pl.: K:51.o

Mutatók

Mutatók – dinamikus memóriahasználat Nagyon fontos lehetősége a C nyelnek az ún. dinamikus memóriahasználat. Ennek során memóriablokkot foglalhatunk le, amelyet mutató segítségével elérhetünk, és ha már nincs szükségünk a lefoglalt területre, felszabadíthatjuk azt. K: 54.o. Minden memóriafoglalási kísérlet (malloc) után meg kell vizsgálnunk, hogy sikerült-e lefoglalni a kívánt méretű memóriablokkot. Amennyiben ezt a vizsgálatot elmulasztjuk, illetve ha kezdőérték nélküli mutatót használunk, akkor minden esélyünk megvan arra, hogy a program futása megszakadjon, vagy hogy a számítógépünk lefagyjon.

Többszörös indirektségű mutatók K: 55.o.

Feladat: 10 elemű tömb, elemeinek átlaga Tömbök Az egydimenziós tömböket deklarálnunk kell, melynek az általános alakja: Feladat: 10 elemű tömb, elemeinek átlaga Az egydimenziós tömb (vektor) elemei a memóriában adott címtől kezdve folytonosan helyezkednek el. Mindegyik elemre a[i] formában hivatkozunk:

Tömbök inicializálása A C nyelv lehetővé teszi, hogy a tömböket a definiálásuk során konstans értékekkel inicializáljuk. Ez a kezdőértékadás eltér az egyszerű változók esetén használt megoldástól. A tömb elemszámának meghatározása a programon belül: 3_1.c

Mutatók és tömbök *p Ha p memóriaobjekumra mutat, akkor a mutatóaritmetika szabályai alapján a p+1, a p+2, .. stb. címek az adott objektum után elhelyezkedő objektumokat jelölik ki. Ennek alapján a *(p+i) kifejezéssel a tömb minden elemét elérhetjük.

Mutatók és tömbök A p mutató szerepe teljesen megegyezik az a tömbnév szerepével, hisz mindkettő az elemek sorozatának kezdetét jelöli ki a memóriában. Lényeges különbség azonban a két mutató között, hogy míg a p mutató változó (tehát értéke módosítható), addig az a egy konstans mutató, amelyet a fordító rögzít a memóriában.

Stringek A C nyelv nem rendelkezik önálló sztringtípussal, ezért a karaktertömböket használja a sztringek tárolására. A sztring tehát olyan karaktertömb (char[]), melyben a karaktersorozat végét nulla értékű byte (‘\0’) jelzi. Kezdőérték megadására használható a vektoroknál bemutatott megoldás, azonban a ‘\0’ sztring záró karakter megadásáról nem szabad elfeledkeznünk. A karaktertömbök inicializálása azonban sokkal biztonságosabban elvégezhető a sztringliterálok (sztringkonstansok) felhasználásával:

Stringek

Többdimenziós tömbök A C nyelv támogatja a többdimeniós tömbök használatát. A többdimenziós tömbök deklarációjának általános formája: Két dimenzió: K: 133.o.

Tömbök – dinamikus memóriahasználat Nem szabad megfeledkeznünk a pd mutató értékének vizsgálatáról, hogy megtudjuk sikeres volt-e a helyfoglalás. A lefoglalt terület valójában egy mutatóval kijelölt blokk a memóriában. A blokkban tárolt double típusú objektumok elérése pointeres és tömbös módon is történhet: Ha már nincs szükségünk a tömbre, a lefoglalt területet fel kell szabadítanunk a free függvény segítségével:

Függvények, eljárások A függvény a C program olyan névvel ellátott egysége (alprogram), amely a program más részeiből annyiszor meghívható, ahányszor csak szükség van a függvényben definiált tevékenységsorozatra. A C program általában sok kisméretű, jól kézben tartható függvényből épül fel. A függvény definíciója: Pl:

Függvényhívás A saját függvényeinket mindig definiálni kell. A definíció, amelyet csak egyszer lehet megadni, a C programon belül bárhol elhelyezkedhet. Ha a függvény definíciója megelőzi a felhasználás (hívás) helyét, akkor ez egyben a függvény deklarációja is.

Eljárások Az eljárások olyan függvények amelyeknek „nincs visszatérési értékük”. A visszatérési típusnál void típust használunk, amit a típus nélküli típus ként tartunk számon. Ez azt jelzi hogy ennek a függvénynek a visszatérési értékének „nincs meghatározva a típusa”, vagy mondhatni „nincs visszatérési értéke”, nem kell megadni a return utasítást a függvény törzsében.

Paraméter kiértékelés A függvények, eljárások hívása során a paramétereket a megfelelő sorrendben kell megadni

A változók, konstansok értéke másolódik át a függvény törzsébe Paraméter átadások Érték szerinti paraméterátadás: A változók, konstansok értéke másolódik át a függvény törzsébe Érték szerinti átadásnál a függvényen belül a kapott értékek változhatnak, de a változások nincsenek hatással az átadott változókra. Az átadásnál csak értékek másolódnak át, memóriacímek nem.

Paraméter átadások Cím szerinti paraméterátadás: Itt azokat a memóriacímeket adjuk át, ahol a változók tárolva vannak. A függvény törzsében történő változtatások hatással vannak az átadott változókra is.