Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- using namespace std;
- struct lista
- {
- int info;
- lista *urm;
- };
- lista *p, *prim, *ultim;
- int n, inf;
- int reluare();
- void creare_infata(lista *&prim, lista *&ultim)
- {
- cout<<"Introdu numarul de elemente: ";cin>>n;
- cout<<"\nIntrodu informatia: ";cin>>inf;
- prim = new lista;
- prim -> info = inf;
- prim -> urm = NULL;
- ultim=prim;
- for(int i = 2; i <= n; i++)
- {
- cout<<"\nIntrodu informatia: ";cin>>inf;
- p = new lista;
- p -> info = inf;
- p -> urm = prim;
- prim = p;
- }
- }
- void creare_spate(lista *&prim, lista *&ultim)
- {
- cout<<"\nIntrodu numarul de elemente: ";cin>>n;
- cout<<"\nIntrodu informatia: ";cin>>inf;
- prim = new lista;
- prim -> info = inf;
- prim -> urm = NULL;
- ultim = prim;
- for(int i = 2; i <=n; i++)
- {
- cout<<"\nIntrodu informatia: ";cin>>inf;
- p = new lista;
- p -> info = inf;
- p -> urm = NULL;
- ultim -> urm = p;
- ultim = p;
- }
- }
- void creare_fibonacci(lista *&prim, lista *&ultim, int numar_elem_fibonacci)
- {
- prim = new lista;
- prim -> info = 1;
- prim -> urm = NULL;
- p = new lista;
- p -> info = 1;
- p -> urm = NULL;
- prim -> urm = p;
- ultim = p;
- int i = 2, j = 1, k = 1, e = 2;
- while( e < numar_elem_fibonacci)
- {
- i = j + k;
- p = new lista;
- p -> info = i;
- p -> urm = NULL;
- ultim -> urm = p;
- ultim = p;
- j = k; k = i;
- e++;
- }
- }
- void afisare(lista *prim)
- {
- p = prim;
- while(p != NULL)
- {
- cout<<" "<<p->info;
- p = p -> urm;
- }
- }
- int suma(lista *prim)
- {
- int suma = 0;
- p = prim;
- while(p != NULL)
- {
- suma += p ->info;
- p = p -> urm;
- }
- return suma;
- }
- int maxim(lista *prim)
- {
- p = prim;
- int maxim2 = p -> info;
- while(p != NULL)
- {
- if(p -> info > maxim2)
- maxim2 = p -> info;
- p = p -> urm;
- }
- return maxim2;
- }
- int verific_prim(int nr)
- {
- int flag = 1;
- for(int i = 2; i <= nr/2; i++)
- {
- if(nr%i == 0)
- flag = 0;
- }
- return flag;
- }
- int prim2(lista *prim)
- {
- p = prim;
- int contor = 0;
- while(p != NULL)
- {
- if(verific_prim(p -> info) == 1)
- contor++;
- p = p -> urm;
- }
- return contor;
- }
- void primul()
- {
- cout<<"\nAi ales primult program adica: Suma si Maximul unei liste.";
- creare_infata(prim, ultim);
- afisare(prim);
- cout<<endl<<maxim(prim);
- cout<<endl<<suma(prim);
- reluare();
- }
- void aldoilea()
- {
- cout<<"\nAi ales al doilea program adica: Numere prime intr-o lista.";
- creare_spate(prim, ultim);
- afisare(prim);
- cout<<endl<<prim2(prim);
- reluare();
- }
- void altreilea()
- {
- cout<<"\nAi ales al doilea program adica: Sirul lui Fibonacci pentru un nr de elem.";
- int nr_el;
- cout<<"Introdu nr de elem : ";cin>>nr_el;
- creare_fibonacci(prim, ultim, nr_el);
- afisare(prim);
- reluare();
- }
- void menu()
- {
- int opt;
- cout<<"1. Suma si Maximul unei liste\n2. Numere prime intr-o lista\n3. Sirul lui Fibonacci pentru un nr de elem."<<endl;
- cin>>opt;
- cout<<endl;
- switch(opt)
- {
- case 1: primul();
- case 2: aldoilea();
- case 3: altreilea();
- default:
- {
- cout<<"Ai ales un program gresit. Incearca una din optiunea de mai sus"<<endl;
- menu();
- }
- }
- }
- int reluare()
- {
- char rel[2];
- cout<<"\nVrei sa reiei programul?(Da sau Nu): ";cin>>rel;
- if(rel[0] = 'D')
- menu();
- else
- return 0;
- }
- int main()
- {
- menu();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement