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

Lekcja 2.17 zadanie 3

Ostatnio zmodyfikowano 2016-07-25 14:41
Autor Wiadomość
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.


C/C++
#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;
}


C/C++
#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;
   
}
P-150208
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;
P-150210
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.
P-150215
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.

C/C++
#include <iostream>

int fun()
{
    return 100;
}

int main()
{
    std::cout << fun << ' ' << & fun << ' ' << fun() << '\n';
}
P-150216
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.
P-150217
CCbolt
Temat założony przez niniejszego użytkownika
» 2016-07-23 23:52:29
Dzięki, kolejna wiedza przyswojona, dobrze zadawać pytania.
P-150218
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...
P-150241
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.
P-150248
« 1 »
  Strona 1 z 1