Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
afcajax Forumaš(ica)
Pridružen/a: 04. 05. 2007. (11:58:56) Postovi: (1D)16
|
|
[Vrh] |
|
ivancica Forumaš(ica)
Pridružen/a: 10. 09. 2007. (10:18:25) Postovi: (41)16
|
|
[Vrh] |
|
Luuka Forumaš(ica)
Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol:
Lokacija: Hakuna Matata
|
|
[Vrh] |
|
ivancica Forumaš(ica)
Pridružen/a: 10. 09. 2007. (10:18:25) Postovi: (41)16
|
|
[Vrh] |
|
Luuka Forumaš(ica)
Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol:
Lokacija: Hakuna Matata
|
|
[Vrh] |
|
Luuka Forumaš(ica)
Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol:
Lokacija: Hakuna Matata
|
Postano: 13:22 uto, 29. 4. 2008 Naslov: |
|
|
Evo, za ivancicu ;) Valjda je dobro
[code:1]#include<iostream>
#include<string>
using namespace std;
template <class Tip> struct polje
{
Tip el[101];
int zadnji;
polje()
{
zadnji=0;
}
polje(Tip* a, int n)
{
for(int i=0;i<n;i++) el[i]=a[i];
zadnji=n;
}
polje(Tip x)
{
for(int i=0;i<101;i++) el[i]=x;
zadnji=100;
}
~polje()
{
for(int i=0;i<zadnji;i++) cout<< el[i] << " ";
cout<<endl<<endl;
system("PAUSE");
}
Tip vratiPocetak()
{
if (zadnji==0) cout<<"Polje je prazno"<<endl;
else return el[0];
}
Tip vratiKraj()
{
if (zadnji==0) cout<<"Polje je prazno"<<endl;
else return el[zadnji-1];
}
bool izbaciPocetak()
{
if (zadnji==0) return false;
else {
for(int i=1;i<zadnji;i++) el[i-1]=el[i];
zadnji--;
return true;
}
}
bool izbaciKraj()
{
if (zadnji==0) return false;
else { zadnji--; return true;}
}
bool ubaci(Tip x)
{
if (zadnji==0){ el[0]=x;zadnji++;return false; }
else
{
int br=0;
for(int i=0;i<zadnji;i++) if( x>el[i]) br++;
if (zadnji==100)
{
if (br>(zadnji/2)) {
Tip max=0;
for(int i=1;i<zadnji;i++) if ( el[i]>=el[max]) max=i;
el[max]=x;
return true;
}
else {
Tip min=0;
for(int i=1;i<zadnji;i++) if ( el[i]<el[min]) min=i;
el[min]=x;
return true;
}
}
else
{
if (br>(zadnji/2)) {el[zadnji]=x;zadnji++;return true;}
else {
for(int i=zadnji;i>0;i--) el[i]=el[i-1];
el[0]=x;
zadnji++;
return true;
}
}
}
}
void ispisi()
{
for(int i=0;i<zadnji;i++) cout<< el[i] << " ";
cout<<endl<<endl;
}
};
int main ()
{
int a[]={1,2,3,4,5};
string b[]={"a","b","c","d","e"};
polje<int> A(a,5);
polje<string> B(b,5);
polje<int> C(1);
polje<int> D(9);
cout<<"kraj od A: "<<A.vratiKraj()<<endl;
cout<<"pocetak od B: "<<B.vratiPocetak()<<endl;
A.izbaciKraj();
B.izbaciPocetak();
A.ubaci(1);
A.ubaci(9);
A.ispisi();
C.ubaci(5);
D.ubaci(5);
C.ispisi();
D.ispisi();
system("PAUSE");
return 0;
}[/code:1]
Btw ona pitanja iz prethodnog posta još uvijek stoje :D
Evo, za ivancicu Valjda je dobro
Kod: | #include<iostream>
#include<string>
using namespace std;
template <class Tip> struct polje
{
Tip el[101];
int zadnji;
polje()
{
zadnji=0;
}
polje(Tip* a, int n)
{
for(int i=0;i<n;i++) el[i]=a[i];
zadnji=n;
}
polje(Tip x)
{
for(int i=0;i<101;i++) el[i]=x;
zadnji=100;
}
~polje()
{
for(int i=0;i<zadnji;i++) cout<< el[i] << " ";
cout<<endl<<endl;
system("PAUSE");
}
Tip vratiPocetak()
{
if (zadnji==0) cout<<"Polje je prazno"<<endl;
else return el[0];
}
Tip vratiKraj()
{
if (zadnji==0) cout<<"Polje je prazno"<<endl;
else return el[zadnji-1];
}
bool izbaciPocetak()
{
if (zadnji==0) return false;
else {
for(int i=1;i<zadnji;i++) el[i-1]=el[i];
zadnji--;
return true;
}
}
bool izbaciKraj()
{
if (zadnji==0) return false;
else { zadnji--; return true;}
}
bool ubaci(Tip x)
{
if (zadnji==0){ el[0]=x;zadnji++;return false; }
else
{
int br=0;
for(int i=0;i<zadnji;i++) if( x>el[i]) br++;
if (zadnji==100)
{
if (br>(zadnji/2)) {
Tip max=0;
for(int i=1;i<zadnji;i++) if ( el[i]>=el[max]) max=i;
el[max]=x;
return true;
}
else {
Tip min=0;
for(int i=1;i<zadnji;i++) if ( el[i]<el[min]) min=i;
el[min]=x;
return true;
}
}
else
{
if (br>(zadnji/2)) {el[zadnji]=x;zadnji++;return true;}
else {
for(int i=zadnji;i>0;i--) el[i]=el[i-1];
el[0]=x;
zadnji++;
return true;
}
}
}
}
void ispisi()
{
for(int i=0;i<zadnji;i++) cout<< el[i] << " ";
cout<<endl<<endl;
}
};
int main ()
{
int a[]={1,2,3,4,5};
string b[]={"a","b","c","d","e"};
polje<int> A(a,5);
polje<string> B(b,5);
polje<int> C(1);
polje<int> D(9);
cout<<"kraj od A: "<<A.vratiKraj()<<endl;
cout<<"pocetak od B: "<<B.vratiPocetak()<<endl;
A.izbaciKraj();
B.izbaciPocetak();
A.ubaci(1);
A.ubaci(9);
A.ispisi();
C.ubaci(5);
D.ubaci(5);
C.ispisi();
D.ispisi();
system("PAUSE");
return 0;
} |
Btw ona pitanja iz prethodnog posta još uvijek stoje
_________________ "Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy
|
|
[Vrh] |
|
ma Forumaš(ica)
Pridružen/a: 27. 01. 2007. (12:06:50) Postovi: (347)16
Spol:
|
|
[Vrh] |
|
5ra Forumaš(ica)
Pridružen/a: 13. 08. 2006. (21:34:08) Postovi: (D5)16
Spol:
|
|
[Vrh] |
|
mala Forumaš(ica)
Pridružen/a: 10. 10. 2006. (16:13:20) Postovi: (2A)16
Spol:
|
|
[Vrh] |
|
Luuka Forumaš(ica)
Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol:
Lokacija: Hakuna Matata
|
|
[Vrh] |
|
Nori Forumaš(ica)
Pridružen/a: 01. 10. 2006. (18:41:07) Postovi: (E5)16
Spol:
|
|
[Vrh] |
|
Luuka Forumaš(ica)
Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol:
Lokacija: Hakuna Matata
|
|
[Vrh] |
|
teja Forumaš(ica)
Pridružen/a: 14. 07. 2006. (15:34:28) Postovi: (14A)16
Spol:
Lokacija: zg-ma and back
|
|
[Vrh] |
|
Nori Forumaš(ica)
Pridružen/a: 01. 10. 2006. (18:41:07) Postovi: (E5)16
Spol:
|
|
[Vrh] |
|
Luuka Forumaš(ica)
Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol:
Lokacija: Hakuna Matata
|
Postano: 16:33 uto, 29. 4. 2008 Naslov: |
|
|
Mislim da taj ZZZ može doć i u 1. i u 3. grupu, pošto više nemaš stringova sa istim poč slovom, a ZZZ moraš negdje stavit. ;)
A grupe nisu baš jednakobrojne, ali se traži da budu otprilike jednoliko popunjene...da nije prevelika razlika u broju stringova u pojedinoj grupi :)
@Nori
Ja sam ovak:
[code:1]#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
int n;
vector<string> v;
cout<<"ucitaj n: ";
cin>>n;
vector<string> polje[n];
while(1)
{
string s;
cout<<"ucitaj string: ";
cin>>s;
if( s=="KRAJ") break;
else v.push_back(s);
}
for(int i=0;i<v.size()-1;i++)
for(int j=i+1;j<v.size();j++)
if( v[i]>v[j]) {string s=v[i];
v[i]=v[j]; //sortiranje
v[j]=s;}
int koliko=v.size()/n +1; // koliko ih najviše može bit u grupi
v.push_back(v[v.size()-1]);// dodam još jednom zadnjeg da bi ga iduca petlja vidjela
int index=-1; // index predstavlja index u vektoru vektora polje[]
for(int i=0;i<v.size()-1;) { index=(index+1)%n;
int j=i+1;
string s1=v[i], s2=v[j];
vector<string> pom=polje[index];
if(pom.size()<koliko)pom.push_back(v[i]);
while(s1[0]==s2[0] && j<v.size()-1 && pom.size()<koliko)
{pom.push_back(v[j]);s1=v[j]; s2=v[j+1];j++;}
polje[index]=pom; i=j;
}
for( int i=0;i<n;i++)
{ vector<string> pom=polje[i];
cout<<i+1<<": ";
for (int j=0;j<pom.size();j++) cout <<pom[j]<<" ";
cout<<endl;
}
scanf("%%");
return 0;
}[/code:1]
Mislim da taj ZZZ može doć i u 1. i u 3. grupu, pošto više nemaš stringova sa istim poč slovom, a ZZZ moraš negdje stavit.
A grupe nisu baš jednakobrojne, ali se traži da budu otprilike jednoliko popunjene...da nije prevelika razlika u broju stringova u pojedinoj grupi
@Nori
Ja sam ovak:
Kod: | #include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
int n;
vector<string> v;
cout<<"ucitaj n: ";
cin>>n;
vector<string> polje[n];
while(1)
{
string s;
cout<<"ucitaj string: ";
cin>>s;
if( s=="KRAJ") break;
else v.push_back(s);
}
for(int i=0;i<v.size()-1;i++)
for(int j=i+1;j<v.size();j++)
if( v[i]>v[j]) {string s=v[i];
v[i]=v[j]; //sortiranje
v[j]=s;}
int koliko=v.size()/n +1; // koliko ih najviše može bit u grupi
v.push_back(v[v.size()-1]);// dodam još jednom zadnjeg da bi ga iduca petlja vidjela
int index=-1; // index predstavlja index u vektoru vektora polje[]
for(int i=0;i<v.size()-1;) { index=(index+1)%n;
int j=i+1;
string s1=v[i], s2=v[j];
vector<string> pom=polje[index];
if(pom.size()<koliko)pom.push_back(v[i]);
while(s1[0]==s2[0] && j<v.size()-1 && pom.size()<koliko)
{pom.push_back(v[j]);s1=v[j]; s2=v[j+1];j++;}
polje[index]=pom; i=j;
}
for( int i=0;i<n;i++)
{ vector<string> pom=polje[i];
cout<<i+1<<": ";
for (int j=0;j<pom.size();j++) cout <<pom[j]<<" ";
cout<<endl;
}
scanf("%%");
return 0;
} |
_________________ "Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy
Zadnja promjena: Luuka; 16:37 uto, 29. 4. 2008; ukupno mijenjano 1 put.
|
|
[Vrh] |
|
arya Forumaš(ica)
Pridružen/a: 30. 11. 2006. (20:10:37) Postovi: (233)16
Spol:
Lokacija: forum
|
|
[Vrh] |
|
Luuka Forumaš(ica)
Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol:
Lokacija: Hakuna Matata
|
|
[Vrh] |
|
stuey Forumaš(ica)
Pridružen/a: 03. 11. 2006. (15:52:11) Postovi: (A2)16
Spol:
Lokacija: Rijeka, Zg
|
Postano: 18:47 uto, 29. 4. 2008 Naslov: |
|
|
nisam ti gledao kodove, pa ne znam jesi li ovu ideju iskoristio:
neka je z ukupan broj stringova, a n broj grupa
u 1.grupu ubaciš z/n stringova, zatim z smanjiš za z/n, a n smanjiš za 1
u 2.grupu opet onda ubaciš z/n stringova, i opet ih ovako smanjuješ itd..
nisam ti gledao kodove, pa ne znam jesi li ovu ideju iskoristio:
neka je z ukupan broj stringova, a n broj grupa
u 1.grupu ubaciš z/n stringova, zatim z smanjiš za z/n, a n smanjiš za 1
u 2.grupu opet onda ubaciš z/n stringova, i opet ih ovako smanjuješ itd..
|
|
[Vrh] |
|
Nori Forumaš(ica)
Pridružen/a: 01. 10. 2006. (18:41:07) Postovi: (E5)16
Spol:
|
|
[Vrh] |
|
Luuka Forumaš(ica)
Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol:
Lokacija: Hakuna Matata
|
Postano: 19:24 uto, 29. 4. 2008 Naslov: |
|
|
@stuey to radi ovaj while ;)
@Nori Da, ispis nije jednoznačno određen, mislim da dosta ovisi o tome kak radiš.
A ja sam radio ovak: učitam n i stringove dok se ne učita KRAJ. Te stringove spremam u vector. Nakon učitavanja vector sortiram. Izračunam koliko će stringova ići u grupu, [tt]koliko=v.size()/n+1[/tt]. Grupe sam napravio kao vector vectora, pri čemu mi svaki vektor-član prestavlja jednu grupu, a tih vektora-članova ima n. I sad ubacujem u taj veliki vektor po [tt]koliko[/tt] stringova kao elemnte jednog vektora-člana. I to je to. Jedino je moguće da u zadnjoj grupi ih bude manje... to je ona verzija sa while. a tamo gore, di je for sa ubacivo pazeći da početno slovo, i na index i bla bla... sa while je jednostavnije.
;)
@stuey to radi ovaj while
@Nori Da, ispis nije jednoznačno određen, mislim da dosta ovisi o tome kak radiš.
A ja sam radio ovak: učitam n i stringove dok se ne učita KRAJ. Te stringove spremam u vector. Nakon učitavanja vector sortiram. Izračunam koliko će stringova ići u grupu, koliko=v.size()/n+1. Grupe sam napravio kao vector vectora, pri čemu mi svaki vektor-član prestavlja jednu grupu, a tih vektora-članova ima n. I sad ubacujem u taj veliki vektor po koliko stringova kao elemnte jednog vektora-člana. I to je to. Jedino je moguće da u zadnjoj grupi ih bude manje... to je ona verzija sa while. a tamo gore, di je for sa ubacivo pazeći da početno slovo, i na index i bla bla... sa while je jednostavnije.
_________________ "Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy
|
|
[Vrh] |
|
|