Forum » Programiranje » 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
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.
Namig pri reševanju problema: objekte si shrani v tabelo/array.
omgbunnyz ::
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 ::
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.
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 ::
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…
- spremenil: omgbunnyz ()
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 ::
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.
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
zdejle samo se zanko ki bo stela zaporedja bom naredu in to je to =) ce me bo kaj mucil bom tukaj napisu
Zgodovina sprememb…
- spremenil: omgbunnyz ()
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 ::
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:
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
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…
- spremenil: omgbunnyz ()
omgbunnyz ::
spet problem nevem kaj dati kot pogoj k zanki
zdejle nevem kero zanko pa pogoj naj dam pred generiranjem random stevila...
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…
- spremenil: omgbunnyz ()
omgbunnyz ::
tole zdejle delam samo zanko za unikatna random stevila ki jo bom potem vstavil v metodo.
Zgodovina sprememb…
- spremenil: omgbunnyz ()
omgbunnyz ::
no imam to kodo do zdaj:
problemi: unikatna random stevila, nesmejo se ponavljat...
ZAME neresljiv problem... vsaj 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...
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:
Zanima me, kaj imam narobe? Ter kako dopolniti, da bo delovalo tudi za negativna števila v polju?
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 ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | c# seminarskaOddelek: Programiranje | 2643 (2316) | tuned |
» | Pomoč pri programiranju z javoOddelek: Programiranje | 3528 (2455) | milc |
» | PHP razredi in konstruktorjiOddelek: Izdelava spletišč | 1586 (1437) | JesusChrist |
» | [C#] izdelava tabeleOddelek: Programiranje | 1983 (1809) | majoneza |
» | [Java] Sortiranje objektovOddelek: Programiranje | 2834 (2834) | tjaz24 |