lista 7 druk (2)


Zad_1

a)

#include <cstdlib>

#include <iostream>

#include <vector>

using namespace std;

const int N=30;

class Stos

{

private:

int maxRozmiar;

vector<double> wekStosu;

int szczyt;

public:

Stos(int s): maxRozmiar(s), szczyt(-1) //konstruktor

{

wekStosu.reserve(maxRozmiar); //ustawienie rozmiaru wektora z danymi

}

void poloz(double p) //kładzie element na szczycie

{

wekStosu[++szczyt] = p; //zwiększa szczyt, wstawia element

}

double zdejmij(double z) //pobiera element ze szczytu

{

wekStosu[szczyt--] = z; //zmniejsza szczyt

}

double sprawdzSzczyt() //zwraca element na szczycie

{

return wekStosu[szczyt];

}

bool jestPusty() //prawda, gdy stos jest pusty

{

return (szczyt == -1);

}

bool jestPelny() //prawda, gdy stos jest wypełniony

{

return (szczyt == maxRozmiar-1);

}

}; //koniec klasy Stosik

int main ()

{

int i=0;

char txt1[N], txt2[N];

Stos stosik(N);

cout << "Podaj jakis tekst (max 30 znakow) : ";

cin >> txt1;

while(txt1[i]) //na stosik

{

stosik.poloz(txt1[i++]);

}

cout << "\n Obrucony tekst : ";

while(i!=0) //ze stosiku

{

stosik.zdejmij(txt1[i--]);

cout << txt1[i];

}

cout << "\n\n";

system("PAUSE");

return EXIT_SUCCESS;

}

c)

#include <iostream>

#include <vector>

using namespace std;

const int N=10;

class Stos

{

private:

int maksRozmiar;

vector<char> wekStosu;

int szczyt;

public:

Stos(int s):maksRozmiar(s),szczyt(-1) //konstruktor

{

wekStosu.reserve(maksRozmiar);//ustawienie rozmiaru wektora z danymi

}

void poloz(char j) //kładzie element na szczycie

{

wekStosu[++szczyt]=j; //zwiększa szczyt, wstawia element

}

char zdejmnij() //pobiera element ze szczytu

{

return wekStosu[szczyt--]; //zmniejsza szczyt

}

char sprawdz_szczyt() //zwraca element na szczycie

{

return wekStosu[szczyt];

}

bool jestPusty() //prawda, gdy stos jest pusty

{

return (szczyt==-1);

}

char czytaj(int nr)

{

return wekStosu[nr];

}

int czytajSzczyt()

{

return szczyt;

}

}; //koniec klasy stos

int main()

{

char ch[N];

bool czy2=false;

Stos stosik(N);

gets(ch);

for(int i=0; ch[i]!=0; i++)

{

stosik.poloz(ch[i]);

for(int j=0; j<stosik.czytajSzczyt(); j++)

if(ch[i]==stosik.czytaj(j))

czy2=true;

}

if(czy2)

cout << " Na stosie sa min. 2 elemety identyczne";

else

cout << " Na stosie nie ma elemetow identycznych";

cout << "\n\n";

system("PAUSE");

return EXIT_SUCCESS;

}

b)

#include <cstdlib>

#include <iostream>

#include <vector>

using namespace std;

const int N=10;

class Stos

{

private:

int maxRozmiar;

vector<int> wekStosu;

int szczyt;

public:

Stos(int s): maxRozmiar(s), szczyt(-1) //konstruktor

{

wekStosu.reserve(maxRozmiar); //ustawienie rozmiaru wektora z danymi

}

void poloz(int p) //kładzie element na szczycie

{

wekStosu[++szczyt] = p; //zwiększa szczyt, wstawia element

}

int zdejmij() //pobiera element ze szczytu

{

return wekStosu[szczyt--]; //zmniejsza szczyt

}

int sprawdzSzczyt() //zwraca element na szczycie

{

return wekStosu[szczyt];

}

bool jestPusty() //prawda, gdy stos jest pusty

{

return (szczyt == -1);

}

bool jestPelny() //prawda, gdy stos jest wypełniony

{

return (szczyt == maxRozmiar-1);

}

}; //koniec klasy Stosik

int main ()

{

Stos stosik(N), p(N), np(N);

int x;

srand(time(0));

cout << "Nasz stosik : \n";

for(int i=0; i<N; i++)

{

x = rand()%100;

cout << x << "\t";

stosik.poloz(x);

}

while(!stosik.jestPusty())

{

x = stosik.zdejmij();

if((x%2)!=0)

np.poloz(x);

else

p.poloz(x);

}

cout<<"\n\n Liczby parzyste : \n";

while(!p.jestPusty())

cout << p.zdejmij() << "\t";

cout<<"\n\n Liczby nieparzyste : \n";

while(!np.jestPusty())

cout << np.zdejmij() << "\t";

cout << "\n\n";

system("PAUSE");

return EXIT_SUCCESS;

}

Zad_2

a)

#include <iostream>

#include <vector>

using namespace std;

const int N=30;

class Stos

{

private:

int maksRozmiar;

vector<char> wekStosu;

int szczyt;

public:

Stos(int s):maksRozmiar(s),szczyt(-1) //konstruktor

{

wekStosu.reserve(maksRozmiar);//ustawienie rozmiaru wektora z danymi

}

void poloz(char j) //kładzie element na szczycie

{

wekStosu[++szczyt]=j; //zwiększa szczyt, wstawia element

}

char zdejmnij() //pobiera element ze szczytu

{

return wekStosu[szczyt--]; //zmniejsza szczyt

}

char sprawdz_szczyt() //zwraca element na szczycie

{

return wekStosu[szczyt];

}

bool jestPusty() //prawda, gdy stos jest pusty

{

return (szczyt==-1);

}

}; //koniec klasy stos

int main()

{

Stos stosik(N);

char ch[N];

gets(ch);

for(int i=0; ch[i]!=0; i++)

{

if(ch[i]=='(') stosik.poloz(ch[i]);

if(ch[i]==')')

{

if(!stosik.jestPusty())break;

else stosik.zdejmnij();

}

}

cout<<"\n Nawiasy "<<((stosik.jestPusty())?"":"NIE ")<<"sa poprawne" ;

cout<<"\n\n";

system("PAUSE");

return EXIT_SUCCESS;

}



Wyszukiwarka

Podobne podstrony:
lista 2 druk
lista 8 druk
lista 4 druk
lista 7 druk
lista 3 druk
lista 1 druk
lista druk (2)
lista 7 druk
lista płac druk
Bakterie spiralne do druk
woda 2 druk
Ćwiczenia i seminarium 1 IV rok 2014 15 druk
Lista 2012 2
Polecenia lista 5
macierze i wyznaczniki lista nr Nieznany
Lista 14
Analiza matematyczna, lista analiza 2008 6 szeregi
Analiza III semestr lista nr 3 Nieznany (2)
lista produktow

więcej podobnych podstron