Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  j
Language: PASCAL
Code:
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.


Comments: