Extras din proiect
I Probleme cu masive unidimensionale
I.1 Problema 1
a) Enuntul problemei
Se consideră expresia E(x)=a0Xn + a1Xn-1 + a2Xn-2 +...+ an-1X +an. Scrieţi un
program C/C++ care citeşte de la tastatură un număr natural n (n≤9), cele n+1 numere întregi a0, a1, a2 ,…, an-1, an , apoi o valoare întreagă x (-9≤x≤9). Programul calculează şi apoi afişează pe ecran valoarea expresiei E(x).
b) Descrierea parametrilor de intrare si iesire
Date de intrare:
• n-un numar natural mai mic decat 9;
• x-o valoare intreaga cuprinsa intre -9 si 9;
• a[i]-un vector cu n+1 elemente numere intregi;
Date de iesire:
• s-valoarea expresiei E(x);
c) Descrierea algoritmului
integer n, a[10], x, n,s=0
read (n, x)
do for (i=0,n,1)
read (a[i])
end do
do for (i=0,n,1)
s=s+a[i]*pow(x,n-i)
end do
write (s)
d) Codul sursa
#include <math.h>
#include <stdio.h>
main()
{int a[10], x,n,s=0;
scanf(n);
scanf(x);
for(i=0;i<=n;i++)
scanf(a[i]);
for(i=0;i<=n;i++)
s=s+a[i]*pow(x,n-i);
prinf(s);
}
e) Exemplu de test
n=2
x=3
a=(1,2,4)
i=0 => s=0+1*3*3=9
i=1=>s=9+2*3=15
i=2=>s=15+4=19
R: 19
I.2 Problema 2
a) Enuntul problemei
Scrieţi un program C/C++ care citeşte de la tastatură un număr natural nenul n (n≤100) şi apoi n numere naturale, de maximum 4 cifre fiecare, reprezentând elementele unui tablou unidimensional. Programul afişează mesajul Da în cazul în care elementele tabloului pot fi rearanjate astfel încât să formeze un şir strict crescător, iar în caz contrar afişează mesajul Nu.
b) Descrierea parametrilor de intrare si de iesire
Date de intrare:
n-numar natural nenul mai mic sau egal cu 100;
v[100]-vector cu n elemente naturale, de maxim 4 cifre fiecare;
Date de iesire:
mesajul “Da”-daca elementele vectorului pot fi aranjate astfel incat sa formeze un sir crescator;
mesajul”Nu”-in caz contrar;
c) Descrierea algoritmului
integer n,i, sw=1,v[101]
read (n)
do for( i=1,n,1)
read v[i]
end do
do for( i=1,n-1,1)
do for( j=i+1,n,1)
if (v[i]=v[j]) sw=o
end if
if (sw=1) write(“Da”)
else
write(“Nu”)
end do
end do
d) Codul sursa
#include <stdio.h>
main()
{int n,i,v[101],sw=1;
scanf(n);
for(i=1;i<=n;i++)
scanf(v[i]);
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(v[i]==v[j]) sw=0;
if (sw==1) printf(„da”);
else
printf(„nu”);
}
e) Exemplu de test
n=4
v=(5,9,3,1)
i=1,j=2 =>v[1]!=v[2]
i=2,j=3 =>v[2]!=v[3]
i=3,j=4 =>v[3]!=v[4]
- R: „Da”
Preview document
Conținut arhivă zip
- Bazele Programarii Calculatoarelor.docx