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

[C++] Przekazywanie tablic jednowymiarowych do funkcji - zadanie

Ostatnio zmodyfikowano 2012-12-15 12:06
Autor Wiadomość
GieNkoV
Temat założony przez niniejszego użytkownika
[C++] Przekazywanie tablic jednowymiarowych do funkcji - zadanie
» 2012-12-02 15:41:02
Witam chciałbym aby ktoś bardziej zaawansowany w programowaniu ocenił moje wypociny z tego oto zadania. Wszystko jest chyba OK ale może jest coś co można poprawić? Z góry dziękuję za pomoc.
Treść zadania:

Napisz program, który wylosuje 999 liczb całkowitych z zakresu od 4 do 10 włącznie, wypisze te wartości na ekran, po czym zsumuje je i wynik wypisze na ekran. Wszelkie operacje mają zostać zrealizowane w oparciu o funkcje. Tablica ma być zadeklarowana w funkcji main. Oczekiwane funkcje:
Wypełnienie tablicy o podanym rozmiarze losowymi liczbami z przedziału podawanego przez argumenty funkcji.
Sumowanie określonej ilości liczb znajdujących się w tablicy i zwrot wyniku.
Wypisywanie zawartości tablicy.

A tutaj kod programu:

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

void wylosujLiczby( int t[], int ileLiczb, int min, int max )
{
    int losowe;
    int pozycja = 0;
    do
    {
        losowe =(( rand() %( max - min + 1 ) ) + min );
        t[ pozycja ] = losowe;
        pozycja++;
    }
    while( pozycja <= ileLiczb );
   
}

void wypiszLiczby( int t[], int ileLiczb )
{
    int pozycja = 0;
    do
    {
        cout << t[ pozycja ] << ", ";
        pozycja++;
    }
    while( pozycja <= ileLiczb );
   
    cout << endl;
}

int obliczSume( int t[], int ileLiczb )
{
    int suma = 0;
    int pozycja = 0;
    do
    {
        suma = suma + t[ pozycja ];
        pozycja++;
    }
    while( pozycja <= ileLiczb );
   
    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;
}
P-70248
DejaVu
» 2012-12-02 20:29:59
Ocenianie kodu nie ma najmniejszego sensu. Działa poprawnie = 100%, nie działa poprawnie = 0%.
P-70253
tirou
» 2012-12-10 00:22:45
A ocenianie szybkosci, stabilnosci, wydajnosci itp ? Wiem, że to nie na ten poziom, ale ogolnie powyższy post DejaVu jest powiedzmy "niedokładny" :>
P-70681
withelm
» 2012-12-10 06:29:26
A na tabulatory to jesteś za biedny?
P-70682
Hipochondryk
» 2012-12-15 12:06:19
Nie lepiej było by użyć wskaźników ? było by o wiele szybciej i przynajmniej dla mnie wygodniej.

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int suma; // zmienna globalna

void wylosujLiczby( int * t, int ileLiczb, int min, int max )
{
    int pozycja = 0;
    do
    {
       
        *( t + pozycja++ ) =(( rand() %( max - min + 1 ) ) + min ); // losowanie odrazu do zmiennnej
       
    }
    while( pozycja <= ileLiczb );
   
}

void wypiszLiczby( int * t, int ileLiczb )
{
    int pozycja = 0;
    do
    {
        cout << *( t + pozycja++ ) << ", ";
       
    }
    while( pozycja <= ileLiczb );
   
    cout << endl;
}
// teraz nic nie zwraca
void obliczSume( int * t, int ileLiczb )
{
   
    int pozycja = 0;
    do
    {
        suma += *( t + pozycja++ );
       
    }
    while( pozycja <= ileLiczb );
   
   
}

int main()
{
    srand( time( NULL ) );
    int tablica[ 999 ];
    wylosujLiczby( tablica, 999, 4, 10 );
    wypiszLiczby( tablica, 999 );
    //oblicza sume dla zmiennej globalnej a nizej wypisuje
    obliczSume( tablica, 999 );
    cout << "Suma liczb wynosi: " << suma << endl;
    return 0;
}
P-71068
« 1 »
  Strona 1 z 1