Sei sulla pagina 1di 5

Capitolul 4

a) A
I

12

Tipuri de date .strueturate - Matrice


4.1. Teste grila
Conslderam urmatoarea secventa de program
N *),

= [~

4
3 2

1 4 3 4
1

c) A

= [~

12

in care a este 0 matrtce iar i

~]
secventa de program
E N *),

;]

I Ilr lice cu n linii si n coloane (n E ,I ~ sunt doua variabile de tip lntreg:


Varianta Pascal
i.-1 to n do I :11=1 to n-l do [i,nl ~"'a[i,nl+a[i,j]; t!lt I-I to n do III j 1-1 to n-l do .CM.ill=a[n,i]+a[j,i]; I I[.ln(a[n,n]);
jI

fermata din numere Illtregi,

3. consrcerem patratica i
I

urmatoarea

in care a esto 0 III II din numere

cu n linii si n coloane

(n

fermata

fnlr JI. I

j ~i k sunt variabile Varlanta

de tip intreg: Varianta


for(k=l;k<=n;k++) for{i=k;i<=n;i++) for{j=k;j<=n;j++) a[i] [j]=k;

Varianta

C++

for (i=l; i<=n; i++)' for(j=l;j<n;j++) a[l] [n]=a[i] [n]+a[i] [j); for(i=l;i<=n;i++} for (j=l;j <n;j++) a[n] [i]=a[n] [i]+a[j] [ill cout«a [n] [n] ;

Pascal

C++

for k:-l to n do for i :=k to .n do for j:=k to n do a[i,j]:=k;

Dupa rularea secventel


11

de mai sus pentru n=4 matricea 2


3

a va fl:

I VI 11\ III (

de mai sus:

suma ill. suma oza surna 111'.nOZa suma

n.(

za za

valorilor de pe ultima linie a matricei initiale; valorilor de pe ultima coloana a matricel initiale; valorilor din matricea initlala; valorllor de pe diagona'ia principala a rnatricil lnitiale secventa de program in care a este 0 matrice din numere 1ntregi, iar

a)

2
A

3
4.

= [;

4.

4 2

4
2 3

;]

b)

:=:

11

(;l 11 Ideram

urmatoarea

c) A

I" IIIollie cu n linii si n coloane (n E N *), fermata I, I k, .. sunt variabile de tip intreg: Varianta
to n do

= [~

2 2

~]
secventa Pascal
then ok:",O;

d) A

= [~

[~ ~] ~]
2 2
3

11
3 3

2 2 2

3
3

Pascal

Varianta
, for{i=l;i<=n;i++) k=n-l; tor(i=2;i<=n;i++)
{

C++ •
a[.\]['-]=i;

4. Consideram

urmatoarea

de program

in care a Q t din numer C++

n 111 1111 111111 II.

to n do a[1,i]:=i;

patratica cu n linii si n coloane (n EN), i, j sl ok sunt variabile de tip Intreg: Varianta


ok:"'1; for i:=l to n do for j:=l to n do if (a [I, i] >=8.(1,j]) write (ok) ;

fermata

I'"uh~
jl-l to n-k do [l,j]l=a[i-l,n-j+l]; jl.n-k+l to n do .Ci,j]IBa[i-l,j-n+k];

.I,d,
nup

for(j=l;j<~n-k;j++) ali] [j] =a[i-l] [n-j+l]; for{j=n-k+l;j<=n;j++} a [i] [5] =8 [1-1] [j-n+kJ;

Varianta
ok=l; for{i~l;i<=nii++) for(jal;j<~n;j++) if{ai[i][i]>-aU] cout«ok;

[;ll)

rularea secventel

de mai sus, pentru n=4, matricea

a va fi:

Dupa rul r, daci~:

socventel

de mai sus se va afl,a

valoarea

1 dacO

I nutll ~

fiecare coloana elementele sunt . strict mai mari decat elementul dlaqonalei pr.incipale atlat pe coloana respective: 11) rtementul maxim din rnatrice nu se gaseste pe diagonala principala; r.) in fiecarelinie, elementele sunt strict mai marl oecat elementul diagonalei prlnclpale aflat pe linia respective: d) In fiecare linie, elementele sunt strict mai rnari decat elementul diagonalei .ocundare aflat pe lioia respectiva.
1n

.1.)

a) Ultima linie a matricll Q!lt sortata cre~cat~r; b) Toate linlile matricii sunl scrtcte crescator,~.

c) Ultima. linie a ma~ri~i ~:~~C~o~t9t~ :;;~::s~:~~;esditor; d) Penulhma co loana secvent,e do program asupra melrlcl 7. Care este efectul urmatoarei Varianta C++ Varianta Pascal for (,1=0, i<n; i++) for i;5 1 to n do for{j=O) j<o;:I++) for j='" 1 to ndo A[ilI:lI",(l==j); Ali,:ll:=(i=j); 'f

Ccnsiderarn
,j

urrnatoarea

secventa de program in care a este


EN),

matrice

p ttratlca eu n Hnii si n coloane Cn

fermata

din numere Tntregi, iar

$1 s sunt variabile de tip intreg;


