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

Przekazywanie Tablic Jednowymiarowych do Funkcji

Ostatnio zmodyfikowano 2015-06-09 23:28
Autor Wiadomość
Adams644
Temat założony przez niniejszego użytkownika
Przekazywanie Tablic Jednowymiarowych do Funkcji
» 2015-06-09 21:28:51
Witam, stworzyłem ten temat w celu ,aby zapytać się was i prosić o sprawdzenie poprawności tego kodu z wykorzystaniem zasad opisanych w kursie tzn. Jako początkujący programista staram się przestrzegać każdych zasad ale wiadomo nie wszystko idzie od razu zapamiętać więc wolę się zapytać ,żeby nie łapać już na początku tych złych nawyków. :) Napisałem ten kod w oparciu o polecenie pracy domowej (Tytuł). Jeżeli by ktoś miał chwilę to interesuje mnie wypisanie w komentarzu zrobionych przeze mnie błędów. :) Pozdrawiam.

C/C++
#include <iostream>
#include <cstdlib>

using namespace std;
void wylosujLiczby( int tablica[], int licznik, int a, int b )
{
    int i = 0;
   
    do
    {
        tablica[ i ] =( rand() % b ) + a;
        i++;
        licznik--;
    }
    while( licznik > 0 );
   
}

void wypiszLiczby( int tablica[], int licznik )
{
    int i = 0;
    do
    {
        cout << "liczba: " << tablica[ i ] << endl;
        i++;
        licznik--;
       
    }
    while( licznik > 0 );
   
}
int obliczSume( int tablica[], int licznik )
{
    int i = 0;
    int suma = 0;
    do
    {
        suma += tablica[ i ];
        i++;
        licznik--;
    }
    while( licznik > 0 );
   
    return suma;
}

int main()
{
    int tablica[ 999 ];
    wylosujLiczby( tablica, 999, 4, 7 );
    wypiszLiczby( tablica, 999 );
    int iSuma = obliczSume( tablica, 999 );
    cout << "Suma liczb wynosi: " << iSuma << endl;
    return 0;
}
P-133397
pekfos
» 2015-06-09 21:39:34
C/C++
tablica[ i ] =( rand() % b ) + a;
To miało losować liczby od a do b?
P-133398
Adams644
Temat założony przez niniejszego użytkownika
» 2015-06-09 21:43:31
To miało losować liczby od 4 do 10 dziesiątką włącznie więc postanowiłem zapisać to w taki sposób. Z tego co pamiętam początek jest tam gdzie zmienna "a"  łączna liczba losowanych liczb tam gdzie "b"
P-133399
pekfos
» 2015-06-09 21:54:03
Trochę poszedłeś na łatwiznę, zmieniłeś znaczenie argumentów w skopiowanym przykładowym mainie.
P-133403
Adams644
Temat założony przez niniejszego użytkownika
» 2015-06-09 21:59:16
hmmm... więc chodzi o to ,że te wartości które są podane jako argumenty źle zinterpretowałem ? Czy powinienem trzymać się jakiejś zasady ku temu? Muszę dodać ,że moim celem było napisanie poprawnie i (stylistycznie) tych funkcji oraz ,że w żadnym wypadku nie chciałem iść na łatwiznę tylko z mojego punktu logiki oraz wiedzy wydało mi się to prawidłowe. Dlatego też każda uwaga w moim kierunku będzie traktowana jako nauka.
P-133404
pekfos
» 2015-06-09 22:51:12
więc chodzi o to ,że te wartości które są podane jako argumenty źle zinterpretowałem ?
wylosuje 999 liczb całkowitych z zakresu od 4 do 10 włącznie
[..]
C/C++
wylosujLiczby( tablica, 999, 4, 10 );
Nie wiem jak inaczej to można zinterpretować. 3 różne, opisane liczby w treści zadania i takie masz podane jako argumenty. W zasadzie nie jest nigdzie napisane, że trzeba się trzymać przykładowej implementacji z treści, ale wtedy przynajmniej masz pewność, że napisane przez ciebie funkcje są na temat.
P-133408
Adams644
Temat założony przez niniejszego użytkownika
» 2015-06-09 23:14:47
No dlatego też mi się nie wydaje ,żebym źle to zrozumiał co prawda zmieniłem w tym zapisie wartość gdzie jest ( 4,10 ) na (4, 7) ponieważ z wcześniejszych rozdziałów w kursie wywnioskowałem ,że wpisanie 10 losowalo by mi liczby z większego przedziału a nie to jest celem zadania. Jeżeli ,tak jak piszesz to faktycznie coś mi może umknęło i da się wykorzystać te wartości 4,10 tak żeby losowanie też było prawidłowe. :)  Dzięki i chociaż ,że ten przykładowy main jest nie pod to zadanie. To i tak sprawdzę inne możliwości losowania. Pozdrawiam. ;
P-133411
pekfos
» 2015-06-09 23:28:43
zmieniłem [..] ( 4,10 ) na (4, 7) ponieważ z wcześniejszych rozdziałów w kursie wywnioskowałem ,że wpisanie 10 losowalo by mi liczby z większego przedziału
łączna liczba losowanych liczb tam gdzie "b"
Argument b jest górną granicą przedziału, podanie go do modulo z rand() nie da pożądanego rezultatu, bo, jak sam wiesz i napisałeś, trzeba tam podać ilość liczb, więc musisz tę ilość obliczyć, mając dane granice przedziału.
P-133412
« 1 »
  Strona 1 z 1