probleme matrici
DESCRIPTION
Probleme MatriciTRANSCRIPT
-
!" Se consideriimsrechi de liniii{mrente ale luco&oand .WvmPlu:mcotru n=3, rP[p, matricea A :t6 ' l621474l3 5
Toole celelaltem'notonie.
I lvar I2 | a:arraY[1";;- r ln,r , i , j ,4r I nt,ok:bo{S lbegtn I6 | readln (o,{? | nr :=o;C I for i :=t {9 l tor j :=11fOl for 1:=1 t.1'1 [ for i: =]l:M I mt: =a Iln"13l ok:=tru1r I for j :=f f l t r (a[16 I ol(:
l rz[ i r ok tlLla I end;I l l I wr i te lntrllzo lcna.
3. Se considerl
g5511;vn=4,m=4S matricea A:$679:14591781)37
$ntorizandu-se
i l r1Er lL. " 10, 1 ' . 101of, byte;to"n i r : - - :eger;
rdlhulEr ;65' r :=L to (n+1)div 2 do
fu f :== Co n-r+1 do baginatr , : l :=t i a ln-r+l , j l :=r ;
d;:6" i ;==-1- !o n-r do begin
alr , , r - :=r i a I i , n-r+1] : =r ;d,;
d;
a) Care vor fi elementele tabloului Apentru t? = 4?b) Determinati o valoare a lui n astfelinc6t elementele pe linii sd formezegiruri monoton crescAtoare saudescrescf,toare?c) Modifica{i instrucfiunea de atribuirede pe linia 5 astfel incAt, completdndelenrentele dupi aceeagi regulf,, cea maimici valoare din matrice s[ fie 0.d) Realiza{i programul in limbajul deprogramare studiat Pascal/C/C++.
#include gned char a[10] [10j ;
j .nt n,L, j , r ;main0 i
c in>>n, 'for ( r=l- , ' r
-
iui A
rstfel
buireetAnda mai
ul de
ul vade
2' Se considerd un tablou bidimensional cu n linii qi ru coloane. Sd se determine numdrul deperechi de linii monotone. Doud linii se numesc monotone dacd oricare pereche deelemente ale lor situate pe aceeagi coloand respecta monotonia elementelor dL pe primacoloand.Exemplu: se va afiga :Pentru n=3, nt=4 IgimatriceaA i Linii le I gi 3 formeazi o pereche de l inii867 6 monorone.21 47423 5
Solutie: Algoritmul testeazi pentru orice pereche de doui linii dacd sunt monotone. pentruaceasta se memoreazl ?n variabila nxt relatia de monotonie dintre primele doud elemente.Toate celelalte m-l perechi de elemente de pe cele doud linii irebuie sd aib6 aceeasimonotonie.
I lvar2' l a:arrayt i - . . 10, 1. .10lof byre;3 l r r , I , i , j , nr , m: integer, .4 | mt, ok:boo1ean,.5 lbegtn5 | readln(n,m);7 | nr : .=0;8 | for i :=1 t 'o n do9 | for j :=L !o m do read(at i , j l ) ;101 Eor 1:=L to n-1 do11 | for i : =1+1 to n do begin121 mt:=a[1,1]>n>>m,. na=Q,.for ( i=0; iat i l t j I ;for (1=0,. 1+1
-
1 lvrr2 | a:arrayt1. .10,1 ' .10lof byte;3 | n, L, L, j ,nr ,m'max, c 'x,Y,t :byte;4 lbegtn5 I readLn(n,m;; max:=0, 'e I for i :=L to n do7 | f ,or j :=L to m do read(al i , j l ) ;8 | for i :=1 tso n-1 do9 | for j := i+l to n do begi .nLO I nr : =0;L7l for c:=1 to m doL2l for E:=1 to m do13 | t f , at i ,c l=6[ j , t ) t t rgr inc(nr) ;141 if nr>max ehen begln151 max:=nr i x:=a; Y:=f i
| 16 | cnd,'I tz I end;| 1A I wr i te ln(x, ' ' ,Y) ; end.
#include lnt at10l t10l ,n, 1, i , j ,nr ,m,max,C, x, Y, t , 'vol.d main O t
c in>>n>>m;max=0;for ( i=0; i>a t i1 t j 1 ;for ( i=0; i+1
-
lax,
I
I t i I .
Ii
I
5. Fie un tablou bidimensional de n linii gi m coloane. SI se gteargd toate liniile care incepcu un element ce se regdsegte pe prima linie. Valorile elementelor sunt naturale mai micidecAt 1000,Exemplu: Pentru n=4, m=45i matricea A :867 97145927 8423 7
Solutie: Algoritmul folosegte un vector suplimentar s cu indici mai mici ca 1000, ale cdruielemente sunt 0 sau 1. Astfel, s[i]=l dacd valoarea i se glsegte pe prima linie in matrice.gtergerea unei linii r se face prin deplasarea tuturor liniilor x+1,.,.n cu o pozilie mai sus.Valoarea variabilei i care indicd linia curentd ln prelucrare, se incrementeazd cu o unitate,numai dacd linia respectivd nu a fost gtears[. Fiecare opera{ie de gtergere este inso}it[ de odecrementare a numdrul de linii a tab-loului.
se va afiga :86794237
sevaaf iga:8888145899999852
Il r++;Di,
I
I
[te ofri cuI
1 -lvar2 | a:array[ ] . . .10,1. .101of bYte;3,1 s:arr tyt0. . 10001of byt ,e;4 | n,L, L, j ,nr ,m: integer, '5 lbcstn5 | readln(n,m) ;7 | f ,or i :=1 to n doS I for j :=1 tso m do read(al i , j l )9, , ' l for i :=1 !omdo sla[1, i ] l :=L;70 | i t=2;lJ I whtlc i>n>>m,'I for ( i=0; iat i l t j l ;
; l tor ( i=0, ' i
-
Fiecare operalie de inserare este insoliti de o incrementare a numdrul de linii a tabloului.
#include char atL0l tL0l ;
ints ok,w,n, 1, i , j ,m, c,v, 'main0 {
cin>>n>>m,'for ( i=0 ,. icn, ' i++ )
for ( j=0; jcm;j++)cin>>at i l t j l ;
. i -n.
whi le ( ia t i l t j I ;
Solutie: Algoritmul liniarizeazd matricea folosind vectorul auxiliar v. Astfel, oricareelement al tabloului bidimensional a[ll] se va regAsi ln vector pe pozilia (i-l)*m+j.
108
I for i :=I for j :I vt ( iI for i :=I x: =vl l
I v l i l :I vtm*lI cnd;I for i :=I for j :I at i ,I for i : .I writelI for j :I end;lend.
Realizati unrEspective pot
afiga baza mini
Exemplu:Petgi matriceaA:t23101789
glulie: inelementuldecAt acesta-
1 lvar2 I a:arn3 | n,b, i ,I ,lbegtas I readbel for i :7 l for j8 l for i :9 | b:=al10 | nr :=l111 for l121 t f t13 I inc (t141 for l15| nr16 | writt17t cnd;18lcnd.
-
Exemplu: Penffu n=3, m=3gi matricea A:r23101789
for ( i=0 ; i
-
g. La un concurs de patinaj ce con{ine '|| probe, participa n sportivi id.entificati
prin numerede la I la n (n,m
-
[mereI celeri, in
2.Seconsideriuntabloubidimensionalcunl ini ig incoloane.cecont inenumerenaturale.Realizatiunprogram.ur.a.trr,r,in6elementulru*i*depediagonalaprincipalf,amatriceigi linia pe care acesta este situat'
3.ScrieliunprogramcarecompleteazdelementeteunuitabloupItraticdeordinnastfel:- elementele diagonalei principale sunt egale cu 0;- elementele situate sub iiagonala principald sunt egale cu I
elementele situate deasupi diagonalei principale sunt egale cu 2
Exemplu: Pentru n=3 se va afiga:022r02r10
4. Se considerl dou6 tablouri bidimensionale de dimensiuni identice (n'trn)' S[ se afigeze
transpusa matricei ,orni.-i.unrpusa unei matrice se obline prin schimbarea liniilor cu
;
rul dercdtor
i=1;
,use
rale.Fr de
24r353 160 157 630
coloanele.Exemplu: Pentru n=3,233449
m=2;i tablourile:561100
Se va afipa:7 44959
5.Real iza{ iunprogramcaredetermin[numlrul l in ieicucelemaimulteelementepare,alunei matrice p6tratice o. Ji*.nriun e n n. DacA iiistl mai multe
linii cu num6r maxim de
elemente pare se va afiga una singur6'";;;;;i;,';;;tru
n=3 eimatriceal I se va afiea2'r2 r304150678900
r r 115
3 150678900
6. Se considerd un tablou bidimensional cu n linii gi n coloane' Realizali un program care
identificd linia cu ..f, *ii .uii. .it*.n,. divizibile cu primul element situat pe ea'
i""rrptrrPentru n=3,nx=3 9i matricea: I se va aft$2'
7. Realizali un program care determina cel mai mare divizor comun al elementelor situate
pe fiecare coloand, a unei matrici pdtratice' I"-:-^:::;:.:;-:;., *r qi marricea: I se va afiga I 2 15'Exemplu;Pentru n=3 $i matricea:
g. Realizali un program care ordoneaz[ crescf,tor doar elementele pare' situate pe liniile cu
""tat at ordine pi, ut unui tablou bidimensional cu n linii 9i rn coloane'
'[i*pt"tPentrulr=3' m=4gimatricea:
I ;t;l;i"24t32 l ' ,241612 161122416?30z \ \6?302
111
-
9. Realizali un program care ordoneazd descrescf,tor elementele de pe prima linie a unuitablou bidimensional numai prin operalia de interschimbare a coloanelor.
10. Realizali un program care permut[ circularliniite unui tablou bidimensional cu n linii 9ila coloane, cu o pozilie mai sus:
Exemplu: Pentru n=3, m=4 9i matricea:24r32316013167 302
Exemplu: Pentru n=3, m=4 9i matricea:24 t32316013167 302
se va afigat3 42260r313307 162
se va afiga3r6013t67 30224 t32
sevaaf igaL2 1e+5)
11. Se consider6 un tablou bidimensional pitratic cu n linii. Sd se determine c.m.m.d.c alvalorilor ce reprezintd suma elementelor de-sub diagonala principald 9i suma elementelor dedeasupra diagonalei princiPale.Exemplu: Pentru n:3 9i matricea:160916991
se va afiga 3
12. Se considerd un tablou bidimensional pdtratic cu n linii. Si se determine elementelecare sunt situate pe linii qi coloane de sum6 egal[. Un element a[ii] va fi afi;at dacd sumape linia i este egal6 cu suma pe coloanaj.13. Se considerf, un tablou bidimensional pltratic cu n linii. Sd se determine toateelementele ce reprezinti puncte 'ga'(element minim pe linie 9i maxim pe coloana pe careeste situat).14. Se considerl o matrice pitraticd de n linii. S[ se afiqeze suma elementelor situate pecele doud diagonale alf,turate celei principale.Exemplu: Pentru n:4 9i matricea:1-2342r2332'J-24321
15. SI se afigeze toate elementele dintr-o matrice de n linii 9i m coloane care au to$ veclnllnumere pu.". El"."ntele vecine lui n[ii] sunt a[i-li/, alii-l], a[i+ll] 9i a[i,1i1], daciexistd.
16. Se considerf, o matrice pdtratic[ de n linii. S[ se gteargi toate liniile din tablou careincep cu un num[r divizibil cu l0'17, S[ se determine elementul cu numtrr maxim de aparilii al unui tablou bidimensional cun linii gi rn coloane.Exemplu: Pentru n=3, m=4 9i matricea:24 13234604t6 430 4
se va afiga ' 4 apare de 5 ori '
18. SI se
Exemplu:243346143
coloane cuExemplu:'A' , 'B' , 'C' ;
Exemplu:
elementeExemplu:' r 63144383666456
acesrc001 Il00ll l l00l0l0000
23. Secomponeteformi deExemplu:01110201032203 320 40304440
ttz
-
.c alnde
[elelma
18. Sd se determine mullimea format[ din elementele distincte de pe marginea unui tabloubidimensional pdtratic.Exemplu: Pentru n=3 gi matricea:243346t43
sevaaf igal2346
19. Se considerli un vector de n*m caractere. Si se completeze o matrice de n linii gi rrcoloane cu codurile ASCII asociate caracterelor respective.
20. Realizali un program care afigeazl o matrice pltraticd de ordin n ale clrei elemente suntnumerele de la 1 la n', completate in ordine incepdnd cu prima linie.
Exemplu: Pentru n=3, m:4 qi vectorul'A ' r 'B ' r 'C'r 'D'r 'a ' , 'b ' r 'c ' r 'd ' r 'A ' , 'a ' , 'B ' , 'b '
se va afiga matricea:65 66 67 6897 98 99 10065 97 6698
: Pentru m=5,n:4 gi tabloul:se va afiga:391450
se va afiga:Suma(zl)=4Suma(22)=8Suma(23)=llSuma(24)=lf
Exemplu: Pentru n=3 se va afiga: se va afiga matricea:123456189
21. Se considertr un tablou bidimensional cu n linii gi n coloane (1
- 2{.Seconsideraunmbloubidimensionalcunl in i ig inrcoloane(1
-
31. Realizali un program care completeazd elementele unui tablou bidimensional A(n,nt) cuvalori consecutive pi linii, incepdnd de la numdrul de ordine al liniei respective'Exemplu: Pentru n=3 gi m=4 elementele tabloului A vor fi :t23 423453456
32. Se consider[ o matrice A(n,m) ce contine numere intregi. Ordonali crescdtor elementele
luanafutte
istdlinia
telor
pare situate pe ultima coloan[, prin interschimbdri de linii.-Exempluz Pentru n=3, m=4 9i matricea A : I se va afiga :1234 | 34522345 123453452 | t23433. Fie un tablou bidimensional A(n,n). Realizali un prognm care inverseazd elementele depe liniile care lncep cu un numf,r prim.Exemplu; Pentru n=3, m=4 9i matricea A :42 3723453452
34. Determinafi numerele de ordine alecontin cele mai multe valori palindrom.Exemplu: Pentru n=3, m=4 9i matricea A:r r 2t 33 43223 4t4 52324 5352
liniilor unui tablou bidimensional AQt,nt) carc
Prmantele
se va afiga :423 75 43225 43
se va afiga :23
se va afiga ;2 4W65 5r2
35. Fie un tabtou bidimensional cu n linii 9i n coloane cu elemente numere naturale maimici decst 10000. Un element din tablou are ca vecini, elementele situate in imediatavecinltate pe vertical[ Pi orizontal[. S[ se identifice dou[ elemente din matrice care auproprietatea cd produsul vecinilor lor reprezintb cele mai mari doud valori ce se pot obline'Pentru fiecare element determinat se vaafi9a valoarea acestuia 9i a produsului elementelorvecine.Exemplu: Pentru n=4, m=4 9i tabloul:0858828538300262
36. Fie un tablou bidimensional pdtratic de ordin n cu elemente naturale' Se considerd untraseu ce pleacl din matrice de pe linia r 9i coloana y. Direqia de migcare ne este datd de un
lir ie p caractere N, V, E, S care indicd direclia de deplasare. Determinati suma elementelorsituate pe drum. Elementul de start aparfine drumului'ExempiuzPentru n=4, m=4, x=3, y=i' p=6' I se va afi$a 30 (8 +2+9+5+l+2+3)traseul N,N,E,S,V,V gitabloul : Ioess I3215 r3830 I0262 I
115
-
37. Fie un tablou bidimensional pdtratic de ordin n. Consider[m un traseu ce pleac[ dinmatrice de pe linia x 9i coloana y. Direc{ia de migcare ne este indicati de un gir de pcaractere N, V, E, S care reprezintd direclia de deplasare, Determinati elementele prin cares-a trecut de cele mai multe ori. De la intrarea standard se va prelua n, x, y, p gi traseulurmat. Pentru fiecare element din solufie va afiga linia gi coloana pe care este situat.Exemplu: Pentru n-4,)F3,y=2,p=8gi | 22traseul N, N, E, S, V, S, S, V | 3 238. Se considerd o tabld de gah cu n linii gi rz coloane, pe care sunt plasate pioni. Pionii suntcodificati la citire prin valoarea l. Regina adversl triUuie plasati intr-un punct al tableiastfel incat pe cele doui diagonale pe care le atacf,, sd se afle cati m;i mulli pioni.Determinali linia gi coloana pe care se va a$eza regina gi numarul de pioni de pe diagonaleatacate.Exemplu: Pentru n=5, m=4, tabloul : se va afiga 4 2 5 (linia 4, coloana 2, 5 pioni)I1000 101
0r00000r0
39. Fie un tablou bidimensional cu n linii gi rn coloane, cu elemente intregi. Din punctul delinia x gi coloana y se poate pArisi tabloul mergdnd numai pe orizontald sau verticali, darnumai dacd elementul este a[.ry] este negativ. Pe traseul urmat nu trebuie sd se intfilneascf,alt element negativ. Sd se determine linia gi coloana de unde se poate pdrdsi matricea, astfelincdt suma elementelor intdlnite pe traseu sd fie minimd. Afigali linia gi coloana punctuluide start gi suma elementelor de pe drum.Exemplu: Pentru n=4, nt=6 gi tabloul :50 60 90 50 60 6040 30 -9 -3 40 7040-1-8 5 2 I80 80 80 80 90 20
se va afiga 3 3 8 (linia 3, coloana 3, suma 8)
fl Figiere text
2.3.1 Teste cu alesere multiold si duald1. Care dintre urm[toarele variante ,"u1i2sszd deschiderea la citire a figierului text'A.TXT'a)reset( f ) , .assign(f , ,A. t .xt , )b) assign ( f , 'A. txt ' ) ; rewri te ( f )c) assign ( f , 'A. txt ' ) r reset (A. txt)d)assign(f , ,A. txt , ) , . reset( f )
a) rewri te ( f ) ;assign ( f , , B. txt , )b) assign(f , 'B. txt , ) , . rewri te( f ) ;c) assign ( f , 'B. lx t ' ) ; rewri te (B), .d)assign(f , B. txt ) , . rewri te( f ) ;
a) f =fopen ( t 'A. txt" , "w" ) ;b) f=fopen ( " f " , "A. txt" ) , .c ) f=fopen ( "A. txt " , r ) ;d) f=fopen( "A, txt" , " r" ) ;
a) f=fopen( "B. txt" , " r" ) ib) f=fopen ( "8. txt" , "w" ) ;c) f=fopen("w", "B.txt" ) , .d) f=fopen ( " B. txt " , w) ;
2. Care dintre urmdtoarele variante realizeazl deschiderea la scriere a figierului text,B.TXT'
116