Varianta C++ for(i=l;i<=n;i++) for(j=I,j<=n;j++) a[i][j]=i*j; s",O; for{i=l;i<=n;i++J for{j=l;j<=n;j++} s=s+a[i][j]; cout«s; este echivalenta, ca valoare

ttl I.

Varianta 'Pascal 1;=1 to n do ~o j:~l to n do a[i,j];:i*j;


01

a) CreaZ8 matricea unitate; b) Creaza matricea nula; e) Transpune 0 matrice; cundara sunt initializate cu \ naa se d) Toate elementele situate pe -diago valoarea 1;

1:=1 to n do ~pr j:=1 to n do sl=s+a[i,j]; w ·Ie.,cs);


(UI

',lillllli\i
.illlUta,

care dintre secventele de mai jos cu secventa considerate:

8. Fie matricea a ""

l~:1 :,1 :0

cun=4

llnil, n=.4 coloane.DUIJil

:3 14 15 16J

Varianta Pascal 1) .1.n*n*(n+1)*(n+l) div 2 . -, wdte(sl; II) .I-n*n*(n+l) div 2; w ita(s); nn*(n+1)*{2*n+l) div 6; writers); d) .I-o*n*(n+l)*(n+l) div 4' , writers);

a)
b)
:

.l

c)

d)

Varianta C++ s=n*n*(n+1)*(n+1)/2; cout«.s; s=n*n* (n+l) /2,; cout«s; s=n*(n+l)*(2*n+l}/6; cout«s; s=n*n*(o+l)*{n+l) 14; cout«s;
0

efectuarea urmatoarelor operatii, a devme Varianta Pascal for k:=l to n div2 do begin aux:=.alk,kl; alk,kl:=aln-k+l,n-k+1]; . .a [n-k+1] [n-k+l1: =au:x., end~ for k:;;;! to n div 2 do beg.1D j:=n-k+1; aux:sa[k,j1; a[k,jl:=aln-k+l,. n-j+l]; a[n_k+1,n-j+l]:=aux:; end;

urmatoarea matriee:

Varianta C++ for(k=Oik<n/2ik++) { aux=alk]tkli a[kl [kl=aln-k-ll tn-k-llJ a[n-k-ll [n-k-l] =au:x.; } for (k=0~k<n/2;k++) { j=n-k-1i au:x.=alkl[j]; . a[kl Ijl=aln-k-1} [n-J-l11 a In-k-ll [n-j-l1=au:x.;}

fJ

Ccnslderarn

urmatoarea

secventa de program in care a este

matrice

I h (It oIlIca cu n Iinil si n coloane (nEN I, j ~I ok sunt variabile de tip Tntreg:


lllt_ ..
10

* ), fermata din numere intregi, iar

Varianta Pascal
I

or j:~1 to n-1 do
!f(a[i,j]>a[1,j+1])
0)1:1-0 ;

.it-I

to

do

then

wdte(ok)

Varianta C++ , ok::l; for{i=l;i<=n;i++) for(j=l;j<n;j++) H(a[l] [j]>a[i] [j+l]) ok=O; cout«ok;

Ollp5 rularea secventel de mal sus se va aflsa valoarea 1 daca :;;i numai dldi:

3 : ]. 11 12 16·
7

"
I

. matncea

[5 1
9

6 10

cu

n-.

a) linii si 4 coloane, conti nand


2

b)
2

13
III nte numere

14 15

[:

:)
a

Tntregi. Ce aflseaza Pascal

programul

urmator? Varianta C++

l: :)
2

c)
1

Cd)
=

[;

2
1

:)

l~ ~l
0 2 0

13 2

3
9

1
4

.1

Varianta
alarray[l

15 5 8 2

.•10,1 .•10] of integer; n,i,j:integer;

II.U f 1\

din) i rill il.1 to n do tom: :11-1 to n d.o I ad(a[i,j]l; :l1-1 to n do WI.i .(a[l,n-i+l],' .1n;
IU
I

l;

#include<lostream.h> main() { int 11.[10]10) ,n,l,j; [ cin»n; for(i=O;i<n;l++) for(j",O;j<n;j++) cin»a[i] tjJ; for{i=O;i<n;i++) cout«a[i] [n-i-l]«n cQut«endl;

11. fie

matricea

18 2 ,1 7

4
5

2 9 1

cu

5 linii si 5 coloane. Ce ort

pragramul
u;

urrnator? Varianta Pascal Varianta C++


#include<iostream.h> maine) { int arlO] [10] ,n,i,j,b,d, cin»n; for{i=O;i<n;i++) for(j=O;j<n;j++) cin»a[i] [j]; for(i=O;i<n;i++) { b=O; d=O; for(j=O;j<n;j++) b=b+a[i] [j]; for{j=O;j<n;j++) d:d+a[j] [i]; if (b==d) cout«i«~ HI
)

)1234 It) l

11 16

c) 4 7 10 13 d) 13 10 7 4 cu 3 linii sl 3 coloane secventa

1'1 1'1ntru care din matricile urrnatoare 1IIIIlnluare de lnstructlunl va aflsana?


