0% ont trouvé ce document utile (0 vote)
179 vues12 pages

Algorithmes et Fonctions en Programmation

Ce document contient la description de plusieurs exercices sur les algorithmes et la programmation. Les exercices portent sur des sujets comme les fonctions, les tableaux, les matrices, les nombres et les chaînes de caractères. Des algorithmes et des fonctions sont proposés comme solutions aux exercices.

Transféré par

bougair2003
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
179 vues12 pages

Algorithmes et Fonctions en Programmation

Ce document contient la description de plusieurs exercices sur les algorithmes et la programmation. Les exercices portent sur des sujets comme les fonctions, les tableaux, les matrices, les nombres et les chaînes de caractères. Des algorithmes et des fonctions sont proposés comme solutions aux exercices.

Transféré par

bougair2003
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Exercice 1 :

Ecrire un sous programme qui reçoit un nombre réel, comme paramètre, teste s’il est négatif,
positif ou nul et affiche le résultat à l’écran.
Prévoir un algorithme appelant ce sous programme.

Procedure signe(a :réel);


Debut
Si a>0 alors
Ecrire (‘le nombre est positif’)
Sinon
Si a<0 alors
Ecrire (‘le nombre est negatif’)
Sinon
Ecrire (‘le nombre est nul’) ;
Finsi
Finsi
fin

Algorithme determination signe ;


Var
X : réel ;
Debut
Ecrire(‘Entrer un nombre réel ‘) ;
Lire(x) ;
Signe(X) ;
fin

Exercice 2 : Ecrire un algorithme en utilisant une fonction pour sommer des éléments d'un
tableau d'entiers
Solution
Type : tab=tableau (50) :entier

fonction somme( T:tab, max_indice: entier):entier;


variable s, i:entier;
début
s0;
pour i 1 à max_indice
ss+T[i]
finpour
retourne(s)
fin

Algorithme Exo2
Variable Som, n,i : entier
T:tab
Debut
Lire (n);
pour i  1 à n
lire (T[i]) ;
fin pour
somsomme(T,n) ;
ecrire (’’la somme des éléments du tableau est : ‘’,som) ;
Fin
Exercice 3 :
Ecrire deux fonctions : une de calcul de moyenne d’un tableau et l’autre pour extraire le
minimum des éléments dans un tableau.

Exercice 4 :
Ecrire une fonction qui calcule le nombre d’occurrences d’un élément donné dans un tableau.
Exercice 5 : Ecrire sous forme d’une procédure la somme de deux matrices réelles
Algorithme Somme_Matrices
Type M=tableau [1..2,1..3] de entier
Variables : A, B, C : M ; i, j en entier
Procédure lecture (S X :M)
Début
Pour i de 1 à 2 Faire
Pour j de 1 à 3 Faire
Lire X(i,j)
Fin Pour
Fin Pour
Fin
Procedure calcul (E A,B:M, S C :M)
Debut
Pour i de 1 à 2 Faire
Pour j de1 à 3 Faire
C[i, j] 2*A[i,j]-3*B[i,j]
Ecrire ("C[", i, j, "]"=C[i,j])
Fin Pour
Fin Pour
Fin
Debut
Lecture(A)
Lecture(B)
Calcul(A,B,C)
Exercice 6 : Ecrire un algorithme qui permet à l’aide d’une procédure appelée lecture et une
fonction appelée calcul de :
- Saisir un tableau T(20) d’entiers.
- Calculer P le nombre des éléments pairs.
- Calculer R le nombre des éléments impairs.
- Afficher P et R.
Solution
Algorithme pairs_impairs
Type mat=tableau [1..2,1..4] de entier
Variable Tableau : M en mat
i, j, P, R en entier
Procedure lecture (S M :mat)
Début
Pour i de 1 à 2 Faire
Pour j de 1 à 4 Faire
Ecrire ("M [", i, j, "]")
Lire M(i,j)
Fin Pour
Fin Pour
Fin
Procedure calcul (E M :mat, S P,R :entier)
Debut
P0 ; R0 ;
Pour i de 1 à 2 Faire
Pour j de 1 à 4 Faire
Si (M[i,j]mod2 =0) Alors PP+1
Sinon RR+1
Fin Si
Fin Pour
Fin Pour
Fin
Debut
Lecture (M)
Calcul (E,P,R)
Ecrire (" le nombre d éléments pairs P = ", P)
Ecrire (" le nombre d éléments pairs R = ", R)
fin
Exercice 7 :
Ecrire un traitement qui informe si un tableau envoyé en argument est formé ou non
d'éléments tous rangés en ordre croissant.

Solution

Fonction TableauCroissant(T, n)
Variable i en Numérique
Variable Flag en Booléen
Début
Flag ← VRAI
i ← 0
TantQue Flag et i < n-1
Flag ← T(i) < T(i+1)
i ← i+1
FinTantQue
Renvoyer Flag
FinFonction
UNIVERSITE HASSAN II – MOHAMMEDIA CASABLANCA

