Kezdőoldal » Számítástechnika » Programozás » C# programozasi nyelvben...

C# programozasi nyelvben valaki el tudna peldakkal, erthetoen mondani, hogy tenyleg mikor van void, es mikor nincs?

Figyelt kérdés
Tudom, hogy akkor van void ha nincs visszateresi ertek, de meg mindig nem sikerult megertenem, hogy ez mit is jelent pontosan a gyakorlatban.

2014. nov. 28. 21:15
 1/10 anonim ***** válasza:
50%
Neumannos vagy?
2014. nov. 28. 21:20
Hasznos számodra ez a válasz?
 2/10 A kérdező kommentje:
Nem . :-) Miert kerded?
2014. nov. 28. 21:27
 3/10 anonim ***** válasza:
100%

Képzeld el azt az esetet, amikor pl. fogat mosol. Előveszed a pohárkádat, nyomsz fogkrémet a kefédre, és megmosod a fogad. Ez a műveletsor nem képez a későbbiekben felhasználható eredményt. Ellenben az, hogy kiszámolod egy szám négyzetét például, az képez a későbbiekben is felhasználható eredményt.


Az alprogramoknak/szubrutinoknak két fajtája van tehát, ami képez eredményt, és ami nem. Ami képez eredményt, azt függvénynek nevezik, míg azokat, amik nem képeznek eredményt, eljárásoknak.


Hogy még megfoghatóbb legyen a dolog: az eljárás leírja, hogyan végezz el egy cselekvést, például hogyan moss fogat. A függvény pedig leírja, hogyan számolj ki valamit, például a szám négyzetét.


Azonban a számítógépnek le kell írni, hogy egy függvény milyen típusú eredményt képez. Egy egész szám négyzetének a kiszámítása egy újabb egész számot fog képezni, így ezt a példában az int kulcsszóval kell megilletni:

int Negyzet(int x) {

return x * x;

}


Egyes programozási nyelvek másként írják le az eljárásokat, mint a függvényeket (lásd a lenti Pascal-os példát), de a C-szerű nyelvek megoldják annyiban, hogy az eredmény típusa helyett írsz egy void-ot:

void Fogmosas() {

poharat_elovesz();

fogkrem_nyomasa_a_kefere();

//stb.

}


Míg mondjuk Pascal-ban így néz ki a kettő:

procedure Fogmosas;

begin

poharat_elovesz;

fogkrem_nyomasa_a_kefere;

end;


function Negyzet(x: integer) : integer;

begin

Result = x * x;

end;

2014. nov. 28. 21:28
Hasznos számodra ez a válasz?
 4/10 A kérdező kommentje:

Koszonom a valaszt!


Akkor ezt ugy ertsem, hogy ha a megadott parameterekbol egy uj, toluk kulonbozo eredmeny szuletik pl egy szamitas hatasara akkor ott van visszateresi ertek? Tehat oda nem kell majd void.

2014. nov. 28. 21:32
 5/10 anonim ***** válasza:
100%

Nem feltétlen kell ahhoz paraméter, hogy legyen egy eredményed. És ha van is paramétered, egyáltalán nem biztos, hogy a velük elvégzett művelet képez eredményt. Paraméterek csak azért vannak, hogy a hívás helyén értéket adj nekik. Két példa:


1)

fogmosás(MIVEL):

...vizet töltesz a pohárba

...MIVEL-t nyomsz a fogkefédre

...fogat mosol


fogmosás(fogkrém)

fogmosás(cipőbox)


Van paraméter, a fogmosás műveletsor mégsem képzett új eredményt. Először fogkrémmel mosol fogat, a második alkalommal meg cipőbox-szal.


2)

a_32_bites_egész_számok_összege():

...a = 2^-32

...b = 2^32

...eredmény = 0

...ciklus a-tól b-ig, i = aktuális_érték:

......eredmény = eredmény + i

...visszatérés(eredmény)


Itt még paramétert sem kapott a függvény, mégis képzett eredményt.

2014. nov. 28. 21:39
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:
100%
Na, a második példát elbasztam, de sebaj...
2014. nov. 28. 21:40
Hasznos számodra ez a válasz?
 7/10 anonim ***** válasza:
100%

void olyan esetben mikor az adott függvény nem tér vissza semmivel. Azaz az értékét nem tudod beletenni egy változóba.

"int x = fgv();" erre hibát ír, mert void


amennyiben int vagy tökre más, akkor már mehet:

"int x = fgv();"


természetesen a void visszatérési függvény is rendelkezhet return parancsal, de akkor annak nem szabad értéket adni. Továbbá ha return talál, akkor ott befejezi a függvény futását, és kilép belőle


int vagy más esetén: "return X;"

void esetén: "return;"

2014. nov. 28. 21:41
Hasznos számodra ez a válasz?
 8/10 anonim ***** válasza:
A void azt jelenti hogy az adott osztaly taggfuggvenyenek nincs visszateresi erteke, ha van akkor azt az adattipus nevet irjuk helyebe amit a tagfuggveny vissza fog adni... mas esstben nem nagyon hasznaljak...
2014. nov. 28. 22:15
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:

Sok idiótaságot sikerült itt összehordani, de a lényeg tömören:

Függvény (nem void): ami kiszámol valamit, pl összead, szoroz, négyzetreemel, derivál, determinánst számol, leggyakorobb magánhangzót határoz meg, eldönti egy számról hogy prím-e, satöbbi

Eljárás (void): ami elvégez valami nem egy konkrét eredménnyel járó feladatot, pl megnyit egy filet, kiír valamit, letörli a képernyőt

2014. nov. 28. 22:55
Hasznos számodra ez a válasz?
 10/10 anonim ***** válasza:
Hát ha cipőboxal nyitod meg a fogmosás függvényt, elég cifra hibaüzenetet fogsz kapni, ha épp nem egyből kék halált.
2014. nov. 29. 16:49
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!