Algorithmique & Programmation

Objectif:

☺ Adopter une démarche algorithmique pour faire face à des situations.


Compétences visées:


☺ Utiliser la structure algorithmique séquentielle dans la résolution de problème à situation simple;

☺ Donner l'instruction opportune au processeur pour la résolution de problème à situation conditionnelle;

☺ Réaliser un programme correct en adoptant une démarche algorithmique convenable.

Cours-d'Algorithmique.pdf


Exercices-d'algorithmique.pdf


Cours-de-programmation en PASCAL


Exercices et leurs corrigés :

EX1: Ecrire un programme PASCAL qui permet de résoudre une équation du second degré.

Solution EX1 :

program RE2D;
var x, x1, x2, delt : real;
a, b, c : integer;
begin
write('Donnez le premier paramètre a :');
read(a);
write('Donnez le deuxième paramètre b :');
read(b);
write('Donnez le troisième paramètre c :');
read(c);
if (a=0) then
write('L-équation n-est pas du second degré !!!')
else
begin
write('L-équation a la forme suivante : ');
writeln(a,'x² + ',b,'x + ',c,' = 0');
delt:= b*b-4*a*c;
end;
if (delt<0) then
write('L-équation n-a pas de solution dans R ':30)
else if (delt=0) then
begin
x:=-b/(2*a);
write('L-équation a une solution unique : x = ',x);
end
else
begin
x1:=(-b+sqrt(delt))/(2*a);
x2:=(-b-sqrt(delt))/(2*a);
write('L-équation a deux solutions différentes :');
write('x1 = ',x1,' , x2 = ',x2);
end;
readln;
readln;
end.


RE2D.EXE



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


EX2: Ecrire un programme qui lit un entier positif inférieur à 999 (composé de trois chiffres au maximum) et d'afficher le nombre de centaines, de dizaines et d'unités.

Solution EX2 :

program Gestionombre;
var nombre, nbreC, nbreD, nbreU, x : integer;
begin
write ('Donnez un nombre entier composé de trois chiffres au maximum : ');
read (nombre);
nbreC := nombre div 100;
x := nombre mod 100;
nbreD := x div 10;
nbreU := nombre mod 10;
writeln ('Le nombre de centaines est : ',nbreC);
writeln ('Le nombre de dizaines est : ',nbreD);
write ('Le nombre d-unités est : ',nbreU);
readln;
readln;
end.


Gestion-nombre.EXE



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


EX3: Ecrire un programme qui lit un entier positif inférieur à 999 (composé de trois chiffres au maximum) et d'afficher la somme de ses chiffres.( Exemple 215-> 2+1+5 = 8 )

Solution EX3 :

program SommeChiffres;
var nombre, nbreC, nbreD, nbreU, x, somme : integer;

{ nbreC --> nombre de centaines }
{ nbreD --> nombre de dizaines }
{ nbreU --> nombre d-unités }

begin
write ('Donner un nombre entier positif composé de trois chiffres au maximum : ');
read (nombre);
nbreC := nombre div 100;
x := nombre mod 100;
nbreD := x div 10;
nbreU :=nombre mod 10;
somme := nbreC + nbreD + nbreU ;
write('La somme des chiffres de cet entier est :',somme);
readln;
readln;
end.


Somme-chiffres.EXE



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


EX4: Ecrire un programme qui permet de conjuguer au temps de l'imparfait un verbe régulier du premier groupe.

Solution EX4 :

program verbeaconjuguer;
var verbe, radical, terminaison, finradical, radicalmoinsfinradical : string;
begin
write('Donnez un verbe à conjuguer :');
read(verbe);

radical := copy(verbe,1,length(verbe)-2);
terminaison := copy(verbe,length(verbe)-1,2);
finradical := copy(radical,length(radical),1);
radicalmoinsfinradical := copy(radical,1,length(radical)-1);

if (terminaison <> 'er') then
begin
write('Il ne s-agit pas d-un verbe du premier groupe');
end

else
if (finradical = 'g') then
begin
writeln('Je ',radical,'eais');
writeln('Tu ',radical,'eais');
writeln('Il ',radical,'eait');
writeln('Elle ',radical,'eait');
writeln('Nous ',radical,'ions');
writeln('Vous ',radical,'iez');
writeln('Ils ',radical,'eaient');
writeln('Elles ',radical,'eaient');
end

else
if (finradical = 'c') then
begin
writeln('Je ', radicalmoinsfinradical,'çais');
writeln('Tu ', radicalmoinsfinradical,'çais');
writeln('Il ', radicalmoinsfinradical,'çait');
writeln('Elle ', radicalmoinsfinradical,'çait');
writeln('Nous ', radical,'ions');
writeln('Vous ', radical,'iez');
writeln('Ils ', radicalmoinsfinradical,'çaient');
writeln('Elles ', radicalmoinsfinradical,'çaient');
end

else
begin
writeln('Je ',radical,'ais');
writeln('Tu ',radical,'ais');
writeln('Il ',radical,'ait');
writeln('Elle ',radical,'ait');
writeln('Nous ',radical,'ions');
writeln('Vous ',radical,'iez');
writeln('Ils ',radical,'aient');
writeln('Elles ',radical,'aient');
end;
readln;
readln;
end.


Conjugaison-Verbes1erGroupe



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


EX5: Ecrire un programme stimulant une calculatrice de 4 opérations [+,-,*,/] en utilisant CASE.

Solution EX5 :

program operation;
var a, b, resultat : real;
operateur : char;
begin
write('Donnez la valeur de a :');
readln(a);
write('Donnez un opérateur ( +,-,*,/ ) :');
readln(operateur);
write('Donnez la valeur de b :');
readln(b);
case operateur of
'+' : resultat := a+b;
'-' : resultat := a-b;
'*' : resultat := a*b;
'/' :
begin
if b=0 then
write('Vous devez donner une valeur différente de 0 à b !!!')
else
resultat := a/b;
end
else write('L-opérateur est invalide');
end;
write('Le résultat est :',resultat:10:3);
readln;
end.


Opérateur.EXE