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

Problem z funkcją.

Ostatnio zmodyfikowano 2013-04-11 15:35
Autor Wiadomość
Forczek
Temat założony przez niniejszego użytkownika
Problem z funkcją.
» 2013-04-11 12:07:19
Siema wszystkim. Mam do was pytanie. Chciałem napisać taką funkcję:
int wartosci( int & x[], int & y[], int & wartosc_x, int & wartosc_y )
 Lecz wywala mi błędy i musiałem zmienić na
int wartosci( int x[], int y[], int & wartosc_x, int & wartosc_y )
 Powiedziałby mi ktoś, jak nadać odpowiednie wartości zmiennym? Przeczytałem, że można do zrobić poprzez
& zmienna
 Nie wiem niestety jak zrobić to dla tablic.
P-80353
MrPoxipol
» 2013-04-11 14:46:43
Zapewne chodzi Ci o coś takiego jak to:
C/C++
int x[ 3 ]; //tworzymy sobie tablicę(jaka nam pasuje)
int y[ 3 ]; //jw
int wartosc_x = 5; //tworzymy zmienną i nadajemy jej przykładową wartość
int wartosc_y = 3; //jw

wartosci( x, y, wartosc_x, wartosc_y ); //wywołujemy funkcje z odpowiednimi parametrami

» Kurs C++ » Poziom 3Przekazywanie argumentów funkcji przez referencję lekcja
P-80358
Forczek
Temat założony przez niniejszego użytkownika
» 2013-04-11 15:15:22
Chodzi mi o coś innego. Na przykładzie:
C/C++
#include <iostream>

int wartosc( int x )
{
    x += 1;
}

int main()
{
    int y = 0;
    std::cout << "Na poczatku: " << y << std::endl;
    wartosc( y );
    std::cout << "Na koncu: " << y;
}

Na poczatku: 0
Na koncu: 0
A ja chcę na koncu 1. Wtedy muszę dać
int wartosc( int & x )
 Nie wiem dlaczego nie działa dla tablicy i co z nią nie tak. Nie wiem, jak uzyskać taki efekt dla tablic, żeby na końcu było te 1. Bo bez znaku "&" zmienia się wartość tylko w środku tablicy. Rozumiesz?
P-80360
MrPoxipol
» 2013-04-11 15:19:48
Co do tablic, nie daje się referencji.
zmienia się wartość tylko w środku tablicy
A w czym ma zmienić? w nazwie? w liczbie elementów?
P-80361
Forczek
Temat założony przez niniejszego użytkownika
» 2013-04-11 15:27:45
Wstaw sobie ten przykład do kompilatora i przeanalizuj:
C/C++
#include <iostream>

int wartosc_ze_znakiem( int & x )
{
    x += 1;
    std::cout << "W srodku funkcji: " << x << std::endl;
}
int wartosc_bez_znaku( int x )
{
    x += 1;
    std::cout << "W srodku funkcji: " << x << std::endl;
}

int main()
{
    int y = 0;
    std::cout << "Bez znaku" << std::endl;
    std::cout << "Na poczatku: " << y << std::endl;
    wartosc_bez_znaku( y );
    std::cout << "Na koncu: " << y << std::endl;
    std::cout << "Ze znakiem" << std::endl;
    std::cout << "Na poczatku: " << y << std::endl;
    wartosc_ze_znakiem( y );
    std::cout << "Na koncu: " << y;
}
Minuta pisania.
P-80363
MrPoxipol
» 2013-04-11 15:29:55
Dobrze wiem jak działa referencja :P Lepiej przeanalizuj sobie jeszcze parę rozdziałów kursu..
P-80365
Monika90
» 2013-04-11 15:31:32
Ale co ty chesz osiągnąć? Chesz zmodyfikować zawartośc tablicy? Przekaż wskaźnik do pierwszego elementu i ewentualnie rozmiar.
Chcesz zaalokować nową tablicę w funkcji? Przekaż referencję do wskaźnika i referencję do rozmiaru.
P-80366
pekfos
» 2013-04-11 15:32:39
O to chodzi?
C/C++
int wartosci( int *& x, int *& y, int & wartosc_x, int & wartosc_y )
P-80367
« 1 » 2
  Strona 1 z 2 Następna strona