Lekcja 2.17 zadanie 3
Ostatnio zmodyfikowano 2016-07-25 14:41
CCbolt Temat założony przez niniejszego użytkownika |
Lekcja 2.17 zadanie 3 » 2016-07-22 23:39:15 Zadanie 3 w zasadzie poszło bez problemów ale jak już nieraz pisałem lubię popełniać błędy lub testować program pod kontem niewaściwie wprowadzanych wyników tak więc i tu zrobiłem to samo po czym mam pytania na które sam sobie nie odpowiem I tak jeżeli w kodzie zmienię '\n' na '/n' to mam jakiś fikcyjny numer, skąd to wynika? Ustawiając srand( time( NULL ) ); w funkcji losowanie oraz w głównej funkcji wszystkie trzy wyniki są identyczne, z czego to wynika? Trzecie pytanie odnosi się do kodu ( nr 2) który napisałem nie myśląc ( jest tragiczny ) ale zadziałał, wyświetlił wyniki i zastanawiam się jakim cudem za każdym razem w drugiej pozycji wyświetla mi się jedynka zwłaszcza że count odnosi się do niczego. #include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
int losowanie() { int liczba =( rand() % 11 ) + 50; return liczba; }
int main() { srand( time( NULL ) ); int jeden = losowanie(); int dwa = losowanie(); int trzy = losowanie(); cout << "Wylosowales: " << jeden << '\n' << "Wylosowales: " << dwa << '\n' << "Wylosowales" << trzy; return 0; }
#include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
int losowanie() { srand( time( NULL ) ); int liczba =( rand() % 11 ) + 50; cout << liczba << endl; return liczba; }
int main()
{ losowanie(); cout << losowanie; }
|
|
kistel66 |
» 2016-07-23 13:51:14 1) \n to komenda - przejście do nowej linii, a /n to twór szatana, którego się nie używa 2) sranda ustawiamy tylko raz, bo inaczej przestanie poprawnie działać 3) cout << losowanie; wyświetla wartość inta funkcji losowanie, a losowanie(); wyświetla wartość zmiennej liczba; |
|
CCbolt Temat założony przez niniejszego użytkownika |
» 2016-07-23 22:17:06 No ale nie użyłem nawiasów dlatego ciekawi mnie jak to się stało że funkcja jak nie patrzeć została wywołana. |
|
carlosmay |
» 2016-07-23 22:29:24 No ale nie użyłem nawiasów dlatego ciekawi mnie jak to się stało że funkcja jak nie patrzeć została wywołana. |
To jest adres funkcji. #include <iostream>
int fun() { return 100; }
int main() { std::cout << fun << ' ' << & fun << ' ' << fun() << '\n'; }
|
|
Elaine |
» 2016-07-23 23:42:56 Mówiąc ściślej, adres funkcji po niejawnej konwersji do bool (czyli zawsze true), o czym można się przekonać ustawiając boolalpha. |
|
CCbolt Temat założony przez niniejszego użytkownika |
» 2016-07-23 23:52:29 Dzięki, kolejna wiedza przyswojona, dobrze zadawać pytania. |
|
BlackFive |
» 2016-07-25 12:50:56 Z tego co dobrze pamiętam funkcja "srand( time( NULL ) );" generuje pseudolosowe liczby które są generowane na podstawie godziny kompilacji programu (mogę się mylić... w każdym bądź razie taką wiedzę wpajano mi w technikum...), więc gdy wykonujesz kilka razy wywołanie tej funkcji to za każdym razem będziesz miał wygenerowane te same liczby... |
|
carlosmay |
» 2016-07-25 14:41:31 Z tego co dobrze pamiętam funkcja "srand( time( NULL ) );" generuje pseudolosowe liczby które są generowane na podstawie godziny kompilacji programu | srand()time()Funkcja ustawia seed'a wg aktualnego czasu zwracanego przez funkcję time(). Szybkość działania programu może spowodować zwrócenie przez time() kilka razy tego samego wyniku, w ciągu jednej jednostki czasu. |
|
« 1 » |