Automatyczne losowanie wśród wyrazów
Ostatnio zmodyfikowano 2014-05-25 11:40
Feleur Temat założony przez niniejszego użytkownika |
Automatyczne losowanie wśród wyrazów » 2014-05-24 12:39:19 Cześć, witam Was. Jestem tutaj nowy, choć z C++ stykam się już pewien czas. Problem mój związany jest z programem, który będzie losował parę wyrazów (przykładowo pięć lub dziesięć) spośród bazy obejmującej przykładowo 200 wyrazów. Niestety nie robiłem tego typu programów i tutaj utknąłem. W skrócie mówiąc proszę o pomoc w programie, który: 1. Posiada bazę wyrazów. 2. Z owej bazy wybiera przykładowo 10 wyrazów. 3. Następnie po skończeniu danych 10ciu wyrazów (przykładowo) losuje kolejne 10 aczkolwiek już bez 10 poprzednich. Bardzo prosiłbym o pomoc, potrzebuje tego pilnie. Z góry dziękuję za pomoc. |
|
Nitr0Skay |
» 2014-05-24 13:46:21 1) Bazę dwustu wyrazów można utworzyć np. jako tablicę tych wyrazów: I wystarczy wcześniej utworzyć funkcję, która zainicjuje te wyrazy: void baza( string wyraz[] ) { wyraz[ 0 ] = "Wyraz1"; wyraz[ 1 ] = "Wyraz2"; wyraz[ 2 ] = "Wyraz3"; wyraz[ 3 ] = "Wyraz4"; wyraz[ 4 ] = "Wyraz5"; ... }
Funkcje operują na oryginalnych tablicach, więc rozwiązanie to, choć czaso i pracochłonne to jednak bardzo skuteczne. 2) srand( time( NULL ) ); string wybranyWyraz =( rand() % 199 );
Zależy jeszcze, czy to mają być 2 wyrazy (para), pięć czy dziesięć takich wyrazów. Wówczas zamiast powyższego tworzy Pan Tablicę z wybranymi wyrazami: srand( time( NULL ) ); string wybranyWyraz[ length ];
for( int i = 0; i < length; i++ ) { wybranyWyraz[ i ] =( rand() % 199 ); }
Coś w ten deseń. 3) Co do losowania bez powtórzeń, to: http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Losowanie-bez-powtorzen/293 Jeżeli będzie Pan miał z czymś problem, lub jakieś konkretne pytania to proszę je tutaj zadać. Jeżeli nie ja, to na pewno znajdzie się ktoś doświadczony, który Panu pomoże :) Powodzenia |
|
Feleur Temat założony przez niniejszego użytkownika |
» 2014-05-24 13:52:57 Dziękuję za pomoc! Zaraz sprawdzę wszystko. |
|
Nitr0Skay |
» 2014-05-24 13:57:39 To co Pan przed chwilą otrzymał, to Adres pamięci pierwszego Elementu tablicy o podanej nazwie. Nic groźnego, ale chyba nie o taki wynik działania programu Panu chodziło ;) |
|
Feleur Temat założony przez niniejszego użytkownika |
» 2014-05-24 15:32:18 Mam problem taki, iż kiedy wpisuję string wybranyWyraz =( rand() % 199 ); to my wywala błąd o nazwie: [Error] invalid coversion from 'int' to 'const char*' [-fpermissive].
Co w tej sytuacji? |
|
Monika90 |
» 2014-05-24 16:21:56 możesz użyć std::shuffle z <algorithm> + mt19937 z <random> |
|
pekfos |
» 2014-05-24 16:28:51 Feleur: ten kod jest niepoprawny, nie możesz do tekstu przypisać liczby. std::string wybrany = baza_wyrazow[ rand() % N ];
|
|
Feleur Temat założony przez niniejszego użytkownika |
» 2014-05-24 20:46:50 To w takim razie jak miałbym to zaimplementować? |
|
« 1 » 2 |