Program Recherche_Dichotomique_tab; type Tab = Array [1..50] of Integer; Var T : Tab; N, V : Integer; (***************************) Procedure Saisie (Var T : Tab ; Var n, v : Integer); Var i : Integer; Begin Repeat Writeln ('Donner un entier'); Readln (n); Until n in [10..50]; Writeln ('Saisir les éléments de T en ordre croissant'); Readln (T[1]); For i:=2 To n Do Repeat Readln (T[i]) Until T[i] >= T[i-1]; Writeln ('Donner la valeur à chercher'); Readln (v); End; Function Recherche (v, n : Integer ; T : Tab) : Integer; Var d, g, m, pos : Integer; Begin g:=1 ; d:=n ; pos:=0; Repeat m:=(g+d) div 2; If V=T[m] Then pos:=m Else If V>T[m] Then g:=m+1 Else d:=m-1; Until (pos=m) Or (g>d); recherche:= pos; End; (************************) Begin Saisie (T, N, V); If Recherche (V, N, T) = 0 Then Writeln (V, ' ne figure pas dans le tableau') Else Writeln (V, ' se trouve à la position ',recherche (V, N, T)); End.