Download as rtf, pdf, or txt
Download as rtf, pdf, or txt
You are on page 1of 32

Mos Craciun Laborator.10 1.

/* Sa se scrie un program care citeste n numere reale, pe care le stocheaza intr-un tablou alocat dinamic, afiseaza suma elementelor negati e citite, iar la sfarsit elibereaza zona de memorie alocata.*/

!include"stdio.h# !include"malloc.h# !include"conio.h#

oid main$ oid% & int i,n' float * , s(0' printf$)*ntroduceti dimensiunea tabloului+ )%' scanf$),d), -n%' if$$ ($float *%malloc$n*sizeof$float%%%% & printf$).n*ntroduceti elementele tabloului+.n)%' for$i(0'i"n'i//% & printf$)0lementul 1,d2+ ), i/1%' scanf$),f), /i%' 3

for$i(0'i"n'i//% if$*$ /i%"(0% s/(*$ /i%' printf$).nSuma elementelor negati e din ector este ,.4f), s%' 3 else printf$)5locare nereusita6)%' if$ % free$ %' 7getch$%' 3 4. /* 8ie o aplicatie de gestiune distribuita care considera ca trateaza acti itatea din 9 orase diferite in fiecare oras fiind : birouri de anzare pe teritoriul respecti . Sa se creeze in cadrul unei functii un tablou de 9 pointeri catre date de tip flotant, fiecare pointer din acest tablou referind o zona in heap alocata dinamic de : date flotante ce reprezinta situatia anzarilor la sfarsitul unei zile. Se cere prelucrarea datelor din fiecare oras, respecti din fiecare birou de anzare, prelucrare ce a include+

- functie care permite introducerea datelor pentru cele 9 orase si respecti pentru fiecare oras
pentru cele : magazine din oras'

- functie ce permite determinarea totalului de anzari pe fiecare oras in parte, aloare pe

care o a returna astfel ca in programul principal se a calcula si afisa media anzarilor din toate cele 9 orase'

- functie care a permite eliberarea spatiului de memorie alocat dinamic astfel incat daca
aceiasi firma are alte : magazine in cele 9 orase de profil diferit sa poata realoca un spatiu echi alent pentru noile prelucrari pe care le a efectua.*/

!include"iostream# !include"malloc.h#

!include"conio.h#

using namespace std'

oid read$float *12%' float calc$float *%' oid elib$float *12%' oid spall$float *12%'

oid main$% & float * 192, sum(0' spall$ %' read$ %' for$int i(0'i"9'i//% sum/(calc$ 1i2 %' cout"").nMedia anzarilor este+ )""sum/9.0""endl' elib$ %' 7getch$%' 3

oid spall$float * 12% &


for$int i(0'i"9'i//% *$ /i%(ne; float1:2'

oid read$float * 12% &


int i,<' for$i(0'i"9'i/ /%

& cout"")=rasul )""i/1"")+.n)' for$<(0'<":'<//% & cout"")>unctul de anzare )""</1"")+ )' cin##*$ 1i2/<%' 3 cout""endl' 3 3

float calc$float * % &


