Sunteți pe pagina 1din 5

Structuri de date - Culegere de probleme n C++

9ROXPXOGHSUHOXFU

10. Volumul de prelucr

Problema 10.1

6H FRQVLGHU

UL

 XQ YHFWRU GH GLPHQVLXQH

n, cu datele

GLPHQVLXQHD  YDORDUHD HOHPHQWHORU  LQWURGXVH GH OD WDVWDWXUD 6


VFULH SURJUDPXO vQ & FDUH FDOFXOHD]
V

VHGHWHUPLQHYROXPXOGHSUHOXFU

UL

 VH

 VXPD HOHPHQWHORU YHFWRUXOXL L

UL

Rezolvare:
Programul 1
#include <iostream.h>
int vect[100],n,i,suma;
void main(){
suma=0;
cout<<"Introduceti dimensiunea: ";cin>>n;
for(int i=0;i<n;i++){
cout<<"Elementul "<<i<<" : ";cin>>vect[i];
}
for(i=0;i<n;i++) suma+=vect[i];
cout<<"Suma elementelor este: "<<suma;
}
La nceputul programului, se atribuie 0 variabilei suma, n plus se citeWHGH
la tastatura valoarea lui n.

Vpreluc= 1(suma) + 1(cout) + 1(cin)=3


n primul ciclu for avem:
- QFRPSDUD LL LQ
- n atribuiri (i++)
-  QDIL ULLFLWLUL

Structuri de date - Culegere de probleme n C++

RLQL LDOL]DUHODvQFHSXW L

9ROXPXOGHSUHOXFU

UL

Vpreluc = Vpreluc + 1+ n+(n+1)+2*n = 3+2*(2*n+1) = 4*n+5


n ultimul for avem :
- QFRPSDUD LL LQ
- QvQFUHPHQW UL L
- QDGXQ UL VXPD YHFW>L@
- o atribuire la nceput (i=0)

Vpreluc = Vpreluc + 1+ n+n+(n+1) = 4*n+5+3*n+2= 7*n+7


/DVIkULWXOSURJUDPXOXLDYHPRXOWLP DILDUH

cout.

Deci volumul total GHSUHOXFU

ULHVWH

Vpreluc = Vpreluc +1 = 7*n+8


Programul 2 - DFHDVW YDULDQW UHGXFHYROXPXOGHSUHOXFU ULSULQHOLPLQDUHD
unui ciclul for. 'DF  QX DYHP QHYRLH GH HOHPHQWHOH YHFWRUXOXL SHQWUX R
SUHOXFUDUH XOWHULRDU  SXWHP IRORVL R VLQJXU  YDULDELO  UHGXFkQG DVWIHO L

dimensiunea memoriei ocupate.

#include <iostream.h>
int var,n,i,suma;
void main(){
suma=0;
cout<<"Introduceti dimensiunea: ";cin>>n;
for(int i=0;i<n;i++){
cout<<"Elementul "<<i<<" : ";cin>>var;suma+=var;
}
cout<<"Suma elementelor este: "<<suma;
}

Structuri de date - Culegere de probleme n C++

9ROXPXOGHSUHOXFU

UL

n acest caz avem:


-

FHOHWUHLSUHOXFU ULLQL LDOH


QFRPSDUD LL
QLQFUHPHQW UL
RLQL LDOL]DUH L

FHOHWUHLRSHUD LLGLQFDGUXOFLFOXOXL

for

DILDUHDUH]XOWDWXOXL

Vpreluc = 3+ 1+(n+1)+n+3*n+1 = 5*n+6


Problema 10.2

VHGHWHUPLQHYDORDUHDPD[LP

DOXQXLYHFWRUSUHFXP

L SR]L LD OXL vQ FDGUXO YHFWRUXOXL 6  VH FDOFXOH]H YROXPXO PD[LP L
PLQLPGHSUHOXFU

ULvQFD]XOJHQHUDO

Rezolvare:
#include <iostream.h>
int i,max,k;
int vect[10]={6,9,10,-5,-8,23,67,120,6,-20};
void main(){
i=1;
max=vect[0];
k=0;
while (i<10){
if (max<vect[i]){
max=vect[i];k=i;
}
i++;
}
cout<<"Elementul maxim si pozitia lui: "<<max<<" "<<k;
}

Structuri de date - Culegere de probleme n C++

9ROXPXOGHSUHOXFU

9ROXPXOGHSUHOXFU

UL

UL

6H FRQVLGHU  YHFWRUXO LQL LDOL]DW

vect. La nceput se fac cele trei atribuiri

necesare.
n ciclul while avem:
- QFRPSDUD LL LQ
- n-LQFUHPHQW UL L
- n-FRPSDUD LLSHQWUXif
- T  RSHUD LL vQ FDGUXO OXL if, cu q[0,n-1] indicnd de cte ori se
H[HFXW RSHUD LLOHGLQFDGUXOOXLif
/DVIkULWXOSURJUDPXOXLDYHPDILDUHDUH]X

ltatului.

Vpreluc = 3+n+(n-1)+(n-1)+q*2+1= 3*n+2+q*2=3*n+2*(q+1)


n acest caz avem n=10, q=5, astfel :

Vmaxpreluc = 30+ 2*6=42


'DF VFKLPE PYDORULOHYHFWRUXOXLSXWHPDYHD

9ROXPXOPD[LPGHSUHOXFU UL

Vmaxpreluc = 30+2*(9+1)=50 (n cazul n care cele 10 elemente sunt situate

vQRUGLQHFUHVF WRDUH

9ROXPXOPLQLPGHSUHOXFU UL

Vminpreluc 
din vector)

  

  GDF  HOHPHQWXO PD[LP HVWH SULPXO HOHPHQW

Structuri de date - Culegere de probleme n C++

Problema 10.3

SULQFLSDO

XQXL

SUHOXFU

DO

9ROXPXOGHSUHOXFU

UL

 VH GHWHUPLQH VXPD HOHPHQWHORU GH SH GLDJRQDO 


PDVLY

ELGLPHQVLRQDO

SUHFXP

L

YROXPXO

ULORU

Rezolvare
#include <iostream.h>
int mat[10][10],suma,n;
void main(){
cout<<"Dimensiunea: ";cin>>n;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
cout<<"Elementul("<<i<<","<<j<<"): ";
cin>>mat[i][j];
}
suma=0;
for(i=0;i<n;i++) suma+=mat[i][i];
cout<<"Suma elementelor de pe diagonala este "<<suma;
}
&RQVLGHU P RSHUD LLOH GH DILDUH LQWURGXFHWL  L FLWLUH

cin  $FHVWH GRX

VHH[HFXW 

- RGDW ODvQFHSXW
- de n*n ori n cadrul ciclului for-for
0DWULFHDVHPDLSDUFXUJHRGDW SHGLDJRQDO SHQWUXDFDOFXODVXPDQDFHVW
FD]DYHPQRSHUD LL
QSOXVPDLDYHPRRSHUD LHGHDILDUHDOUH]XOWDWXOXLSUHFXPLRRSHUD LHGH

atribuire (suma=0). n total :

Vpreluc = 2+ n2*2+1+n+1 = 2*n2+n+4

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