Vous êtes sur la page 1sur 15

Algorithmique et Programmation 1 TI1_CAD

Travaux Dirigés 1 : Les éléments de base


Exercice 1
Quelles seront les valeurs des variables A, B et Res après l’exécution des instructions
suivantes :
A 10
B 4
A A Mod B
Res B + A
B B Div Res
Res Res+A*B

Exercice 2
Pour A=2, B=3 et C=5 donner la valeur de la variable Res après l’exécution de l’instruction
suivante :
Res  (C Mod B=A) OU (C Mod A=B) ET (B Mod A !=0)

Exercice 3
Expliquer ce que fait l’algorithme suivant :
Algorithme Inconnu
Variables
NbreH : Entier
Tarif, Total : Réel
Debut
Lire (NbreH)
Lire (Tarif)
Total  (NbreH * Tarif)
Ecrire ("Total=", Total)
Fin

Exercice 4
Corriger l’algorithme suivant :
1 Algorithme Calcul
Types
Variables

Mme Bourkhis Dalel 2023/2024 | ISET de Tataouine


Algorithmique et Programmation 1 TI1_CAD

L, l : Entier
Ecrire ("Donner la longueur et la largeur")
P= L+(l*2)
SL*l
Ecrire (Perimetre=,"P")
Ecrire ("Surface=S")
Fin

Exercice 5
Ecrire un algorithme qui permet d’afficher le code ASCII du caractère qui suit un caractère
donné.

Exercice 6
Ecrire un algorithme qui permet de permuter trois entiers données.

Exercice 7
Ecrire un algorithme qui permet de lire le rayon d’un cercle donné et d’afficher la surface et le
périmètre correspondants.

Exercice 8
Ecrire un algorithme qui permet de convertir une durée exprimée en secondes en h:m:s.

Mme Bourkhis Dalel 2023/2024 | ISET de Tataouine


Algorithmique et Programmation 1 TI1_CAD

Travaux Dirigés 2 : Les structures conditionnelles


Exercice 1
Quelles sont les valeurs des variables a, b, c, d après l'exécution de la portion de code suivante
pour les valeurs initiales suivantes :
 a=5, b=3, c=4, d=6
 a= -1, b= -2, c= -2, d=3

Si ((a>0 ou b>c) et (d>a ou d<5)) alors


a← 0
d← b+c
sinon
c← a-b
si (c>0) alors
d← -d
fin si
b← 0
fin si

Exercice 2
Ecrire un algorithme qui permet de lire un caractère puis de vérifier s'il s'agit d'un chiffre,
d'une lettre ou d'un symbole.

Exercice 3
Ecrire un algorithme qui permet d’afficher le maximum de trois entiers donnés.

Exercice 4
Ecrire un algorithme qui calcule le salaire journalier d’un employé à partir du nombre
d’heures travaillées et du tarif de base. L’employer qui travaille plus que 7h bénéfice de 5%
du tarif de base pour chaque heure de plus.

Exercice 5
Un entier n de 4 chiffres est dit valable, si ses trois derniers chiffres sont des multiples de son
chiffre de milliers.
Exemple 1 : L’entier 2648 est valable car son chiffre des milliers est 2 et il est suivi par les
chiffres 6, 4 et 8 qui sont tous multiples de 2.
Exemple 2 : L'entier 3179 n'est pas valable car 1 et 7 ne sont pas multiples de 3.
Ecrire un algorithme qui permet de lire un entier n positif composé de 4 chiffres puis
d’afficher s’il est valable ou non.
3

Exercice 6

Mme Bourkhis Dalel 2023/2024 | ISET de Tataouine


Algorithmique et Programmation 1 TI1_CAD

Ecrire un algorithme qui permet de saisir la date d'aujourd'hui (utilisez trois variables) puis
affiche la date du lendemain sous la forme suivante j/m/a.

Exercice 7
Ecrire un algorithme qui permet de saisir deux nombres, et un opérateur (+, -, *, /) et d'évaluer
l'expression arithmétique correspondante.