float sum(0' for$int <(0'<":'</ /%

sum/(*$ /< %' return sum' 3

oid elib$float * 12%

&

for$int i(0'i"9'i//% delete12*$ /i%' delete 12 ' 3 :. /* Sa se scrie o aplicatie C/C//, care aloca dinamic memorie pentru stocarea elementelor a doua matrici de )m) linii si )n) coloane. Sa se scrie o functie care calculeaza suma celor doua matrici si o functie pentru afisarea unei matrici. Sa se afiseze matricile initiale si matricea obtinuta.*/

!include"stdio.h# !include"malloc.h# !include"conio.h#

oid read$int *, int, int%' oid print$int *, int, int%' oid sum$int *, int *, int *, int, int%'

oid main$ oid% & int *a(?@LL, *b(?@LL, *c(?@LL, n, m' printf$)*ntroduceti dimensiunile matricilor+.n)%' printf$)Linii+ )%' scanf$),d), -m%' printf$)Coloane+ )%' scanf$),d), -n%'

if$$a($int *%malloc$m*n*sizeof$int%%%% & printf$).n*ntroduceti elementele primei matrici+.n)%' read$a,m,n%' 3 else printf$)5locare nereusita pentru prima matrice6)%' if$$b($int *%malloc$m*n*sizeof$int%%%% & printf$).n*ntroduceti elementele celei de-a doua matrici+.n)%' read$b,m,n%' 3 else printf$)5locare nereusita pentru a doua matrice6)%' if$$c($int *%malloc$m*n*sizeof$int%%%% sum$a,b,c,m,n%' else printf$)5locare nereusita pentru suma matricilor6)%' printf$).n>rima matrice initiala este+.n)%' print$a,m,n%' printf$).n5 doua matrice initiala este+.n)%' print$b,m,n%' printf$).nMatricea sumelor este+.n)%' print$c,m,n%' if$a%

free$a%' if$b% free$b%' if$c%


f ree$c%' 7getch $%'

oid read$int * , int m, int n% & for$int i(0'i"m'i/ /% for$int <(0'<"n'</ /% & printf$)0lementul 1,d21,d2+ ), i/1, </1%' scanf$),d), /i*m/<%' 3 3

