Sunteți pe pagina 1din 13

Instruciuni in C si C++

1. Instruciunea expresie.
O instruciune expresie se obine punnd terminatorul de instruciune (punct-virgula) dup o
expresie:
expresie;
Exemple:
a++;
scanf();
max=a>b ? a : b;
Exemplul 1:
Un numr real, introdus de la tastatur reprezint msura unui unghi exprimat n
radiani. S se scrie un program pentru conversia unghiului n grade, minute i secunde sexagesimale.
#include <stdio.h>
#define PI 3.14159265
void main(void){
float rad, gfr, mfr;
int g, m, s;
printf(Introduceti numarul de radiani: );
scanf("%f", &rad);
g=gfr=rad*180/PI;
m=mfr=(gfr-g)*60;
s=(mfr-m)*60;
printf("%5.2f radiani=%4d grade %02d min %02d sec\n",
rad, g, m, s);
}
2. Instruciunea compus (blocul).
Forma general:
{
declaratii_si_definitii;
instructiuni;
}
Se folosete n situaiile n care sintaxa impune o singur instruciune, dar codificarea impune
prezena unei secvene de instruciuni. Blocul de instruciuni conteaza ca o singur instruciune.
3. Instruciunea vid.
Forma general: ;
Sintaxa impune prezena unei instruciuni, dar logica problemei nu necesit nici o prelucrare.
In acest mod se introduc unele relaxri n sintax.
4. Instruciunea if.
Forma general:
if (expresie)
instructiune1;
else
instructiune2;
Se evalueaz expresia; dac este diferit de 0 se execut instruciune1 altfel
instruciune2
O form simplificat are instruciune2 vid:
if (expresie)
instructiune;

21

n problemele de clasificare se ntlnesc decizii de forma:


if (expr1)
instr1;
else if (expr2)
instr2;

else
instrn;
De exemplu dorim s contorizm caracterele citite pe categorii: litere mari, litere mici, cifre,
linii i altele:
if (c == \n)
linii++;
else if (c>=a && c<=z)
lmici++;
else if (c>=A && c<=Z)
lmari++;
else if (c>=0 && c<=9)
cifre++;
else
altele++;
Exemplul 2 S se scrie un program pentru rezolvarea cu discuie a ecuaiei de grad 2 : ax2+bx+c=0
folosind operatorul condiional.
#include <stdio.h>
#include <math.h>
void main(void){
float a, b, c, d;
printf(Introduceti coeficientii ecuatiei: a,b,c\n);
scanf("%f %f %f", &a,&b,&c);
a? d=b*b-4*a*c, d>=0? printf("x1=%f\tx2=%f\n",(-b- sqrt(d))/2/a,
(-b+sqrt(d))/2/a):
printf("x1=%f+i*%f\tx2=%f-i*%f\n",-b/2/a,
sqrt(-d)/2/a,-b/2/a, sqrt(-d)/2/a)):
b? printf("x=%f\n",-b/2/a): c? printf("0 solutii\n"):
printf("identitate\n");
}
Exemplul 3: Data curent se exprim prin an, luna i zi. S se scrie un program care determin
data zilei de mine.
#include <stdio.h>
int bisect(int a){
return a%4==0 && a%100!=0 || a%400==0;
}
int ultima(int a, int l){
if (l==2)
return (28+bisect(a));
else if (l==4||l==6||l==9||l==11)
return 30;
else
return 31;
}
void main()
{int a, l, z;

22

printf(Introduceti data curenta: an,luna,zi\n);


scanf("%d%d%d",&a,&l,&z);
printf("azi: zi:%02d luna:%02d an:%4d\n", z,l,a);
if (z < ultima(a,l))
z++;
else
{z=1;
if (l < 12)
l++;
else
{l=1;
a++;
}
}
printf("maine: zi:%02d luna:%02d, an:%4d\n", z,l,a);
}
5. Instruciunea switch.
Criteriul de selecie ntr-o problem de clasificare l poate constitui un selector care ia valori
ntregi.

Forma general:

switch (expresie){
case val1: secventa1;
case val2: secventa2;
. . .
default:
secventa s;
}
Se evalueaz expresia selectoare; dac valoarea ei este egal cu una din constantele cazurilor,
se alege secvena de prelucrare corespunztoare, dup care se continu cu secvenele de prelucrare ale
cazurilor urmtoare.
Dac valoarea expresiei selectoare nu este egal cu nici una din constantele cazurilor, se alege
secvena corespunztoare etichetei default.
Pentru ca prelucrrile corespunztoare cazurilor s fie disjuncte se termin fiecare secvent de
prelucrare prin break. De exemplu:
y=x;
switch (n)
{ case 5: y*=x;
case 4: y*=x;
case 3: y*=x;
case 2: y*=x;
}
calculeaz xn, unde n ia valori de la 1 la 5.
Exemplul 4