Varianta Pascai
l&rr,y[1 ••10,1 .•10] of integer; I ,i, j I integer; llboolean 1.IolIU
I

Varianta

CH

II

d(n),

II t

"I'

ru.;
1,-1 to n do :11-1 to n do ,u1(a[i,j]); ,-1 to n do' jl-1 to n do a[i,j J <>11. ,i] then [j t:=false; then write ('Da') else write{'Nu'); .1n;

lU
I

#include<iostream.h> main () ( int a [lOJ [1IH,n,i,j,t=l; cin»n; for(i=O;i<n;i++) for(j=O;j<n;j++) cin»a[1J [j]; for(i=O;i<n;i++) for (j = 0; j <0; j + +) if (a[i] i[j]I"'a[j] [i]) teO; if (t) cout«"Da"; else cout«"N'U"; cout«endl;
}

var a:array[I •.10,1 •.10] of integer; n,i,j,b,d:integer; begin read(n) ; for i:=l to n do for j:=1 to n do read(a[i,j]}; for i:=1 to n do begin b:eO; d:=O; for j :=1 to n d.o b:=b+a[i,j]; for j:=l to n do d:=d.+a[j] [i]; if b=d then write(i,' .); write1n; end, end.

cout«endl;
}

a) 1 2

b) 1 2 3 4 5

C) 2 3

d) 0 1 2

12. Fiecare din programele urrnatoare numeratate cu 1., 2., 3., 0011 IIlll a matrice. Asociati nurnarul programului cu matricea construita, b) == [~ : ~ :] 10 11 12
14 15

c)
a = [~

9
13

~ -: :] 1234

16 Varianta

1234 C++

'W

,,!'t.

Varianta

Pascal 1.

k:=1; for 1:=1 to 4 do for j:el to 4. do begin

1.

k=l; for(i=0;i<4;i++) for(j=O!j<4;j++)

• U, _n4,

j) I·k I inc (k) ;

(aU]

[:l]:.k;

k++;}

2.

2.
I

l!'OZ' i

-1

oj:

to4do -l. to 4 do
::::i;

a[i,j]

for(i=0;i<4;i++) for(j=0;j<4;j++) a [i][j] =i+l;

to 4 do O~ jl~l. to 4 do begin .. [:1,j):=j;

.1..-1.

3.
for(i=Oii<4;i++) for(j"'0;j<4;j++) a[il [jJ=j+l;

II II
M

programul Varianta

urrnator: Pascal
of integer;

."X'ray[l.

.10,1 •• 10]

n,.I.,j,t,k,b:integer; I, lI,tn I .d(n);

kid,
t

_nd.

_n4,

1:-1 to n do O~ j:=1 to n do begin a[1,j] :=ki inc(k) lend; o i:=1 to n do begin ,••.[1,b]; a[i,b] :=a[b,i]; a[b,i]:=t; end; or :1:=1 to n do begin lor j:~1 to n do w;ri te (a [i, j ],' .); write1n;

Varianta C++ #include<iostream.h> maine) ( iot arlO] [10l ,n,i,j,b,k=l,ti cin»n; for(i=0;1<n;i++) for (j=O; j <n; j++) { a[i] [jl=k; k++;} 01n»b; for(i=O;i<nli++) { t=a[i] 'Ib] i ali] [b]=a[b] [i]; arb] U]=tl} for(i=Oli<nli++) ( for(j=O;j<n;j++) oout«a(iJ [jJ«" "i cout«end1;}

I ntru

n=4 si b=2

programul

aftseaza

matricea:

)a

. b) a

:;;~ I
13 14 12 16 3

:51

0) a

d) a

il ~
13

: 7 8

10 11 15

1441
12 16

228

3
7

14. Fie matricea:

10 11 12

a ~ [:

13 14 15 16 afi~a programul urrnator? Pascal

'I
8 '

CU

nll4

flnll I?I

colo

n,

V~

Varianta

Varianta

C++

var a:array[1 ••10,1 ••10] of integer; n,i,j,k:integer; begin read(n); for i:=l to n do for j:=l to n do read{a[i,j]); for i:=1 ton do if i mod 2=0 then for k:=n downto 1 do write(a[i,k],' .) else for j:=l to n do write(a[i,j],' '); writeIn; end.

#inc:IuCle<iostream.h> main () , { int a[10] (10] ,n,1,j,k, c:in»n; for (1=0; i <n; i++) for (j=O; j <n; j++) c:in> [i 1 [j] ; >a for(i=O;i<n;i++) if (i%2==0) for(k=n-l;.k> .. ,k·-) O cout«a[il,[k]«" '" else for (j=O; j <n;j++) dout«a[i]{j]«" ", cout«endl;
}

a) b) ~ d)

4 1 1 1

3 2 2 2

2 3 3 3

1 4 4 4

9 10 11 12 8 7 6 5 13 14 15 16 12 11 10 9 5 6 7 8 16 15 14 13 5 6 7 8 9 10 11 12 13 14 15 16 16 15 14 13 5 6 7 8 12 .11 '10 9

Potrebbero piacerti anche