void funkcja(???) - jak to zrobić?
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

void funkcja(???) - jak to zrobić?

AutorWiadomość
Temat założony przez niniejszego użytkownika
void funkcja(???) - jak to zrobić?
» 2010-04-01 19:07:30
Męczę się nad tym od pewnego czasu i już gotów jestem wywiesić białą flagę!.
Jest np. program
C/C++
#include <iostream>
int main()
{
    using std::cout;
    int a = 4, b = 5, c, d;
    c = a + b;
    d = a - b;
    cout << "c=" << c << "\n";
    cout << "d=" << d << "\n";
    return 0;
}
Chciałbym go zastąpić programem z funkcją typu void. Wiem, że mają być użyte wskaźniki. Zarys tego programu wyglądałby tak.
C/C++
#include <iostream>
void funkcja( ???? );
int main()
{
    using std::cout;
    int a = 4, b = 5, c, d;
    funkcja( ???? );
    cout << "c=" << c << "\n";
    cout << "d=" << d << "\n";
    return 0;
}
void funkcja( ???? );
{
    ....
    ....
}

HELP!!!
P-15684
» 2010-04-01 19:23:16
użyj referencji
Po co piszesz , jak strona jest "zamrożona " ?
P-15685
Temat założony przez niniejszego użytkownika
» 2010-04-01 20:12:42
kamillo121
Wiem, że to ma coś wspólnego z referencjami i tak próbowałem. Bez efektów. Jestem ciut namolny. Ale czy mógłbyś mi zamienić mój zarys programu na prawdziwy? Wiem, że dla osoby która wie jak to zrobić, to "no problem". Specjalnie wybrałem prosty przykład.
Co to  znaczy że strona jest "zamrożona"? Przecież mogę na niej pisać.
P-15686
» 2010-04-01 20:54:35
Chodziło mi o to ,że strona jak to napisał Pan Piotr upada , zerknij na stronę główną portalu .
najprościej to zrobić tak:

C/C++
void matma( int & a, int & b, int & c, char * z )
{
    if( z == "+" )
         a = b + c;
    else if( z == "-" )
         a = b - c;
   
}

wywołujesz np.


C/C++
int a, a2, b, c;

b = 20;
c = 30;

matma( a, b, c, "+" );
matma( a2, b, c, "-" );
Nie wiem czy to jest dobry sposób ale na próby chyba dobry ;]
P-15687
Temat założony przez niniejszego użytkownika
» 2010-04-01 21:15:23
Dzięki. Zaraz będę trawił.
P-15688
» 2010-04-01 21:50:39
Od kiedy c-stringi porównuje się przez ==, co?
P-15690
» 2010-04-01 22:22:35
fakt,mała pomyłka.
P-15691
Temat założony przez niniejszego użytkownika
Jeszcze raz wielkie dzięki dla Kamilo121!
» 2010-04-02 10:21:38
Działa! Moje wiekopomne dzieło powinno więc wyglądać tak:
C/C++
#include <iostream>
void funkcja( int & a, int & b, int & c, int & d );
int main()
{
    using std::cout;
    int x = 5, y = 3, z1, z2;
    funkcja( x, y, z1, z2 );
    cout << "z1=" << z1 << "\n";
    cout << "z2=" << z2 << "\n";
    return 0;
}
void funkcja( int & a, int & b, int & c, int & d )
{
    c = a + b;
    d = a - b;
}

Mam jeszcze 2 pytania

1. Przy "zwykłych" funkcjach w deklaracji (pierwsza linijka za #include) dopuszczalne jest podawanie tylko typów argumentów np (int,int,int,int). Czy tu  też jest coś takiego?

2. Pytanie natury bardziej ogólnej. Ja w tej metodzie widzę same zalety. Np. to że na wyjściu funkcji może być wiele parametrów, a nie tylko jeden. Jedyna wada to bardziej skomplikowana forma zapisu, ale tu też twórcy C++ mogliby łatwo tę wadę usunąć.
To po co w ogóle stworzono funkcję ze zwrotem jednego parametru poprzez return parametr?

P-15695
« 1 » 2 3
 Strona 1 z 3Następna strona