program exe4p91;
uses wincrt;
var ch:string;
c:char;
function pair_c(ch:string;c:char;i,nb:integer):boolean;
begin
if length(ch)<2 then pair_c:=false
else if i>length(ch) then if nb mod 2=0 then pair_c:=true else pair_c:=false
else if ch[i]=c then pair_c:=pair_c(ch,c,i+1,nb+1)
else pair_c:=pair_c(ch,c,i+1,nb);
end;
begin
writeln('ch=');readln(ch);
writeln('caractere=');readln(c);
if pair_c(ch,c,1,0) then writeln(ch,' contient un nombre pair de ',c)
else writeln(ch,' ne contient pas un nombre pair de ',c)
end.
La fonction retourne un booléen car dans l’énonce on demande d’écrire une fonction qui teste si une chaîne contient un nombre pair de c.
{ solution de l'exercice tri insertion récursive d'un tableau }
program tri_insertion;
uses wincrt;
type tab = array[1..50]of integer;
var
t:tab;
n, i :integer;
procedure remplir(var t:tab;var n:integer);
begin
repeat
writeln('n=');readln(n);
until n in [2..50];
for i:= 1 to n do
begin
writeln('t[',i,']');
readln(t[i]);
end;
end;
procedure decaler(var t:tab;j,tmp:integer);
begin
if j>=1 then if t[j]> tmp then begin t[j+1]:=t[j] ;decaler(t,j-1,tmp);end else t[j+1]:=tmp
else t[j+1]:=tmp;
end;
procedure insertion(var t:tab;d,n:integer);
begin
if d<=n then begin if t[d] insertion(t,d+1,n);end;
end;
begin
remplir(t,n);
insertion(t,2,n);
for i:= 1 to n do
writeln('t[',i,']= ',t[i]);
end.
N.B : J’attends vos commentaires