» »

C++ pomoc pri nalogi

C++ pomoc pri nalogi

omgbunnyz ::

zdravo , rabil bi pomoc pri programu (popravljam apj in bi bil zelooo hvalezen ce bi mi kdo tukaj pomagau s kaknim delom kode.
Morem narediti en class ki vsebuje neko stevilko, in ime

primer:

class razred
{
public:
string ime; // poljubno samo da je neko ime
int stevilo; // neko poljubno stevilo(z uporabo random funkcije v razponu od 0 do 100, samo nesmejo se ponavljat(tu je ena tezava))
};

no in zdejle tukaj moram narediti poljubno stevilo razredov , recimo naprimer 20 z random stevili, nato pa izpisat koliko je zaporedij v teh razredih npr.:

razred1 je vrednost spremenljivke stevilo 1
razred2 ima vrednost 2
pa dokler se ne prekine, naprimer ce bi blo zdejle vrednost pri razred3 spremenljivke stevilo 4 bi pristelo spremenljivki ki steje zaporedja 1. in tkole bi stelo koliko je taksnih zaporedij v teh 20 razredih.
ce je kaj nerazumljivega me vprasajte.

se enkrat prosim za pomoc :S

schtr4jh ::

Najprej si razčisti pojme razred, objekt, lastnost in metoda.

Namig pri reševanju problema: objekte si shrani v tabelo/array.

omgbunnyz ::

schtr4jh je izjavil:

Najprej si razčisti pojme razred, objekt, lastnost in metoda.

Namig pri reševanju problema: objekte si shrani v tabelo/array.

sej to nevem kako, :S zmeraj neki sprobavam pa negre

schtr4jh ::

ImeRazreda tabela[20];

S to kodo deklariraš 20 objektov razreda ImeRazreda.

tabela[0].metoda();

Tako recimo kličeš metodo prvega objekta ...
tabela[1].metoda();

... in tako metodo drugega objekta.

Sedaj bo šlo?

omgbunnyz ::

hvala bom probal in javil rezultate =)

omgbunnyz ::

aja kok se bi pa naredil da random funkcija nebi vracala stevil ki jih je ze( jih nebi ponavljala)?

omgbunnyz ::

class oseba
{
      public:
      string ime;
      int podatek; 
      void vnos(); //tukaj error , vem da morem nekaj not dat v oklepaje sam nevem kaj... drugac to bo metoda za vnos podatkov

     
        
};

oseba::vnos() // pa tukaj tudi error vrze
{
              cout<<"vnesi ime "<<endl;
              cin>>oseba.ime;
              
              srand( (unsigned)time( NULL ) );
              cout<<"random stevilo "<<rand() % 100<<endl;
}

schtr4jh ::

Za unikatna naključna števila moraš napisat svojo metodo (generiraj število, če obstaja v tabeli, generiraj novo, če obstaja v tabeli, generiraj novo ...).

Pred "oseba::vnos()" dodaj void. Pozabil si dopisat tip metode.
"cin>>oseba.ime;" zamenjaj z "cin >> ime;". Vedno napišeš samo lastnost in ne objekta (ker objektov je več).

Argumentov ne rabiš podat, ker podatke vpisuješ v metodi.

omgbunnyz ::

schtr4jh je izjavil:

Za unikatna naključna števila moraš napisat svojo metodo (generiraj število, če obstaja v tabeli, generiraj novo, če obstaja v tabeli, generiraj novo ...).

Pred "oseba::vnos()" dodaj void. Pozabil si dopisat tip metode.
"cin>>oseba.ime;" zamenjaj z "cin >> ime;". Vedno napišeš samo lastnost in ne objekta (ker objektov je več).

Argumentov ne rabiš podat, ker podatke vpisuješ v metodi.

ok hvala en problem resen, zdejle samo se to z nakljucnimi stevili sprobavam :)

tele malenkosti me zafrkavajo... hehe

Zgodovina sprememb…

omgbunnyz ::

aha pa se nekaj bi vprasau , kako oz. ali se da klicat metodo znotraj metode? npr jst bi rad da v metodi vnos() klicem metodo za random stevila.?

schtr4jh ::

int nakljucna() {
  return rand();
}

void vnos() {
  int n;
  n = nakljucna();
  cout << nakljucna() << endl;
}


Enostavno samo kličeš metodo.

Zgodovina sprememb…

  • spremenil: schtr4jh ()

omgbunnyz ::

hvala =)))) naloga kmalu koncana :)

omgbunnyz ::

