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

Lekcja 19, praca domowa, czyli Jak komunikować się z funkcji do main'a.

Ostatnio zmodyfikowano 2014-09-19 21:25
Autor Wiadomość
Skaciu
Temat założony przez niniejszego użytkownika
Lekcja 19, praca domowa, czyli Jak komunikować się z funkcji do main'a.
» 2014-09-16 16:12:25
Witam. Podczas swojej sielankowej nauki natrafiłem na problem, którego mimo wielu
prób nie jestem w stanie pokonać. Chodzi tu o lekcje 19 (poziom 2) i o
przekazywanie tablicy do funkcji a następnie z funkcji do main'a.

Przykładowy kod który się tam znajduje:

#include <iostream>

void wypelnijTablice( int t[], int iRozmiar )
{
    std::cout << "Podaj " << iRozmiar << " liczb:" << std::endl;
    int i = 0;
    do
    {
        std::cin >> t[ i ];
        i++;
    } while( i < iRozmiar );
   
}

int main()
{
    int moja_tablica[ 5 ];
    wypelnijTablice( moja_tablica, 5 );
    int i = 0;
    do
    {
        std::cout << moja_tablica[ i ] << ", ";
        i++;
    } while( i < 5 );
   
    return 0;
}
Moje pytanie to: w którym miejscu funkcja zmienia wartości moja_tablica w funkcji main?
Bo z tego co widzę argumentem main przekazuje funkcji tablice, a potem co?

Prosze o pomoc, dziękuję serdecznie. :)
P-117071
michal11
» 2014-09-16 16:27:44
C/C++
#include <iostream>

void wypelnijTablice( int t[], int iRozmiar )
{
    std::cout << "Podaj " << iRozmiar << " liczb:" << std::endl;
    int i = 0;
    do
    {
        std::cin >> t[ i ]; // tu sa liczby wczytywane do kolejnych elementow tablicy
        i++;
    } while( i < iRozmiar );
   
}

int main()
{
    int moja_tablica[ 5 ];
    wypelnijTablice( moja_tablica, 5 );
    int i = 0;
    do
    {
        std::cout << moja_tablica[ i ] << ", ";
        i++;
    } while( i < 5 );
   
    return 0;
}

Dlaczego stosujesz do while zamiast for ?
P-117072
Skaciu
Temat założony przez niniejszego użytkownika
» 2014-09-16 16:34:53
Kod pochodzi z kursu, pętla for jeszcze nie została w nim omówiona.
P-117073
grzeso
» 2014-09-18 17:34:32
Trochę dziwne pytanie.
Nie masz zmiennej moja_tablica. Masz zmienne
moja_tablica[ 1 ]
...
moja_tablica[ 5 ]
, to ogromna różnica. Tutaj
int moja_tablica[ 5 ];
 nadajesz jakiejś tablicy nazwę
moja_tablica
 i to że ma 5 elementów.
W
main
 nic się nie zmienia w związku z tą tablicą, wywołuje jedynie funkcję
wypelnijTablice(...)
 w której to nadajesz wartości tym zmiennym. Nic zawarte w
main
 nie zmienia i nie nadaje wartości tym zmiennym. (nie licząc oczywiście wywołania samej funkcji)

Generalnie to w funkcji nadjesz zmiennej wartość, a potem w etapie:
C/C++
do
{
    std::cout << moja_tablica[ i ] << ", ";
    i++;
} while( i < 5 );
tylko wypisujesz.

w tym momencie:
wypelnijTablice( moja_tablica, 5 );
 tylko informujesz funkcje z jakiej tablicy ma korzystać

Może napisz inaczej swoje pytanie bo ja to tak do końca nie zrozumiałem o co chodzi
P-117153
Skaciu
Temat założony przez niniejszego użytkownika
» 2014-09-19 21:25:58
"tylko informujesz funkcje z jakiej tablicy ma korzystać"

I o to chodziło, teraz już rozumiem jak to działa i wykonałem
pracę domową. Dziękuję.

P-117196
« 1 »
  Strona 1 z 1