Académique Documents
Professionnel Documents
Culture Documents
program horloge;
uses wincrt, windos;
var h,m,s,c: word;
begin
repeat; gotoxy (37,12);
gettime (h,m,s,c);
writeln (h:2,':',m:2,':',s:2);
until 1=2
end.
Première méthode:
program insert1;
uses wincrt;
var a,a1,a2: integer; b,c:longint;
begin
writeln ('donner a');
readln (a);
writeln ('donner b');
readln (b);
a1:= a div 10;
a2:= a mod 10;
c:= b div 100;
b:=c*10000+a1*1000+c*100+a2*10+c;
writeln ('b devient', b);
end.
-->
Deuxième méthode:
program insert2;
uses wincrt;
var a,e:integer; b:longint; ch,ph:string;
begin
repeat
writeln ('donner un nbr de 2 chiff');
readln(a);
until (a>=10)and (a<=99);
repeat;
writeln ('donner un nbr de 3 chiff ident');
readln (b);
str (b,ch);
until (ch[1] = ch[2]) and (ch[2] = ch[3])
and (length (ch) = 3);
str (a,ph);
insert(ph[1], ch, 2);
insert (ph[2], ch , 4);
val (ch,b,e);
writeln('b devient',b);
end.
program date;
uses wincrt;
var
d:string;
j,m,a,e:integer;
begin
writeln ('saisir une date valide ');
readln(d);
val(copy(d,1,pos('/',d)-1),j,e);
delete(d,1,pos('/',d));
val(copy(d,1,pos('/',d)-1),m,e);
delete(d,1,pos('/',d));
val(d,a,e);
program chaine ;
uses wincrt ;
var
ch: string;
i,v,c: integer;
b:boolean;
begin
repeat
writeln('donner une chaine qui renferme seulement des lettres ou des espaces ');
readln(ch);
repeat
for i:= 1 to length(ch) do
b:= upcase(ch[i]) in ['A'..'Z',' '];
until not(b) or (i=length(ch))
until b ;
CLRSCR;
v:=0; c:=0;
for i:= 1 to length(ch) do
if upcase(ch[i]) in ['A','E','Y','U','I','O'] then
v:= v+1
else
if ch[i] <> ' ' then
c:=c+1;
program jeu;
uses wincrt;
var ph,m:string;
b:boolean;
f,i,n:integer;
c:char;
begin
repeat
gotoxy(5,3);
writeln('saisir un mot');
gotoxy(20,3);
readln(m);
i:=0;
repeat;
i:=i+1;
b:= m[i] in ['a'..'z','A'..'Z'];
until not(b) or (i=length(m));
until b;
clrscr;
n:=length(m);
for i:= 1 to n do
m[i]:= upcase(m[i]);
ph:='';
for i:= 1 to n do
ph:=ph+'-';
f:=0;
gotoxy(60,8);
writeln(ph);
repeat
repeat
gotoxy(10,5);
writeln('il vous reste ', 2*n-f, ' essais ');
gotoxy(10,7);
write('proposer une lettre majus');
gotoxy(45,7);
readln(c);
if (ph=m) then
writeln ('Bravo')
else
writeln('Echec: ',m)
end.
Si ch=Sablier
program sablier;
uses wincrt;
var i:integer; ch,ph:string; b:boolean;
begin
repeat
writeln('saisir un mot');
readln(ch);
clrscr;
i:=0;
repeat
i:=i+1;
b:= upcase(ch[i]) in ['A'..'Z'];
until not(b) or (i=length(ch));
ph:=ch;
writeln;
for i:=1 to length(ch) div 2 do
begin
writeln(ch);
writeln(ch);
ch[i]:= ph[i];
ch[length(ch)-i+1]:= ph [length(ch) -i+1];
writeln(ch);
end;
end.
program tableau;
uses wincrt;
var t:array [1..20] of integer;
max,min,i,s,n:integer;
begin
repeat
write('n=?');
readln(n);
until (n>=5) and (n<=20);
for i:=1 to n do
repeat
write('donner t[',i,']');
readln(t[i]);
until t[i]>0;
s:=0;
for i:=1 to n do
s:=s+t[i];
min:=t[1];
for i:=2 to n do
max:= t[1];
for i:=2 to n do
end.
program eclate;
uses wincrt;
var t,v,c: array[1..20]of char;
n,nv,nc,i:integer;
begin
repeat
write('n=?');
readln(n);
until (n>=5) and (n<=20);
for i:=1 to n do
repeat
write('donner t[',i,']');
readln(t[i]);
until (upcase(t[i])) in ['A'..'Z'];
nv:=0;
nc:=0;
for i:=1 to n do
if (upcase(t[i])) in ['A','E','Y','U','I','O'] then
begin
nv:=nv+1;
v[nv]:=t[i];
end
else
begin
nc:=nc+1;
c[nc]:=t[i];
end;
writeln;
end.
Première Méthode:
program nature;
uses wincrt;
var c:char;
begin
writeln('saisir un caractere');
readln(c);
else
if c in ['0'..'9'] then
writeln('ce caractere est un chiffre')
else
if c in [',',';',':','!','?','.'] then
writeln('ce caractere est un signe de ponctuation')
else
writeln('ce caractere est un symbole');
end.
-->
Deuxième Méthode:
program nature;
uses wincrt;
var c:char;
begin
writeln('saisir un caractere');
readln(c);
case c of
else
writeln('ce caractere est un symbole');
end;
end.
program nbr_jrs;
uses wincrt;
var d:string;
m,a,e:integer;
begin
repeat
writeln('saisir un date sous la forme de jj/mm/aaaa');
readln(d);
until (d[3]='/') and (d[6]='/') and (length(d)=10);
val(copy(d,4,2),m,e);
val(copy(d,7,4),a,e);
case m of
else write('invalide');
end;
end.
program histogramme;
uses wincrt;
var n,k,j,i:integer;
begin
repeat
writeln('saisir un entier naturel compris entre 5 et 20');
readln(n);
until (n>=5) and (n<=20);
clrscr;
k:=1;
for i:=1 to n do
begin
for j:=1 to i do
begin
write(k);
k:=k+1;
if k=10 then
k:=1;
end;
writeln;
end;
end.
program sequences;
uses wincrt;
var i,f,n:integer;
t:array [1..20]of integer;
begin
repeat
write('n=?');
readln(n);
until (n>=5) and (n<=20);
for i:=1 to n do
repeat
writeln('t[',i,']');
readln(t[i]);
until t[i] > 0;
write ('(',t[1]); f:=1;
for i:= 2 to n do
if t[i] > t[i-1] then
write(',' , t[i])
else
begin
write(');(' , t[i]);
f:=f+1;
end;
writeln(').');
write(f , ' sequences');
end.
Soit T un tableau contenant N chaines formées
par des lettres alphabétiques et V un tableau
contenant M entiers > 0 avec N et M sont
compris entre 3 et 20.
On se propose d’afficher les chaines
symétriques dans T et les non symétriques
dans V.
program symetrique;
uses wincrt ;
var t:array [1..30]of string;
v:array [1..30]of integer;
n,m,i:integer;
ch:string;
function verif(ch:string):boolean;
var i:integer;
b:boolean;
begin
i:=0 ;
repeat
i:=i+1;
b:=upcase(ch[i]) in ['A'..'Z'] ;
until not (b) or (i=length (ch));
verif:=b;
end;
function sym(ch:string):boolean ;
var b: boolean;
i:integer;
begin
i:=0;
repeat
i:=i+1;
b:= upcase (ch[i])=upcase(ch[length (ch)-i+1]);
until not (b) or (i=length (ch)div 2) ;
sym:=b ;
end;
begin
repeat
writeln ('donnere la valeur n ');readln (n);
until (n>=3)and (n<=20);
for i:=1 to n do
repeat
writeln ('donner t[',i,']');readln (t[i]);
until verif(t[i]);
repeat
writeln ('donnere la valeur m ');readln (m);
until (m>=3)and (m<=20);
for i:=1 to m do
repeat
writeln ('donner v[',i,']');readln (v[i]);
until (v[i]>0);
program verification;
uses wincrt;
type tab=array[1..30] of integer;
var i,n:integer; t:tab;
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.