Cours

Les résumés de cours rappellent les résultats essentiels.

Exercices

Exercices et problèmes corrigés.

Bac Tunisie

Sections: Maths - Sciences Exp - Techniques
 

Les sous programmes: Les procédures/EX 1

-->

Soit T un tableau contenant N entiers > 0 avec ( 5 < N < 20) et N est pair.             
On se propose de verifier si T est (identique,symetrique,reversible,croissant,normal).

program verification; 
uses wincrt;
type tab=array[1..30] of integer;
var i,n:integer; t:tab;

procedure saisie(var n:integer;var t:tab);
var i:integer;
begin
repeat
writeln('donner n');
readln(n);
until (n<=20) and (n>=3);



for i:=1 to n do
repeat
writeln('donner t[',i,']');
readln (t[i]);
until (t[i]>0)
end;


function ident(n:integer;t:tab):boolean;
var i:integer;b:boolean;
begin
i:=0;
repeat
i:=i+1;
b:=t[i] =t[i+1];
until not(b) or (i=n-1);
ident:=b;
end;
function sym(n:integer;t:tab):boolean;
var i:integer;b:boolean;
begin
i:=0;
repeat
i:=i+1;
b:=t[i]=t[n-i+1];
until not(b) or (i=n div 2);
sym:=b ;
end;

function croiss(n:integer;t:tab):boolean;
var i:integer;b:boolean;
begin
i:=0;
repeat
i:=i+1;
b:=t[i]<t[i+1]
until not(b) or (i=n-1);
croiss:=b;
end;

function inverse(x:integer):integer;
var b:boolean;ph,ch:string;v,i,e:integer; 
begin
str(x,ch);
ph:='';
for i:=1 to length (ch) do
ph:=ch[i]+ph;
val(ph,v,e);
inverse:=v;
end;

function revers(n:integer;t:tab):boolean;
var i:integer;b:boolean;
begin
i:=0;
repeat
i:=i+1;
b:=t[i]=inverse(t[n-i+1]);
until not(b) or (i=n div 2);
revers:=b;
end;



begin
saisie(n,t);
     if ident (n,t) then write ('le tableau t est identique')
     else if revers(n,t) then write ('le tableau est reversible')
     else if croiss(n,t) then write ('le tableau est croissant')
     else if sym(n,t) then write('le tableau est symetrique')
     else write('le tableau est normale')
     end.

-->