nie zadeklarowane funkcje random i time.
Ostatnio zmodyfikowano 2017-04-08 16:51
shreder221 Temat założony przez niniejszego użytkownika |
nie zadeklarowane funkcje random i time. » 2017-04-08 15:27:00 Dzień Dobry :p W skrócie mam zrobić program który korzysta z funkcji random,srandom i time. Chciałem sprawdzić czy dobrze pamiętam formułkę i wpisałem z głowy. Skompilowałem plik i wyświetlił się błąd dotyczący nie zadeklarowania powyższych funkcji. Więc wkleiłem gotowy kod którego fragmenty używaliśmy w pracowni komputerowej a na zajęciach cały kod był kompilowany do zaprezentowania nam tworzenia liczb pseudolosowych.Niestety ponownie pojawiła się informacja o nie zadeklarowaniu tych funkcji w czym problem? Osobiście podejrzewam że używany przeze mnie kompilator nie posiada biblioteki cstdlib z drugiej strony robimy w miarę podstawowe rzeczy więc nie powino być z tym problemu. A bym zapomniał używam Dev c++ Poniżej wklejam wspomniane "gotowce"
#include<iostream> #include <cstdlib>
using namespace std;
double losuj( double a, double b ) { double liczba = a +(( b - a ) * random() ) / RAND_MAX; return liczba; }
int main() { const int ile = 5; srandom( time( 0 ) ); cout << "Losowanie 5 liczb rzeczywistych z przedzialu od 0 do 1" << endl; for( int i = 1; i <= ile; i++ ) { cout << losuj( 0., 1.) << endl; } return 0; }
#include<iostream> #include <cstdlib>
using namespace std;
int main() { const int ile = 10; cout << "time(0)= " << time( 0 ) << endl; cout << "RAND_MAX= " << RAND_MAX << endl; srandom( time( 0 ) ); cout << "Losowanie z przedzialu od 0 do RAND_MAX" << endl; for( int i = 1; i <= ile; i++ ) { cout << random() << endl; } cout << "Losowanie liczb caĹkowitych z przedzialu od 1 do 15, pierwsza wersja" << endl; for( int i = 1; i <= ile; i++ ) { int liczba = 1 + random() % 15; cout << liczba << endl; } cout << "Losowanie liczb caĹkowitych z przedzialu od 1 do 15, druga wersja" << endl; for( int i = 1; i <= ile; i++ ) { int liczba = 1 +( int )(( 15.* random() ) /( RAND_MAX + 1.) ); cout << liczba << endl; } cout << "Losowanie liczb rzeczywistych z przedzialu od [0,1)" << endl; for( int i = 1; i <= ile; i++ ) { double liczba = random() /( RAND_MAX + 1.); cout << liczba << endl; } return 0; }
|
|
Luq |
» 2017-04-08 15:40:13 Nie random i srandom , tylko rand i srand Żeby użyć time dołącz #include <ctime> |
|
shreder221 Temat założony przez niniejszego użytkownika |
» 2017-04-08 15:44:48 Okej działa. A mógłbyś wytłumaczyć dlaczego w pracowni program normalnie działał z powyższymi funkcjami? |
|
michal11 |
» 2017-04-08 16:51:17 Może jakieś niestandardowe rozszerzenie kompilatora? |
|
« 1 » |