Borland C/C++ mintapéldák mutatókra

Slides:



Advertisements
Hasonló előadás
Pitagorasz tétel A háromszög ismeretlen oldalának, területének és kerületének kiszámítása (gyakorlás)
Advertisements

ÁLTALÁNOS GÉPTAN Előadó: Dr. Fazekas Lajos Debreceni Egyetem
Készítette: Szinai Adrienn
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.
LRendezés minimális elem kiválasztással Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 19./0. lAz algoritmus működése lRávezető feladat.
Az LCD kijelző programozása
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Cells(sor száma, oszlop száma)
Illeszkedési mátrix Villamosságtani szempontból legfontosabb mátrixreprezentáció. Legyen G egy irányított gráf, n ponton e éllel. Az n x e –es B(G) mátrixot.
Gráfbejárás
Sztringek.
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.
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
Máté: Architektúrák7. előadás1 A verem két felső szavának cseréje (ábra) Megállapodás szerint TOS tartalmazza a verem tetején lévő szót! Ez többnyire előny,
Máté: Architektúrák7. előadás1 A verem két felső szavának cseréje Megállapodás szerint TOS tartalmazza a verem tetején lévő szót! Ez többnyire előny, de.
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 tömbökre
Borland C/C++ mintapéldák függvényekre. 1. példa Írjunk olyan függvényt amely egy számot kiirat.
Borland C/C++ mintapéldák fájlokra. 1. példa Írjon olyan programot,amely megnyit egy hw.txt fájlt és írja bele a Hello világ szöveget. Ez után zárja le.
Borland C/C++ mintapéldák struktúrákra. 1. példa /* Egyszerû példa a struktúrák használatára */ #include #define SIZE 5 struct szemely { char nev[26];
A számítógépi grafika matematikai háttere
Szállítási probléma - fogalmak
Programozás I. Horváth Ernő 1. Elérhetőségek Bauer Péter Horváth Ernő Tanszéki honlap
Programozás I. Horváth Ernő.
A C++ programozási nyelvSoós Sándor 1/15 C++ programozási nyelv Gyakorlat hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
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.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
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.
Programozás I. Adatállományok dr Póder Margit f. docens Rendszer és Szoftvertechnológia Tanszék.
További vektor, mátrix algoritmusok
Összetett adattípusok
Programozási Nyelvek (C++) Gyakorlat Gyak 02.
Turbo Pascal 11..
Váltókövetelések 2. feladat
Alprogramok deklarációja, definíciója és meghívása Páll Boglárka.
Összetett adattípusok
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 Web: Magasszintű Programozási Nyelvek I. Eszterházy.
GRÁFELMÉLET.
RADIX bináris számokra ___A___ Szembe 2 mutatóval, ha a felsőnél 1-es, az alsónál 0, akkor csere.
Komoróczy Tamás 1 Java programozási nyelv Stringek.
Java programozási nyelv Adatbekérés konzolról
Gráfok 1. Szlávi Péter ELTE IK Média- és Oktatásinformatika Tanszék
Objektum orientált programozás
Programozás I. Típus algoritmusok
A Visual Basic nyelvi elemei
Bekezdések formázása 1..
1 Szervetlen és Analitikai Kémia Tanszék, Kémiai Informatika Csoport Számítástechnika Kari rendszergazda: Rippel Endre (Ch C2)
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ú,
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.
Horváth Bettina VZSRA6.  Célja: Az eljárás célja egy véges gráf összes csúcsának bejárása a kezdőcsúcstól való távolságuk szerinti növekvő sorrendben.
2012. március 21. Paulik Áron.  Ha a függvényünk feladata olyan, hogy nem lenne értelme a visszatérési értéknek, vagy csak nincs rá szükség, void típusúként.
Objektum orientált programozás
Visszafelé haladó edényrendezés
Kommunikáció és szinkronizáció. 1.) Kommunikáció: Lehetőség arra, hogy egyik folyamat befolyásolja a másik folyamat lefutását. Kommunikáció eszközei: közös.
Excel programozás (makró)
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.
Excel programozás (makró)
A struct, az union és az enum típus
Vektorok © Vidra Gábor,
Konverziós operátorok
Előadás másolata:

Borland C/C++ mintapéldák mutatókra

1. példa #include <stdio.h> void main() { int x,y, *px; // X értéke 2 lesz x = 2; // PX felveszi X címét px = &x; // Y felveszi a PX által mutatott címen lévô // értéket. Mivel a PX az X-re mutat, X érté­- // ke pedig 2,ezért az Y értéke is 2 lesz ! y = *px; // Kiiratjuk X,Y értékét a PX által mutatott // cím értékét, ill. annak tartalmát ! printf("\nX=%d Y=%d PX=%p *PX=%d",x,y,px,*px); // Látható hogy PX hossza 4 byte ! }

