POEZIE

Se citește un număr n, și n versuri dintr-o poezie. Fiecare vers ocupă un rând și conține litere mari și mici ale alfabetului englez, spații, și semne de punctuație . , ! ?. Să se elimine din fiecare vers toate semnele de punctuație, mai puțin cel aflat la final. Date de intrare Programul citește de la tastatură numărul n și cele n versuri. … Read more

CODIFICARE

Fiind dat un cuvânt s, format numai din litere, și un cod c, de aceeași lungime cu s, format numai din cifre, numim codificare a lui s pe baza codului c operația de construire a unui nou șir, în care inițial se copiază prima literă din s, apoi, parcurgând de la stânga la dreapta restul șirului s, se adaugă litera curentă la începutul noului șir, dacă … Read more

NRPITS

Se dă un șir de N numere distincte a[1],a[2],..a[N]. Orice secvențăa[i],a[i+1],…,a[j-1],a[j], 1 ≤ i + 1 < j ≤ n, pentru care toate valorile a[k],i < k < j, sunt mai mici decât extremitățile a[i] și a[j], o vom numi în continuare “groapă”. Cerința Scrieţi un program care va determina numărul “gropilor” din șirul dat. Date de intrare Fișierul de intrare nrpits.in conţine pe prima … Read more

STIVA

Cerința Să se scrie un program care gestionează o stivă de numere întregi. Inițial stiva este vidă. Programul va citi de la tastatură o listă de operații, care pot fi: push X – adaugă valoarea întreagă X pe stivă; pop – elimină elementul din vârful stivei; top – afișează elementul din vârful stivei. Programul va realiza asupra stivei operațiile citite, … Read more

CUBURI2

Cerința Gigel are un set de n cuburi. Fiecare cub este marcat cu un număr natural, de la 1 la n și i se cunoaște lungimea laturii – număr natural. Cu o parte dintre aceste cuburi Gigel va construi o stivă, astfel: fiecare cub se analizează o singură dată, în ordinea numerelor marcate; dacă stiva nu conține niciun cub, cubul curent … Read more

interclasare divide et impera

Sortarea prin interclasare (merge-sort) Utilizand metoda divide et impera, sa se sorteze prin interclasare un sir #include<iostream.h>int a[20],n; void mergesort(int i,int m,int j) {int b[20],x=i,k=1,y=m+1;  while(x<=m && y<=j)      if (a[x]<a[y])            b[k++]=a[x++];      else            b[k++]=a[y++];  while (x<=m)         b[k++]=a[x++];  while (y<=j)        b[k++]=a[y++];  int t=i;         for (k=1;k<=(j-i)+1;k++)         a[t++]=b[k];      }   void divimp(int i,int j) … 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);}