Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Divide et impera. Metodei şi aplicaţii

Descrierea metodeiMetoda Divide Et Impera constă în împărţirea problemei de rezolvat în două sau mai multe probleme similare celei iniţiale, dar de dimensiune mai mică şi apoi combinarea soluţiilor pentru a creea o soluţie a problemei
PREZENTAREA METODEIŞI APLICAŢII“Divide et Impera” Descrierea metodeiMetoda Divide Et Impera constă în împărţirea problemei de rezolvat în Etapele metodeiDivide: Se împarte problema în subprobleme de acelaşi tip, dar de AplicaţiiSă se determine cea mai mare valoare dintr-un şir de n numere Exemplu numeric  r11= 12		 r12 = 15 		  r21 = Subprogramul maximType vector=array[1..100] of integer;Var x:vector;    i,n:integer;function maxim ( Programul principalbegin  write(‘n=‘); readln(n);  for i:=1 to n do Aplicaţii grilă1. Ce va afişa programul următor?var v : array [ 1 Aplicaţii grilă2. Ce va afişa programul pentru n = 10 ?var n Probleme propuseSe citeşte n un număr natural. Să se calculeze produsul primelor
Слайды презентации

Слайд 2 Descrierea metodei
Metoda Divide Et Impera constă în împărţirea

Descrierea metodeiMetoda Divide Et Impera constă în împărţirea problemei de rezolvat

problemei de rezolvat în două sau mai multe probleme

similare celei iniţiale, dar de dimensiune mai mică şi apoi combinarea soluţiilor pentru a creea o soluţie a problemei iniţiale.
Procedeul se reia pentru fiecare din subproblemele obţinute până când (în urma descompunerilor repetate) se ajunge la probleme ce admit rezolvare imediată.
OBS: Deoarece problemele rezultate sunt similare celei iniţiale, metoda se poate exprima recursiv, dar admite şi varianta iterativă.


Слайд 3 Etapele metodei
Divide: Se împarte problema în subprobleme de

Etapele metodeiDivide: Se împarte problema în subprobleme de acelaşi tip, dar

acelaşi tip, dar de dimensiune mai mică;
Impera: Se rezolvă

fiecare dintre subprobleme – direct dacă acestea sunt simple – sau continuă cu divide prin reducerea acestora la alte subprobleme, recursiv;
Impera: Se combină soluţiile subproblemelor, pentru obţinerea soluţiei problemei iniţiale.
Obs: Procesul de descompunere în subprobleme se opreşte când acestea permit o rezolvare directă. Această metodă se aplică în general, pentru prelucrarea vectorilor dar şi a altor tipuri de date.


Слайд 4 Aplicaţii
Să se determine cea mai mare valoare dintr-un

AplicaţiiSă se determine cea mai mare valoare dintr-un şir de n

şir de n numere întregi, folosind metoda Divide et

Impera.
Rezolvare:
Dacă şirul are un singur element, acesta va fi elementul maxim. Pentru un subşir oarecare de cel mult 2 elemente vom avea următoarele etape:
Împărţim şirul iniţial x [ p . . q ] în două subşiruri x [ p . . m] şi x [ m+1 . . q], unde m este mijlocul şirului: m=[(p+q)/2]. Cele două subşiruri pot fi împărţite la rândul lor în alte două şiruri până se ajunge la un subşir de dimensiune 1. Notăm cu x [p . . q] subşirul format din toate elementele şirului dintre x[p] şi x[q].
Se determină recursiv elementul maxim pentru cele două subşiruri (a şi b).
Se combină cele două maxime obţinute pentru aflarea maximului din şirul iniţial.


Слайд 5 Exemplu numeric




r11= 12 r12 = 15

Exemplu numeric r11= 12		 r12 = 15 		 r21 = 23

r21 = 23 r11 = 15


r1 = 15 r2 = 23


r = 23



Слайд 6 Subprogramul maxim
Type vector=array[1..100] of integer;
Var x:vector;

Subprogramul maximType vector=array[1..100] of integer;Var x:vector;  i,n:integer;function maxim ( p

i,n:integer;

function maxim ( p , q : integer

) : integer;
var m, a, b : integer;
begin
if p < q then begin
m := ( p + q ) div 2;
a := maxim ( p , m );
b := maxim ( m + 1 , q ) ;
if a > b then maxim := a
else maxim := b;
end
else maxim := x [ p ];
end;


Слайд 7 Programul principal
begin
write(‘n=‘); readln(n);
for i:=1

Programul principalbegin write(‘n=‘); readln(n); for i:=1 to n do begin

to n do
begin
write(‘x[‘,

i ,’]=‘);
readln ( x[i] );
end;
writeln (‘ maximul=‘, maxim ( 1, n ));
readln;
end.

Слайд 8 Aplicaţii grilă
1. Ce va afişa programul următor?

var v

Aplicaţii grilă1. Ce va afişa programul următor?var v : array [

: array [ 1 . . 50 ] of

integer ; i : integer;

function s ( a , b : byte ): longint;
begin
if a > b then s := 0
else if a=b then s := v [ a ]
else s := s ( a , ( a + b ) div 2 ) + s ( ( a + b ) div 2 + 1 , b );
end;

begin
for i := 1 to 20 do v [ i ] := i;
writeln ( s ( 5 , 9 ) );
readln;
end. a) 29 b) 35 c) 45 d) 14


Слайд 9 Aplicaţii grilă
2. Ce va afişa programul pentru n

Aplicaţii grilă2. Ce va afişa programul pentru n = 10 ?var

= 10 ?

var n : integer;

function s ( a

, b : integer ) : longint ;
var m : byte;
begin
if a <= b then
begin
m := ( a + b ) div 2;
s := m + s ( a , m-1 ) + s ( m+1 , b );
end
else s := 0;
end;
begin readln(n);
writeln ( s ( 1 , n ) );
end. a) 29 b) 35 c) 41 d) 45


  • Имя файла: divide-et-impera-metodei-şi-aplicaţii.pptx
  • Количество просмотров: 103
  • Количество скачиваний: 0