constructie vectorul TATA

Se citeste un arbore cu n varfuri dat prin vectorul muchiilor si apoi se citeste varful radacina. Sa se construiasca si sa se afiseze vectorul TATA. Vectorul de tati de declara astfel: T[i]=parintele(tata) nodului i. Pentru arborele din figura vectorul TATA este 0,1,2,1 si radacina este 1.Muchiile care se citesc sunt 1-2,2-1,1-4 #include<iostream.h>int n, r, … Read more

arbori binari vector TATA

Se citeste un arbore cu n varfuri dat prin vectorul TATA. 1) Sa se afiseze muchiile arborelui 2) Sa se construiasca si sa se afiseze matricea de adiacenta a arborelui. Observatie: vectorul TATA  precizeaza pentru fiecare varf i, nodul TATA[i] care reprezinta parintele sau Pentru arborele din imagine vectorul TATA este: 0,1,2,1. #include<iostream.h>int n, t[20], … Read more

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; }