Evo source za Vjezbe 5 i 6 po zadacima. Možda ima viška koda (to sam radio na satu na vjezbama), ali ako pokrenete program, radit ce tocno ono sto se trazi :)
Na dnu imate za download .cpp datoteke
[b]Vjezbe 5 zadatak 1[/b]
[code:1]
#include<iostream>
#include<vector>
#include<list>
using namespace std;
template <typename STL>
void ispis(STL struktura){
for(typename STL::iterator i = struktura.begin(); i != struktura.end(); ++i)
cout << *i << " ";
cout << endl;
}
// ovo je funkcija koja dodaje slova ispred rijeci, kao u prvom dijelu zadatka
void dodaj(list<string>& L){
list<string>::iterator li = L.begin();
while(li != L.end()){
for(int i = 0; i < (*li).length(); ++i)
L.insert(li , string(1, (*li)[i]));
++li;
}
}
// ovo je funkcija koja dodaje slova poslije rijeci, ono sto pise za dz u prezentaciji
void dodajNaKraj(list<string>& L){
list<string>::iterator li = L.begin();
list<string>::iterator li_;
while(li != L.end()){
li_ = li;
++li_;
for(int i = 0; i < (*li).length(); ++i){
L.insert(li_, string(1, (*li)[i]));
}
li = li_;
}
}
int main(){
string S;
list<string> L;
cin >> S;
while(S != "kraj"){
L.push_back(S);
cin >> S;
}
//cout << "-Ucitana lista: ";
//ispis(L);
//dodaj(L);
dodajNaKraj(L);
//cout << "-Obradena lista: ";
ispis(L);
vector<string> V;
vector<string>::iterator vi = V.begin();
list<string>::iterator li = L.begin();
while(li != L.end()){
if((*li).size() > 1){
string a = (*li);
V.push_back(a);
li = L.erase(li);
}
else
++li;
}
cout << "-Vektor: ";
ispis(V);
/*
cout << "-Lista: ";
ispis(L);
*/
return 0;
}
[/code:1]
[b]Vjezbe 6 zadatak 1[/b]
[code:1]#include<iostream>
#include<set>
#include<string>
using namespace std;
template<typename STL>
void ispis(STL struktura){
typename STL::iterator si;
si = struktura.begin();
while(si != struktura.end()){
cout << endl << *si;
++si;
}
}
int main(){
set<string> S;
string a;
int cnt = 0;
cin >> a;
//do cin >> a; while(S.insert(a).second);
while(!S.count(a)){
S.insert(a);
cnt++;
cin >> a;
}
cout << endl << "Unijeli smo ih " << cnt;
cout << endl << "Sortirani niz stringova:" << endl;
ispis(S);
// brisanje elemenata
set<string>::iterator si = S.begin();
while(si != S.end()){
if(!(si->size() % 2)){
S.erase(si++);
--cnt;
}
else ++si;
}
cout << endl << "Ostalo ih je " << cnt;
ispis(S);
}
[/code:1]
[b]Vjezbe 6 zadatak 2[/b]
[code:1]
#include<iostream>
#include<string>
#include<map>
using namespace std;
template<typename STL>
void ispis(STL struktura){
typename STL::iterator si;
si = struktura.begin();
int i = 1;
while(si != struktura.end()){
cout << endl << "#" << i++ << " " << si->first << "\t\t" << si->second;
++si;
}
}
int main(){
map<string, int> M;
map<string, int>::iterator mi = M.begin();
string ucenik;
int ocjena;
// unos ucenika i njihovih ocjena
cin >> ucenik;
while(ucenik != "kraj"){
cin >> ocjena;
M[ucenik] = ocjena;
cin >> ucenik;
}
cout << endl << "Popis ucenika s negativnom ocjenom: " << endl;
// prolazimo po mappingu i ispisujemo samo one koji imaju ocjenu 1
mi = M.begin();
int i = 1;
while(mi != M.end()){
if(mi->second == 1)
cout << endl << "#" << i++ << " " << mi->first << "\t\t" << mi->second;
++mi;
}
// izbacivanje ucenika s ocjenom 1
mi = M.begin();
while(mi != M.end()){
if(mi->second == 1)
M.erase(mi++);
else ++mi;
}
// ispis preostalih ucenika
cout << endl << "Popis ucenika koji imaju pozitivnu ocjenu:" << endl;
ispis(M);
}
[/code:1]
Evo source za Vjezbe 5 i 6 po zadacima. Možda ima viška koda (to sam radio na satu na vjezbama), ali ako pokrenete program, radit ce tocno ono sto se trazi
Na dnu imate za download .cpp datoteke
Vjezbe 5 zadatak 1
Kod: |
#include<iostream>
#include<vector>
#include<list>
using namespace std;
template <typename STL>
void ispis(STL struktura){
for(typename STL::iterator i = struktura.begin(); i != struktura.end(); ++i)
cout << *i << " ";
cout << endl;
}
// ovo je funkcija koja dodaje slova ispred rijeci, kao u prvom dijelu zadatka
void dodaj(list<string>& L){
list<string>::iterator li = L.begin();
while(li != L.end()){
for(int i = 0; i < (*li).length(); ++i)
L.insert(li , string(1, (*li)[i]));
++li;
}
}
// ovo je funkcija koja dodaje slova poslije rijeci, ono sto pise za dz u prezentaciji
void dodajNaKraj(list<string>& L){
list<string>::iterator li = L.begin();
list<string>::iterator li_;
while(li != L.end()){
li_ = li;
++li_;
for(int i = 0; i < (*li).length(); ++i){
L.insert(li_, string(1, (*li)[i]));
}
li = li_;
}
}
int main(){
string S;
list<string> L;
cin >> S;
while(S != "kraj"){
L.push_back(S);
cin >> S;
}
//cout << "-Ucitana lista: ";
//ispis(L);
//dodaj(L);
dodajNaKraj(L);
//cout << "-Obradena lista: ";
ispis(L);
vector<string> V;
vector<string>::iterator vi = V.begin();
list<string>::iterator li = L.begin();
while(li != L.end()){
if((*li).size() > 1){
string a = (*li);
V.push_back(a);
li = L.erase(li);
}
else
++li;
}
cout << "-Vektor: ";
ispis(V);
/*
cout << "-Lista: ";
ispis(L);
*/
return 0;
}
|
Vjezbe 6 zadatak 1
Kod: | #include<iostream>
#include<set>
#include<string>
using namespace std;
template<typename STL>
void ispis(STL struktura){
typename STL::iterator si;
si = struktura.begin();
while(si != struktura.end()){
cout << endl << *si;
++si;
}
}
int main(){
set<string> S;
string a;
int cnt = 0;
cin >> a;
//do cin >> a; while(S.insert(a).second);
while(!S.count(a)){
S.insert(a);
cnt++;
cin >> a;
}
cout << endl << "Unijeli smo ih " << cnt;
cout << endl << "Sortirani niz stringova:" << endl;
ispis(S);
// brisanje elemenata
set<string>::iterator si = S.begin();
while(si != S.end()){
if(!(si->size() % 2)){
S.erase(si++);
--cnt;
}
else ++si;
}
cout << endl << "Ostalo ih je " << cnt;
ispis(S);
}
|
Vjezbe 6 zadatak 2
Kod: |
#include<iostream>
#include<string>
#include<map>
using namespace std;
template<typename STL>
void ispis(STL struktura){
typename STL::iterator si;
si = struktura.begin();
int i = 1;
while(si != struktura.end()){
cout << endl << "#" << i++ << " " << si->first << "\t\t" << si->second;
++si;
}
}
int main(){
map<string, int> M;
map<string, int>::iterator mi = M.begin();
string ucenik;
int ocjena;
// unos ucenika i njihovih ocjena
cin >> ucenik;
while(ucenik != "kraj"){
cin >> ocjena;
M[ucenik] = ocjena;
cin >> ucenik;
}
cout << endl << "Popis ucenika s negativnom ocjenom: " << endl;
// prolazimo po mappingu i ispisujemo samo one koji imaju ocjenu 1
mi = M.begin();
int i = 1;
while(mi != M.end()){
if(mi->second == 1)
cout << endl << "#" << i++ << " " << mi->first << "\t\t" << mi->second;
++mi;
}
// izbacivanje ucenika s ocjenom 1
mi = M.begin();
while(mi != M.end()){
if(mi->second == 1)
M.erase(mi++);
else ++mi;
}
// ispis preostalih ucenika
cout << endl << "Popis ucenika koji imaju pozitivnu ocjenu:" << endl;
ispis(M);
}
|
Description: |
|
Download |
Filename: |
vjezbe6.2.cpp |
Filesize: |
1.11 KB |
Downloaded: |
147 Time(s) |
Description: |
|
Download |
Filename: |
vjezbe6.1.cpp |
Filesize: |
780 Bytes |
Downloaded: |
150 Time(s) |
Description: |
|
Download |
Filename: |
vjezbe5.1.cpp |
Filesize: |
1.43 KB |
Downloaded: |
154 Time(s) |
|