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

19. Przekazywanie tablic jednowymiarowych do funkcji

Ostatnio zmodyfikowano 2016-11-06 21:27
Autor Wiadomość
qwertyuoipzx
Temat założony przez niniejszego użytkownika
19. Przekazywanie tablic jednowymiarowych do funkcji
» 2016-11-06 17:56:56
Witam, słabo mi idzie zrozumienie funkcji, a co dopiero tego zadania. Wiem jak przekazywać wartości z jednej do drugiej, lecz nie wiem kompletnie co zrobić np. z zmienną
tablica
Tutaj cały kod, jaki udało mi się wymyślić ale z marnym skutkiem.
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int wylosujLiczby( int a, int b, int c, int d )
{
    srand( time( NULL ) );
    int losowanie[ a ]
    do
    {
        losowanie[ a ] =( rand() % b ) + c;
        a--
    }
    return losowanie;
}

int wypiszLiczby( int e[], int f )
{
    do
    {
        cout << "Losowanie: " << wylosujLiczby << endl;
        f--
    } while( f = !0 )
}

int obliczSume( int g, int h )
{
   
}

int main()
{
    int tablica[ 999 ];
    wylosujLiczby( tablica, 999, 4, 10 );
    wypiszLiczby( tablica, 999 );
    int iSuma = obliczSume( tablica, 999 );
    cout << "Suma liczb wynosi: " << iSuma << endl;
    return 0;
}


Compiling: D:\C++\13zadanie.cpp
D:\C++\13zadanie.cpp: In function 'int wylosujLiczby(int, int, int, int)':
D:\C++\13zadanie.cpp:10: error: expected initializer before 'do'
D:\C++\13zadanie.cpp:15: error: 'losowanie' was not declared in this scope
D:\C++\13zadanie.cpp: In function 'int wypiszLiczby(int*, int)':
D:\C++\13zadanie.cpp:24: error: expected ';' before '}' token
D:\C++\13zadanie.cpp:25: error: expected ';' before '}' token
D:\C++\13zadanie.cpp: In function 'int main()':
D:\C++\13zadanie.cpp:35: error: invalid conversion from 'int*' to 'int'
D:\C++\13zadanie.cpp:35: error:   initializing argument 1 of 'int wylosujLiczby(int, int, int, int)'
D:\C++\13zadanie.cpp:37: error: invalid conversion from 'int*' to 'int'
D:\C++\13zadanie.cpp:37: error:   initializing argument 1 of 'int obliczSume(int, int)'
P-153427
BadBullPL
» 2016-11-06 18:34:51
Przeczytaj lekcję jeszcze raz i czytaj ze zrozumieniem errory to naprawisz parę błędów.
P-153429
mateczek
» 2016-11-06 19:23:03
C/C++
#include <iostream>
#include <ctime>
using namespace std;

void wylosujLiczby( int tab[], int limitGora, int limitDol, int rozmiar )
{
    for( int i = 0; i < rozmiar; i++ )
    {
        tab[ i ] =( rand() %( limitGora - limitDol + 1 ) ) + limitDol;
    }
}

void wypiszLiczby( int tablica[], int rozmiar )
{
    for( int i = 0; i < rozmiar; i++ ) {
        cout << tablica[ i ] << " ";
    }
}

int obliczSume( int tablica[], int rozmiar )
{
    int suma = 0;
    for( int i = 0; i < rozmiar; i++ ) {
        suma += tablica[ i ];
    }
    return suma;
   
}

int main()
{
    srand( time( NULL ) );
    constexpr int tabSize = 50;
    int tablica[ tabSize ];
   
    wylosujLiczby( tablica, 10, 4, tabSize );
    wypiszLiczby( tablica, tabSize );
   
    int iSuma = obliczSume( tablica, tabSize );
    cout << "Suma liczb wynosi: " << iSuma << endl;
    return 0;
}
P-153434
qwertyuoipzx
Temat założony przez niniejszego użytkownika
» 2016-11-06 20:51:04
Nie chcę używać for, bo jeszcze tego formalnie nie umiem. Ale trochę to pomogło. Napisałem coś takiego:
C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
void wylosujLiczby( int tablica[], int limit, int losowanieGora, int losowanieDol )
{
    int i;
    do
    {
        i++;
        int tablica[ i ] =( rand() % losowanieGora ) + losowanieDol;
    } while( i < limit );
   
}

void wypiszLiczby( int tablica[], int ile )
{
    int g;
    do
    {
        g++;
        cout << tablica[ g ] << " , ";
    } while( g < 1000 );
   
}

int obliczSume( int tablica[], int ilosc )
{
    int b;
    int suma = 0;
    do
    {
        b++;
        suma += tablica[ b ];
    } while( b < ilosc );
   
    return suma;
}


int main()
{
    srand( time( NULL ) );
    int tablica[ 999 ];
    wylosujLiczby( tablica, 999, 4, 10 );
    wypiszLiczby( tablica, 999 );
    int iSuma = obliczSume( tablica, 999 );
    cout << "Suma liczb wynosi: " << iSuma << endl;
    return 0;
}
Ale pozostaje jeden błąd:

D:\C++\1zadanie.cpp: In function 'void wylosujLiczby(int*, int, int, int)':
D:\C++\1zadanie.cpp:11: error: variable-sized object 'tablica' may not be initialized
Choć coś czuję, że to wszystko jest źle ;_;
P-153436
mateczek
» 2016-11-06 21:27:42
wszystkie funkcje mają te same błędy
C/C++
void wylosujLiczby( int tablica[], int limit, int losowanieGora, int losowanieDol )
{
    //int i; // nie zaincjalizowaa liczba;
    int i = 0;
    do
    {
        //i++; //tablice indeksujemy od zera !!! więc i++ za wpisem
        tablica[ i ] =( rand() % losowanieGora ) + losowanieDol;
        i++;
    } while( i < limit );
   
}

C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
void wylosujLiczby( int tablica[], int limit, int start, int stop )
{
    int i = 0;
    while( i < limit )
    {
        tablica[ i ] =( rand() %( stop - start + 1 ) ) + start;
        i++;
    }
   
}

void wypiszLiczby( int tablica[], int rozmiar )
{
    int g = 0;
    while( g < rozmiar )
    {
        cout << tablica[ g ] << " , ";
        g++;
    }
   
}

int obliczSume( int tablica[], int ilosc )
{
    int b = 0;
    int suma = 0;
    while( b < ilosc )
    {
        suma += tablica[ b ];
        b++;
    }
   
    return suma;
}


int main()
{
    srand( time( NULL ) );
    constexpr int size = 5;
    int tablica[ size ];
    wylosujLiczby( tablica, size, 4, 10 );
    wypiszLiczby( tablica, size );
    int iSuma = obliczSume( tablica, size );
    cout << "Suma liczb wynosi: " << iSuma << endl;
    return 0;
}
P-153441
« 1 »
  Strona 1 z 1