FACULTE DES SCIENCES BEN M’SIK


ANNEE UNIVERSITAIRE 2014-2015

TD d’Algorithmique II : Série 2

Exercice 1 :
Ecrire une fonction récursive qui permet le calcul du carré d’un entier positif.

Exercice 2(correction dans le cours) : Ecrire de manière récursive une fonction qui donne le
plus grand commun diviseur (pgcd) de deux entiers.
Trouver les relations de récurrence en utilisant une méthode de détermination du pgcd basée
sur la soustraction

Exercice 3 (dans le cours)


Reproduire l’exercice du calcul du nombre d’occurrences d’un élément donné dans un tableau
sous la forme d’une fonction récursive.
Début Fonction Occurence (i: ENTIER, T:TAB, n:ENTIER, X:ENTIER):Entier
Si (i<=n) Alors
Si (T[i]=X) Alors
Occurence <-- 1 + Occurence(i+1,T,n,X)
Sinon
Occurence <-- Occurence(i+1,T,n,X)
FinSi
FinSI
Fin Occurence

Exercice 4 :
Ecrire une fonction récursive qui teste l'existence d'une lettre donnée dans une chaîne de
caractères donnée.

1
UNIVERSITE HASSAN II – MOHAMMEDIA CASABLANCA

FACULTE DES SCIENCES BEN M’SIK


ANNEE UNIVERSITAIRE 2014-2015

Exercice 5 (correction dans le cours)


On appelle palindrome une chaîne de caractère qui donne la même chaîne selon que l'on la
lise de gauche à droite ou inversement. Autrement dit, le premier caractère est égal au dernier
caractère, le deuxième caractère est égal à l'avant dernier caractère, etc.
Une définition récursive d'un palindrome est:
· La chaîne vide est un palindrome.
· La chaîne constituée d'un seul caractère est un palindrome.
· aXb est un palindrome si a = b et si X est un palindrome.
Ecrire une fonction récursive qui teste si une chaîne de caractères et qui renvoie vrai si elle
palindrome et faux si elle ne l’est pas.

2
UNIVERSITE HASSAN II – MOHAMMEDIA CASABLANCA

FACULTE DES SCIENCES BEN M’SIK


ANNEE UNIVERSITAIRE 2014-2015

TD d’Algorithmique II : Série 3

Exercice 1 :
On souhaite mémoriser des noms des personnes dans un fichier nommé « personne.dat »
On vous demande alors de créer les sous-programmes qui suivent :

 Une procédure de création du fichier qui contient les noms des personnes.
 Une procédure d’affichage des noms de personnes.
 Une fonction qui permet de chercher un nom passe en argument et qui renvoie vrai si
ce dernier est existant et faux sinon.
 Une procédure qui copie les noms sans compter le nom passe en paramètre.

Ecrire le programme principal faisant appel aux différents sous-programmes.

1
UNIVERSITE HASSAN II – MOHAMMEDIA CASABLANCA

FACULTE DES SCIENCES BEN M’SIK


ANNEE UNIVERSITAIRE 2014-2015

2
UNIVERSITE HASSAN II – MOHAMMEDIA CASABLANCA

FACULTE DES SCIENCES BEN M’SIK


ANNEE UNIVERSITAIRE 2014-2015

3
UNIVERSITE HASSAN II – MOHAMMEDIA CASABLANCA

FACULTE DES SCIENCES BEN M’SIK


ANNEE UNIVERSITAIRE 2014-2015

TD d’Algorithmique II : Série 4

Exercice 1 :

let f x y =
let r = ref 0 and s = ref y in
while !s > 0 do
r := !r+x ;
s := !s-1 ; def divEucl(a,b): # Division euclidienne de a par b
done ; q=0
s := y-1 ; r=a
let t = ref !r in while (r >= b):
while !s > 0 do r=r-b
r := !r+ !t ; q=q+1
s := !s-1 ; return q, r # r_esultat attendu : a = q.b+r avec
done ; 0<=r<b
!r ; ;
Solution

Solution

1
UNIVERSITE HASSAN II – MOHAMMEDIA CASABLANCA

FACULTE DES SCIENCES BEN M’SIK


ANNEE UNIVERSITAIRE 2014-2015

Exercice 2 : Algorithme 2 : Calcul de xn


Fonction puissance(n :entier,x :réel) :réel
c :entier
début
c=n
p=1
tant que c>0 faire
p=p*x
c=c-1
retourne p
finfonction
solution

2
UNIVERSITE HASSAN II – MOHAMMEDIA CASABLANCA

FACULTE DES SCIENCES BEN M’SIK


ANNEE UNIVERSITAIRE 2014-2015

Vous aimerez peut-être aussi