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

[c++] Symulacja rzutu monetą program

Ostatnio zmodyfikowano 2015-04-02 13:34
Autor Wiadomość
wojownik266
Temat założony przez niniejszego użytkownika
[c++] Symulacja rzutu monetą program
» 2015-04-01 13:23:55
Poniższy program w moim zamierzeniu ma pobierać od użytkownika ilość rzutów monetą a potem wyświetlać odpowiedni napis z tablicy mon. Program w chwili obecnej wyświetla w kółko ten sam napis albo całkiem się wykłada. Co zmienić albo co dodać aby ten program działał zgodnie ze swoim przeznaczeniem? Proszę o ewentualną  korektę bądź wskazówki.

C/C++
#include <iostream>
#include <vector>
#include <string>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
    int ile = 0;
    vector < string > mon( 2 );
    mon[ 0 ] = { "orzel" };
    mon[ 1 ] = { "reszka" };
   
    cout << "SYMULACJA RZUTU MONETA" << endl;
    cout << "----------------------\n" << endl;
    cout << "Ile razy chcesz rzucic:";
    cin >> ile;
   
    for( int i = 0; i < ile; ++i )
    {
        srand( time( NULL ) );
        int rzut = 0;
        rzut = rand() % 2 + 1;
        cout << "Rzut nr.[" << i << "] = " << mon[ rzut ] << endl;
    }
    cin.get();
    cin.get();
    return 0;
}
P-129761
Monika90
» 2015-04-01 13:25:52
rand() % 2 + 1;
losujesz liczbę 1 albo 2
P-129762
wojownik266
Temat założony przez niniejszego użytkownika
» 2015-04-01 13:31:08
A co w tym złego albo jak to zmienić tak aby działało. Tzn. raz wyświetlało słowo "orzel" a raz "reszka"? Mnie ta instrukcja wydaje się prawidłowa bo tablica jest dwuelementowa. Choć wiem że mogę się mylić. Więc?
P-129763
Brunon3
» 2015-04-01 13:34:05
#include <pseudo.h> // Pseudokod ;)

1. Pytasz czy użytkownik chce rzucić monetą.

TAK:

1. Losujesz liczbę 1 albo 2.
2. 1 = Orzeł, 2 = Reszka.
3. Reszta implementacji jak chcesz.

NIE:

1. Wychodzisz z programu.

Proste? Proste.

-BD.
P-129765
RazzorFlame
» 2015-04-01 13:41:04
Zamiast mon[rzut] daj mon[rzut-1]
P-129769
wojownik266
Temat założony przez niniejszego użytkownika
» 2015-04-01 13:41:39
O ile Cię dobrze zrozumiałem to chcesz aby zamiast napisu wyświetlać liczbę. Czy tak? Jeżeli tak to takie rozwiązanie odpada bo jak napisałem program musi wyświetlać te dwa słowa. Tylko nie wiem czy to się da? Program który wyświetlał by liczby zamiast słowa to wygląda tak jak poniżej i wyświetla liczby. A ja chciałbym żeby program ten powyżej działał podobnie ale zamiast liczb wyświetlał właśnie słowa. Proste?

C/C++
#include <iostream>
#include <ctime> //time(NULL)
#include <cstdlib> //rand
using namespace std;

int main()
{
   
    int ile = 0;
    cout << "\t\t\tSYMULACJA RZUTU KOSTKA" << endl;
    cout << "\t\t\t----------------------\n\n" << endl;
    cout << "Ile razy chcesz rzucic kostka:";
    cin >> ile;
    srand( time( NULL ) );
    for( int i = 0; i < ile; ++i )
    {
        int rzut[ ile ];
        rzut[ i ] = rand() % 6 + 1;
        cout << "Rzut nr.[" << i << "] = " << rzut[ i ] << endl;
    }
   
    cin.get();
    cin.get();
    return 0;
}
P-129770
wojownik266
Temat założony przez niniejszego użytkownika
» 2015-04-01 13:45:17
@RazzorFlame
To rozwiazanie rozwiązuje problem z wywalaniem się programu ale ma tą wade że wyświetla w kółko to samo słowo. A ja chciałbym aby ono było losoowe ra takie a raz inne.
P-129771
Brunon3
» 2015-04-01 13:47:34
Eh... Doprecyzowanie:

#include <pseudo.h> // Pseudokod ;)

zmienna std::string input = "chcę"

PĘTLA (dopóki "input" = "chcę") {

1. Losujesz liczbę 1 albo 2.

2. Jeżeli wylosuje 1 : wyświetlasz "Orzeł".
3. Jeżeli wylosuje 2 : wyświetlasz "Reszka".

4. wczytujesz do zmiennej std::string o nazwie "input" ze strumienia std::cin

// Jeżeli użytkownik wpisze do input "chcę" pętla powtórzy się - przejdź do (1)

} // Koniec pętli

5. Wychodzisz z programu. // Wykona się gdy użytkownik nie wpisze "chcę"

Teraz rozumiesz?

-BD.
P-129772
« 1 » 2 3 4
  Strona 1 z 4 Następna strona