cmmdc divide et impera

Sa se calculeze cmmdc pentru n numere utilizand metoda divide et impera #include<iostream.h>int cmmdc(int a[20], int li, int ls){ if(li==ls) return a[li];  else   { int x,y;    x=cmmdc(a,li,(li+ls)/2);    y=cmmdc(a,(li+ls)/2+1,ls);    while(x!=y)       if(x>y) x=x-y;       else y=y-x;    return x;     }    }void main(){int a[20],n,i;cout<<“n=”;cin>>n;for(i=1;i<=n;i++) cin>>a[i];cout<<“cmmdc este: “<<cmmdc(a,1,n);}

suma elementelor unui vector divide et impera

Sa se calculeze folosind metoda divide et impera suma elementelor unui vector #include<iostream.h>int v[20],n;int suma(int li,int ls) {int m, d1 ,d2;  if(li!=ls)                 {m=(li+ls)/2;      d1=suma(li,m);        d2=suma(m+1,ls);       return d1+d2;       }  else      return v[li]; }      void main()  {             cout<<“n=”;  cin>>n;      for(int i=1;i<=n;i++)    {cout<<“v[“<<i<<“]=”;    cin>>v[i];} cout<<“suma celor “<<n<<” elemente ale vectorului “<<suma(1,n);}

arbore partial de cost minim algoritmul lui Kruskal

Sa se determine un arbore partial de cost minim folosind algoritmul Kruskal Pentru memorarea muchiilor grafului si a costurilor acestora se defineste o structura de date cu trei campuri (nodurile muchiei si costul ei) pe care o numim muchie #include<iostream.h>#include<fstream.h>typedef struct{int u,v,c;} muchie;int l[30],n,m;muchie e[30];void citire(){int i;fstream f(“apm.txt”, ios::in);f>>n;f>>m;for(i=1;i<=m;i++)f>>e[i].u>>e[i].v>>e[i].c;f.close();} void main(){int k,ultim,i,u,v,ct,ind,ms,lu,lv;muchie aux;citire();for(i=1;i<=n;i++)l[i]=i;ultim=m;while(ultim>1){k=0;for(i=1;i<=ultim-1;i++)if(e[i].c>e[i+1].c){aux=e[i];e[i]=e[i+1];e[i+1]=aux;k=1;}ultim=k;}cout<<“APM contine muchiile:”<<endl;ct=0;ms=0;ind=0;while(ms<n-1){doind++;while(l[e[ind].u]==l[e[ind].v]);u=e[ind].u;lu=l[u];v=e[ind].v;lv=l[v];cout<<u<<”  … Read more

sistem de ecuatii liniare cu doua necunoscute

Rezolvarea unui sistem de doua ecuatii liniare cu doua necunoscute in C++ Să se rezolve un sistem de două ecuaţii liniare cu două necunoscute: a1*x+b1*y=c1 a2*x+b2*y=c2 Soluţiile sistemului de ecuaţii sunt: x=dx/d=(b2*c1-b1*c2)/(a1*b2-b1*a2) y=dy/d=(a1*c2-a2*c1)/(a1*b2-b1*a2) #include <iostream> using namespace std; int main() { int a1, b1, c1, a2, b2, c2, d, dx, dy; float x, y; cout<<“a1=”; … Read more

patrat perfect

Se citeste un număr natural n. Să se verifice dacă n este pătrat perfect.   #include <iostream> #include<cmath> using namespace std; int main() { int n; // n – numãrul citit de la tastaturã care se verificã dacã este pãtrat perfect cout<<“n=”; cin>>n; if (sqrt(n)==(int)(sqrt(n))) cout<<n<<” este patrat perfect “<<endl; else cout<<n<<” nu este patrat … Read more

probleme rezolvate atestat informatica

Probleme rezolvate c++ atestat informatica 1.Scrieți programul care citește un număr natural nenul n cu cel mult 4 cifre și determină cel mai mic număr prim mai mare decât n 2. Se citeste un numar intreg strict pozitiv cu cel mult noua cifre. Sa se verifice daca cifrele lui sunt in ordine strict crescatoare. 3. … Read more

cel mai mic numar par aflat intre 2 numere

Sa se scrie un program care citeste dintr-un fisier 2 numere si afiseaza cel mai mic numar par aflat intre cele doua numere. #include<fstream.h>void main(){int a,b,i,gasit=0,nr;fstream f(“numere.in”,ios::in);f>>a; cout<<a<<endl;f>>b; cout<<b<<endl;if(a>b){nr=a;a=b;b=nr;}for(i=a;i<=b && gasit==0;i++)if(i%2==0)   gasit=1;nr=i-1;cout<<“am gasit numarul “<<nr;f.close();}

elemente impare aflate pe pozitii pare

Se citeşte un vector cu n componente numere întregi. Să se afişeze doar numerele impare aflate pe poziţii pare din vector #include <iostream> using namespace std; int main() { int n,i,d,v[20]; cout<<“n=”;cin>>n; for(i=0;i<n;i++) { cout<<“v[“<<i<<“]=”; cin>>v[i]; } for(i=0;i<n;i++) if((i%2==0)&&(v[i]%2==1)) cout<<v[i]<<” “; return 0; }

inserare element in vector

Se citeste un vector cu n componente nr intregi.  Sa se adauge in vector pe pozitia poz(citita de la tastatura), un nou element avand ca valoare numarul elementelor negative din vector. Sa se afiseze vectorul rezultat in urma adaugarii acestei valori. #include <iostream> using namespace std; int main() { int i,n,v[40],cnt=0,k,poz; cout<<“n=”;cin>>n; cout<<“poz=”;cin>>poz; for(i=0;i<n;i++) cin>>v[i]; … Read more

parcurgere graf in adancime recursiv

Sa se parcurga in adancime DF un graf orientat. Graful este dat prin matricea de adiacenta. #include<fstream.h>#include<iostream.h>int v[20],a[20][20],n;void citire(){int i,j;fstream f(“matrice.txt”,ios::in);f>>n;for(i=1;i<=n;i++)for(j=1;j<=n;j++)f>>a[i][j];}void df(int nod){int k;cout<<nod<<” “;v[nod]=1;for(k=1;k<=n;k++)if((a[nod][k]==1) && (v[k]==0))df(k);}void main(){citire();df(1);} {joscommentenable}