probleme matrici

13
!" Seconsideri imsrechi de linii i{mrente ale lu co&oand . WvmPlu: mcotru n=3, rP[ p, matricea A : t6'l6 2147 4l3 5 Toole celelalte m'notonie. I lvar I 2 | a:arraY[1";; -r ln,r,i,j,4 r I nt,ok:bo{ S lbegtn I 6 | readln (o,{ ? | nr:=o; C I for i:=t { 9l tor j:=11 fOl for 1:=1 t .1'1 [ for i: =]l: M I mt: =a Iln" 13l ok:=tru 1r I for j:= ffl tr (a[ 16 I ol(: lrz[ ir ok t lLla I end; IllI writelntr llzo lcna. 3. Se considerl g5511;vn=4,m=4 S matricea A: $679 :145 9178 1)37 $ntorizandu-se ilr1ErlL. " 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 bagin atr,:l :=t i aln-r+l, jl :=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 A pentru t? = 4? b) Determinati o valoare a lui n astfel inc6t elementele pe linii sd formeze giruri monoton crescAtoare sau descrescf,toare? c) Modifica{i instrucfiunea de atribuire de pe linia 5 astfel incAt, completdnd elenrentele dupi aceeagi regulf,, cea mai mici valoare din matrices[ fie 0. d) Realiza{i programul in limbajul de programarestudiat Pascal/C/C++. #include <iostream.h> gned char a[10] [10j; j.nt n,L,j,r; main0 i cin>>n,' for (r=l-,'r<= (n+1) /2;r++l { for (j=6tj<=n-r+1; j++) t alr-11 [j-1]=r; aln*rl Ij-L]=r; ) for ( i=r+1 ,'i<=n-r; i++ ) { ati-1l Ir-1]=r; ali-Ll In-r]=s; ) ) for (i=0,.i<n;i++) t for (j=0; j<n; j++) cout<< (int) a Iil tj I ; cout<<endl; ) ) r[ik, Cl*, ,]' :m . a [ 100 ] [ ]-00 I ; er€cutsa :':. €xecuta -j | +1; begin write(ali,il); 2,2.3 Probleme rezolvate O'W ffile unui tablou bidimensional pbtraticde ordin n, sub forma unor p;:Oj6,& ralori consecutive, incepdnd cu I' Exemplz: Pentru n =4 elementele ffilillUullm& ttll ll21 n:21 llll &Ury, [ * - lrur,Ersate un numdr de (n+l)div 2 pdtrate concentrice. Algoritmul va rotryl'''wi- @atele, traversdnd simultan cele doudlinii (laturade sus- laturade tlflrflllffidtuE coloane (latura stdng[ - latura dreaptd) ' u 16 mr & i':=1 L j:=i' rrcr;el: d; tsondo gondo 104

Upload: zaha-ria

Post on 08-Nov-2015

114 views

Category:

Documents


3 download

DESCRIPTION

Probleme Matrici

TRANSCRIPT

  • !" 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