Sunteți pe pagina 1din 5

1

//Citirea unui vector


#include <iostream.h>
#include <math.h>
void main ()
{
int v [20], n, i;
cout<<Introduceti numarul de spatii: ;
cin>>n;
for (i=0; i<n; i++) //de la fiecare i de la primul spatiu (0) la ultimul (n-1)
cin>>v [i]; //citim fiecare v [i]

for (i=0; i<n; i++) //parcurgem din nou vectorul
cout<<v *i+<< ; //si de aceasta data afisam v [i]


Problema 1
1. Sa se afiseze si sa se numere cate din elementele unui vector dat de numere
naturale (mai mici sau egale cu 30000) sunt numere Fibonacci.
Ex. Daca se citeste vectorul x=(5, 10, 1, 7, 9, 8, 1, 6, 55, 19) se va afisa:
Sunt 5 numere Fibonacci : 5 1 8 1 55
#include<iostream.h>
#include<conio.h>
int b,f,t,nr=0,n,v[20];
void main()
{clrscr();
int i;
cout<<n= ;cin>>n;
for(i=1;i<=n;i++)
{cout<<v["<<i<<"]=;cin>>v[i];}
cout<<numele sunt ;
for(i=1;i<=n;i++)
if(v[i]==1) {cout<<v[i]<< ;nr++;}
else{b=t=1;f=b+t;
while(f<v[i]) {b=t;t=f;f=b+t;}
if(v[i]==f) {cout<<v[i]<< ;nr++;} }
cout<<endl;
cout<<nr= <<nr;
getch();}
Problema 2
2. Se da un vector cu n elemente numere reale (n<=30) Sa se insereze ntre oricare
doua elemente alaturate media lor aritmetica (fara a folosi alt vector).
#include<iostream.h>
#include<conio.h>
int n;
float ma,v[20];
void citire()
{int i;
cout<<n= ;cin>>n;
for(i=1;i<=n;i++)
{cout<<v["<<i<<"]=;cin>>v[i];}
2

cout<<endl;}
void afis()
{int i;
for(i=1;i<=n;i++)
cout<<v[i]<< ;
cout<<endl;}
void main()
{clrscr();
int i,j;
citire();
afis();
for(i=1;i<n;i+=2)
{ma=(v[i]+v[i+1])/2;
for(j=n;j>=i+1;j)
v[j+1]=v[j];
v[i+1]=ma;
n++; }
afis();
cout<<endl;
getch();}


1. Se dau mulimile A si B cu numar si elemente precizate. Sa se determine mulimea
interseciei si sa se precizeze daca mulimile introduse sunt cumva disjuncte rezulta
intersecia lor mulimea vida).
/* Aplicatie 2 */
#include<stdio.h>
#include<conio.h>
int i,j,k,A[100],B[100],C[100];
float m,n;
main()
{
k=0;
printf("\nIntroduceti dimensiunile m,n:");
scanf("%d%d",&m,&n);
puts("\nIntroduceti elementele lui A:");
for(i=1;i<=m;i++)
{
printf("\nElementul A[%d}=",i);
scanf("%d",&A[i]);
}
puts("\nIntroduceti elementele lui B:");
for(i=1, i<=n, j++);
{
printf("\nElementul B[%d}=",j);
scanf("%d",&B[j]);
}
for(i=1, i<=m, i++);
{
3

for(i=1;i<=n;j++);
{if(A[i]=B[j])
{k++;
C[k]=A[i];
}}}
for(i=1;i<=k;i++)
printf("\nElementul C[%d] este %d",k,C[k]);
if(k==0);
puts("\nRezultatul este multimea vida");
getche();
}

