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

Przekazywanie tablic jednowymiarowych do funkcji

Ostatnio zmodyfikowano 2011-08-09 22:37
Autor Wiadomość
dexiu03
Temat założony przez niniejszego użytkownika
Przekazywanie tablic jednowymiarowych do funkcji
» 2011-08-07 22:24:53
Witam, robię sobie wasz kurs, ale nigdy nie potrafiłem zrozumieć tablic, jednak zrozumiałem je (chyba), ogólnie wykonałem wszystkie zadania samodzielnie aż do tego momentu...
» Kurs C++ » Poziom 2Przekazywanie tablic jednowymiarowych do funkcji lekcja

Zadanie domowe i stoje już na punkcie pierwszym:
-Wypełnienie tablicy o podanym rozmiarze losowymi liczbami z przedziału podawanego przez argumenty funkcji.

A więc zapisałem to w ten sposób:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

void los( int t[], int dlos ) /*Funkcja losowania liczb w tablicy z zakresu 4 do 10 */
{
    int licznik;
    srand( time( NULL ) );
    dlos =(( rand() % 4 ) + 7 ); /*Losowanie od 4 do 10 */
    licznik = 0;
    do
    {
        t[ dlos ], licznik; /*Tutaj nie wiem co zrobić.. */
        licznik++;
    }
    while( licznik > 999 );
   
}

int main()
{
    int t1[ 999 ]; /*zaczyna się koszmar */
    los( t1, 999 );
    int i = 0;
    do
    {
        cout << t1[ i ] << ", ";
        i++;
    }
    while( i > 999 ); /*A tu zakonczylem go :) */
   
    return 0;
}

I w rezultacie chciałem sprawdzić, czy wypisze mi liczby losowo, przydzielone do tablic, w znaczeniu, że z każdego pola tablicy wypisze mi nową liczbę ale...
Wypisuje mi tylko kilka cyfr obok siebie i przecinek, a nie żadne pokolei... więc w sumie nie wykonuje mojej zaplanowanej operacji...
Nie rozumiem tego działu, może ktoś mi wytłumaczyć?
P-38369
malan
» 2011-08-07 22:30:33
C/C++
t[ dlos ], licznik; /*Tutaj nie wiem co zrobić.. */
Przypisanie? :)

/edit:
Ale najpierw zamień ten zmienne pozycjami.
P-38371
dexiu03
Temat założony przez niniejszego użytkownika
» 2011-08-07 22:33:48
Chciałem właśnie w tym momencie, aby funkcja wypełniała tablice.
Czy mam usunąć z funkcji licznik?
Teraz tak pomyślałem, że przecież w funcji main mam:
C/C++
int main()
{
    int t1[ 999 ]; /*zaczyna się koszmar */
    los( t1, 999 );
    int i = 0;
    do
    {
        cout << t1[ i ] << ", ";
        i++;
    }
i moja pętla wypełnia każde pole w tablicy.

albo już zbyt długo przy tym siedzę i prostych błędów nie widzę..


edit:
jednak za długo siedzę bo podałem funkcję która ma wyświetlić.. aff..

edit:

tak? :
C/C++
do
{
    licznik, t[ dlos ],; /*Tutaj nie wiem co zrobić.. */
    licznik++;
}
P-38372
DejaVu
» 2011-08-07 22:35:25
» Kurs C++ » Poziom 2Tablice jednowymiarowe lekcja

Czy aby na pewno czytałeś dokładnie ten kurs? Czytałeś ze zrozumieniem jak się zapisuje wartości to tablicy? W rozdziale są przykłady...

/edit:
@up:
Tworzenie jednowymiarowych tablic zmiennych jest bardzo proste - wystarczy, że za deklaracją zwykłej zmiennej podamy liczbę elementów.
Co w powyższym zdaniu jest niezrozumiałe? Nawiązuję do Twojego komentarza 'koszmar' :)

/edit2:
W rozdziale jest następujący przykład:
C/C++
#include <iostream>

int main()
{
    int liczby[ 3 ];
    std::cout << "Podaj liczbe 1:";
    std::cin >> liczby[ 0 ];
    std::cout << "Podaj liczbe 2:";
    std::cin >> liczby[ 1 ];
    liczby[ 2 ] = 567;
    std::cout << "liczby[2] wynosi " << liczby[ 2 ] << std::endl;
    int suma = liczby[ 0 ] + liczby[ 1 ] + liczby[ 2 ];
    std::cout << "Suma trzech liczb wynosi:" << suma << std::endl;
   
    return 0;
}
Eksperymentowałeś z nim by zrozumieć o co chodzi z tablicami? Próbowałeś napisać to samo bez tablic i porównać kod?
P-38374
dexiu03
Temat założony przez niniejszego użytkownika
» 2011-08-07 22:38:24
Tak, ale dlos to są liczby losowe 4-10, więc skoro mam:
C/C++
do
{
    t[ dlos ], licznik; /*Tutaj nie wiem co zrobić.. */
    licznik++;
}
while( licznik > 999 );

to zamiast dlos powinien być licznik? to w jaki sposób on mi zapełni tablicę losowymi?


edit:
@up
chyba nie rozumiem, cóż to ma wspólnego z moim przykładem?

Błąd leży w funkji los czy w main?
P-38375
DejaVu
» 2011-08-07 22:41:04
@up: Napisz jakbyś zapisał wylosowaną wartość do zwykłej zmiennej typu int. Czyli:
C/C++
int liczba;
//i tu kolejna tu linijka o którą pytam
P-38376
dexiu03
Temat założony przez niniejszego użytkownika
» 2011-08-07 22:44:57
edit:
poprawka kolejnosci:
C/C++
int liczba =( rand() % 4 ) + 7;
lub:
C/C++
int liczba;
liczba =( rand() % 4 ) + 7;

o to chodzi?
P-38377
DejaVu
» 2011-08-07 22:49:45
No dobra, a teraz wyobraź sobie, że liczba to tablica:
C/C++
int liczba[ 10 ];
//tu linijka
i chcesz aby do pierwszego elementu tej tablicy zapisać wylosowaną liczbę :)
P-38379
« 1 » 2 3
  Strona 1 z 3 Następna strona