Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Czy da się oeprować na nazwach zmiennych w funkcji.

Ostatnio zmodyfikowano 2011-01-08 18:17
Autor Wiadomość
jsc
Temat założony przez niniejszego użytkownika
Czy da się oeprować na nazwach zmiennych w funkcji.
» 2011-01-08 14:33:48
Założmy, że mamy taki kod:


#include <iostream>

using namespace std;

static int porow_a = 0; //Bez tego i tak się rozwalą się wyniki
static int porow_b = 0;
static int porow_c = 0;

void wypisz_po_cyfrze (int liczba_a)
     for (int i = 1000000; i >= 1; i /= 10) //Coś na kształt rekurencji
     {
        if (i > liczba_a)
        {
         continue;
        }

     porow_a = porow_a * 10;
     cout <<( liczba_a / i ) - porow_a;
     porow_a = liczba / i;
     }

void wypisz_po_cyfrze (int liczba_b)
     for (int i = 1000000; i >= 1; i /= 10) //Coś na kształt rekurencji
     {
        if (i > liczba_b)
        {
         continue;
        }

     porow_b = porow_b * 10;
     cout <<( liczba_b / i ) - porow_b;
     porow_a = liczba_b / i;
     }

void wypisz_po_cyfrze (int liczba_c)
     for (int i = 1000000; i >= 1; i /= 10) //Coś na kształt rekurencji
     {
        if (i > liczba_c)
        {
         continue;
        }

     porow_c = porow_c * 10;
     cout <<( liczba_c / i ) - porow_c;
     porow_c = liczba_c / i;
     }

main ()
{
 int a, b, c;
 for (a = 2; a <= 10; ++a)
 {
  wypisz_po_cyfrze (a);
  b = a + 11;
  wypisz_po_cyfrze (b);
  c = a * 11;
  wypisz_po_cyfrze (c);
}


Moje pytanie brzmi: czy da się jakoś operować na nazwach przyjmowanych przez funkcję zmiennych, np. jako argument zrobię int liczba i gdy będę wywoływał, to odpowiedni kodzik podmieni nazwy liczba i porow odpowiednio na a i porow_a?
P-26323
SeaMonster131
» 2011-01-08 14:39:14
Po 1. napisz temat postu, a po 2. kod daj w
[ code src="C++" ] ... [ /code ]
lub
[ cpp ] ... [ /cpp ]

(bez spacji) :)
P-26326
pekfos
» 2011-01-08 15:03:29
lub w [cpp] [/cpp]. żadnych spacji :)
P-26331
michalp
» 2011-01-08 15:05:23
Nie da się z prostego powodu - to nie ma sensu.
P-26332
jsc
Temat założony przez niniejszego użytkownika
» 2011-01-08 16:34:44
Może się nie da.

Ale uciekam od powtarzania tego samego fragmentu kodu, tylko po to aby zmienić nazwy zmiennych w wariantach do wyboru:
C/C++
void wypisz_po_cyfrze( int liczba_a, powtorz_a )
{
    for( int i = 1000000; i >= 1; i /= 10 ) //Coś na kształt rekurencji
    {
        if( i > liczba_a )
        {
            continue;
        }
       
        porow_a = porow_a * 10;
        cout <<( liczba_a / i ) - porow_a;
        porow_a = liczba / i;
    }
}

lub

C/C++
int zmienna; //Decyduje, który zestaw zmiennych ma być obsłużony

void wypisz_po_cyfrze( int liczba, int zmienna )
{
    switch( zmienna )
    case 0
: for( int i = 1000000; i >= 1; i /= 10 ) //Coś na kształt rekurencji
    {
        if( i > liczba_a )
        {
            continue;
        }
       
        porow_a = porow_a * 10;
        cout <<( liczba_a / i ) - porow_a;
        porow_a = liczba / i;
    }
    break;
case 1:
    for( int i = 1000000; i >= 1; i /= 10 ) //Coś na kształt rekurencji
    {
        if( i > liczba_b )
        {
            continue;
        }
       
        porow_b = porow_b * 10;
        cout <<( liczba_b / i ) - porow_b;
        porow_b = liczba_b / i;
    }
    break;
   
    default:
    for( int i = 1000000; i >= 1; i /= 10 ) //Coś na kształt rekurencji
    {
        if( i > liczba_c )
        {
            continue;
        }
       
        porow_c = porow_c * 10;
        cout <<( liczba_c / i ) - porow_c;
        porow_c = liczba_c / i;
    }
    break;
}
P-26343
michalp
» 2011-01-08 16:42:07
Użyj referencji.
P-26344
jsc
Temat założony przez niniejszego użytkownika
» 2011-01-08 17:38:39
Znacząco ułatwia pracę z takimi funkcjami, ale przy wywołaniu trzeba podać 2 argumenty, a chciałbym tylko 1. Mimo to dzięki.
P-26345
malan
» 2011-01-08 18:17:53
Dlaczego dwa?

/edit: Już wiem ;p. Zawsze możesz zrobić strukturę...
P-26346
« 1 »
  Strona 1 z 1