» »

C++ ne razumem popolnoma...

C++ ne razumem popolnoma...

i33a ::

Učim se C++ (ob šoli) a ne razumem nekaterih stvari.
Zakaj je uporaben: Function Overloading?
Kaj je ključno pri pointerjih(znam jih narediti a se mi zaenkrat še ne zdijo zelo uporabni) mi lahko kdo pojasni na kratko kaj so in predvsem zakaj se uporabljalo?
Random number generator sicer znam narediti a mi vedno vrne isto številko ali pa če naredim to tako da uporabljam "time" mi pa vedno vrne neko zelo veliko številko....
Jaz bi rad samo enostaven generator, ki mu lahko določiš od katere do katere številke naj generira in da mi ne vrne zmeraj istega rezultata. Mi lahko kdo pomaga?

Ericssony ::

Primer za "Function Overloading":
 void AddAndDisplay(int x, int y)
    {
        cout<<" C++ Tutorial - Integer result: "<<(x+y);
    }

    void AddAndDisplay(double x, double y)
    {
        cout<< " C++ Tutorial - Double result: "<<(x+y);
    }

    void AddAndDisplay(float x, float y)
    {
        cout<< " C++ Tutorial - float result: "<<(x+y);

    }


A opaziš razliko pri vhodnih parametrih? Torej, uporabljena bo metoda, ki ustreza vhodnim parametrom...

technolog ::

Functin overloading je bolj napredno, pusti to zaenkrat (sicer pa ti je gor dal kolega primer). Ravno tako pusti pointerje, saj je C++ narejen tako, da je potreba po njih minimalna, če uporabljaš STL. Tole dvoje pusti pri miru, dokler si ne razpucaš osnov, zmenjeno? :)

Glede random number generatorja pa je takole. Pomoje kličeš rand() samo enkrat, zato ti da vedno isto številko. Probaj klicat v foru 10x, pa boš dobil 10 različnih številk, ampak z vsakim pogonom programa iste. Če hočeš različne, potem moraš seedat random na neko spremelnjivo številko, time(0) je za to idealen.

Če hočeš dobit manjšo številko od tiste, ki ti jo da rand(), jo deli po modulu:

srand(time(0));
for (int i=0; i<10; ++i) cout << rand() % 20; // število med 0 in 19

Zgodovina sprememb…

i33a ::

Hvala obema, ampak naj je v tej kodi narobe da mi ne izpiše št. med 0 in 19?
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main(){
    srand(time(0));
for (int i=0; i<10; ++i) cout << rand() % 20;
    
    
    
   int a = rand();
   
   cout << a << endl;
    
    system("pause");
    return 0;
    }

dice7 ::

Izpisuje ti pravilna števila, le ti tega ne vidiš ker ti izpiše vse naenkrat, neurejeno.
Poskusi z
for (int i=0; i<10; ++i) cout << rand() % 20 << " "; 


S tem bo med naključnimi števili presledek za boljšo berljivost.

Zgodovina sprememb…

  • spremenil: dice7 ()

i33a ::

Hvala, zdaj je uredu :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Izšel PHP 5.5

Oddelek: Novice / Ostala programska oprema
115201 (3891) technolog
»

[Java] Castanje

Oddelek: Programiranje
91531 (1386) fiction
»

Pomoč pri programiranju v C++

Oddelek: Programiranje
141812 (1379) amacar
»

[C++] Shift left (strani: 1 2 )

Oddelek: Programiranje
663538 (3041) Thomas
»

Matematično vprašanje v zvezi s lotom

Oddelek: Programiranje
202003 (1671) OwcA

Več podobnih tem