1 / 14

P robleme rezolvate informatica

P robleme rezolvate informatica. 1.Generarea combinarilor var sol:array[1..9] of integer; n,p:integer; procedure back(k:integer); var i:integer; begin if k=p+1 then begin for i:=1 to p do write (sol[i])l writeln; end;

Télécharger la présentation

P robleme rezolvate informatica

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Problemerezolvateinformatica 1.Generarea combinarilor var sol:array[1..9] of integer; n,p:integer; procedure back(k:integer); var i:integer; begin if k=p+1 then begin for i:=1 to p do write (sol[i])l writeln; end; else begin if k>1 then sol [k]:=sol[k-1]; else sol[k]:=0; while sol[k]<n-p+k do begin sol[k]:=sol[k]+1; back (k+1); end; end; end; begin write (‘n=’); readln(n); write (‘p=’); readln(p); back(i); end.

  2. 2.Algoritmul de sortarerapida (Quick Sort) Type vector:=array[1..100] of integer; Vari,n,k:integer; a:vector; procedure poz (p,q:integer; var k:integer; var a:vector); vari,j,c:integer; begin i1:=0; j1:= -1; i:=p; j;=q; for while i<j do begin if a[i]>a[j} then begin c:=a[j]; a[j]j:=a[i]; a[i]:=c; c:=i1: i1:= -j1: j1:= -c; end; i:=i+i1; end; k:=I; end: end.

  3. 3.Generareapermutarilor Type vector=array[1..100] of integer; Var x:vector; n:integer; procedure citire (var x:vector; var n:integer); var i:integer; begin write(‘n=’); readln (n); for i:=1 to n do begin write (‘x[‘,i,’]=’); readln(x[i]); end; end; procedure solutie; var i:integer; begin write (‘(‘); for i:=1 to n-1 do write (x[i],’,’); writeln (x[n], ‘)’); end; function continuare (k:integer):Boolean; var i:integer; ok:=Boolean; ok:=true; begin if k=1 then continuare:=true; else for i:=1 to k-1 do if x[k]=x[i] then ok:=false; continuare:=ok; end; procedure back(k:integer); var i:integer; begin if (k=n+1) then solutie else begin for i:=1 to n do begin if continuare (k) then back(k+1); end; end; end.

  4. 4.Algoritmul de sortare cu metodabulelor Type vector:=array[1..100] of integer; var x:vector; n,I,f,t:integer; gata:Boolean; begin write (‘n=’); readln(n); for i:=1 to n do begin write (‘x[‘,I,’); readln (x[i]); end; f:=n; repeat gata:=true; for i:=1 to f-1 do if x[i] > x[i+1] then begin gata:=false; t:=x[i], x[i]:=x[i+1]; x[i+1]:=t; end; f:=f-1 until gata; for i:=1 to n do writeln (x[i]); readln; end.

  5. 5.Partile unui numar natural Type vector=array[1..20] of integer Var x:vector n,s:integer; procedure solutie (k:integer); var i:integer; begin for i:=1 tok do write (x[i],’ ‘); writeln; end; function continuare (k:integer):Boolean; begin continuare:=(x[k] + s)<n; end; procedure back(k:integer); begin if (s=n) then solutie (k-1) else begin x[k]:=0; while continuare (k) do begin x[k]=x[k]+1; s:=s+x[k]; back (k+1); end; end; end; begin write (‘n=’); readln (n); back(1); readln; end.

  6. 6.Metoda injumatatirii unui interval Var a:real; Function logn(a,p,q:real):real; var m:real; Begin m:=(p+q)/2; if a:=1 then begin:=0; else if abs(p-q)<0.001 then logn:=(p+q)/2 else if (exp(p)-a)*(exp(m)-a)<0 then log n:=log n(a,p,m) else log n:=log n(a,m,q) end; begin write (‘a=”); readln(a); writeln (‘logn(‘,a,’)=’, logn(a,0,a)); readln; end.

  7. 7.Generarea aranjamentelor de n elemente luate cate p Type vector=array[1..20] of integer; Var x:vector; n,p:integer; procedure solutie; var i:integer; begin for i:=1 to p do write (x[i],’ ‘); end; procedure back (k:integer); var i:integer; begin if (k=p+1) then solutie else for i:=1 to n do begin x[k]:=I; if continuare (k) then back (k=1); end; end; begin write(‘n=’); readln(n); wrte (‘p=’); readln(p); back(1); end.

  8. 8.Problemacolorariihartiilor Const c:array[1..4] of char=(‘G’,’R’,’A’,’V’); Type vector=array[1..50] of integer; Matrice=array[1..50,1..50] of integer; Var A:matrice; x:vector; n:integer; procedure citire (var n:integer; var A:matrice); vari,j:integer; begin write (‘n=’); readln(n); for i:=1 to n do for j:=1 to n do begin write (‘A[‘ ,i,’,’,’]=’); procedure solutie; var i:integer; begin for i=1 to n do writeln (‘tara’,i,’:’,C[x[i]]; end; function continuare (k:integer):boolean; var i:integer; begin continuare:=time; for i:=1 to k-1 do if (A[i,k]=1) and (x[i]=x[k]) then continuare :=false; end; procedure back(k:integer); var i:integer; begin if (k=n+1) then solutie else for i:=1 to 4 do begin x[k]:=i; if continuare (k) then back(k+1); end; end; begin citire (n,A); back (1); • end.

  9. Grile rezolvate V1 Subprogramul f este definit alăturat. Cese afişează ca urmare a apelului f(121,1);? procedure f (n,i:longint); Rezolvare: 121<>0; 121 mod 3=1>0 ; write(1);f(40,2); Begin 40<>0 if 40 mod3=1>0 ;write(2); f(13,3) ; if n<>0 then 13 mod 3>1 ; write(3); f(4,4) ; if n mod 3 >0 then 1>0; write(4) ; f(1,5) Begin R:1234 write(i); f(n div 3,i+1) end end; V3 Pentru definiţia alăturată asubprogramului f, ce se afişează ca urmare a apelului f(26);? procedure f (x:integer); Rezolvare: 26 mod 4=2; f(8); write(‘y’); write(‘x’) ; Begin f(7) ; f(2); write(‘y’); f(0); write(‘y’) if x>0 then R: y,x,y,y if x mod 4=0 then begin write('x'); f(x-1) end else begin f(x div 3); write('y') end end;

  10. V4 Pentru definiţia alăturată asubprogramului f, ce se afişează caurmare a apelului f(15,2);? (6p.) procedure f (n,x:integer); Rezolvare: 2>5; f(15,5); write(1); f(15,8); write(1); Begin f(15,9); f(15,12); write(1); if x>n then write(0) f(15,13); f(15,16) ; write(1); Else 16>15 then write(0); if x mod 4<=1 then f(n,x+1) R:11110 else begin f(n,x+3); write(1) end End; V5 Pentru subprogramul f definit alăturat, ce seafişează ca urmare a apelului f(3,17)? procedure f (a,b:integer); Rezolvare: f(4,15); write(‘*’); 4<=15 then f(5,13) write(‘*’); Begin f(6,11); write(‘*’); f(7,9) write(‘*’); f(8,7); write(‘*’); if a<=b then write (b); Begin R:* * * * b f(a+1,b-2); write(‘*’) end else write(b) end; V16 Funcţia F are definiţia alăturată. Ce valoareare F(3)? Function F(n:integer):integer; Rezolvare: F:=2*F(2)+2*F(1); Begin F:=2*F(1)+2*F(0)=2*1+2*1=4; if (n=0) or (n=1) thenF:=2*4+2=10; F:=1 R:d) 10 else F:=2*F(n-1)+2*F(n-2); end.

  11. V6 Se consideră subprogramul alăturat.Ce valoare are f(128,2)? function f(a, b:integer):byte; Rezolvare: f:=1+f(64,6); 64 mod 2=0 A; f:=1+f(16,2); begin 16 mod 2=0 A; f:=1+f(8,2); 8 mod 2=0 A; f:=1+f(4,2); if b<1 then f:=-1 else 4 mod 2=0 A; f:=1+f(2,2); 2 mod 2=0 A; f:=1+f(1,2); if a mod b =0 then 1 mod 2=0 F  R:f=7 f:= 1+f(a div b,b) else f:= 0 end ; V18 Funcţia f are definiţia alăturată. Ce se va afişa în urma apelului f(12345,0)? procedure f(n:longint;i:integer); Rezolvare 0<5 A ; write(5); Begin f(1234,1);1<4 write(4); if i<n mod 10 then f(123,2); 2<3 write(3); Begin f(12,3); 3<2 F f:=0 write(n mod 10); R: b) 543 f(n div 10,i+1) end end; V17 Subprogramul f are definiţia alăturată. Cese va afişa în urma apelului f(12345)? procedure f (n:longint); Rezolvare: write (123); f(1234); write(12); Begin f(123); write(1); f(12); write(0); f(0); if n>9 then R:123121 begin write(n div 100); f(n div 10) end end;

  12. V19 Funcţia F are definiţia alăturată. Ce valoareare F(18)? function F(x:integer):integer; Rezolvare: F:=F(16)+18; F:=F(14)+16; F:=F(12)+14; Begin F:=F(10)+12; F:=F(8)+10; F:=F(6)+8; F:=F(4)+6 if x<=1 then F:=F(2)+4; F:=F(0)+2; F:=x R:90 else F:=F(x-2)+x end; V10 Se consideră subprogramul cudefiniţia alăturată. Ce valoare aref(3,1)? function f(n,y:integer):integer Rezolvare: 3<>0; y:=2; f:=2+f(2,2); y:=3 Begin F:=3+f(1,3); y:=4; f:= 4+f(0,4); if n<>0 then R:a) 9 begin y:=y+1; f:=y+f(n-1,y);end; else f:=0 End; V9 Se consideră subprogramulf cu definiţia alăturată. Cevaloare are f(1213111,1)? function f (n:longint; k:integer):integer; Rezolvare: 1=1; f:=1+f(121311,1); 1=1; Begin f:=1+f(12131,1); 1=1; f:=1+f(1213,1); if n<>0 then f:=0; if n mod 10=k then R:3 f:= 1+f(n div 10,k) else f:=0 else f:=0 end;

  13. V20 Funcţia F are definiţia alăturată. Ce valoareare F(5)? function F(x:integer):integer; F:=5+F(4); F:=4+F(3); F:=3+F(2); Begin F:=2+F(1); F:=1+F(0); if x<>0 then F:= x+F(x-1) R:F:=15 else F:=x end; VAR2: Utilizând metoda backtracking se generează în ordine lexicografică cuvintele de câte patru litere din mulţimea A={a,b,c,d,e}, cuvinte care nu conţin două vocale alăturate. Primele opt cuvinte generate sunt, în ordine: abab, abac, abad, abba, abbb, abbc, abbd, abbe. Care este ultimul cuvânt generat? a. edcb b. eeee c. edde d. Eded Rezolvare: abab,abac,abad,abba,abbb,abbc,abbd,abbe, R:d.eded VAR5: Folosind modelul combinărilor se generează numerele naturale cu câte trei cifre distincte din mulţimea {1,2,3,7}, numere cu cifrele în ordine strict crescătoare, obţinându-se, în ordine: 123, 127, 137, 237. Dacă se utilizează exact aceeaşi tehnică pentru a genera numerele naturale cu patru cifre distincte din mulţimea {1,2,3,4,5,6,7,8}, câte dintre numerele generate au prima cifră 2 şi ultima cifră 7? a. 8 b. 3 c. 4 d. 6 Rezolvare: 123,127,137,237 C 4 luate cate 6 =6 R:d.6 VAR6 Utilizând metoda backtracking sunt generate numerele de 3 cifre, având toate cifrele distincte şi cu proprietatea că cifrele aflate pe poziţii consecutive sunt de paritate diferită. Ştiind că primele şase soluţii generate sunt, în această ordine, 103, 105, 107, 109, 123, 125, care este a zecea soluţie generată? a. 145 b. 147 c. 230 d. 149 Rezolvare: 103,105,107,109,123,125,127,129,143,145 R:a.145

  14. VAR11:Un algoritm de tip backtracking generează, în ordine lexicografică, toate şirurile de 5 cifre 0 şi 1 cu proprietatea că nu există mai mult de două cifre 0 pe poziţii consecutive. Primele 7 soluţii generate sunt: 00100, 00101, 00110, 00111, 01001, 01010, 01011. Care este a 8-a soluţie generată de acest algoritm? a. 01110 b. 01100 c. 01011 d. 01101 Rezolvare: 00100,00101,00110,00111,01001,01010,01011,01100; R:b.01101 VAR8:Utilizând metoda backtracking sunt generate numerele de 3 cifre care au cifrele în ordine crescătoare, iar cifrele aflate pe poziţii consecutive sunt de paritate diferită. Ştiind că primele cinci soluţii generate sunt, în această ordine, 123, 125, 127, 129, 145, care este cel de al 8-lea număr generat? a. 169 b. 149 c. 167 d. 147 Rezolvare: 123,125,127,129,145,147,149,167; R:c.167 VAR7:Folosind tehnica bactracking un elev a scris un program care generează toate numerele de câte n cifre (0<n≤9), cifrele fiind în ordine strict crescătoare. Dacă n este egal cu 5, câte numere vor fi generate de program? Rezolvare: 5!=120 VAR10:Folosind tehnica backtracking, un elev a scris un program care generează toate numerele de câte n cifre (1≤n≤9), cifrele fiind în ordine strict crescătoare. Dacă n este egal cu 5, câte dintre numerele generate au prima cifră 4? Rezolvare:Combinari de 5 luate cate 4:=5!/1!*4!=120/24=5; VAR11: Se genereaza toate cuvintele de n numere din multimea {a,b,c,d},astfel incat sa nu existe litere identice vecine sau un caracter a alaturat lui c.Ultimele cuvinte generate sunt ba,ad,ab.Daca se utilizeaza aceeasi tehnica atunci antepenultimul cuvant generat este? A.ada b.abc c.abd d.aba Rezolvare: aba,abc,abd,ada R:c.abd

More Related