Ordonarea vectorilor crescator si descrescator
//Ordonare
#include <iostream.h>
void main ()
{
double long n, i, j, a, aux, d; //am declarat variabilele folosite: n pentru nr actual de spatii in vector, i
pentru pozitia fiecarei valori ale vectorului, j pentru a afla pozitia urmatoare a lui v*i+, a este o
variabila care cere utilizatorului tipul de ordonare, aux este auxiliara care ajuta la interschimbare, iar
d pentru a repeta programul, la cererea utilizatorului.
int v [1000];
do {
cout<<Ordonarea numerelor introduse <<endl;
cout<<Alegeti tipul de ordonare: <<endl;
cout<<1.ORDONARE CRESCATOARE<<endl;
cout<<2.ORDONARE DESCRESCATOARE<<endl;
cin>>a; //cerem de la tastatura tipul de ordonare
if (a==1) //daca am ales ordonarea crescatoare, atunci >>
{
cout<<Ati ales ordonarea crescatoare.<<endl;
cout<<Cte numere introduceti? (MAX=1000) ;
cin>>n; //aici citim numarul de spatii disponibile in vector
if (n>1000) //acesta nu trebuie sa fie mai mare de 1000
cout<<Reporniti programul si introduceti un numar corespunzator.; //in acest caz cerem
utilizatorului sa introduca un numar mai mic de 1000.
else
{
cout<<Introduceti numerele: ; //in cazul in care a introdus un numar corect
for (i=0; i<n; i++)
cin>>v [i]; //citim vectorul
for (i=0; i<n; i++) //incepem sa-l parcurgem
{
for (j=i+1; j<n; j++) //iar pentru j=i+1, adica valoarea urmatoarei pozitii
if (v [i]>v [j]) //comparam pozitia initiala cu cea urmatoare. Daca este mai mare, atunci schimbam
pozitiile valorilor
{
aux=v [i];
v [i]=v [j];
v [j]=aux;
}
4

}
cout<<Ordinea crescatoare a numerelor introduse este: ;
for (i=0; i<n; i++)
cout<<v *i+<<; ; //si in final afisam ordinea corecta, in acest caz crescatoare, a numerelor din
vector, cu ; intre ele
}
}
else if (a==2) //daca am ales ordonarea descrescatoare, atunci>>
{
cout<<Ati ales ordonarea descrescatoare.<<endl;
cout<<Cte numere introduceti? (MAX=1000) ;
cin>>n; //la fel, citim numarul actual de spatii in vector
if (n>1000)
cout<<Reporniti programul si introduceti un numar corespunzator.; //cerem repornirea in cazul
unui numar >1000
else
{
cout<<Introduceti numerele: ;
for (i=0; i<n; i++)
cin>>v [i]; //citim fiecare numar de la tastatura si le memoram in vector
for (i=0; i<n; i++) //apoi il parcurgem
{
for (j=i+1; j<n; j++) //si pentru urmatoarea valoare din urmatoarea pozitie,
if (v [i]<v [j]) //comparam valoarea initiala cu cea de pe urmatoarea pozitie, dar in cazul ordonarii
descrescatoare, v[i] trebuie sa fie mai mare decat v[i+1].
{
aux=v [i];
v [i]=v [j];
v [j]=aux;
}
}
cout<<Ordinea descrescatoare a numerelor introduse este: ;
for (i=0; i<n; i++)
cout<<v *i+<<; ; //afisam fiecare numar din vector, in ordinea corecta
}
}
cout<<endl;
cout<<Doriti sa reporniti programul? (DA=1 / NU=0) ;
cin>>d;
} while (d==1); //aici cerem utilizatorului permisiunea de a repeta programul, dupa cum v-am
explicat in posturile anterioare
}
1. Sa se realizeze un program n C care sa citeasca o matrice cu m linii i n coloane de
numere ntregi, sa calculeze determinantul de ordinul 2.

/* Aplicatie 5 */

Rezolvare:
#include<iostream.h>
#include<conio.h>
#include<math.h>
5

void main ()
{
int n, j, i, p=1, s=0, a[50][50];
cout<<dati dimensiunea matricei;
cin>>n;
cout<<introduceti elementele;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
cout<<a[<<i<<][<<j<<],:
cin>>a[i][j];
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i==j)
p=p*a[i][j];
s=s+a[i][j];
cout<<p=<<p<<endl;
cout<<s=<<s<<endl;
getche();
}

S-ar putea să vă placă și