Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Triunghi

691 views

Published on

  • Be the first to comment

Triunghi

  1. 1. Elev: Sima Marcel Cls a XI-a B
  2. 2. Enuntul problemei <ul><li>Se consider ă un triunghi de numere naturale format din n linii. Prima linie conţine un număr,a doua două numere, ... ,iar ultima,n numere naturale. Cu ajutorul acestui triunghi se pot forma sume de numere naturale în felul următor: </li></ul><ul><ul><ul><li>Se porneşte cu numărul de pe linia 1; </li></ul></ul></ul><ul><ul><ul><li>Succesorul unui număr se află pe linia urmatoare plasat sub el(aceeaşi coloană) sau pe diagonală la dreapt(coloana creşte cu 1); </li></ul></ul></ul>
  3. 3. Pentru linia i pentru i<n se obtine astfel: <ul><li>C[i,j]=max{T[i,j]+C[i+1,j],T[i,j]+ +C[i+1,j+1]} </li></ul><ul><li>i:=1,n-1; </li></ul><ul><li>j:=1,i; </li></ul>
  4. 4. T: 2 3 3 5 5 6 6 4 4 1 5 6 1 4 12 9 9 9 8 7 C: 6 6 6 + + + + + + 5 = = = = = = 11 11 12 < < < < 3 3 6 1 4 > 4 3 3 3 4 4 4 + + + + + 1 = = = = = 5 5 8 6 6 6 9 > 5 5 3 4 8 8 9 9 2 2 + = 3 5 5 5 7 12 8 9 9 9 7
  5. 5. 2 3 3 5 5 6 6 4 4 1 T: 5 6 1 4 C: 12 9 9 6 6 6 + + + + 5 = = = = 11 11 12 < 3 3 6 1 4 > 4 8 + = = < 4 4 4 + 1 5 5 8 12 + + + + + + 5 = = = = = = 17 3 3 9 12 15 15 12 5 9 8 14 14 13 13 > > 2 2 15 14 17 16 16 > 12 9 8 15 14 17
  6. 6. Algoritmul <ul><li>Pentru etapa i se tratează linia i a triunghiului. </li></ul><ul><li>Fie un şir de n numere care respectă condiţiile prolemei şi care formează suma maximă, de aici considerăm numărul care a fost preluat de pe linia i;vom forma un triunghi de la bază la vârf cu sumele maxime care se pot forma cu fiecare număr.Într-o matrice T citim t riunghiul de numere si într-o matrice C vom avea următoarele relaţii: </li></ul>
  7. 7. <ul><li>C [n,1]:=T[n,1]; T[1,1]=2; T[4,1]=5; </li></ul><ul><li>C[n,2]:=T[n,2]; T[2,1]=3; T[4,2]=6; </li></ul><ul><li>. T[2,2]=5; T[4,3]=1; </li></ul><ul><li>. T[3,1]=6; T[4,4]=4. </li></ul><ul><li>. T[3,2]=3; </li></ul><ul><li>C[n,n]:=T[n,n]; T[3,3]=4; </li></ul><ul><li>2 </li></ul><ul><li>5 </li></ul><ul><li>3 4 </li></ul><ul><li>5 6 1 4 </li></ul>T:
  8. 8. Implementarea programului: <ul><li>Pentru a tipari numerele luate în calcul se foloseşte o matrice numită drum în care pentru fiecare i,j se obţine coloana în care se gaseşte succesorul lui T [i,j]; </li></ul><ul><li>n-num ărul de linii ; </li></ul><ul><li>t,c, drum -de tip matrice; </li></ul>
  9. 9. Programul <ul><li>program triunghi; </li></ul><ul><li>type matrice=array[1..10,1..10]of integer; </li></ul><ul><li>var t,c,drum:matrice; </li></ul><ul><li>i,j:integer; </li></ul><ul><li>Begin </li></ul><ul><li>write(‘n=‘);readln(n); </li></ul><ul><li>for i:=1 to n do </li></ul><ul><li>for j:=1 to I do begin </li></ul><ul><li>write(‘t[‘,i,’,’,j,’]=‘);readln(t[i,j]);end; </li></ul><ul><li>for j:=1 to n do c[n,j]:=t[n,j]; </li></ul><ul><li>for i:= n-1 downto 1 do begin </li></ul><ul><li>for j:=1 to I do </li></ul><ul><li>if c[i+1,j]<c[i+1,j+1] then begin </li></ul>
  10. 10. <ul><li>c[i,j]:=t[i,j]+c[i+1,j+1]; </li></ul><ul><li>drum[i,j]:=j+1;end </li></ul><ul><li>else begin </li></ul><ul><li>c[i,j]:=t[i,j]+c[i+1,j]; </li></ul><ul><li>drum[i,j]:=j;end;end; </li></ul><ul><li>writeln(‘suma maxima este’,c[1,1]); </li></ul><ul><li>i:=1;j:=1; </li></ul><ul><li>while i<=n do begin </li></ul><ul><li>writeln(t[i,j]); </li></ul><ul><li>j:= drum[i,j]; </li></ul><ul><li>i:=i+1;end; </li></ul><ul><li>readln; </li></ul><ul><li>End. </li></ul>

×