marek 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 #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. #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!!! |
|
kamillo121 |
» 2010-04-01 19:23:16 użyj referencji Po co piszesz , jak strona jest "zamrożona " ? |
|
marek 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ć. |
|
kamillo121 |
» 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: void matma( int & a, int & b, int & c, char * z ) { if( z == "+" ) a = b + c; else if( z == "-" ) a = b - c; }
wywołujesz np. 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 ;] |
|
marek Temat założony przez niniejszego użytkownika |
» 2010-04-01 21:15:23 Dzięki. Zaraz będę trawił. |
|
Elaine |
» 2010-04-01 21:50:39 Od kiedy c-stringi porównuje się przez ==, co? |
|
kamillo121 |
» 2010-04-01 22:22:35 fakt,mała pomyłka. |
|
marek 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: #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? |
|
« 1 » 2 3 |