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-28 13:44:21
Coś wiem :p chociaż nie wiem po zakończeniu roku mogę przez chwilę nie myśleć .

A co jest nie tak ? Mówiłeś ,żebym zwrócił coś no to zwracam tablice gdzie są zapisane liczby czy źle to napisałem ?

Wyjaśnij proszę :p 
P-86438
pekfos
» 2013-06-28 13:58:26
Podzieliłeś program na takie funkcje, więc powinieneś wiedzieć, co każda z funkcji ma robić. Jak tego nie wiesz, to nie widzę sensu dalszego wyjaśniania, bo to będzie jak rzucanie grochem o ścianę (jak w niektórych momentach tego tematu..). Jeśli wiesz, co co ma robić, to wiesz też, co ma przyjmować i zwracać dana funkcja. Tu nie ma nic do wyjaśniania!
P-86440
Proleks
Temat założony przez niniejszego użytkownika
» 2013-06-28 14:05:28
No pisałem od podstaw wymyślałem nazwy itp i funkcja podaj () ma za zadanie pozwolić wpisać 3 liczby które potem będą zwrócone w tablicy żeby mogło wybrać losowo 3 liczby  ale jakoś mi to nie wychodzi :/
P-86441
pekfos
» 2013-06-28 14:11:04
które potem będą zwrócone w tablicy
Zwracanie w tym przypadku nie jest potrzebne i nie ma sensu. Liczby zostaną zapisane w tablicy, podanej jako argument. Zdefiniuj tą funkcję, jako nic nie zwracającą.
P-86442
Proleks
Temat założony przez niniejszego użytkownika
» 2013-06-28 15:15:47
Czyli return false ; tak czy return 0 ; ?


edit // Wszystko ladnie pieknie tylko nie losuje mi tych liczb podanych zawsze wyswietla on dwie pierwsze :/
P-86450
pekfos
» 2013-06-28 15:22:51
Pokaż kod..
P-86452
Proleks
Temat założony przez niniejszego użytkownika
» 2013-06-28 15:23:54
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int podaj( int podaj[] )
{
    int licznik = 0;
    cout << "Podaj 3 liczby " << endl;
    do
    {
       
        cin >> podaj[ licznik ];
        licznik++;
       
    } while( licznik < 3 );
   
   
    return false;
}

int czybyla( int iliczba, int tab[], int ile )
{
    if( ile <= 0 )
         return false;
   
    int licznik = 0;
    do
    {
        if( tab[ licznik ] == iliczba )
             return true;
       
        licznik++;
    } while( licznik < ile );
   
    return false;
}

int main()
{
    srand( time( NULL ) );
    int podan[ 3 ];
    int wybrane = 0;
    int podane = podaj( podan );
   
    do
    {
        if( czybyla( podane, podan, wybrane ) )
       
             podan[ wybrane ] = podane;
       
        wybrane++;
    } while( wybrane < 2 );
   
    wybrane = 0;
   
    do
    {
       
        cout << podan[ wybrane ] << " ,  ";
        wybrane++;
    } while( wybrane < 2 );
   
}
P-86453
pekfos
» 2013-06-28 15:30:59
Czyli return false ; tak czy return 0 ; ?
return zwraca, więc nawet na logikę widać, że nie tędy droga. Funkcja która nic nie zwraca wygląda tak:
C/C++
void nic_nie_zwracamm()
{
}
To było w kursie..

Wszystko ladnie pieknie tylko nie losuje mi tych liczb podanych zawsze wyswietla on dwie pierwsze :/
Kolejny przykład, że nie wiesz, co piszesz. Fragment twojego kodu, który miał wypisywać wylosowane liczby:
C/C++
do
{
   
    cout << podan[ wybrane ] << " ,  ";
    wybrane++;
} while( wybrane < 2 );
Nie ma tu nic o losowaniu, wypisujesz po prostu dwie pierwsze..
P-86454
1 2 3 4 « 5 » 6
Poprzednia strona Strona 5 z 6 Następna strona