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 | 2823 (2496) | tuned |
» | Pomoč pri programiranju z javoOddelek: Programiranje | 3685 (2612) | milc |
» | PHP razredi in konstruktorjiOddelek: Izdelava spletišč | 1676 (1527) | JesusChrist |
» | [C#] izdelava tabeleOddelek: Programiranje | 2032 (1858) | majoneza |
» | [Java] Sortiranje objektovOddelek: Programiranje | 2963 (2963) | tjaz24 |