za zdejle mam tole napisan sam mi vrze error nek argument al nekaj rabim...: poprava1.cpp invalid use of member (did you forget the `&' ?)

#include <iostream>
#include <time.h>
#include <ctime>


using namespace std;

class oseba
{
      public:
      string ime;
      int podatek; 
      void vnos(); 
      int nakljucna()
      {
          return rand() % 100;
      };
     
        
};

void oseba::vnos()
{
     int n;
     cout<<"vnesi ime ";
     cin>>ime;

     nakljucna = nakljucna();  // tukaj vrze error
     cout << nakljucna() << endl;
              

}

schtr4jh ::

Kje imaš deklarirano lastnost "nakljucna" (si mislil "podatek")? =)

Predlog pri pisanju metod: ali pišeš vse znotraj razreda, ali pa vse zunaj razreda, nikakor pa mešano. Tako je program bolj pregleden.

omgbunnyz ::

ahaaa , no zdejle pa gre hehe

zdejle samo se zanko ki bo stela zaporedja bom naredu in to je to =) ce me bo kaj mucil bom tukaj napisu

Zgodovina sprememb…

schtr4jh ::

Samo kot opozorilo ... vrednosti, ki jo boš izpisal in vrednost, ki jo shraniš v lastnost bosta različni, ker dvakrat kličeš funkcijo.

omgbunnyz ::

schtr4jh je izjavil:

Samo kot opozorilo ... vrednosti, ki jo boš izpisal in vrednost, ki jo shraniš v lastnost bosta različni, ker dvakrat kličeš funkcijo.


kje to? oO

schtr4jh ::

nakljucna = nakljucna(); // tukaj v lastnost "nakljucna" shraniš vrednost, ki jo vrne metoda "nakljucna()"
cout << nakljucna() << endl; // tukaj izpišeš vrednost, ki jo vrne metoda "nakljucna()"


Ker kličeš dvakrat metodo, ti bo dvakrat vrnila različne vrednosti.

omgbunnyz ::

aha... =) to sm popravu sm tkole naredu:
podatek = nakljucna(); 
cout << podatek << endl;

zdejle pa vrne samo eno =))

sam zdejle pa mau razmisljam pa nevem kam bi dau zanko za preverjanje ce je ze to stevilo not... to bi mogu nekak v neko tebelo shrant ta random stevila pa potem gledat ce je ze not... sam nevem kam jo naj dam... :S

Zgodovina sprememb…

omgbunnyz ::

spet problem nevem kaj dati kot pogoj k zanki
 int tabela[10];

 
 for(int j=0;j<10;j++)    //for ki zafila tabelo z random stevili
 {
         tabela[j]= rand() % 10+1;
            
 }



    int stevilo= rand() % 10+1; //tukaj naj bi se neka zanka zacela sam nevem katero pa pogoj...  pred generiranjem stevila    
    
    for(int i=0;i<10;i++)
    {
            if(tabela[i]==stevilo
            {            
            tabela[i]=rand() % 10+1;  // tukaj bi zgeneriralo novo random stevilo od 1 pa do 10 vkljucno z 10
            }
    } //pa tukaj se bi  koncala
        

}


zdejle nevem kero zanko pa pogoj naj dam pred generiranjem random stevila...

Zgodovina sprememb…

omgbunnyz ::

tole zdejle delam samo zanko za unikatna random stevila ki jo bom potem vstavil v metodo.

Zgodovina sprememb…

bandek ::

j

Zgodovina sprememb…

  • spremenil: bandek ()

roba87 ::

Uporabi c++ debugger boš točno videl zakaj.

omgbunnyz ::

no imam to kodo do zdaj:
#include <iostream>
#include <time.h>
#include <ctime>


using namespace std;

class oseba
{
      public:
      string ime;
      int podatek; 
      void vnos(); 
      int nakljucna();

     
        
};

int oseba::nakljucna()
{
          return rand() % 10+1;      
}


void oseba::vnos()
{
     
     cout<<"Ime:: ";
     cin>>ime;
     
     podatek = nakljucna();     
     cout <<"Nakljucna stevilka:: "<<podatek << endl;
              

}   

     
            

int main ()
{   int stevilo_classov=10;
    
       oseba tabela[stevilo_classov];

       for(int i=0;i<stevilo_classov;i++)
           {
               tabela[i].vnos();            
           }
 
  system("pause");
  return 0;
}


problemi: unikatna random stevila, nesmejo se ponavljat...
ZAME neresljiv problem... vsaj zdaj...

Mavrik ::

Rešitev je Fisher-Yates algoritem.
The truth is rarely pure and never simple.

bandek ::

Rabil bi nasvet pri programu:

Predpostavimo, da je A[1..n] polje n različnih celih števil in da so števila urejena.
Vsako število je lahko negativno, pozitivno ali 0.

Napisati moram funkcijo, ki v polju poišče prvo število i in ga vrne. Veljati mora pogoj polje[a]==a, če števila ni vrne -1.

Narediti moramo s pomočjo bisekcije. Sedaj imam tako:

Funkcija:
int isci_hitro(int A[], int n)
	{
		int a=0, b=0;
		while(a<=n)
		{
         b= (a+n)/2;
         cout<<"\nB:"<<b;
         if (A[b]<b)
             a=b+1;
         else
             if(A[b]>b)
                  n=b-1;
             else
                  return A[b];
        }  
		return -1;
	}


Zanima me, kaj imam narobe? Ter kako dopolniti, da bo delovalo tudi za negativna števila v polju?

Zgodovina sprememb…

  • spremenil: bandek ()


Vredno ogleda ...

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

c# seminarska

Oddelek: Programiranje
112643 (2316) tuned
»

Pomoč pri programiranju z javo

Oddelek: Programiranje
203528 (2455) milc
»

PHP razredi in konstruktorji

Oddelek: Izdelava spletišč
81586 (1437) JesusChrist
»

[C#] izdelava tabele

Oddelek: Programiranje
71983 (1809) majoneza
»

[Java] Sortiranje objektov

Oddelek: Programiranje
192834 (2834) tjaz24

Več podobnih tem