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

[ lekcja 21 ]Problemik z losowanie bez powtórzeń

Ostatnio zmodyfikowano 2013-06-28 15:51
Autor Wiadomość
Proleks
Temat założony przez niniejszego użytkownika
» 2013-06-27 16:03:46
OK to teraz tak co chyba poprawiłem jak nie to chyba przeczytam cały kurs od nowa :/ :

1.
return wczytane[ licznik ];
 jest nieprawidłowe, bo wychodzisz poza tablicę.
Zwiększyłem o 1 czyli teraz wynosi   
int wczytane[ 4 ];
O ile kumam to teraz nie wychodzę poza tablicę :p
2.
int ile[ 0 ];
 też jest nieprawidłowe.
Kazałeś mi z tego zrobić tablice zrobiłem albo źle skumałem ... nie wiem ile elementów tam ma być :/ .
3. Niepotrzebnie tworzysz zmienną liczba i niepotrzebnie zwracasz int z wczytujemy().
Jeżeli usunę licznik to nie skompiluje się chciałem zastąpić licznik int a który jest w argumentach ale wtedy sypie się :/ , zastąpiłem  
return wczytane[ licznik ];
 tym
return 0;
 (jeżeli nie mam tam return żadnego nie działa) .
4. Zamiast indeksów, do zmiennej wylosowane przypisujesz wartości z tablicy. To spowoduje później problemy.
Tutaj nie wiem o co chodzi :/ chyba ,że chodzi tb o to ,że usunąć   
wylosowane = wczytane[ wylosuj_liczby() ];
 i zastąpić to na samym początku w int main() tym     int wylosowane = wczytane [wylosuj_liczby() ] ; .
5. W czybyla zawsze zwracasz true, jeśli licznik jest dodatni.
Hmm tutaj się poddaje nie wiem o co kaman :p wiem ,że będzie true gdy liczba dodatnia ale w czym to przeszkadza ??? ( Proszę o wyjaśnienie )
6. Warunek w pętli w main() nic nie robi.
Chodzi o to , że po
} while( licznik < 2 );
 nic nie ma wpisane ???
7. Pętla w main() wykona się tylko 2 razy, a nie 3.
Zamieniłem
} while( licznik < 2 );
 na
} while( licznik < 3 );

8. I jeszcze to :
C/C++
return tablica; // ????/ [/cpp]
Mam to usunąć czy jak ???


Ok jeżeli za dużo błędów zrobiłem nawet w poprawianiu to powiedzcie słowo to wracam na początek kursu albo powiedzcie czego z kursu jeszcze nie kumam :p .

Z góry i tak dzięki za pomoc .
P-86363
pekfos
» 2013-06-27 16:29:23
Zwiększyłem o 1 czyli teraz wynosi
int wczytane[ 4 ];
 O ile kumam to teraz nie wychodzę poza tablicę :p
Masz tablicę 3-elementową, więc indeksy muszą być od 0 do 2. 4 też jest nieprawidłowe.

Kazałeś mi z tego zrobić tablice zrobiłem albo źle skumałem ... nie wiem ile elementów tam ma być :/
Funkcja pobiera tablicę, więc nie mogłeś podać zwykłej liczby. Zastanów się, co dokładnie oznaczają argumenty przyjmowane przez funkcję i nie będzie problemu, co należy podać.

Jeżeli usunę licznik to nie skompiluje się
Mówiłem o zmiennej liczba, a nie licznik. Kompilator dał Ci ostrzeżenie, że nie używasz tej zmiennej.

Tutaj nie wiem o co chodzi :/
Masz wylosować kilka z podanych przez użytkownika liczb. Użytkownik może podać dowolne, więc także wszystkie takie same. W tym przypadku identyfikowanie podanych liczb bo ich wartościach nie zadziała, bo pod tym względem są takie same. Dlatego na tym etapie najlepiej operować na samych indeksach.

Hmm tutaj się poddaje nie wiem o co kaman :p wiem ,że będzie true gdy liczba dodatnia ale w czym to przeszkadza ??? ( Proszę o wyjaśnienie )
W pętli
return true;
 jest poza warunkiem, więc jeśli licznik jest dodatni, to od razu, w pierwszym obiegu pętli zwrócisz true.

Chodzi o to , że po
} while( licznik < 2 );
  nic nie ma wpisane ???
Chodzi o to, że
if( czybyla( wylosowane, ile, licznik ) );
 nic nie robi (poza wywołaniem czybyla()).

Mam to usunąć czy jak ???
Zmień na
return false
. Nie znaleziono szukanej wartości, więc zwróć false, skoro true jest dla przypadku, w którym znaleziono.
P-86364
Proleks
Temat założony przez niniejszego użytkownika
» 2013-06-27 17:10:43
hmm jeżeli chodzi o to 1 to oznacza ,że tablica wczytane[ 3 ] zapisuje te wartosci od 0 do 2 czyli 0 , 1 , 2 tak ? a ja tam muszę napisać ile z tych co się tam zapisało zwrócić ? czyli jeżeli chce 3 zwrócić to pisze 3 ?

Teraz wszystko będę osobno sobie tłumaczył chyba tak łatwiej zakumam :p
P-86370
pekfos
» 2013-06-27 17:12:37
czyli jeżeli chce 3 zwrócić to pisze 3 ?
No tak..

ja tam muszę napisać ile z tych co się tam zapisało zwrócić ?
Nie rozumiem. Gdzie jest pierwsze "tam" i drugie "tam"?
P-86371
Proleks
Temat założony przez niniejszego użytkownika
» 2013-06-27 17:24:20
Dobra wytłumaczę jeżeli ktoś mnie nie kuma może tak piszę nie jasno :p za dużo nie wiadmoych piszę xD :

ja
wczytane[ Tutaj ]
muszę napisać ile z tych co się w tablicy zapisało zwrócić ?

Jaśniej napisane ???

Funkcja pobiera tablicę, więc nie mogłeś podać zwykłej liczby. Zastanów się, co dokładnie oznaczają argumenty przyjmowane przez funkcję i nie będzie problemu, co należy podać.


Jakaś mała podpowiedź :D sory może dzisiaj niekumaty jestem albo sam nw :p (Funkcje = Czarna magia :D )
P-86372
pekfos
» 2013-06-27 17:31:58
Eee.. nie. Chcesz zwrócić n, czy n elementów tablicy?

//edit: » KursyKurs STC kurs
P-86374
Proleks
Temat założony przez niniejszego użytkownika
» 2013-06-27 17:38:14
Chcesz zwrócić n, czy n elementów tablicy?

No chce zwrócić n .
P-86375
pekfos
» 2013-06-27 17:40:43
To po prostu pisz n.
C/C++
return n; // zwraca wartość n

<div>
Eh, [cytat][/cytat], a kod w [cpp][/cpp].
P-86376
1 « 2 » 3 4 5 6
Poprzednia strona Strona 2 z 6 Następna strona