2. példa // Egy long integer alsó és felsô 2 byte-jának felcserélése #include <stdio.h> void main() { long x; int segit , *y; printf("\nX erteke : ") ; scanf("%ld",&x); // Az Y az X címét veszi fel ugyan, de a cím // típusa az (int *) típusmódosítás miatt nem 4 // byte-ra mutató cím lesz, hanem 2 byte-ra // mutató cím. y = (int *) &x ; // Végeredményben az Y az X "alsó" 2 byte-jára // mutat. *Y nem más mint ennek a 2 byte-nak az // értéke.

printf("Y tartalma = %d\n",. y); printf("Y tartalma = %d\n",*y); // Az Y+1 az X "felsô" 2 byte-jára mutat. *(Y+1) // nem más mint ennek a 2 byte-nak az értéke. printf("Y+1 tartalma = %d\n",*(y+1)); // Most kezdôdik a csere : A SEGIT felveszi X alsó // két byte-jának értékét; segit = *y ; // Az X alsó két byte-ja felveszi a felsô 2 byte // értékét *y = *(y+1) ; // Az X felsô 2 byte-ja felveszi SEGIT értékét, // azaz az alsó 2 byet értékét. *(y+1) = segit ; // ---- A csere befejezôdött printf("X értéke forditva = %ld \n",x); }

3. példa /* ======= Változó hosszúságú integer vektorok ========== */ /* ======= kezelése pointertömb segítségével ========== */ #include <stdio.h> int *pvek[5]; int v0[3] = { 1, 2, 3 }; int v1[5] = { 4, 5, 6, 7, 8 }; int v2[2] = { 9,10 }; int v3[4] = { 11,12,13,14 }; int v4[6] = { 15,16,17,18,19,20 }; int lv[5] = { 3, 5, 2, 4, 6 }; // A vektorok hosszai

void main() { int i, j; // Elhelyezzük a vektorok címeit a pointervektor // megfelelô elemeiben. pvek[0]=v0 ; pvek[1]=v1 ; pvek[2]=v2 ; pvek[3]=v3 ; pvek[4]=v4 ; printf("\nPVEK[2][1] -> V2[1]) = %d\n\n",pvek[2][1]); printf("\nV1[1] = *++PVEK[1] = %d",*++pvek[1]); printf("\nV3[2] = *(PVEK[3]+2) = %d",*(pvek[3]+2)); printf("\nV4[5] = *(PVEK[4]+5) = %d",*(pvek[4]+5)); // A pvek[1] címet az eredetire kell állítani ! pvek[1] = v1 ; for( i=0; i<5; printf("\n"),i++ ) for( j=0; j<lv[i]; printf(" %2d",*(pvek[i]+j++) )); }

4. példa include <stdio.h> char *month_name(int); void main() { int h; printf("\nKérem a hónap sorszámát : ") ; scanf("%d",&h); printf("\nA hónap neve : %s", month_name(h)); }

char *month_name( n ) /*Visszaadja az n-edik hónap nevét*/ int n; { static char *name[] = { "nem létezô hónap", "január", "február", "március", "április", "május", "június", "július", "augusztus", "szeptember", "október", "november", "december" }; return( (n<1 || n>12) ? name[0] : name[n] ); }

5. példa /* Példa függvényre mutató pointer használatára */ #include <stdio.h> #include <conio.h> // A getch() függvény miatt #include <math.h> // Az sqrt() függvény miatt void main() { int v, x, y, z ; // A func egy olyan függvényre mutató pointer, // amely float-ot ad vissza, és három darab int // típusú bemenô paramétere van ! float (*func)( int, int, int ); // A három függvény más más mûveletet végez, // ugyanazokon az adatokon. float osszeg( int, int, int ); float atlag( int, int, int ); float gyok( int , int, int ); float w;

x = y = z = 2; // Választás menübôl clrscr(); printf("\n 1. Összeg képzése \n"); printf("\n 2. Átlag képzése \n"); printf("\n 3. Négyzetösszeg gyöke \n"); printf("\n"); printf("\nMelyiket a három közül: ") ; scanf("%d",&v); switch(v) { case 1: func = osszeg ; break; case 2: func = atlag ; break; case 3: func = gyok ; break; default: break; } w = func(x,y,z); printf("\nEredmény = %5.2f",w); getch(); } // A három függvény megvalósítása float osszeg( int o1, int o2, int o3 ) { return( (float) (o1+o2+o3) ); } float atlag( int a1, int a2, int a3 ) { return( (a1+a2+a3) / 3.0 ); } float gyok( int g1, int g2, int g3 ) { double gy; gy = sqrt( (double) (g1*g1 + g2*g2 + g3*g3) ); return( (float) gy ); }