Académique Documents
Professionnel Documents
Culture Documents
DRPS/ISGI LAAYOUNE
Le 12/10/2020
ALGORITHMES :..................................................................................................6
L’affectation .........................................................................................................18
Activité :...............................................................................................................22
a- L’instruction Si :......................................................................................... 30
c- Si ….SinonSi…..Sinon................................................................................ 33
LA BOUCLE Faire….TantQue:..........................................................................41
b. Exemple : .................................................................................................... 73
d. Exemples ..................................................................................................... 74
1. Définition : .................................................................................................84
I. Fonction : ...................................................................................................94
a. Syntaxe : ..................................................................................................... 94
b. Exemple :.................................................................................................... 95
1. Définition : .................................................................................................97
2. Syntaxe : .....................................................................................................97
ALGORITHMES :
Voici une définition informelle du terme algorithme : procédure de calcul bien définie qui prend en entrée
une valeur, ou un ensemble de valeurs, et qui donne en sortie une valeur, ou un ensemble de valeurs. Un
algorithme est donc une séquence d’étapes de calcul qui transforment l’entrée en sortie. L’on peut aussi
considérer un algorithme comme un outil permettant de résoudre un problème de calcul bien spécifié.
L’énoncé du problème spécifie, en termes généraux, la relation désirée entre l’entrée et la sortie.
L’algorithme décrit une procédure de calcul spécifique permettant d’obtenir cette relation entrée/sortie.
Supposons, par exemple, qu’il faille trier une suite de nombres dans l’ordre croissant. Ce problème, qui
revient fréquemment dans la pratique, offre une base fertile pour l’introduction de nombre de techniques
de conception et d’outils d’analyse standard. Voici comment nous définissons formellement le problème
de tri : Entrée : suite de n nombres (a1, a2, ..., an). Sortie : permutation (réorganisation) (a1’, a2’, ..., an’)
de la suite donnée en entrée, de façon que a1’<= a2’ <= ··· <=an’ .
Ainsi, à partir de la suite (25, 45, 59, 62, 41, 28), un algorithme de tri produit en sortie la suite (25, 28, 41,
45, 59, 62). À propos de la suite donnée en entrée, on parle d’instance du problème de tri. En général, une
instance d’un problème consiste en l’entrée (satisfaisant aux contraintes, quelles qu’elles soient,
imposées dans l’énoncé du problème) requise par le calcul d’une solution au problème.
➢ L’utilisateur ou client : c’est le destinataire du programme, c'est lui qui exprime un besoin
d’informatisation d’un processus. Pour simplifier c’est lui qui va utiliser le programme (fournir les
données d’entrées pour avoir des sorties).
➢ Les données d’entrées d’un algorithme sont les données que l’utilisateur doit fournir (saisir au
clavier) à l’algorithme pour que ce dernier produise les résultats souhaités (les sorties de
l’algorithme).
Algorithme Nom
Partie déclaration des données Entête
Début
Instructon1
Instructon2
… Corps
….
InstructonN
Fin
Pour garantir une meilleure lisibilité, il est préférable que le nom de l’algorithme reflète l’objectif de
l’algorithme. Par exemple un algorithme de résolution d’une équation de second degré est intitulé :
On trouve en suite la déclaration des données de l’algorithme, précédée du mot Variables ou constantes si il
s’agit d’une donnée constante.
L’ajout des commentaires à un programme est une bonne pratique, elle a pour
objectif de donner des explications qui facilitent la compréhension de
l’algorithme.
Un commentaire doit être mis entre /* commentaire */ si il est formé de plusieurs lignes, et après // si
il s’agit d’une seule ligne de commentaire.
Une instruction mise en commentaire est ignorée (ne sera pas exécutée)
Les valeurs (informations) pour pouvoir être manipulées, sont stockées dans des variables.
I. Le concept de variable :
Une variable, en informatique, est un emplacement dans la mémoire centrale
(RAM), réservé avec une déclaration, pour stocker une valeur utilisée par les instructions
du programme (donnée d’entrée, de sortie ou intermédiaire).
La RAM
RAM
variable valeur
Une variable est définie par trois caractéristiques : identificateur, type, et valeur à
un instant donné.
1. L’identificateur d’une variable :
Je veux mémoriser l'âge d'une personne dans une variable, j'ai le choix de l'appeler la variable
utilisée :
a , âge, age, ageDeLaPersonneDontJeSuisEntrainDeParler
Remarque:
Le premier nom est trop court, si je n'ai pas lu la description plus haut, je suis totalement
perdu. Le deuxième cas ne convient pas non plus car on évitera tout caractère accentué dans
les noms de variable. Le dernier cas est certes très précis, mais tellement long qu'il en devient
illisible. Bref, le troisième cas semble le plus approprié
Exercice :
Classer ces mots en identificateurs valides et non valides.
MoY,cmp1,3note,nbr
stag,prix_unitaire,quantité,id.client,adr/mail,mc<L,mAx,Min(math).
C’est le contenu de la variable dans un instant donné. Cette valeur change au cours de l’exécution des
instructions d’où le nom variable.
Si elle ne change pas, même d’une exécution à une autre, en parle de constante.
La durée de vie (porté) d’une variable est la durée de l’exécution du bloc d’instruction où elle est déclarée.
a) Entier :
Une variable est dite entière si elle prend ses valeurs dans Z (ensembles des nombres entiers
relatifs).
Opérations définies sur les entiers :
symbole description
Operation
addition
+
- soustraction
multiplication
*
Division n div p : la division entière de n par p donne la partie
Div
entière du quotient.
entière
ou
//
Division n mod p : la division modulo de n par p donne le reste de
mod la division entière.
modulo
opération symbole
égale =
différent <>
Exemples:
12 div 3 = 4
13 div 3 = 4
12 mod 3 = 0
13 mod 3 = 1
b)Réel: représente l’ de valeurs prises dans R (ensembles des nombres réels).
Exemple :
247 = 2.47
addition
+
soustraction
-
* multiplication
division
/
=
égal
<> ou ≠
Différent
a)Caractère : sa valeur est un caractère quelconque. Un caractère peut appartenir au domaine des chiffres
de ‘0’ à ‘9’, des lettres de ‘A’ à ‘Z’ (majuscules ou minuscules) et des caractères spéciaux (‘+’ ‘-‘ ’,‘ ’;’ ‘.’
‘(‘ ‘{‘ ‘[‘ ‘]’ ‘}’ ‘)’ ‘$’ ‘%’...). Un caractère sera toujours noté entre des apostrophes. Le caractère blanc
(espace) s’écrit ‘ ‘, le caractère apostrophe ‘’’.
Les opérations qu’on définit sur les données de type caractère sont :
Operation symbole
Égal =
Different <> ou ≠
supérieur ou égal >=
supérieur >
inférieur ou égal <=
inférieur <
Les quatre dernières représentent un ordre entre les caractères qui est le suivant :
‘ ‘< ‘0’ < ‘1’ < ... < ‘9’ < ‘A’ < ‘B’ < ... < ‘Z’ < ‘a’ < ‘b’ < ... < ‘z’
Remarque :
Les minuscules et les majuscules sont considérées comme des caractères différents.
b) Chaîne :
Une chaine est une suite finie de caractères quelconques.
Une variable chaîne peut être vide, si elle est de longueur nulle, et sera notée : '’'’ . Si cette dernière est
égale à 1, la variable est considérée aussi comme Car.
Exemples :
ChaîneA<ChaîneB: si le mot contenu dans ChaîneAest 'inférieur' à celui de ChaîneB dans le sens du
dictionnaire; (inférieur : avant ; supérieur : après).
Exemples:
❖ De plus, il existe une autre opération définie sur les variables chaîne, la
concaténation (notée & ou +). Elle crée une nouvelle chaine en juxtaposant deux
ou plusieurs chaines.
Exemple :
‘‘TELE'’&'’VISION'’ = '’TELEVISION’'
Le type logique(booleen)
En programmation informatique, un booléen est un type de variable à deux états (généralement
notés vrai et faux), destiné à représenter les valeurs de vérité de la logique et l'algèbre
booléenne. Il est nommé ainsi d'après George Boole, fondateur dans le milieu du XIXe siècle de
l'algèbre portant son nom. Le type de données booléen est principalement associé à des
états conditionnels.
Une variable logique (ou booléenne) peut prendre l’une des deux valeurs vrai ou faux (true or false). Elle
intervient dans l'évaluation d'une condition.
Les opérations définies sur les variables de type logique sont la négation, l'intersection et l'union.
Exercice :
nombreGroupes,Age,PrixUnitaire,Quantité,TVA,nom,adresse,moyenne,classement,clientEnregistrer,salai
re,Absent,Télé,CIN,sexe, est_Adulte
Cette déclaration a pour conséquence de réserver un emplacement dans la mémoire portant le nom :
identificateur, dont la taille dépend du type de la variable.
Exemple :
Variables
Reponse : booléen
Rep : Car
etat : booléenne
a, b, c : réel
Remarque 1 : lorsque il s’agit de plusieurs variables ayant le même type on peut les déclarées toutes dans
une seule instruction.
Remarque 2 : Si il s’agit d’une constante dont le contenu est fixé et ne sera pas changé par aucune
instruction de l’algorithme en parle d’une constante, la syntaxe de déclaration est la suivante :
Exemple :
Constante pi3.14
Les expressions :
Ceux sont des combinaisons entre des variables et des constantes à l'aide d'opérateurs. Elles expriment un
calcul ou une relation, selon qu'elles sont arithmétiques (algébriques) ou logiques.
Expressions arithmétiques :
Une expression est dite arithmétique si elle présente une opération arithmétique telle que la somme, la
multiplication, la division…
Exemple :
L’ordre selon lequel se déroule chaque opération du calcul est important. Afin d'éviter les ambiguïtés dans
l'écriture, on se sert des parenthèses et d’une hiérarchie entre les différents opérateurs arithmétiques.
En mathématiques, la priorité des opérations ou ordre des opérations précise l'ordre dans
lequel les calculs doivent être effectués dans une expression complexe.
Les règles de priorité sont :
1. les calculs entre parenthèses ou crochets sont prioritaires sur les calculs situés en
dehors. La barre horizontale de fraction ou de racine joue le rôle d'une parenthèse ;
2. L’exponentiation est prioritaire sur la multiplication, la division, l'addition et la
soustraction ;
3. la multiplication et la division sont prioritaires sur l'addition et la soustraction ;
4. dans les parenthèses, on effectue multiplications et divisions de gauche à droite. Même
chose ensuite pour additions et soustractions.
➢ ( ) parenthèses
➢ * / multiplication ou division
➢ + - addition ou soustraction
En cas de conflit entre deux opérateurs de même priorité, on commence par celui situé le plus à gauche.
Exemples :
(Power(( 3 - y * x ) , 2) - 4 * a * c ) / ( 2 * x - z )
1. Expressions logiques
Ceux sont des combinaisons entre des variables et des constantes à l'aide d'opérateurs relationnels (=, <, =<,
>, >=, <>) et/ou des combinaisons entre des variables et des constantes logiques à l'aide d'opérateurs
logiques (Non ,et, ou).
Exemples :
Entier : A,B ,C
(A>B)
(B<=C+A)
Non(A>B)Et(A<>C)
L’affectation
C’est une instruction qui permet de copier (affecter) une valeur à une variable.
Syntaxe :
où :
Les deux parties de l’affectation doivent être de même type. (Ou de types adéquats)
Affectation Description
A 10 ; la valeur 10 à la variable A :
Syntaxe :
Ecrire(Message)
➢ du texte :
Exemple 1 :
Algorithme Etoiles
Var
Début
Ecrire(‘’*********************************Salut************************\n‘’)
Ecrire(‘’$$$$$$$\n******************\n$$$$$$$$$\n’’)
Fin
Résultat de l’exécution :
Algorithme Opérations
Début
Ecrire(‘’*********************************Salut************************\n‘’)
N1123
N210
SN1*N2
Ecrire(‘’s= “,S,”\n”)
Fin
Syntaxe :
Lire(identificateur)
Lire(nom,age,groupe)
Exemple 1 :
Variable A :Entier
Lire(A) permet de récupérer l’entier saisi par l’utilisateur est le mettre dans la variable A
-l’utilisateur tape entrée, la valeur 12 sera stoker dans la variable A et l’ordinateur passe à l’exécution de
l’instruction juste après.
Exemple 2 :
Algorithme Soustraction
/* Cet algorithme montre qu’on peut lire les valeur de deux variable
Début
DN1-N2 //Calcul
Fin
DESCRIPTION DE L’ACTIVITÉ
Exercice 1 :
On vous demande d’écrire un algorithme qui permet de calculer le cube d’un entier.
1-Analyse de donnée
R : C’est un entier
Q3.Quelles sont les données que l’utilisateur doit saisir pour pouvoir faire ce traitement? (entrées)
R : un nombre entier
2-Analyse de traitements :
Réponse :
3-Réalisation :
Début
Ecrire(‘’cette algorithme calcule le cube d’un entier saisi par l’utilisateur \n’’)
Lire(N)
//le calcul
CubeN*N*N
//Affichage du résultat
Fin
Exercice 2
On appliquant la même démarche, écrire un algorithme qui calcule la surface et le volume d’une boule.
DESCRIPTION DE L’ACTIVITÉ
Exercice 1 :
Ecrire un algorithme qui permet d’affecter les valeurs suivantes à des variables(déclarations+Affectations) :
Exercice 2 :
Donnez la valeur de chaque variable après l’exécution de chaque instruction de l’algorithme ( au niveau de
la RAM) !
C :charactère
con :booleen
Début
a10
b2
ch ‘’erreur’’
c (a+b)Mod 5
ab*c
b2*a+c
aa+1
ch2ch2&ch
C’C’
bb+2
Fin
Activité d’apprentissage 2:
✓ Lecture
✓ Ecriture
✓ Affectation
▪ Réaliser un jeux d’essaie
DESCRIPTION DE L’ACTIVITÉ
Exercice 1 :
Exercice 2 :
Algorithme qui demande le prix unitaire d’un produit, la quantité demandée, et
par la suite calcule et affiche le total à payer .sachant qu’on offre une remise de 3% sur
toutes les achats.
Exercice 4:
Ecrire une fonction qui convertit une température de degrés Celsius en degrés
Fahrenheit. Utiliser la formule de conversion suivante : °F = (( 9 x °C ) / 5 ) + 32
Exercice 5:
Exemple
Avant permutation :
Après permutation :
Exercice 6 :
Algorithme Affichages
Début
i9 ;
Ecrire(i,’’\n’’) ;
Ecrire(‘’\n*****\n’’) ;
ii-3 ;
j11 ;
Ecrire(i) ;
Ecrire(’’-’’) ;
ii*2+4-8/2 ;
Ecrire(i+j, ‘’\n’’) ;
Ecrire(i,’’+’’,j,’’=’’,i+j, ‘’\n’’) ;
ij
Ecrire(‘’********’’) ;
Fin
Syntaxe :
Si (condition) Alors
Bloc d’instructions
FinSi
Principe de fonctionnement :
L’exécution du bloc d’instruction dépend de la valeur booléenne de la condition. Si la condition vaut
Vrai, le bloc d’instructions est exécuté, si la condition vaut Faux le bloc d’instructions est ignoré.
Algorithme valeurAbsolue
Variables v ,a:Entier
Début
Lire(v) ;
av
Si (a<0)Alors
a-1*a ;
FinSi
Fin
Test 1 :
Test 2 :
b- L’instruction Si…..Sinon
L’exécution d’une telle instruction consiste à évaluer l’expression (condition),si l’évaluation fournit Vrai
exécuter le bloc 1, sinon exécuter le bloc 2.Cette instruction est utilisée lorsqu’ il ya deux alternatives (un
choix à faire parmi deux blocs) et si seulement l’un d’eux qui sera exécuter.
Syntaxe :
Si (condition) Alors
Bloc d’instructions 1
Sinon
Bloc d’instructions 2
FinSi
Principe de fonctionnement :
Le bloc d’instruction exécuté dépend de la valeur booléenne de la condition. Si la condition vaut
Vrai, seul le bloc numéro 1 est exécuté et le bloc numéro 2 est ignoré. Si la condition vaut Faux, seul
le bloc d’instruction numéro 2 est exécuté.
c- Si ….SinonSi…..Sinon
Cette variante de la structure Si est utilisée lorsque le choix doit être fait entre trois blocs ou plus.
Syntaxe :
Si (condition1) Alors
Bloc 1
SinonSi(condition2) Alors
Bloc2
Sinon
Bloc3
FinSi
Exemple :
Algorithme Ex0
Début
Lire(A,B,C) ;
Si (A > B) alors
AIDE A;
A B;
B AIDE;
FinSi
Fin
Algorithme NomJour
Début
Lire(num) ;
Si(num=1) Alors
Ecrire(‘’Lundi’’) ;
SinonSi(num=2)Alors
Ecrire(‘’Mardi’’) ;
SinonSi(num=3)Alors
Ecrire(‘’Mercredi’’) ;
SinonSi(num=4)Alors
Ecrire(‘’Jeudi’’) ;
SinonSi(num=5)Alors
Ecrire(‘’Vendredi’’) ;
SinonSi(num=6)Alors
Ecrire(‘’Samedi’’) ;
SinonSi(num=7)Alors
Ecrire(‘’Dimanche’’) ;
Sinon
FinSi
Fin
Pour éviter d'avoir à faire des répétitions quand on teste la valeur d'une seule et même variable (sélecteur),
ils ont inventé une autre structure que le Si….Sinon.
Cette structure particulière s'appelle Selon…cas. Voici un Selon…cas basé sur l'exemple qu'on vient de
voir :
Algorithme NomJour_AvecSelonCas
Début
Ecrire(‘’cet algorithme affiche le nom du jour dont le numéro est saisi au clavier’’) ;
Lire(num) ;
Selon(num)Faire
FinSelon
Syntaxe :
……….
FinSelon
Principe :
Si variableSélécteur est égale à valeur1,le bloc d’instructions 1 est exécuté, et on passe à la suite de
l'algorithme (après finSelon),sinon on compare variableSélécteur avec la valeur suivante et ainsi de suite. Si
aucune valeur n’est égale à variableSélécteur le traitement par défaut est exécuté.
Remarques:
-La variable sélecteur doit être une variable de type : Entier ,Caractère ou chaine. Aucun autre type n’est
accepté.
-le mot clés sortir permet de quitter la structure selon..Cas, s’il est absent le bloc suivant est aussi exécuter.
-La structure Selon…Cas est très souvent utilisée pour faire des menus en console.
Activité d’apprentissage 3:
DESCRIPTION DE L’ACTIVITÉ
Exercice 1
La direction d’un supermarché a décidé d’accorder des réductions à ses clients selon le montant
d’achat.
-15% pour un montant d’achat entre 3000 dhs<montant d’achat <= 5000 dhs
-10% pour un montant d’achat entre 1000 dhs <montant d’achat <= 3000 dhs
Exercice 2
Ecrivez un algorithme qui lit deux valeurs entières (A et B) au clavier et qui affiche le signe de la somme
de A et B sans faire l'addition.
Exercice 3
Ecrivez un algorithme qui calcule les solutions réelles d'une équation du premier degré ax+b=0
Il s’agit d’écrire un algorithme, qui demande le volume d’eau consommé et permettant d’afficher le prix
total à payer en dirhams .
Tanche 1 0 à6 2 .13
Tanche 2 6 à 20 7.21
Tanche 3 20 à 40 10.83
(Prix_a_payer = prix_horsTax+prix_horsTax*TVA/100)
Exercice 5 :
Un entier naturel de trois chiffresest cubique s’il est égal à la somme des cubes de ses trois chiffres.
Ecrire un algorithme qui permet de décider si un entier naturel saisi au clavier est cubique ou non.
Exercice 6 :
Ecrire un algorithme qui affiche le menu suivant et exécute le traitement choisi par l’utilisateur.
Exercice 7 :
- Faire….TantQue
-TantQue….Faire
-Pour …..Faire
-Faire…….JUSQU A
Dans tous les cas, le schéma est le même :
LA BOUCLE Faire….TantQue:
La répétition s’effectue tant que la valeur de la condition de continuité est égale à Vrai.
Syntaxe :
Faire
Instruction1
Instruction2
…………
InstructionN
TantQue (Codition_De_Poursuite)
Algorithme lireNombreNonNul
Début
Faire
Ecrire(‘’Très bien ‘’,nbr,’’ est non nul’’) ; //Instruction exécuter une seule fois
Fin
Algorithme Chiffres
Variable c : Entier
Début
c 1 //initialisation du compteur c
Faire
Fin
1. Au départ, on a une variable compteur initialisée à 1. Elle vaut donc 1 avant la première itération.
5. On arrive à la fin de la boucle (TanQue) . On fait le test du : Est-ce que compteur est toujours inférieure
ou égale à 10 ? .Si c’est oui, compteur vaut 2! Donc on recommence lesinstructions de la boucle.Et ainsi de
suite jusqu’à ce que la valeur du compteur soit 11 ;
Remarque :
-Dans le premier exemple le nombre d’itération n’est pas connu au démarrage de la boucle ,il dépend de
l’utilisateur ,tandis que dans le 2eme exemple le nombre d’itération est connu avant le démarrage de la
-La boucle Faire..TantQue effectue l’évaluation de la condition après avoir effectué le premier tour de
boucle, c'est-à-dire que le bloc est exécuté au moins une fois.
-Il y a une autre variante de cette boucle qui utilise une condition d’arrêt qui est la négation de la condition
de continuité c’est la boucle Répéter….Jusque’à .
Algorithme ChiffresAvecRepeter
Variable c : Entier
Début
c 1 //initialisation du compteur c
Répéter
Fin
Exercice d’application :
Ecrire un algorithme qui affiche la table de multiplication d’un entier saisi au clavier.
Exemple :
4 *1=4
4 *2=8
4 *3=12
4 *4=16
4 *5=20
4 *6=24
4 *7=28
4 *9=36
4 *10=40
On dit donc à l'ordinateur « Tant que la condition est vraie, répète les instructions entre
accolades »
Syntaxe :
Instruction 1
Instruction 2
……
Instruction N
FinTantQue
Principe :
Algorithme lireNombreNonNul
Début
Lire(nbr)
TantQue (nbr =0) Faire //Si le nombre est nul exécuter le bloc sinon quitter la boucle
Lire(nbr) ;
Ecrire(‘’Très bien le nombre saisi est non nul’’) ; //instruction exécutée une seule fois lorsque nbr !=0
Fin
Algorithme Chiffres
Variable c : Entier
Début
c 1 //initialisation du compteur c
Fin
Remarques :
Il est plus naturel de se demander ‘’quand la boucle s’arrête-t-elle ?’’ Que de déterminer la condition de
continuité ‘’tant que quoi la boucle continuera-t-elle ?’’.Pour écrire une boucle, prenez l’habitude :
c99 c99
Le bloc ne sera jamais exécuté, aucun affichage à Le bloc est exécuté une seule fois, affichage de
l’écran 99-
Exercice d’application :
Ecrire un algorithme qui affiche les diviseurs d’un entier saisi au clavier.
Exemple :
La boucle JUSQU’À
actions
condition
V
La boucle Pour
C’est une boucle très utilisée en programmation pour réitérer une exécution un nombre de fois connu à
l’avance (existence d’un compteur), son avantage c’est qu’elle intègre l’initialisation et
l’incrémentation du compteur ,ce qui évite l’oubli de ces deux instructions.
Syntaxe :
Pour compteurValeurInitiale jusqu’à ValeurFinale Faire
Instruction1
Instruction2
-----------
InstructionN
FinPour
Principe :
si compteur <= ValeurFinale le bloc d’instruction est exécuté une autre fois et le compteur est
incrémenté automatiquement, sinon (c'est-à-dire compteur =ValeurFinale+1) la boucle est quitté.
Exemple :
Algorithme Chiffres
Variable c : Entier
Début
Fin
Exercice d’application :
Ecrire un algorithme qui affiche les entiers premiers compris entre VD et VF , avecVD et VF deux entiers
saisis au clavier.
Dans le corps d’une boucle, on peut avoir une ou plusieurs autres boucle s. L’imbrication des
boucles doit suivre les règles suivantes :
Soit l’exemple suivant qui permet d’afficher un rectangle formé d’étoiles (le nombre de lignesnbrL , et le
nombre de colonnes nbrC seront demandés à l’utilisateur)
Soit i et j deux compteurs. Pour afficher une ligne l’instruction Ecrire(‘’*’’) doit etre exécuter nbrC fois :
Ecrire(‘’*’’) ;
FinPour
Ecrire(‘’*’’) ;
FinPour
Ecrire(‘’\n’’) ;
FinPour
L’instruction continue s’emploie uniquement dans une boucle. Elle permet de passer prématurément à
l’itération suivante.
Une instruction de rupture de déroulement d’une boucle doit être mis à l’intérieur d’une structure
conditionnelle SI.
Exemple 1 :
Exemple2 :
A un même problème, différentes solutions algorithmiques peuvent être proposées. La première qualité
attendue d’un algorithme est sa terminaison c'est-à-dire qu’il n’admette une instance pour laquelle
l’exécution rentre dans une boucle infinie.
Un second critère permet de les comparer et ainsi d’en distinguer de meilleures que d’autres. Ce critère est
la faible utilisation de deux ressources :
-Le temps : qu’est évalué en considérant le nombre d’instruction élémentaires devant être exécutées.
Activité d’apprentissage 4:
Exercice 2 :
Ecrire un algorithme qui lit les notes de N stagiaires ,et affiche la moyenne du groupe.Une note valide doit
être comprise entre 0 et 20.
Exercice 3:
3-1Un nombre parfait est un nombre entier naturel qui égale à la somme de ses diviseurs strict càd ses
diviseurs entiers positifs, autres qui lui-même.
Le premier nombre parfait est 6 , puisque la somme de ses diviseurs stricts 1,2,3 est égal à 6 (1+2+3=6)
Ecrire un algorithme qui cherche tous les nombres parfaits inférieurs à une limite donnée par l’utilisateur.
Exercice 4:
Ecrire un algorithme qui permet à l’utilisateur de saisir une suite de nombres non nuls. Indiquer le que
pour
L’algorithme doit afficher en suite le maximum des nombres saisis, leurs moyenne ainsi que le nombre
des
positifs .
Exercice 5:
Ecrire un algorithme qui affiche la table de multiplication de 1 à 10 sous la forme suivante :
Exercice 6:
Ecrire un algorithme qui affiche les figures suivantes :
a) Combien de ligne ? 9
**
***
****
*****
***
**
b)
Exercice 7: Écrire un algorithme permettant d’afficher le triangle suivant : (le nombre de ligne
est saisi par l’utilisateur)
12
123
1234
12345
123456
1234567
Exercice 8 :
Deux nombres sont dits ‘’amis’’ si la somme des diviseurs stricts de l’un est égale à l’autre et inversement.
Ecrire un algorithme qui affiche les couples de nombres amis inférieurs à une limite donnée par
l’utilisateur.
– Lorsque le nombre de données est trop important cela devient infaisable (penser par exemple au cas ou le
nombre de données se chiffre en centaines ou en milliers).
– Cela empêche de voir ces données comme une donnée globale, ce qui est souvent nécessaire (penser par
exemple à l’ensemble des notes d’un étudiant ou de manière plus évidente aux lettres d’un mot).
Ce besoin a donné naissance aux tableaux. Un tableau est une donnée composée homogène, de taille fixe et
ordonnée. Détaillons :
– Une donnée : cela signifie que nous aurons des variables tableaux et que donc un tableau aura un nom.
– Composée : cela signifie qu’un tableau contient plusieurs données que nous appellerons ses éléments.
C’est sa raison d’être.
– Homogène : cela signifie que tous les éléments d’un tableau sont du même type. Nous dirons que ce type
est le type du tableau.
– De taille fixe : cela signifie que le nombre d’´eléments d’un tableau est fixé une fois pour toutes `a la
déclaration du tableau, qu’il ne peut changer au cours du programme. Ce nombre d’éléments est appelé la
taille du tableau.
– Ordonnée : cela signifie que chaque élément du tableau a une position dans le tableau que nous
appellerons son indice. L’indice du premier élément est 1.
L’indice peut être un entier unique (tableaux à une dimension) ,deux entiers (tableaux à deux dimensions),..
Un tableau à une dimension (vecteur) est une liste de valeurs de même type (voir l’exemple ci-après).
12.4 1 0 -66 9 0
a. Syntaxe de déclaration :
Variables nomTableau[Taille] :Type ;
a. Exemple :
Variables Notes[30] :Réel ;
Jours[7] :Chaine de caractères ;
b. Accès à un élément :
Exemples d’utilisation :
Algorithme AccèsAuxElements
c :Entier ;
Début
T[c](T[1] +2 )*3 //affecter le résultat de l’expression (T[1] +2 )*3 à T[2] (l’indice c=2)
Fin
Remarques importantes :
• L’indice est un entier compris entre 1 et Taille du tableau. L’utilisation d’un indice
n’appartenant pas à cet intervalle peut engendrer des problème lors de l’exécution du
programme (débordements d’indices) , il est donc absolument nécessaire de contrôler
les indices.
• Un élément non initialisé contient une valeur indéterminée.
c. Parcourir d’un tableau :
La majorité des traitements sur les tableaux nécessitent l’utilisation d’une boucle et d’un compteur pour
parcourir tous les éléments.
Syntaxe :
Algorithme RAZTab
i:Entier
Début
T[i]0
FinPour
Fin
2. Algorithmes de base :
La majorité des algorithmes suivants sont appliqués aux tableaux à une dimension de n’importe quel type.
Algorithme LectureTabTous
i:Entier
Début
Lire(T[i]) ;
FinPour
Fin
Algorithme LectureTab
i,n:Entier
Début
Ecrire(‘’Donnez le nombre d’ éléments à saisir d’indice ,ne dépassez pas 100 ‘’) ;
Lire(n) ;
FinPour
Fin
Lorsque l’utilisateur saisi un entier supérieur à 100 (la taille du tableau) , il y aura débordement d’indice ce
qui va générer des erreurs lors de l’exécution. Pour éviter ces problèmes contrôler toujours le nombre des
éléments à traiter.
Algorithme LectureTab_Meilleur
i,n:Entier
Début
Faire
Ecrire(‘’Donnez le nombre d’ éléments à saisir d’indice ,ne dépassez pas 100 ‘’) ;
Lire(n) ;
Lire(T[i]) ;
FinPour
Fin
Algorithme AfficherTab
i,n:Entier
Début
Ecrire(‘’Le tableau:\n ‘’ ) ;
Ecrire(T[i] ,’’‘’) ;
FinPour
Fin
Algorithme SommeElements
i,n,S:Entier
Début
SS+T[i] ;
FinPour
Algorithme SommeVecteurs
i,n:Entier
Début
S[i]T1[i]+T2[i] ;
FinPour
FinPour
Fin
i,n,a:Entier
Début
Lire(a) ;
T[i] a*T[i] ;
FinPour
Fin
Algorithme ProduitSacalaire
i,n,P:Entier
Début
PP+T1[i]*T2[i] ;
FinPour
Fin
Algorithme RechercheSéquentielle
i,n,v:Entier
Début
Lire(v) ;
i1
ii+1
FinTantQue
Si(i=n)Alors
sinon
FinSi
Fin
Exercice d’application :
Question3 : Afficher un message qui indique si une valeur existe ou non dans un tableau.
Algorithme FréquenceApp
i,n,v,c:Entier
Début
Lire(v) ;
c0
Si(T[i]=v)Alors
cc+1 ;
FinSi
FinPour
Fin
Algorithme Max
i,n,max:Entier
Début
maxT[1]
Si(T[i]>max)Alors
maxT[i] ;
FinSi
FinPour
Fin
Algorithme Suppression
i,j,n,pos:Entier
Début
Faire
TanQue(pos<1 OU pos>n) ;
T[i]T[i+1] ;
FinPour
nn-1
Fin
Exercice d’application :
Question 1 : Ecrire un algorithme que supprime toutes les occurrences d’une valeur.
Algorithme Insertion
i,j,n,pos,v:Entier
Début
Faire
Lire(pos) ;
TanQue(pos<1 OU pos>n) ;
Lire(v) ;
T[i+1]T[i] ;
FinPour
T[pos]v
nn+1
Fin
Exercice d’application :
Algorithme Inverser
i,n,a:Entier
Début
aT[i]
T[i]T[n-i+1]
T[n-i+1]a ;
FinPour
Fin
Algorithme EclatementEnDeux
i,j,k,n:Entier
Début
//Les entiers pairs seront rangés dans TP,et les impairs dans TI
j1 ;
k1 ;
Si(T[i]%2=0)Alors
TP[j]T[i] ;
jj+1 ;
Sinon
TI[k]T[i] ;
kk+1 ;
FinPour
FinPour
FinPour
Fin
i,j,n,aux:Entier
Début
Si (T[i]>T[j] )Alors
aux T[i] ;
T[i] T[j] ;
T[j]aux ;
FinSi
FinPour
Fin
Python :
Algorithme TriBulleCroissant
i,j,n,aux:Entier
Début
Faire
triéVrai ;
si(T[j]>T[j+1] )Alors
auxT[j] ;
T[j]T[j+1] ;
T[j+1]aux ;
triéFaux ;
FinSi
FinPour
TantQue (trié=Faux)
Fin
Par Python :
## tri bulle
liste=[3,1,6,9,4,2,8]
n=len(liste)
tri=True
while tri:
tri=False
for i in range(0,n-1):
if liste[i]>liste[i+1]:
temp=liste[i+1]
liste[i+1]=liste[i]
liste[i]=liste[i+1]
tri=True
print(liste)
i,j,n,aux:Entier
Début
ji ;
auxT[j] ;
T[j]T[j-1] ;
T[j-1]aux ;
jj-1 ;
FinTantQue
FinPour
Fin
Algorithme TriSelectionMin
i,j,n,aux,pmin:Entier
Début
pmini ;
valminT[i] ;
Si (T[j]<valmin) Alors
valminT[j] ;
pminj ;
FinSi
auxT[i] ;
T[i] T[pmin] ;
T[pmin]aux ;
FinPour
FinPour
Fin
Algorithme TriComptage
i,j,n,aux,pmin:Entier
s0 ;
ss+1 ;
FinSi
FinPour
ind[s]j
FinPour
Fin
//affichage du tableau
Ecrire(T[ind[i]],’’ ‘’) ;
FinPour
Dans la vie courante, on a plutôt tendance à utiliser le mot tableau pour un ensemble de valeurs
susceptibles d’etre présentées sous forme d’un schéma à deux dimensons comportant à la fois
des lignes et des colonnes. Ainsi, on peut faire un tableau donnant les notes de chaque stagiaires
d’un groupe, dans chacun des différents modules. Il pourrait se présenter ainsi :
a. Syntaxe de déclaration
b. Exemple :
c. Accès à un élément :
Syntaxe :
NomTableau[indiceLigne][indiceColonne]
d. Exemples
Algorithme AccèsAuxElements
c :Entier ;
Début
T[c][2](T[1][1] +2 )*3 //affecter le résultat de l’expression (T[1][1] +2 )*3 à T[2][2] (l’indice c=2)
Fin
Remarque : Un variable de type primitif, non initialisée contient une valeur par défaut ou une valeur
indéterminée. Il n’y a pas de variable vide.
La majorité des traitements sur les matrices nécessitent le parcours des éléments de la matrice.Vue qu’un
élément de la matrice est référencé à l’aide de deux indice, l’utilisation de deux boucles imbriquées est
nécessaire, une pour le parcours des lignes et l’autre pour le parcours des colonnes. Les deux boucles
utilisent deux compteurs différents .
Syntaxe :
FinPour
FinPour
Exemple :
Algorithme RAZ
i,j:Entier
Début
M[i][j]0
FinPour
FinPour
Fin
2. Algorithmes de base :
2.1 Lecture au clavier :
Algorithme LireMatrice
i,j ,n,m:Entier
Début
Faire
Lire(n) ;
Faire
Lire(M[i][j])
FinPour
FinPour
Algorithme AfficherMatrice
i,j ,n,m:Entier
Début
Ecrire(M[i][j],’’ ‘’) ;
FinPour
Ecrire(‘’\n’’) ;
FinPour
Algorithme SommeEle
i,j ,n,m,s:Entier
Début
s0
ss+M[i][j];
FinPour
FinPour
Fin
Algorithme Trace
i,j ,n,m,s:Entier
Début
s0
si(i=j)Alors
ss+M[i][j];
FinSsi
FinPour
FinPour
Fin
Algorithme Somme2Matrices
Début
S[i][j]M1[i][j]+M2[i][j];
FinPour
FinPour
Ecrire(S[i][j],’’ ‘’) ;
FinPour
Ecrire(‘’\n’’) ;
FinPour
Fin
Algorithme MatriceUnitaire
i,j ,n:Entier
Début
Faire
Lire(n) ;
U[i][j]=1;
sinon
U[i][j]=0;
FinSsi
FinPour
FinPour
Ecrire(U[i][j],’’ ‘’) ;
FinPour
Ecrire(‘’\n’’) ;
FinPour
Fin
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
Activité d’apprentissage 5:
2015/2016
ISGI/TDI 1
dimensions).
Écrire un algorithme qui lit la dimension N d'un tableau T du type entier (dimension maximale:
20 éléments), remplit le tableau par des valeurs entrées au clavier et affiche le tableau. Effacer
ensuite toutes les occurrences de la valeur 0 dans le tableau T et tasser les éléments restants.
Exercice 2:
Entier (dimension maximale: 20 éléments), remplit le tableau par des valeurs entrées au clavier
et affiche le tableau. Copiez ensuite toutes les composantes strictement positives dans un
deuxième tableau TPOS et toutes les valeurs strictement négatives dans un troisième tableau
TNEG.
Exercice 3:
Ecrire un algorithme qui demande à l'utilisateur de taper 10 entiers compris entre 0 et 20 qui
seront stockés dans un tableau et qui affiche le nombre de fois qu'on a tapé un 0, le nombre de
1, le nombre de 2, ..., le nombre de 20.
Exercice 4 :
Exemple : si s = [15, 4, 19, 4, 8, 11, 11, 3, 4, 19] et L = 10 alors s' = [15, 4, 19, 8, 11, 3] et L = 6
Exercice 5: Vérifier que deux tableaux sont identiques (les éléments des deux tableaux seront
saisis par l’utilisateur).
On effectue la rotation des éléments du tableau du nombre entré en faisant une rotation.
Afficher le tableau de départ, la valeur du déplacement et le vecteur à l'arrivée.
Exemple :
Départ 0 1 2 3 4 5 6 7 8 9
Rotations = 4
Arrivée 6 7 8 9 0 1 2 3 4 5
Exercice 7 : m personnes sont assises autour d'une table circulaire et entament le jeu suivant.
Elles se fixent entre-elles un entier k>0 et une personne P1 par laquelle elles commenceront le
jeu. On commence à compter de 1 à k en partant de P1 et en tournant à droite. La k ième personne
quitte la table et on continue à compter de 1 à k à partir de la personne suivante encore à table.
La personne gagnante est la dernière qui reste à table.
Exercice 8: Les points cols d'un tableau à deux dimensions sont les éléments du tableau qui sont
minimum sur leur ligne et maximum sur leur colonne.
Ecrire le programme principal qui recherche dans un tableau à deux dimensions les points cols.
123
-7 8 9
T[0][0]=1
T[2][1]=-3
Exercice 9: Un carré magique est un carré rempli de nombres qui, lorsque l’on en fait la somme
sur chaque ligne, colonne ou diagonale, donne le même résultat. Pour simplifier le travail nous
ne considérerions ici que des carrés d’ordre impair.
816
357
492
Exercice 10:
1. Lire une matrice de N lignes et M colonnes ligne par ligne. Les données sont dans l’ordre :
NM
A[1][1] … A[1[[M]
A[N][1] … A[N][M]
Les exercices suivants supposent que cette phase d’initialisation vient d’être faite.
Exercice 11 :
Recherche dichotomique :
Il existe plusieurs méthodes pour faire une recherche d’une variable dans un tableau. L’une des
plus importantes est appelée recherche dichotomique. Ce type de recherche est utilisé que si le
tableau est trié :
2 7 19 84 190
Le principe est de comparer la valeur recherchée X par celle du milieu du tableau T[N/2] ;
Une structure est un assemblage de variables (champs) qui peuvent avoir différents types.
Contrairement aux tableaux qui vous obligent à utiliser le même type dans tout le tableau, vous
Les structures sont utilisées généralement pour définir des nouveaux types (non primitifs).
2. Syntaxe de déclaration :
Les structures sont déclarées avant les variable, puisqu’elles définies des types. La syntax e en
pseudo-Langage peut être :
Structure NomStructure :
champs1 :Type ;
champs2 :Type ;
… ….
champsN :Type ;
FinStructure
Exemple :
Structure Stagiaire :
Num :Entier ;
Niveau :Entier ;
FinStructure
3. Variables structure:
La déclaration d’une structure définie un nouveau type (Stagiaire dans l’exemple), elle ne
réserve pas d’espace mémoire. Pour utiliser cette structure déclarez des variable s en utilisant la
structure comme type:
Syntaxe :
Exemple :
Variables s1:Stagiaire ;
Pour accéder à un champ, utilisez le nom de la variable suivi d’un point de sélection et du nom
du champ :
Algorithme UtiliserTypeStagiaire
Structure Stagiaire :
Num :Entier ;
Niveau :Entier ;
FinStructure
Variables s :Stagiaire
Début
s.Nom’’Salhi’’ ;
s.Prénom’’Ali’’ ;
Lire(s.Filière) ;
s.Num1 ;
s.Niveau2 ;
Ecrire(‘’Informations stagiaire:\n’’) ;
Ecrire(‘’Nom :’’,s.Nom,’’\n’’) ;
Ecrire(‘’Niveau:’’,s.Niveau,’’\n’’) ;
Ecrire(‘’N° :’’,s.Num,’’\n’’) ;
Fin
5. Structures imbriquées :
Exemple :
Algorithme LireDateNaissance
Structure Date :
Jour :Entier ;
Mois :Entier ;
Année :Entier ;
FinStructure
Structure Stagiaire :
Num :Entier ;
Niveau :Entier ;
DateNaissance :Date
FinStructure
Variables s :Stagiaire ;
Début
Lire(s. DateNaissance.Jour) ;
Lire(s. DateNaissance.Mois) ;
Lire(s. DateNaissance.Année) ;
Fin
Algorithme LireFilière
Structure Filière :
NombreModule :Entier ;
FinStructure
Variable f :Filière ;
Début
Lire(f.Nom) ;
Lire(f.NombreModule) ;
Lire(f.Modules[i]) ;
FinPour
Fin
Un tableau de type structure est appelé table, et ses éléments enregistrements. Les tableaux de
type structure peuvent subir les mêmes algorithmes que les tableaux de types primitifs.
Structure Stagiaire :
Num :Entier ;
FinStructure
n,i :Entier ;
Début
Faire
Lire(n) ;
TantQue(n<1 OU n>100) ;
//lecture
Lire(s[i].Nom,s[i].Prénom,s[i].Num) ;
FinPour
//Affichage
Ecrire(s[i].Num ,s[i].Nom,s[i].Prénom,’’\n’’) ;
FinPour
Fin
Activité d’apprentissage 6:
Exercice 1 :
Le directeur d’une société offre des primes à ses employés. Chaque employé possède les
informations suivantes :
CIN, Nom, Prénom, Date de naissance, Date d’embauche, Salaire, Nombre d’année d’expérience
(NAE), prime.
Questions :
1- Créer les structures nécessaires avec les attributs cités dans l’énoncé, en choisissant un type
de données convenable pour chaque attribut.
4- Afficher tous les employés qui ont été embauché avant la date 01/04/2005 et âgés d’au moins
de 30 ans.
Exercice 2 :
Travail à faire :
Dans la résolution d’un problème, on peut constater qu'une suite d'actions revient
plusieurs fois. Dans ce cas il serait judicieux de l'écrire une seule fois, et de l'utiliser
autant de fois que c'est nécessaire, en effectuant des calculs avec des données différentes.
Cette suite d'actions sera définie dans un sous algorithme, qui peut prendre soit la forme
d’une procédure, soit la forme d’une fonction.
D’autre part, on peut observer que certains groupes d’actions se rapportent à des traitements
précis et différents. Il est souhaitable alors de représenter chacun d’eux dans un sous
algorithme, ce qui permettra d’améliorer la conception de l’algorithme et sa lisibilité. On perçoit
alors un algorithme comme un ensemble de procédures/fonctions. La structuration d’un
algorithme par morceaux (modules) est la base de la programmation structurée et modulaire.
I. Fonction :
Une fonction est un bloc d’instructions qui retourne un seul résultat.L’appel (avec
ou sans paramètres) de la fonction déclenche l’exécution de ses instruction.
1. Déclaration d’une fonction :
a. Syntaxe :
Fonction nomFonction (paramètre1 :Type,paramètre2 :Type…..) :Type de
retour
Début
Instructions de la fonction
Retourne expression
FinFonction
Variable s :Réel ;
Début
sn1+n2 ;
Retourne s ;
FinFonction
c. Les paramètres :
C’est un ensemble de variables, moyen de communication entre la fonction et l’extérieur. Ils existent deux
types de paramètres :Les paramètres utilisés dans la définition de la fonction (paramètres formels),et
ceux utilisés dans l’appel de la fonction (paramètres effectifs).
d. La valeur de retour :
Une fonction doit retourner une valeur à l’algorithme appelant. Cette valeur est unique. Le retour de la
valeur, c'est-à-dire l’exécution de l’instruction retourne, signifie l’arrêt de la fonction.
Pour déclencher l’exécution d’une fonction dans un algorithme, il suffit de l’appeler. L’appel de la fonction
s’écrit en mettant son nonm suivi de la liste de paramètres entre parenthèses, séparés par des virgules :
NomFonction(paramètre1,Paramètre2….,paramètreN) ;
2-La fonction appelée effectue son bloc d’instructions. Dès qu’une instruction Retourner est exécutée, la
fonction s’arrête en retournant la valeur calculée.
Exemple :Fonction sans paramètres qui retourne une note saisie par l’utilisateur lorsque celle-ci est
valide.
Début
Lire(note) ;
Lire(note) ;
FinTantQue
Retourner note ;
FinFonction
Remarques:
Exemple2 :
FinFonction
Variables
i, max:Entier
Début
maxT[1] ;
Si(T[i]>max)Alors
maxT[i] ;
FinSi
FinPour
Retourner max ;
FinFonction
Une procédure est un sous algorithme sans valeur de retour ou dont le type de retour est rien(void).
2. Syntaxe :
Procédure NomProcédure (liste paramètres)
Variables :déclaration des variables locales
Exemple 1:
Les échanges d’informations entre un algorithme appelant et un sous algorithme appelé se font par
l’intermédiaire de paramètres.
Exemple2 :
Procédure PermuterValeurs( nbr1 :Réél, nbr2 :Réel)
Variables : aux : Réel
Début
auxnbr1 ;
nbr1nbr2 ;
nbr2aux ;
FinProcédure
Algorithme PassageParValeur
Début
x112.5
x2-9.25
PermuterValeurs(x1,x2) ;
Fin
Exemple2 :
Procédure PermuterValeurs( réf nbr1 :Réél,réf nbr2 :Réel)
Variables : aux : Réel
Début
auxnbr1 ;
nbr1nbr2 ;
nbr2aux ;
FinProcédure
Algorithme PassageParValeur
Début
x2-9.25
PermuterValeurs(x1,x2) ;
Fin
Remarque :
Il existe un passage de paramètre par adresse particulier : c’est le passage de paramètre en sortie.
Le paramètre est passé par adresse et il est utilisé pour recevoir une sortie calculée par le sous
algorithme.
Exemple :
Début
sn1+n2+n3 ;
FinProcédure
Algorithme appelSortie
Début
Fin
Activité d’apprentissage 7:
DESCRIPTION DE L’ACTIVITÉ
Exercice 1: Écrire :
Une procédure, nommée f1, se contentant d’afficher bonjour (elle ne possèdera aucun argument) ;
Une procédure, nommée f2, qui affiche bonjour un nombre de fois égal à la valeur reçue en argument
(entier);
Une fonction, nommée, f3, qui fait la même chose que f2, mais qui, de plus, renvoie la valeur (entier) 0.
Exercice 2: Ecrire une fonction qui calcule la somme des N premiers terme d’une série harmonique.
Exercice 3: Ecrire deux fonctions qui calculent la valeur XN pour une valeur réelle X (type reel) et une
valeur entière positive N (type entier) :
Exercice 4:
-a Écrire une fonction nommée estVoyelle examinant si un caractère fourni en paramètre est une voyelle
et
-b Ecrivez un algorithme qui demande une phrase à l’utilisateur et qui affiche à l’écran le nombre de
voyelles contenues dans cette phrase.
Exercice 5: Écrire la fonction NCHIFFRES du type entier qui obtient une valeur entière N (positive ou
négative) du type long entier comme paramètre et qui fournit le nombre de chiffres de N comme résultat.
Exemple:
0! = 1
Ecrire une fonction FACT du type entier long qui reçoit la valeur N (type entier) comme paramètre et qui
fournit la factorielle de N comme résultat. Ecrire un petit programme qui teste la fonction FACT.
Exercice 8 : Déterminer le maximum de N éléments d'un tableau TAB d'entiers de deux façons différentes:
Exercice 9 :
Demain est un autre jour. Nous supposerons que l'utilisateur ne rentre que des entiers strictement
positifs.
1) Définir le type date basé sur une structure permettant de représenter une date comportant le numéro
du jour, le numéro du mois et l'année.
2) Écrire la fonction estBissextile() qui renvoie 1 si l'année est bissextile; 0 sinon. Nous rappelons qu'une
année est bissextile si elle est divisible par 4 mais pas par 100, elle est aussi bissextile si elle est divisible
par 400.
3) Écrire la fonction dateJuste() qui renvoie 1 si une date saisie est juste, 0 sinon
4) Écrire la procédure jourdulendemain() qui à partir d'une donnée de type date détermine la date du
lendemain.
5) Écrire une fonction comparedate() qui renvoie 1 si une date d1 est plus grande qu'une date d2, 0 si
elles sont égales, et -1 si la date d2 est plus grande que la date d1
6) Écrire une fonction ecartjour() qui retourne le nombre de jours qui séparent deux dates.
Exercice 10 :
2- Ecrire une fonction permettant de prendre deux nombres complexes et de retourner un nombre
complexe représentant la somme. Rappel si x=a+ib et y=c+id alors z=x+y=a+c+i(b+d)
3- Ecrire une fonction permettant de prendre deux nombres complexes et de retourner un nombre
complexe représentant le produit. Rappel si x=a+ib et y=c+id alors z=x*y= (ac-bd)+i*(ad+bd)
Exercice 11 :
Ecrire la procédure INSERER qui place un élément X à l'intérieur d'un tableau qui contient N éléments triés
parordre croissant, de façon à obtenir un tableau à N+1 éléments triés par ordre croissant. La dimension
du
Exercice 13:
**
***
****
*****
****
***
**
Exercice 14:
Ecrire une procédure inverser qui inverse l’ordre des éléments d’un vecteur .
Exemple :
12 9 4 34
34 4 9 12