Programare_Procedurala
-
Upload
davidrodica2001 -
Category
Documents
-
view
216 -
download
0
Transcript of Programare_Procedurala
-
7/22/2019 Programare_Procedurala
1/7
Probleme - Programare proceduralaDavid Rodica-Mihaela, grupa 104
1. Se citesc npuncte de la tastatur, date prin coordonatele lor:x[i], y[i], i=1,n. S se afiezeperechea de puncte ntre care distana este maxim (dac exist mai multe astfel de perechi, se poate
afia oricare dintre ele), precum i aceast distan.#include#include
float dist (int x1, int y1, int x2, int y2)
{
float d;
d = (float)sqrt(((x1-x2)*(x1-x2))+((y1-y2)*(y1-y2)));
return d;
}
int main()
{int n, x[100], y[100],i,j;
float max=0, aux;
scanf("%d", &n);
for(i=1; i
-
7/22/2019 Programare_Procedurala
2/7
#include intnrcf(longn){
if(n == 0)return1;intnr = 0; /* declar un contor in care sa numar cifrele */while(n) /* cat timp mai pot obtine o cifra */{
n = n/10; /* o trunchiez pe ultima */nr++; /* incrementez contorul */
}returnnr; /* functia intoarce numarul de cifre */
}
intmain(void){
longN;printf("N = "); /* afisam un mesaj pentru utilizator */scanf("%ld", &N); /* citim numarul introdus de la tastatura */
/* afisez numarul de cifre */printf("Numarul %ld are %d cifre!\n", N, nrcf(N));
return0;}
3. S se scrie un program care citete un ir de numere (pozitive i negative) i afieaz numrulde numere negative i numrul de numere pozitive din irul citit.
#include
int main()
{
int N, v[100], p=0, n=0, i;
scanf("%d", &N);
for(i=0; i=0)
p++;
else
n++;
}
printf("Numere negative %d\n ", n);
printf("Numere pozitive %d\n ", p);
return 0;
-
7/22/2019 Programare_Procedurala
3/7
}
4. Scriei o funcie care s verifice dac un numr ntregnconine cifrac. Numerele nicsuntdate ca parametri.#include
int cifra ( int n, int c ){
int p = 0;
while ( n )
{
if ( n % 10 == c )
{
p = 1;
break;
}
n = n / 10;
}
return p;
}
int main ()
{
int N , C;
scanf("%d%d", &N, &C);
if ( cifra (N, C) == 1)
printf("DA");
else printf("NU");
return 0;
}
5. Se citesc numere naturale pn la ntlnirea numrului0. S se afieze toate perechile(A,B)de numere citite consecutivcu proprietatea c al doilea numr reprezint restul mpririi primuluinumr la suma cifrelor sale.
#include
#include
int suma(int p)
{
int s=0;
while(p!=0)
{
s+=(p%10);
p=p/10;
}
return s;
}
int main()
{
int v[10000];
-
7/22/2019 Programare_Procedurala
4/7
-
7/22/2019 Programare_Procedurala
5/7
7. S se scrie o funcie pentru extragerea elementelor dintr-un vector ace se regasesc si intr-unal doilea vector b. Cei doi vectori sunt neordonati. Rezultatul va fi pus ntr-un al treilea vector, c.
#include
int numere( int A[], int nrA , int B[] , int nrB, int C[])
{
int i,j,k;
k=0;
for(i=0; i
-
7/22/2019 Programare_Procedurala
6/7
{
a=b;
b=r;
r=a%b;
}
return b;
}
int cmmmc( int a, int b)
{
int p;
p=(a*b)/cmmdc(a,b);
return p;
}
int main()
{
int x1, y1, x2, y2;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);int mult;
mult = cmmmc(y1,y2);
x1=x1*(mult/y1);
x2=x2*(mult/y2);
y1=mult;
y2=mult;
printf("%d %d\n%d %d",x1,y1,x2,y2);
return 0;
}
9. Program pentru interclasarea a doi vectori ordonai ntr-un singur vector ordonat.
#include
int main()
{
int N1, N2, v1[1000], v2[1000], v3[2000],i, j, k ;
scanf("%d", &N1);
for(i=0; i
-
7/22/2019 Programare_Procedurala
7/7
else
{
v3[k]=v2[j];
j++;
}
else
if(i>=N1){
v3[k]=v2[j];
j++;
}
else
{
v3[k]=v1[i];
i++;
}
}
for(i=0; i