Exercice 8
Ecrire un algorithme qui permet de lire la moyenne d’un étudiant et d’afficher sa mention en
tenant compte de la classification suivante :
1012 : Passable
1214 : Assez bien
1416 : bien
1618 : Très bien
1820 : Excellent

Mme Bourkhis Dalel 2023/2024 | ISET de Tataouine


Algorithmique et Programmation 1 TI1_CAD

Travaux Dirigés 3 : Les structures itératives


Exercice 1
1- Donner le nombre d'itérations de la boucle suivante:

i← 0
Repeter
i← 2*i+1
jusqu'à (i>7)

2- Soit la boucle suivante:

j← ?
Tantque (j>0) Faire
x← x+10
j← j-1
Fin Tantque

- donner une valeur à la variable j pour que la boucle ne s'exécute aucune fois
- donner une valeur à la variable j pour que la boucle s'exécute une fois
- donner une valeur à la variable j pour que la boucle s'exécute 10 fois

3- Quel problème rencontre-t-on avec le code suivant:

i0
Tantque (i<5) faire
Ecrire ("Bonjour")
Fin Tantque

4- Transformer la boucle "Pour" suivante en une boucle "Tantque..Faire".

Pour i de 10 à 25 [pas=5 Faire


Ecrire ("Bonjour")
Fin Pour

5- Donner le résultat d’exécution de cette portion du code:

n1
Tantque (n < 10) faire
Ecrire (n," ")
nn+2
Fin Tantque

5 Exercice 2
Ecrire un programme permettant d’afficher les entiers de 1 à 10 dans l'ordre inverse.

Mme Bourkhis Dalel 2023/2024 | ISET de Tataouine


Algorithmique et Programmation 1 TI1_CAD

Exercice 3
Ecrire un programme qui permet de lire deux entiers positifs et d’afficher leur PGCD.

PGCD(a-b, b) si a>b
PGCD(a,b) = PGCD(a, b-a) si b>a
a si a=b

Exercice 4
Ecrire un algorithme qui permet de calculer la somme suivante pour un entier N donné :

S=1+1/2+1/3+…….+1/N

Exercice 5
Ecrire un algorithme qui permet de vérifier si un entier donné est premier ou non. Un entier
est premier s’il est divisible seulement par 1 et lui-même.

Exercice 6
Ecrire un algorithme qui permet de vérifier si un entier donné est parfait. Un entier est parfait
s’il est égal à la somme de ses diviseurs à part lui-même.
Exemple :
- Les diviseurs de 6 sont 1, 2, 3, 6
- 1+2+3=6
- Donc 6 est parfait

Exercice 7
Ecrire un algorithme qui permet de lire un entier n compris entre 100 et 999 et de vérifier s'il
est cubique ou non.
Un entier est dit cubique s’il est égal à la somme des cubes de ses chiffres.
Exemple : 153=13+53+33
Exercice 8
Ecrire un algorithme qui lit un entier n tel que (3=<n<=10) et qui affiche un triangle des
étoiles de la façon suivante:
- Le triangle est formé par n lignes.
- La ligne numéro i contient i étoiles.
Exemple: pour n=5 on aura le triangle suivant:

*
**
***
6 ****
*****

Mme Bourkhis Dalel 2023/2024 | ISET de Tataouine


Algorithmique et Programmation 1 TI1_CAD

Travaux Dirigés 4 : Les chaines de caractères

Rappel de Cours :
1. Définition

Une chaine de caractères est une suite de caractères qui peut contenir jusqu’à 256 caractères.
Une chaine ne contenant aucun caractère est dite chaine vide.

2. Déclaration
Pour définir une variable de type chaine, on utilise la notation suivante:
Nom_Variable : Chaine  Dans ce cas, la variable peut contenir jusqu’à 256 caractères
Ou
Nom_Variable : Chaine [Taille]  Ici, la variable peut contenir au maximum un nombre de
caractères égal à Taille.

Exemple :
Salutation : Chaine  peut contenir jusqu'à 256 caractères
Nom : Chaine[30]  contient au plus 30 caractères
Prenom : Chaine[20]  contient au plus 20 caractères

Remarque :
Une chaine de caractères constante est notée entre guillemets.
Exemple : Nom "Ben Ahmed"

3. Opérations sur les chaines de caractères

 Accès à un caractère dans une chaine

Pour accéder à un caractère de la chaine, il suffit d’indiquer le nom de cette chaine suivi d’un
entier entre deux crochets qui représente la position du caractère dans la chaine. L’indexation
de caractères d’une chaine commence par 1.

Nom_Chaine[Position_Caractère]
Exemple :
Salutation"Bonjour"
ASalutation[4]  ça donne que la variable A contient le caractère 'j'.
B Salutation[2]  ça donne que la variable B contient le caractère 'o'.

 Concaténation

7 La concaténation des chaines de caractères signifie l’assemblage des chaines en utilisant


l’opérateur « + ».

Exemple :

Mme Bourkhis Dalel 2023/2024 | ISET de Tataouine


Algorithmique et Programmation 1 TI1_CAD

Nom"Ben Ahmed"
Prenom"Yassine"
NomComplet Nom+" "+Prenom
 La variable NomComplet contient la chaine "Ben Ahmed Yassine".

 Comparaison

Il est possible d’effectuer une comparaison entre deux chaines de caractères. La comparaison
se fait caractère par caractère de gauche à droite selon le code ASCII.
Exemple :
- La comparaison "Algo" < "Prog" donne la valeur Vrai : car le caractère 'A' a un code
ASCII plus petit que celui de 'P'.
- "forme" < "format" donne faux car le caractère 'e' a un code ASCII plus grand que le code
ASCII de 'a'.
- "" = " "  Faux : car une chaine vide est différente d’une chaine qui contient le caractère
espace.

4. Procédures et fonctions standards (prédéfinies) sur les chaines

 Procédures standards

 Efface (ch,p,n) : Enlève n caractères de la chaine ch à partir de la position p.


Exemple :
ch "bonjour"
Efface (ch,1,3) ==> Résultat: ch"jour"

 Insère (ch1,ch2,p) : Insère la chaine ch1 dans la chaine ch2 à partir de la position p.
Exemple :
ch1 "jour"
Insère ("née",ch1,5) ==> Résultat: ch1"journée"

 Convch (n,ch) : Convertit le nombre n en une chaine de caractères ch.


Exemple :
n2011
Convch (n,ch2)  ==> Résultat: ch2"2011"

 Fonctions standards

 Long (ch) : Retourne la longueur de la chaine ch (le nombre de caractères de ch).


Exemple :
Str  "Programmation"
N  Long(Str) ==> Résultat: N13

8  Copie (ch,p,n) : Copie n caractères de la chaine ch à partir de la positon p.

Exemple :
Str  "Informatique"

Mme Bourkhis Dalel 2023/2024 | ISET de Tataouine


Algorithmique et Programmation 1 TI1_CAD

ch  Copie (Str,1,4) ==> Résultat: ch"Info"

 Position (ch1,ch2) : Retourne la position de la première occurrence de la chaine ch1 dans


la chaine ch2.
Exemple :
ch  "Lionne"
n  Position("Lion",ch) ==> Résultat: n1

Exercice corrigé
Soient les deux chaines de caractères suivantes :
ch= "bonjour"
str="cours algo"
Compléter le tableau suivant :

Opération Résultat
LLong (ch)
ch1Copie (ch,1,3)
Efface (str,1,6)
Insère (" 1",str,11)
PPosition ("our",str)
Convch(2000,ch)

Mme Bourkhis Dalel 2023/2024 | ISET de Tataouine


Algorithmique et Programmation 1 TI1_CAD

Travail demandé :

Exercice 1
Ecrire un algorithme qui renvoie le nombre d’occurrence d’un caractère donné C dans une
chaine donnée ch.

Exercice 2

Ecrire un algorithme qui permet de vérifier si une chaine de caractères donnée est en
majuscule ou en minuscule.

Exercice 3
Ecrire un algorithme qui renvoie la chaine inverse d’une chaine donnée.

Exercice 4
Ecrire un algorithme qui renvoie le nombre des mots dans une chaine donnée.

Exercice 5
Ecrire un algorithme qui permet de vérifier si une chaine donnée est un palindrome.
Une chaine est dite palindrome si elle se lit de la même façon de gauche à droite et de droite à
gauche.
Exemple : "radar", "ada"

Exercice 6
Ecrire un sous programme qui détermine si une chaine de caractère Ch1 est un préfixe d’une
autre chaine Ch2. Ch1 est dite préfixe de Ch2 si la chaine Ch1 est le début de la chaine Ch2.
Exemple :
Les préfixes de la chaine "algorithme" sont toutes les chaines suivantes:
"a", "al", "alg", "algo", "algor", "algori", "algorit", "algorith", "algorithm" et "algorithme".

10

Mme Bourkhis Dalel 2023/2024 | ISET de Tataouine


Algorithmique et Programmation 1 TI1_CAD

Travaux Dirigés 5 : Les Procédures et les Fonctions

Exemple de cours : les procédures


Exemple 1:

Algorithme Initiation
Procedure Etoile( )
Debut
Pour i de 1 à 100 faire Déclaration de la procédure
Ecrire ("*")
Fin Pour
Fin
Debut
Etoile( )
Ecrire ("Première Procédure") deux appels de la procédure
Etoile( )
Fin

 Cet algorithme fait appel deux fois à la procédure Etoile qui permet d’afficher 100 étoiles
successives.

La structure d’une procédure est analogue à celle d’un algorithme. Elle possède un entête, une partie
déclarative et un corps.
Pour appeler une procédure simple, il suffit d’écrire son nom suivi de deux parenthèses vides là où on
a besoin dans le corps de l’algorithme appelant.
Une variable locale est déclarée dans une procédure, elle ne peut être utilisée qu’à l’intérieur de celle-
ci.
Une variable globale est déclarée au début de l’algorithme principal, elle peut être utilisée dans le
corps de cet algorithme ou par les différents sous programmes.
Il est fortement recommandé d’utiliser autant que possible des variables locales pour rendre les
modules plus autonomes et par conséquent réutilisables par d’autres programmes.

Exemple2 :
Ecrire une procédure qui affiche à l'écran une ligne de 15 étoiles puis passe à la ligne suivante.

Solution :
Procédure Etoile()
Variables i : entier
Début
Pour i Allant de 1 à 15 faire
Afficher("*")
FinPour
11 //\n : retour à la ligne
Afficher("\n")
FinProc

Mme Bourkhis Dalel 2023/2024 | ISET de Tataouine


Algorithmique et Programmation 1 TI1_CAD

Exemple3 :
En utilisant la procédure Etoiles déclarée dans l'exemple précédent, écrire un algorithme permettant de
dessiner un carré d'étoiles de 15 lignes et de 15 colonnes.
Solution :
Algorithme carré_étoiles
Variables j : entier

//Déclaration de la procédure Etoiles()


Procédure Etoile()
Variables i : entier
Début
Pour i Allant de 1 à 15 Faire
Afficher("*")
FinPour
Afficher("/n")
FinProc

//Algorithme principal (Partie principale)


Début
Pour j Allant de 1 à 15 Faire
//Appel de la procédure Etoiles
Etoile()
FinPour
Fin

Exemple 4 :
Soit l'algorithme suivant :
Algorithme Passage_par_valeur
Variables N : entier

//Déclaration de la procédure P1
Procédure P1(A : entier)
Début
A←A*2
Afficher(A)
FinProc

//Algorithme principal
Début
N←5
P1(N)
Afficher(N)
Fin

Cet algorithme définit une procédure P1 pour laquelle on utilise le passage de paramètres par valeur.
Lors de l'appel de la procédure, la valeur du paramètre effectif N est recopiée dans le paramètres
12 formel A. La procédure effectue alors le traitement et affiche la valeur de la variable A, dans ce cas 10.
Après l'appel de la procédure, l'algorithme affiche la valeur de la variable N dans ce cas 5.
La procédure ne modifie pas le paramètre qui est passé par valeur.

Mme Bourkhis Dalel 2023/2024 | ISET de Tataouine


Algorithmique et Programmation 1 TI1_CAD

Exemple 5 :
Reprenons l'exemple précédent :
Algorithme Passage_par_référence
Variables N : entier

//Déclaration de la procédure P1
Procédure P1 (Var A : entier)
Début
A←A*2
Afficher(A)
FinProc

//Algorithme Principal
Début
N←5
P1(N)
Afficher(N)
Fin

A l'exécution de la procédure, l'instruction Afficher(A) permet d'afficher à l'écran 10. Au retour dans
l'algorithme principal, l'instruction Afficher(N) affiche également 10.
Dans cet algorithme le paramètre passé correspond à la référence (adresse) de la variable N. Elle est donc
modifiée par l'instruction :
A A *2

Remarque :
Lorsqu'il y a plusieurs paramètres dans la définition d'une procédure, il faut absolument qu'il y en ait le
même nombre à l'appel et que l'ordre soit respecté.

Exemple 6 :
Ecrire un algorithme qui permet de permuter les valeurs de deux entiers A et B.
Solution :
Algorithme Permutation
Variables
A,B : Entier
Procedure permut (var n,m : Entier)
Variables
aux : Entier
Debut
aux n
n m
m aux
Fin
Debut
Ecrire ("Donner deux variables")
13 Lire (A,B)
permut (A,B)
Ecrire ("Nouvelle valeur de A=", A ,"Nouvelle valeur de B=", B)
Fin

Mme Bourkhis Dalel 2023/2024 | ISET de Tataouine


Algorithmique et Programmation 1 TI1_CAD

Exemple de cours : les fonctions


Exemple 1
Algorithme Somme
Variables
A,B : Entier
Fonction Somme (A,B : Entier) : Entier
Debut déclaration de la fonction
Somme A+B
Fin
Debut
Ecrire ("Donner deux variables") appel de la fonction
Lire (A,B)
Ecrire ("La somme est", Somme (A,B))
Fin

Exemple 2:
Définir une fonction qui renvoie le plus grand de deux nombres différents.

Solution :
//Déclaration de la fonction Max
Fonction Max(X: réel, Y:réel) : réel
Début
Si X > Y Alors
Retouner X
Sinon
Retouner Y
FinSi
FinFonction

Exemple 3:
Ecrire un algorithme appelant, utilisant la fonction Max de l'exemple précédent.

Solution :
Algorithme Appel_fonction_Max
Variables A, B, M : réel

//Déclaration de la fonction Max


Fonction Max(X: réel, Y: réel) : réel
Début
Si X > Y Alors
Retourner X
Sinon
Retourner Y
14
FinSi
FinFonction

Mme Bourkhis Dalel 2023/2024 | ISET de Tataouine


Algorithmique et Programmation 1 TI1_CAD

//Algorithme principal
Début
Afficher("Donnez la valeur de A :")
Saisir(A)
Afficher("Donnez la valeur de B :")
Saisir(B)
//Appel de la fonction Max
M ← Max(A,B)
Afficher("Le plus grand de ces deux nombres est : ", M)
Fin

Travail demandé :
Exercice 1
Ecrire un sous programme qui permet de calculer le pgcd de deux entiers positifs selon la
méthode suivante :
A Si A=B
PGCD(A,B)= PGCD(A-B,B) Si A>B
PGCD(A,B-A) Si B>A

Exercice 2
Ecrire une fonction qui permet de calculer le nombre d’années nécessaire pour que l’âge du
père soit le double de l’âge du fils.
Exemple : Si l’âge de père est 45 et l’âge de fils est 20, après 5 ans l’âge de père sera le
double de l’âge de fils (50 et 25).

Exercice 3
Ecrire un sous programme qui permet de vérifier si un entier donné compris entre 100 et 999
est palindrome.

Exercice 4
Ecrire un sous programme qui permet de vérifier si deux entiers donnés sont amis.
Deux entiers sont dits amis si la somme de tous les diviseurs du premier entier à part lui-
même est égal au deuxième entier et inversement.

15

Mme Bourkhis Dalel 2023/2024 | ISET de Tataouine

Vous aimerez peut-être aussi