Kezdőoldal » Számítástechnika » Programozás » C++ nyelvben hogy tudok sima...

C++ nyelvben hogy tudok sima eljárásokat készíteni?

Figyelt kérdés

Konkrétan arra gondolok, hogy ugye a függvény az egy értéket ad vissza, viszont nekem nem arra lenne szükségem, hanem hogy a bemeneti paramétereket cím szerint vegye át, és mondjuk pl fölcserélje őket.


Ezt hogy lehetne megoldani?


2010. dec. 12. 09:30
 1/6 anonim ***** válasza:

Eljárás C-ben nem létezik, azt is függvénynek hívják.

A visszatérési érték lehet void, azaz üres. Pl.:


void blablabla(char* s)

{

if(s) puts(s); else return;

puts("vége");

}


Ebben az esetben a return szó után nem írsz semmit, ha vissza akarsz térni a függvényből. A végéről meg el is hagyható.

2010. dec. 12. 09:35
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:
És ez továbbadja a főprogramnak a felcserélt változókat? Mert hasonlót készítettem én is, de a főprogramban elvesztek a felcserélt változók értékei, és azzal folytatta, ami a függvényhívás előtti értéke volt.
2010. dec. 12. 09:37
 3/6 anonim ***** válasza:

C-ben nincs változó paraméter, az értékeket pointereken keresztül tudod változtatni úgy, hogy átírod a változó memóriaterületét. Példa:


//... valahol a főprogramban

int i;


i = 2;


dupla(&i);


printf("%d\n", i);


//... azt fogja kiírni, hogy 4


Itt van a függvény:


void dupla(int *a)

{

(*a) = 2 * (*a);

}


A (*a) mindig legyen zárójelezve az ún. mellékhatások elkerülése érdekében.

2010. dec. 12. 09:58
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:

Ahha, azthiszem kezdem kapisgálni :D


Köszönöm a válaszokat!

2010. dec. 12. 11:11
 5/6 anonim ***** válasza:

Én azt hiszem, hogy ez egy kissé túl van bonyolítva. Lehet, hogy C-ben tényleg ennyire macerás, de a kérdés a C++-ra vonatkozott. Itt van egy megoldás minimális mutatóhasználattal:


#include <iostream>

using namespace std;


void csere(int &x, int &y){

int z;

z=x; x=y; y=z;

}


void dupla(int &k){ //Ez felel meg a Pascal "eljárásának"

k*=2;

}


int dupla2(int &n){ //Ez a klasszikus függvény

return 2*n;

}


main(){

int a,b,c;

cout << "a=? ";

cin >> a;

cout << "b=? ",

cin >> b;

csere(a,b);

cout << "a=" << a << ", b=" << b << endl;

dupla(a);

cout << "a duplája: " << a << endl;

cout << "Ennek is a duplája: " << dupla2(a) << endl;

fflush(stdin);

getchar();

}

2010. dec. 12. 11:18
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:

A legegyszerűbb igazából a beépített swap (felcserélni) függvény használata, az pont ezt csinálja: cím szerint átvesz két változót, és kicseréli őket. Az <algorithm> headerben és az std névtérben van, tehát


#include <algorithm>


int main()

{

int a, b;

// ... értékadás a-nak, b-nek

std::swap(a,b);

//megcseréltük őket, voilá.

}

2010. dec. 12. 11:28
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!