Académique Documents
Professionnel Documents
Culture Documents
ALGORITHMIQUE ET
PROGRAMATION C
Pr. Kenza CHARAFEDDINE
Introduction
QU'EST-CE QUE LA PROGRAMMATION ?
En Bref
• Algorithmique
Ensemble des méthodes permettant de définir et/ou d’étudier
des algorithmes.
• Les étapes sont représentées par des nœuds et les transitions par
des liens orientés entre ces nœuds ;
• Les étapes de test sont représentées par des losanges ;
• Les étapes de début et de fin sont représentées par des rectangles
aux coins arrondis ;
• Les étapes de traitement sont représentées par des rectangles ;
• Les appels à des fonctions ou procédures (aussi appelées sous-
routines) sont représentés par des rectangles dont les côtés sont
dédoublés
• Les étapes d’entrée/sortie sont représentées par des
parallélogrammes.
• Organigramme Inconvénients?
• Version pseudo-code :
• Exemple 1: Creuser un trou, reboucher un trou et placer un
arbre dans un trou sont des opérations élémentaires (des
actions simples) que toute personne (machine dans le cas
de l'informatique) est censée savoir exécuter.
• Néanmoins, si un jardinier (programmeur) veut faire planter
un arbre par une personne qui ne sait pas le faire, il doit lui
fournir "un descriptif" (un algorithme) qui lui indique les
opérations à faire ainsi que leur ordre d'exécution
(séquencement).
• symbole
• l'opération qui évalue une expression (constante ou une
expression arithmétique ou logique) et attribue la valeur
obtenue à une variable
• L'ECRITURE
• INSTRUCTIONS DE CONTROLE
Instructions de contrôle
Instructions Instructions
Sélectives Itératives
• INSTRUCTIONS SELECTIVES
• Instruction « Si »
Exemple
Calculer la taxe sur le chiffre d'affaire (CA) sachant qu'elle
est de :
• 10% si le CA<5000DH
• 20% si le CA >=5000DH
• Remarques:
• 1- Une instruction de contrôle peut se réduire à :
Exemple:
Vérifier si un agent a droit de bénéficier du crédit de
logement ou non selon ses années d’ancienneté et sa
note d’appréciation. Peuvent bénéficier du crédit les
agents ayant une ancienneté supérieur à 5ans avec une
note supérieure ou égal à 13. Pour les employés ayant
une ancienneté de 4 et 3 ans, ils peuvent bénéficier du
crédit si leurs notes respectives sont supérieures ou
egales à 16 et 18.
• Instruction Selon
EXERCICE 1 :
Ecrire un algorithme pour résoudre chacun des problèmes
suivants :
1. Calcul de la somme des N premiers nombres entiers.
2. Calcul du quotient et reste de la division de deux entiers A et
B sans utiliser l’opération de division.
3. Le calcul du produit de deux entiers en utilisant uniquement
l'opération d'addition '+’.
4. Détermination si A est divisible par B. Avec A et B des entiers
positifs.
5. Déterminer si un nombre entier X est premier ou non.
Exemple : Afficher la somme des entiers compris entre 0
et une valeur n saisie au clavier (n≥0).
Programmation
Programme et compilation
• Programme : suite d’instructions qui a pour but d’être exécutées
par un ordinateur.
• Instruction : action que l’ordinateur connait et peut réaliser.
• Un langage de programmation (y compris le C) est caractérisé par
son jeu d’instructions :
– Jeu d’instructions : ensemble des instructions autorisées dans un langage
de programmation.
2 types de fichiers
Compilation
Pourquoi le language C?
Notion de fonction (1)
Notion de fonction
• Pour une meilleure lisibilité du code source et sa gestion
Il est divisé en plusieurs parties relativement indépendantes
Grâce à la notion de BLOC
Bloc d’instructions : sous-séquence d’instructions, délimitée par
des accolades (i.e. { et }).
Exemple: les instructions 2, 3 et 4 suivantes sont contenues dans un bloc distinct
Notion de fonction
• Il est aussi possible de définir un bloc à l’intérieur d’un autre
bloc, et de répéter cela récursivement. On peut alors parler de
sous-bloc
exemple : les instructions 3 et 4 sont maintenant dans un sous-
bloc
Notion de fonction
• Le bloc peut avoir à être utilisé à plusieurs reprise
• On peut lui donner un nom (afin de le désigner
facilement)
=> Notion de fonction
Fonction : bloc d’instructions identifié par
un nom, des entrées et des sorties.
• Exemple
Identificateurs et mots-clés
1 ) Comment line
2) Preprocessor directive
3 ) Global variable declaration
4) main function( )
{
Local variables;
Statements;
}
User defined function } }
Types et opérateurs de base(1)
Types entiers - Integer Types
• Les types "integer" en C forment une famille de types
entiers.
• Ils se comportent tous comme des entiers et peuvent être
mélangés et utilisés de manière similaire.
• Les différences sont dues au nombre différent de bits
("largeurs") utilisés pour implémenter chaque type - les
types plus larges peuvent stocker une plus grande plage
de valeurs.
L’AFFECTATION (ASSIGNATION)
• L'affectation est l'opération qui attribue à une variable, au
moyen de l'opérateur =, une valeur constante ou résultat
d'une expression.
L’AFFECTATION (ASSIGNATION) -
Exemple
L’AFFECTATION (ASSIGNATION)
• Remarque : C permet de faire des assignations entre des variables
de types différents. Des conversions de types sont alors
automatiquement réalisées.
LES ENTREES/SORTIES -L’AFFICHAGE
• L’instruction printf permet d'obtenir un affichage formaté
à l'écran.
Liste de comparaisons
• <,
• >,
• <= pour ≤
• >= pour ≥
• = = pour l’égalité
• ! pour la négation
• ! = pour la différence
Expressions logiques
• ou : II
• et : &&
• non: ! (placé avant l’expression à nier)
– Exemple:
int a ;
if ((a<3) && (a>1))
• Toute expression possède une valeur.
• Toute valeur non nulle est logiquement assimilée à « vrai »
• La valeur nulle (0) est assimilée a « faux »
– Exemple: l’affectation n=3, possède la valeur 3
Opération unaire
Types de données
• notion de type de données est fondamentale en
programmation
• liée à la façon dont l’information est représentée dans la
mémoire d’un ordinateur
Structures de contrôle
• Si déclaration: If
L'<expression> peut être n'importe quelle expression valide.
Les parenthèses autour de l'expression sont obligatoires,
même s'il ne s'agit que d'une seule variable.
Boucle « While »
La boucle while évalue l'expression de test avant chaque
boucle, elle peut donc s'exécuter zéro fois si la condition
est initialement fausse. Il nécessite la parenthèse comme
le si.
Boucle « Do-While »
• Comme la boucle while, mais avec la condition de test
au bas de la boucle. Le corps de la boucle s'exécutera
toujours au moins une fois. Le do-while est un domaine
impopulaire de la langue, presque tout le monde essaie
d'utiliser la boucle while ‘normale’ si possible.
do {
<statement>
} while (<expression>)
« Break » (1)
• L'instruction break déplacera le contrôle en dehors d'une
boucle ou d'une instruction switch.
• Rq: Il est préférable d'utiliser un « while »en ayant un
seul essai si possible.
• Parfois, il faut utiliser « break » car le test ne peut se
produire qu'au milieu des instructions dans le corps de la
boucle.
« Break » (2)
L'opérateur conditionnel
• L’opérateur conditionnel ou opérateur ternaire est un
opérateur particulier dont le résultat dépend de la
réalisation d’une condition. Son deuxième nom lui vient
du fait qu’il est le seul opérateur du langage C à requérir
trois opérandes : une condition et deux expressions.
i
0 9
int tableau [10] ;
accès directe à la
type de case nombre de cases souhaitées place mémoire
Tableaux statiques (2)
• Un tableau statique est une entité constante: il ne peut pas
apparaître (seul) à gauche d’un signe d’affectation.