Scrieti o functie pentru determinarea ultimei zile din lun.

int ultima(int a, int l)


{ switch (l) {
case 1: case 3: case 5: case 7:
case 8: case 10: case 12: return 31;
case 4: case 6: case 9: case 11: return 30;
case 2: return (28 + bisect(a));
}
}

23

6. Instruciunea while.
Este ciclul cu test iniial; se repet instruciunea component ct timp expresia are valoarea
adevrat (diferit de 0).
while (expresie)
instructiune;
Exemplu 5:Copiai fiierul standard de intrare stdin la ieirea standard stdout
/*copierea intrarii la iesire*/
{ int c;
c = getchar();
while (c != EOF)
{ putchar(c);
c = getchar();
}
/* varianta simplificata */
{ int c;
while ((c=getchar()) != EOF)
putchar(c);
}
Exemplul 6: S se calculeze cel mai mare divizor comun i cel mai mic multiplu comun a 2 numere
folosind algoritmul lui Euclid cu scderi. (ct timp numerele difer se nlocuiete cel mai mare dintre
ele prin diferena lor).
#include <stdio.h>
void main(void){
unsigned long a, b, ca, cb;
printf(Introduceti cele doua numere\n);
scanf("%lu %lu", &a, &b);
ca=a; cb=b;
while (a!=b)
if(a > b)
a-=b;
else
b-=a;
printf("cmmdc(%lu,%lu)=%lu\ncmmmc(%lu,%lu)=%lu\n",
ca,cb,a,ca,cb,ca*cb/a);
}
7. Instruciunea dowhile.
Reprezint ciclul cu test final;repetarea instruciunii are loc ct timp expresia este diferit de 0.
do
instructiune;
while (expresie);
Corpul buclei este format dintr-o singur instruciune. Repetarea se face cel puin o dat.
/* citirea unui raspuns */
{ char opt;
printf(Continuam ? D / N);
do
scanf(%c, &opt);
while (opt == D || opt == d);

24

Exemplul 7: S se stabileasc dac un numr este sau nu palindrom (are aceeai reprezentare citit de
la stnga sau de la dreapta).
#include <stdio.h>
void main(void){
unsigned long n, c, r=0;
scanf("%lu", &n);
c=n;
do{ r=10*r+n%10;
n/=10;
}while (n);
printf("%lu %s este palindrom\n",c, (c==r)? :nu);
}
8. Instruciunea for.
Reprezint o alt form a ciclului cu test iniial.
for (exp_init; exp_test; exp_modif)
instructiune;
este echivalent cu:
exp_init;
while (exp_test){
instructiune;
exp_modif;
}
Exemplul 8: S se stabileasc dac un numr ntreg n este sau nu prim.
Vom ncerca toi divizorii posibili (de la 2 la n). Dac nu gsim nici un divizor, numrul este
prim. Continuarea ciclului pentru testarea posibililor divizori este determinat de dou condiii:
- s mai existe divizori netestai
- candidaii deja testai s nu fi fost divizori.
La ieirea din ciclu se determin motivul pentru care s- a prsit ciclul:
- s-au testat toi candidaii i nu s-a gsit nici un divizor, deci numrul este prim
- un candidat a fost gsit divizor, deci numrul este neprim.
Ciclul de testare a candidailor are forma:
for (d=2; d*d <= n && n % d != 0; d++)
;
Programul poate fi mbuntit prin evitarea testrii candidailor pari (cu excepia lui 2).
#include <stdio.h>
void main(void) {
unsigned long n, d;
scanf(%lu,&n);
for(d=2; d*d <= n && n%d; (d=2)? d=3: d+=2)
;
printf(numarul %lu este %sprim\n,n,!(n%d)? ne:);
}
9. Instruciunea continue.
Plasarea acestei instruciuni n corpul unui ciclu are ca efect terminarea iteraiei curente i
trecerea la iteraia urmtoare.
continue;
Exemplul 9: O secven de numere ntregi este terminat prin 0. S se calculeze suma termenilor
pozitivi din secven.

25

#include <stdio.h>
void main(void) {
int n, suma;
for(suma=0,scanf(%d,&n); n; scanf(%d,&n){
if(n < 0) continue;
suma += n;
}
printf(suma pozitivi = %d\n, suma);
}
10. Instruciunea break.
Are ca efect ieirea dintr-o instruciune de ciclare sau dintr-o instruciune switch, pentru a
face alternativele disjuncte (n caz contrar dintr-o alternativ se trece n urmtoarea). Permite
implementarea unor cicluri cu mai multe ieiri plasate oriunde n interiorul ciclului.
O structur repetitiv foarte general cu mai multe ieiri plasate oriunde este:
while (1) {
. . .
if(expresie1) break;
. . .
if(expresien) break;
. . .
}
11. Instruciunea goto.
Realizeaz saltul la o etichet. Este o instruciune nestructurat i se evit.
goto eticheta;
12. Instruciunea return.
Orice funcie nedeclarat void va trebui s ntoarc un rezultat. Tipul acestui rezultat este
specificat n antetul funciei. Transmiterea acestui rezultat este realizat de o instruciune return
inclus n corpul funciei.
return expresie;
Exemplul 10: Calculul factorialului.
long factorial( int p)
{ int i;
long f;
for ( f = 1,i=2; i <= n; i++)
f *= i;
return f;
}
Dac expresia ntoars este de alt tip dect cel al funciei, atunci se face conversia la tipul
funciei.
13. Exerciii.
1. De pe mediul de intrare se citete un numr real rad reprezentnd un unghi exprimat n radiani.
S se converteasc n grade, minute i secunde centesimale.
2. Un maratonist pornete n curs la un moment de timp exprimat prin ora, minutul i
secunda startului. Se cunoate de asemeni timpul necesar sportivului pentru parcurgerea
traseului. S se determine momentul terminrii cursei de ctre sportiv.

26

3. S se stabileasc codomeniul D al valorilor funciei:


f : [x1, x2] D, f(x) = a.x2+b.x+c,
Se cunosc a, b, c, x1, x2.

a, b, c R, a 0.

4. Cunoscnd data curent exprimat prin trei numere ntregi reprezentnd anul, luna, ziua
precum i data naterii unei persoane exprimat n acelai mod, s se calculeze vrsta persoanei
exprimat n ani, luni i zile. Se consider n mod simplificator c toate lunile au 30 de zile.
5. Un punct n plan este dat prin coordonatele lui (x, y). S se stabileasc poziia lui prin
indicarea cadranului (1, 2, 3 sau 4) n care este plasat. Pentru un punct situat pe una din semiaxe se
vor preciza cadranele separate de semiaxa respectiv (de exemplu 2-3).
6. Se citesc trei numere reale pozitive ordonate cresctor. S se verifice dac acestea pot s reprezinte
laturile unui triunghi i n caz afirmativ s se stabileasc natura triunghiului: isoscel, echilateral,
dreptunghic sau oarecare i s se calculeze aria sa.
7. Cunoscnd data curent i data naterii unei persoane exprimat fiecare sub forma unui triplet
(an,luna,zi) s se afle vrsta persoanei n ani implinii.
8. De pe mediul de intrare se citete un unghi
converteasc n radiani.

exprimat n grade,minute,secunde. S se

9. Un numr ntreg S reprezint o durat de timp exprimat n secunde . S se converteasc n


zile, ore, minute i secunde utiliznd n program ct mai puine variabile.
10. Trei valori reale sunt citite n variabilele a, b, c. S se fac schimbrile necesare astfel nct
valorile din a, b, c s apar n ordine cresctoare.
11. S se scrie algoritmul pentru rezolvarea cu discuie a ecuaiei de gradul 1: a*x+b=0, cu valorile lui
a i b citite de pe mediul de intrare.
12. S se scrie algoritmul pentru rezolvarea cu discuie a ecuaiei de gradul 2: a*x2 + b*x + c =
0. Se dau pe mediul de intrare coeficienii a, b, c care pot avea orice valori reale reprezentabile
n memoria calculatorului.
13. Se consider sistemul de ecuaii:
a*x + b*y = c
m*x + n*y = p
dat prin valorile coeficienilor a, b, c, m, n, p. S se rezolve sistemul cu discuie.
14. S se scrie algoritmul pentru "casierul automat" care citete de pe mediul de intrare suma
(intreag) datorat de un client i calculeaz "restul" pe care acesta l primete n numr minim de
bancnote i monezi de 100000, 50000, 10000, 5000, 1000, 500, 100, 50, 25,
10, 5, 3 i 1 leu considernd c suma pltit este cel mai mic multiplu de 100000 mai mare
dect suma datorat.
15. S se calculeze data revenirii pe pmnt a unei rachete, exprimat prin an, lun, zi,
or, minut, secund, cunoscnd momentul lansrii exprimat n acelai mod i durata de
zbor exprimat n secunde.
16. Un numr perfect este un numr egal cu suma divizorilor si, printre care este considerat valoarea
1 dar nu i numrul.
S se gseasc toate numerele perfecte mai mici sau egale cu un numr k dat pe mediul de intrare, i s
se afieze fiecare numr astfel determinat, urmat de suma divizorilor lui. De exemplu numrul 6 are
divizorii 1, 2, 3, 6. El este numr perfect deoarece: 6 = 1 + 2 + 3.

27

17. Dndu-se trei numere ntregi reprezentnd data unei zile (an,lun,zi), s se stabileasc a
cta zi din an este aceasta.
18. Se dau pe mediul de intrare un numr necunoscut de numere nenule terminate cu o valoare nul.
S se stabileasc dac acestea:

formeaz un ir strict cresctor;


formeaz un ir cresctor;
formeaz un ir strict descresctor;
formeaz un ir descresctor;
sunt identice;
nu sunt ordonate.

19. Dndu-se un numr ntreg n, s se afieze toi factorii primi ai acestuia precum i ordinele lor de
multiplicitate.
20. Abaterea medie ptratic a rezultatelor obinute prin determinri experimentale se poate calcula cu
formula:
N

sigma

N x
i1

2
i

i1
N(N 1)

aplicabil numai dac s-au fcut cel puin 2 msurtori.


Dndu-se pe mediul de intrare N (N25) i rezultatele celor N determinri s se calculeze abaterea
medie ptratic.
21. S se calculeze S

k! cnd se cunoate n
k1

22. S se scrie algoritmul pentru rezolvarea a n ecuaii de gradul 2. Se citesc de pe mediul de


intrare valoarea lui n i n triplei (a,b,c) reprezentnd coeficienii ecuaiilor.
Se recomand realizarea unui program care s utilizeze ct mai puine variabile.
23. Dndu-se notele obinute de o grup de n studeni la o disciplin, s se stabileasc ci dintre ei au
promovat (nu se vor utiliza dect variabile simple).
24. Se dau pe mediul de intrare notele obinute de ctre studenii unei grupe la un examen, precedate
de numrul studenilor. S se determine dac grupa este sau nu integralist, precum i procentajul de
note foarte bune (8..10).
25. S se determine cel mai mare (max) precum i cel mai mic (min) element dintr-un ir a0 , a1 ,
... an-1 .
Se dau pe mediul de intrare n precum i cele n elemente ale irului, care sunt citite pe rnd ntr-o
aceeai variabil a.
27. De pe mediul de intrare se citete un numr real b i un ir de valori reale pozitive terminate
printr-o valoare negativ (care nu face parte din ir).
S se stabileasc elementul din ir cel mai apropiat de b. Se va preciza i poziia acestuia. Elementele

28

irului vor fi pstrate pe rnd n aceeai variabil a.


28. S se calculeze xn pentru x (real) i n (intreg) dai, folosind un numr ct mai mic de nmuliri de
numere reale.
29. De pe mediul de intrare se citesc n valori ntregi pozitive. Pentru fiecare element s se indice cel
mai mare ptrat perfect mai mic sau egal cu el.
30. De pe mediul de intrare se citete o list de numere ntregi pozitive terminate cu un numr
negativ ce marcheaz sfritul listei. S se scrie n dreptul fiecrei valori numrul prim cel mai
apropiat mai mic sau egal cu numrul dat.
31. S se rezolve ecuaia f(x) = 0 cu precizia epsilon dat, tiind c are o rdcin n
intervalul {a,b} precizat. Se va utiliza metoda njumtirii intervalului ("bisecie").
Indicaie: Se mparte intervalul {a,b} n dou jumti egale; fie m mijlocul intervalului. Dac la
capetele intervalului {a,m} funcia are semne contrare soluia se va cuta n acest interval, altfel se va
considera intervalul {m,b}.Se consider determinat soluia dac mrimea intervalului a devenit
inferioar lui epsilon sau valoarea |f(m)| < epsilon..
32. Dndu-se un numr ntreg n s se afle cifrele reprezentrii sale n baza 10 ncepnd cu
cifra cea mai semnificativ.
33. S se afle cifrele reprezentrii n baza b (ncepnd cu cea mai semnificativ) a unui numr a dat n
baza 10.
Indicaie:
a = cn bn + cn-1bn-1
+ ...+ c0
cn = a / bn
a % bn

= cn-1 bn-1

+ ...+ c0

34. Dndu-se numrul real a


ntr-o baz b dat.

(0 < a < 1) s se determine primele n cifre ale reprezentrii lui

35. De pe mediul de intrare se citesc n cifre constituind reprezentarea unui numr ntr-o baz
b1 < 10, ncepnd cu cea mai puin semnificativ. S se obin i s se afieze cifrele reprezentrii
aceluiai numr ntr-o alt baz b2 < 10.
36. S se verifice dac un numar ntreg citit de pe mediul de intrare este palindrom, adic se citete
la fel de la stnga la dreapta i de la dreapta la stnga (numrul este identic cu rsturnatul su). Un
astfel de numr este 4517154. Nu se vor folosi tablouri de variabile pentru pstrarea cifrelor
numrului.
37. S se determine toate numerele prime mai mici sau egale cu un numr k dat pe mediul de
intrare.Pentru a verifica dac un numr x este prim se va incerca divizibilitatea lui cu 2,3,4,...
{x }. Numrul este prim dac nu se divide cu niciunul dintre aceste numere i este neprim dac are
cel puin un divizor printre ele.
38. Printre numerele mai mici sau egale cu un numr n dat pe mediul de intrare s se gseasc cel
care are cei mai muli divizori.
39. Se consider funcia f(x) = ln (2.x2 +
intervalul [-10, 10] cu urmtorii pai:
0.1 pentru
| x | 1.0
0.5 pentru 1.0 < | x | 5.0

29

1). S se scrie un program pentru tabelarea pe

1.0 pentru 5.0 < | x | 10.0


40. Se d un numr ntreg pozitiv reprezentat n baza 10. S se determine i s se afieze cifrele
reprezentrii
sale n
baza 16. Se precizeaz c n baza 16 cifrele
utilizate
sunt
0,...9,A,B,C,D,E,F. Prin convenie la sfritul numerelor
reprezentate
n baza 16
(hexazecimal) se scrie litera H. Dac cifra cea mai semnificativ a reprezentrii sale este A..F atunci se
va afia ca prim cifr un 0. Exemplu:
175
= 0AFH
(10)
(16)
0AFH = 10 * 161

+ 15 * 160

41. De pe mediul de intrare se citesc cifrele reprezentrii unui numr ntreg n baza 16 terminate cu
caracterul H (cifrele hexazecimale sunt 0,...,9, A, B, C, D, E, F). S se calculeze i s se
afieze reprezentarea numrului n baza 10.
42. Dndu-se un numr ntreg n s se afieze reprezentarea sa cu cifre romane impunnd regula
ca o cifr s nu poat fi urmat de o alta cu valoare strict mai mare dect ea. Numrul 99 se va
reprezenta n aceste condiii ca LXXXXVIIII i nu ca XCIX.
43. Se dau dou numere ntregi, primul reprezentnd un an i al doilea, numrul de zile scurse din acel
an. S se determine data (luna i ziua).
44. S se calculeze coeficienii binomiali Cn1 ,Cn2 ,... Cnp n care n i p sunt intregi pozitivi dai
(p <= n), tiind c exist urmtoarea relaie de recuren:
Cnk=(n-k+1)/k*Cnk-1 pornind cu Cn0=1
45. Se consider polinomul: pn (x)=a0 xn +a1 xn-1
+ ... +an
S se calculeze valoarea polinomului ntr-un punct x dat, dac valorile coeficienilor lui x se citesc pe
rnd, n aceeai variabil a :
a) n ordinea descresctoare a puterilor lui x (adic n ordinea a0,a1,...an)
b) n ordinea cresctoare a puterilor lui x, (adic n ordinea an,an-1,...a0)
46. Pentru a, b i n dai (a,b R, n Z) s se calculeze x i y astfel ca: x+i*y=(a+i*b)n fr
a folosi formula lui Moivre
47. S se calculeze i s se afieze valorile integralei:

Ik(x)

u e du
k

pentru k=1,2,...,n, n care n i x sunt dai, cunoscnd c:


Ik (x) =[xk Ak1xk-1
+Ak2xk-2
- ... (-1)k Akk ]ex
Akp = k(k-1) ...(k-p+1)

unde :

48. S se calculeze pentru n dat, fn termenul de rangul n din irul lui Fibonacci, cunoscnd relaia de
recuren:
fp = fp-1
+fp-2 pentru p > 2 i f0 = 1, f1 = 1
49. irul {xn} generat cu relaia de recuren xn = (xn-1 + a/xn-1)/2 pornind cu x0= a/2 este
convergent pentru a > 0 i are ca limit a . Pentru a oarecare, dat, s se construiasca un algoritm
care calculeaz a ca limit a acestui ir,cu o precizie eps dat.

30

50. irurile {un} i {vn} generate cu relaiile de recuren:


un=(un-1 + vn-1)/2 i vn = un-1vn-1 pornind cu u0=1/|a|, v0=1/|b|, unde a0, b0 au
o aceeai limit comun, valoarea integralei eliptice:

2
I

/2

dx

a cos x b2 sin2 x
2

S se calculeze aceast integral pentru a i b dai, ca limit comun a celor dou iruri, determinat

a2n 1

an a2n 1
2

daca

a2n 1 2

daca

a2n 1 2

pornind cu

a0 x

aproximativ cu precizia eps, n momentul n care distana ntre termenii celor dou iruri devine
inferioar lui eps, adic |un vn | < eps.

51. Pentru calculul lui lg2 x se genereaz irurile {an}, {bn} i {cn}
cu relaiile de recuren:

a2n 1

an a 2n -1
2

dac

a2n 1 2

dac

a2n 1 2

bn = bn-1 / 2

pornind cu a0 x

pornind cu b0=1

cn 1

daca

a2n 1 2

cn 1 bn

daca

a2n 1 2

cn

pornind cu c0 0

Se tie c pentru 1 < x < 2,


lim cn = lg2 x.
Dac x (1,2) se aduce argumentul n acest interval folosind relaiile:
lg2 x = - lg2 (1/x)
pentru x < 1
lg2 x = k+lg2 (x/2k)
pentru x 2k
52. Dezvoltarea n serie:

ex

k0

xk
k!

este rapid convergent pentru x mic.Pentru x oarecare,acesta se descompune sub forma:


x = i + f
in care:
i = partea intreag a lui x
f = partea fracionar a lui x.
Rezult ex = ei * ef cu:

31

ei e e e

pentru

i 0

Pentru x dat, s se calculeze ex cu o precizie eps dat.

ei

1 1
1

e e e

pentru

i0

53. S se obin reprezentarea ca fracie zecimal a numrului m / n. Eventuala perioad se


afieaz ntre paranteze.
54. S se determine valoarea n pentru care:

k1

2
4n2 k

satisface conditia |S - /3| <

lim
k

, in care eps este dat.Se stie c.

55. S se calculeze funcia Bessel de spea I-a Jn (x) tiind c exist relaia de recuren:
Jp (x) =

(2p-2)/x*Jp-1(x) Jp-2(x)
2k

2
J 0(x) (1)k 2
(
k
!)
k 0

2k 1

2
J 1(x) (1)k
k
!
(
k 1)!
k0
Calculele se fac cu precizia eps (x, n i eps se dau pe mediul de intrare).
56. Pentru n dat s se calculeze suma:

1 13
1 3 (2n 1)

2 24
2 4 2n

57. S se calculeze cu o precizie cunoscut tiind c:

1 1 1
1
4
3 5 7
58. S se calculeze sin(x) i cos(x) cu precizia dat eps utiliznd dezvoltrile n serie de puteri:

32

sin(x)

x x3
x5 x7

1! 3!
5! 7!

cos(x) 1

x 2 x4 x6

2!
4! 6!

59. Fie irurile {an},{bn},{cn} generate cu relaiile de recuren:


an = (bn-1+cn-1)/2
bn = (cn-1+an-1)/2
cn = (an-1+bn-1)/2 cu
a0 = alfa ;
b0 = beta ;
c0 = gama
alfa, beta,gama date. tiind c cele trei iruri sunt convergente i au o limit comun, s se
calculeze cu o precizie eps dat aceast limit.
60. S se calculeze prin dezvoltare in serie, cu precizia eps dat, sin(x):

sin(x) x

x 3 x 5 x7

3! 5! 7!

Deoarece seria este rapid convergent cnd argumentul


reducerea sa la primul cadran utiliznd urmtoarele relaii:
sin(x) = - sin(-x)
dac x <
sin(x) = sin(x-2n)
dac x >
sin(x) = - sin(x-)
dac x >
sin(x) = sin(-x)
dac x >

33

se afl n primul cadran, se va face


0
2n

/2

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