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

Sprawdzenie pracy domowej Rozdzial 17 (funkcje)

Ostatnio zmodyfikowano 2012-06-29 00:01
Autor Wiadomość
Benu1
Temat założony przez niniejszego użytkownika
Sprawdzenie pracy domowej Rozdzial 17 (funkcje)
» 2012-06-28 15:39:56
Tresc zadania domowego:

Napisz funkcję, która losuje liczbę z przedziału, który zostanie podany poprzez argumenty funkcji. Przetestuj funkcję w poniższy sposób:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
//... tu Twój kod
int main()
{
    srand( time( NULL ) );
    int start;
    std::cin >> start;
    int stop;
    std::cin >> stop;
    int ile = 20;
    do
    {
        std::cout << wylosuj( start, stop ) << std::endl;
        ile--;
    } while( ile > 0 );
   
    return 0;
}

I teraz przedstawie wam moj skrypt:

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
// TRESC ZADANIA:
//Napisz funkcję, która losuje liczbę z przedziału,
//który zostanie podany poprzez argumenty funkcji.
//Przetestuj funkcję w poniższy sposób:
using namespace std;

int wylosuj( int start, int stop )
{
    int losowanie;
    losowanie =( rand() %( stop - start ) + start );
   
    return losowanie;
}


int main()
{
    srand( time( NULL ) );
    int start;
    cout << "Podaj przedzial od: ";
    cin >> start;
    int stop;
    cout << "Podaj przedzial do ";
    cin >> stop;
    int ile = 20;
    do
    {
        cout << wylosuj( start, stop ) << endl;
        ile--;
    } while( ile > 0 );
   
    return 0;
}


Wykonalem ja dobrze czy zle? jesli zle to dlaczego
P-59328
Vallher
» 2012-06-28 15:43:20
Losuje od 0 do 2, to mam same 0,1 :(
P-59329
Benu1
Temat założony przez niniejszego użytkownika
» 2012-06-28 15:48:47
Wiem Vallher ze tak jest ale mysle bynajmniej ze nie moge tego zmienic chyba ze przedzialy od do bylyby okreslone np od 20 do 30 to wtedy zastosowal bym takie cos
start = 20
koniec = 31
i wtedy by wylosowalo rowniez liczbe 30

a takto raczej sie tego nie da zrobic chyba rozumiesz co mam na mysli ?


@topic
wykonalem ja dobrze czy nie ?
P-59330
Vallher
» 2012-06-28 15:54:05
No jak działa to widzisz przecież:P Więc chyba dobrze.

Tylko te przedziały masz mylące :
albo dwa otwarte albo dwa zamknięte, a Ty masz mixa.

C/C++
losowanie =( rand() %( stop + 1 - start ) + start );

Takie coś rozwiązuje ten problem.
P-59331
Benu1
Temat założony przez niniejszego użytkownika
» 2012-06-28 15:55:22
Vallher dziekowka bo myslalem by wlasnie cos takiego zrobic lecz nie wiedzialem ze takie cos jest mozliwe. Dzieki i zapamietam na przyszlosc
P-59332
ziom10
» 2012-06-29 00:01:25
<< Removed by DejaVu - załóż własny temat jak masz jakiś problem. Ponadto jeden temat = jeden problem, a Ty piszesz o zupełnie czymś innym. >>
P-59355
« 1 »
  Strona 1 z 1