oid print$int * , int m, int n% & for$int i(0'i"m'i//% &

for$int <(0'<"n'<//% printf$),d), *$ /i*m/<%%' printf$).n)%'

3 3

oid sum$int *a, int *b, int *c, int m, int n% & for$int i(0'i"m'i/ /% for$int <(0'<"n'</ /% *$c/i*m/<%($*$a/i*m/<%%/$*$b/i*m/<%%' 3 A. /* Sa se scrie o aplicatie C/C// care aloca dinamic memorie pentru )n) siruri de caractere, care se or citi de la tastatura.*/

!include"iostream# !include"malloc.h#
!include"co nio.h# using namespace std'

oid main$ oid% & int n,m,i,

<' char *a(? @LL' do & cout"")*ntroduceti numarul de siruri+ )'

cin##n' cout"")*ntroduceti dimensiunea sirului de caractere+ )' cin##m' 3 ;hile$n"0 BB m"0%' cout"").n*ntroduceti cele )""n"") siruri de caractere+.n.n)' for$i(0'i"n'i//% & cout"")Sirul )""i/1"")+.n)' if$$a($char *%malloc$n*sizeof$char%%%% & for$<(0'<"m'<//% & cout"")a1)""</1"")2+ )' cin##*$a/<%' 3 cout"").n)' 3 else cout"").n0roare de alocare6)' 3 cout"")5locarea s-a efectuat cu succes6)' if$a% free$a%' 7getch$%'

3 9. /* Ceclarati un pointer global de tip float. *n functia main cititi o aloare intreaga ? care reprezinta dimensiunea tabloului de numere reale. 5locati memoria necesara pentru stocarea tabloului si cititi elementele de la tastatura. Ceterminati aloarea medie a celor ? elemente si calculati Mn($sum$po;$$Di-Dmed%,n%%/?, unde n(1,4,:. 5fisati rezultatele si apoi eliberati memoria. 8olositi functiile malloc$% si free$%. Eenerati numerele din tablou folosind functia de biblioteca care genereaza numere aleatoare si determinati pentru acestea media alorilor si Mn. Fealizati aceeasi aplicatie folosind operatorii ne; si delete.*/

!include"iostream# !include"math.h# !include"conio.h# !include"malloc.h# !include"stdlib.h# !define F5?E07M5G 900.00 !define F5?E07M*? 1.00 using namespace std'

float a erage$int%'

float * '

oid main$ oid% & int ?, i' float a , sum(0, 1, 4, :'

do & cout"")*ntroduceti dimensiunea ectorului+ )' cin##?' 3 ;hile$?"(0%' if$$ (ne; float1?2%% & for$i(0'i"?'i//% 1i2($$$double%rand$%/ $double%F5?C7M5G%*F5?E07M5G/F5?E07M*?%' cout"").nHectorul este+)' for$i(0'i"?'i//% cout"").n 1)""i/1"")2 ( )""*$ /i%' a (a erage$?%' cout"").n.nHaloarea medie din ector este+ )""a ' for$i(0'i"?'i//% & float I(*$ /i%' 1(po;$$Ia %,1%' 4(po;$$Ia %,4%' :(po;$$Ia %,:%' sum/( 1/ 4/ :'

3
float Mn($float%sum/?' cout"").n.nFezultatul este+ )""Mn""endl'

3 else cout"").n0roare la alocare6)' if$ % delete 12 ' 7getch$%' 3

float a erage$int n% & float sum(0, a r' for$int i(0'i"n'i//% sum/( 1i2' a r($float%sum/n' return a r' 3 J. /* 8olositi alocarea dinamica pentru o matrice n D m cu alori intregi $n,m"K%. *nitializati elementele matricii. Caca matricea este patratica, folositi metoda lui Sarrus pentru a obtine aloarea determinantului. 5fisati rezultatul si eliberati memoria.*/

!include"iostream# !include"malloc.h# !include"conio.h# using namespace std'

oid main$ oid% & int *a, m, n, i, <, det(0, as' cout"")*ntroduceti dimensiunile matricii+.n)' do & cout" ")Linii + )' cin## m' 3 ;hile$m"(0 BB m#(K%' do & cout"")C oloane+ )' cin##n' 3 ;hile$n"(0 BB n#(K%' if$m((n% &
a(ne; int1m*$4*m-1%2' memset$a,0,sizeof$int%*m*$ 4*m-1%%'

3 else & a(ne; int1m*n2'

3 cout"").n*ntroduceti elemetele matricii+.n)' for$i(0'i"m'i//% & cout"").tLinia )""i/1""endl' for$<(0'<"n'<//% & cout"").t.tColoana )""</1"")+ )' if$m((n% cin##*$a/i*$4*m-1%/<%' else cin##*$a/i*m/<%' 3 3 if$m((n% & for$i(0'i"m'i//% for$<(0'<"m-1'</ /% *$a/i*$4*m-1%/</m%(*$a/i*$4*m-1%/<%' for$<(0'<"m'<//% & as(1' for$i(0'i"m'i//% as*(*$a/i*$4*m1%/</i%'

det/(as'

3 for$<(4*m-4'<#m-4'<--% & as(1' for$i(0'i"m'i//% as*(*$a/i*$4*m-1%/<-i%' det-(as' 3 cout"").n.nCeterminantul matricii este )""det""endl' 3 else cout"").n.nMatricea nu este patratica6)' if$a% delete 12a' 7getch$%' 3 K. /* Sa se scrie o aplicatie C/C// care aloca dinamic memorie necesara pentru stocarea a 10.000 de numere intregi. >rogramul initializeaza numerele cu alori aleatoare intre 1 si 100 $folositi functiile randomize$% si random$% in LC// sau rand$% in HC// G0%. Scrieti o functie care afiseaza cele mai frec ente 10 numere si numarul lor de aparitii in ectorul initial.*/

!include"iostream# !include"math.h# !include"stdlib.h# !include"malloc.h#

!include"conio. h# !define M5G 10000 !define F5?E07M*? 0 !define F5?E07M5G 100 using namespace std'

oid main$% & int *a,D1100002,M1100002,i,< ,N,auD' if$a(ne; int1M5G2% & srand$4%' for$i(0'i"M5G'i//% *$a/i%($$$double%rand$%/ $double%F5?C7M5G%*F5?E07M5G/F5?E07M*?%' for$i(0'i"101'i//% D1i2(0' for$<(0'<"101'<//% M1<2(<' for$i(0'i"M5G'i//% & int 1(*$a/i%' for$N(0'N"101'N//%

& if$ 1((N% D1N2//'

3 3 for$N(0'N"100'N//% & for$i(N/1'i"101'i//% & if$D1N2"D1i2% & auD(M1N2' M1N2(M1i2' M1i2(auD' 3 3 3 cout"")?umerele care apar cel mai frec ent sunt+.n)' for$N(0'N"10'N//% cout""M1N2"") )' 3 else cout"").n0roare la alocare6)' if$a% d elete 12a' 7getch$%' 3 O.

/* Sa se scrie o aplicatie C/C// in care se aloca dinamic memorie pentru n numere intregi, numere ce or fi citite de la tastatura. Sa se scrie functia care eDtrage radicalul din fiecare numar si stocheaza alorile obtinute intr-un alt tablou alocat dinamic. Sa se afiseze numerele initiale si alorile din tabloul format. 0liberati la sfarsit memoria alocata.*/

!include"iostream# !include"conio.h# !include"malloc.h# !include"math.h# !include"iomanip# using namespace std'

oid sIr$int *, float *, int%'

oid main$ oid% & int *a(?@LL, n' float *b(?@LL' do & cout"")*ntroduceti dimensiunea ectorului+ )' cin##n' 3 ;hile$n"(0%' if$a(ne; int1n2% &

cout"")*ntroduceti elementele ectorului+.n)' for$int i(0'i"n'i//% & printf$)0lementul a1,d2+ ), i/1%' scanf$),d), a/i%' 3 if$b(ne; fl o at 1n 2% s Ir $a ,b ,n %' cout"").nHectorul initial este+.n)' for$int i(0'i"n'i//% cout""*$a/i%"") )' cout"").nHectorul modificat este+.n)' for$int i(0'i"n'i//% cout""fiDed""setprecision$4%""*$b/i%"") )' 3 else

cout"")0roare la alocare6)' if$a% free$a%' if$b% f ree$b%' 7getch $%' 3

oid sIr$int *a, float *b, int n%

& for$int i(0'i"n'i//% b1i2($sIrt$$float%a1i2%%' 3 10.

/* Sa se scrie o aplicatie C/C//, care aloca dinamic memorie pentru stocarea elementelor unei matrici de dimensiune nDn. Sa se scrie o functie care calculeaza suma numerelor poziti e pare de sub diagonala principal si o functie pentru afisarea matricei. Sa se afiseze matricea si suma ceruta. 0liberati memoria alocata dinamic.*/

!include"stdio.h# !include"malloc.h# !include"conio.h#

int sumpos$int *, int n%' oid print$int *, int n%'

oid main$ oid% & int *a, n, i, <, sum' do & printf$)*ntroduceti dimensiunea matricii+ )%' scanf$),d), -n%' 3

;hile$n"(0%' if$$a($int *%malloc$n*n*sizeof$int%%%% & printf$).n*ntroduceti elementele matricii+.n)%' for$i(0'i"n'i//% for$<(0'<"n'<//% & printf $)0lementul a1,d21,d2+ ), i/1, </1%' scanf$),d), a/i*n/<%' 3 printf$).n)%' 3 else printf$).n0roare de alocare 6)%' printf$).nMatricea este+.n)%' print$a,n%' sum(sumpos$a,n%' printf $).nSuma numerelor pare de sub diagonala principala este+ ,d), sum%' if$a%
f ree$a%' 7getch $%'

int sumpos$int *a, int n% &

int i,<,s' s(0' for$i(0'i"n'i//% for$<(0'<"n'<//% if$i#<% if$$*$a/i*n/<%#0%--$*$a/i*n/<%,4((0%% s/(*$a/i*n/<%' return s' 3

oid print$int *a, int n% & for$int i(0'i"n'i//% & for$int <(0'<"n'<//% printf$),d ), *$a/i*n/<%%' printf$).n)%' 3 3

You might also like