Kezdőoldal » Számítástechnika » Programozás » Segitséget szeretnék kérni, C...

Segitséget szeretnék kérni, C nyelv?

Figyelt kérdés
Sziasztok, elég rossz helyzetben vagyok, BME mérnökinfón vagyok elsőéves, jövő héten 4 ZH vár rám, ebből az egyik programozás kis ZH. Egyetem előtt nem programoztam, most a pointereknél tartunk, voltak eddig a tömbök, struktúrák, függvények.. Neten fent vannak előző évek feladatai, ez általában sablon, mindig hasonlót adnak, viszont nekem a pointerek kicsit még homályosak, igy elég sok időt venne el, ha ki próbálnám találni, hogy is van. Ezért gondoltam, hátha van köztetek olyan,aki szivesen segit nekem, elküldeném privát üzenetben vagy valamilyen módon a feladatot, és ha megcsinálná az utána nekem hatalmas előnyt jelentene, csak meg kellene értenem a működését és rengeteg időt spórolnék vele. Tényleg, kis ZH, nem egy nagyon komplex feladat és biztos vagyok benne, hogy aki gyakorlott programozó annak ez csak egy kis rutinprogram. Előre köszönöm szépen!

2018. okt. 6. 19:01
 1/7 anonim ***** válasza:
57%
ha már te vagy azöregseftes, akkor mennyiért sefteljük be ezt a bizniszt? ahogy látom neked elég fontos, szóval sos pótlékod is csapj hozzá
2018. okt. 6. 19:06
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:
57%

Persze, szívesen segítek.

Feladattól bonyolultságtól függően 5,000-50,000 az ára.

2018. okt. 6. 19:16
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:
40%

Ha már ezek az alap feladatok sem mennek önállóan, akkor 1-2 féléven belül ki fogsz bukni a mérnökinfóról. Annyi az egész, hogy gondolkodni kéne és nem meglévő kódokat olvasgatni.


Szomorú, de ez az igazság.

2018. okt. 6. 20:09
Hasznos számodra ez a válasz?
 4/7 A kérdező kommentje:
Oké, látom nem teljesen érthetően fogalmaztam. Meg tudom csinálni én is magamtól, csak mivel a pointerekkel eddig nem dolgoztam, ezért pár órába telne, hogy megcsináljam, de jelenleg 0-24-ben matekra készülök, meg fizikára, és sajnálom erre azt a pár órát. De semmi gond, köszönöm az ajánlatokat, viszont inkább kiirom valami más weboldalra, ahol pont ez a lényeg, hogy ha valaki valamit nem tud, akkor egyszer leirják neki. Nem kértem semmi extrát, annak aki tud már gyorsan pointerekkel dolgozni, kb 10 perc lenne max.
2018. okt. 6. 20:24
 5/7 anonim ***** válasza:

Az a 10 perc kerül neked 5-50 ezer forintba.

Kereslet-kínálat.

2018. okt. 6. 21:02
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:
78%

Ebben a témában a stackoverflow.com a hivatalos.


A pointerekről


Képzeld el a memóriát, mint egy sötét zsákot, benne a változók értékeik össze-vissza szét vannak szórva. Mindnek megvan a saját helye, amihez tartozik egy cím, ami alapján meg lehet találni.

Egy pointer egy változónak csakis ezt a címét tárolja magában, így az adott változó helyére Mutat (angolul "Point" ige) a memóriában.

Kb mint egy nyíl, úgy el lehet képzelni.


Például


int a = 3; // egy egyszerű szám

int *p; // és egy pointer


p = &a;


A & a címképző operátor, ezzel kérjük ki 'a' változó címét, és ezt a címet odaadjuk 'p' pointernek

azaz most mondjuk meg neki,hol lakik a memóriában 'a' változó


Innentől kezdve, a 'p' pointerrel kiolvashatjuk 'a' változó értékét:


printf("%d", *p);


De 'p' pointerrel meg is tudjuk változtatni 'a' változó értékét, ha akarjuk:


*P = 5;


Ha kiíratjuk 'a' változót, akkor már 5-öt kell látnunk:


printf("%d", a);


Ennyi a lényeg, ha egy "sima" változóról szól a dolog.

2018. okt. 7. 00:02
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:
64%

Kicsit más a helyzet a tömböknél.


A tömbökről


A tömbökről azt kell tudni, hogy nekik az elemek nem szétszórva, hanem egymás után sorban vannak.

Úgy működik a dolog, hogy a program csak a 0. elem címét ismeri. Ha egy tömb egy sokadik elemét kérjük, azt a program úgy találja meg a memóriában, hogy a tömb 0. elemétől lépeget odáig.


Például


int t[] = {3, 6, 2, 7, 5};

// egy egyszerű tömb, 5 db elemmel

int x; // és egy egyszerű változó


A tömbben:

3 = a 0. elem azaz = t[0]

6 = az 1. elem azaz = t[1]

2 = a 2. elem azaz = t[2]

7 = a 3. elem azaz = t[3]

5 = a 4. elem azaz = t[4]


x = t[3];


Így 'x' változó értêke 't' tömb 3. eleme lesz, azaz 7

Ez a 3. elem a 0.-től 3 lépésnyire van: 0. -> 1. -> 2. -> 3.


És a pointerek


int *p;


p = &t;


Nem kell megmondani, hányadik elem.


printf("%d", *p);


A 3-mas számnak, azaz a tömb 0. elemének az értékének kellene megjelennie, mert 'p' pointer azt a címet kapta meg, amit a program ismer: azaz a 0. eleméét.


A tömb többi eleme


Őket is megtaláljuk, csak nekünk kell lépegetni a memóriában:


x = *(p+1);


Így a 6-os számot, azaz a tömb 1. elemét kapjuk, mert 1 lépésre van a 0.-től: 0. -> 1.


x = *(p+2);


A tömb 2. elemét kapjuk, mert 2 lépésre van a 0.-tól.

És így tovább.



Görgess lejjebb, ha sietsz


Az int (angolul "integer", egész szám ) típusú változók értékei 4 bájton tárolódnak, azaz 4 bájtnyi "hosszúak". 1 lépés int-eknél így 4 bájtnyi ugrást ér a memóriában.


Ha félreszámoltam, elírtam javótsatok ki, belezavarodtam

2018. okt. 7. 01:48
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!