Vous êtes sur la page 1sur 24

Ecole Supérieure de Technologie - Kenitra

ALGORITHMIQUE ET
PROGRAMATION C
Pr. Kenza CHARAFEDDINE

QU'EST-CE QUE LA PROGRAMMATION ?

 La programmation consiste à écrire du code


informatique pour créer un programme, afin de résoudre
un problème.
 Les programmes consistent en une série d'instructions
indiquant à un ordinateur exactement quoi faire et
comment le faire.
Qu'est-ce qu'un langage de programmation ?

• Un langage de programmation est un langage artificiel qu'un


ordinateur comprend.
• Le langage est composé d'une série d'instructions qui s'emboîtent
pour former des instructions.
• Ces instructions indiquent à un ordinateur quoi faire.

Exemples ?
Il existe de nombreux langages de programmation différents,
certains plus compliqués et complexes que d'autres. Parmi les
langues les plus populaires, citons :
• Python
• Java
• C++
• BASIC
• Scratch
En Bref

• Les langages de programmation sont conçus pour être faciles à


comprendre et à écrire pour un humain. Cependant, un ordinateur
ne peut pas exécuter directement des programmes écrits dans
ces langages.

• La plupart des langages de programmation doivent être traduits


en code machine avant que l'ordinateur puisse exécuter les
instructions

Interpreté ou compilé?

• Un langage est dit compilé quand son implémentation


exécutable requiert un compilateur.

• Un langage interprété requiert un interprète.

• Théoriquement, un langage pourrait être aussi bien


implémenté à l'aide d'un compilateur que d'un
interprète
Interpreté ou compilé? Différence

• Le compilateur traduit une bonne fois pour toute un code


source en un fichier indépendant exécutable

• L'interprète est nécessaire à chaque lancement du


programme interprété, pour traduire au fur et à mesure
le code source en code machine.

Notions d’algorithme (1)


• Algorithme
Séquence finie d’actions permettant de résoudre un
problème donné

• Algorithmique
Ensemble des méthodes permettant de définir et/ou d’étudier
des algorithmes.
Notions d’algorithme (2)

• Les premiers algorithmes sont destinés à résoudre


certains problèmes mathématiques simples, par exemple
multiplier ou diviser des nombres.
• Ils étaient appliqués manuellement, et sont antérieurs de
plusieurs siècles (voire millénaires) à l’invention des
ordinateurs.
• Il existe également des algorithmes qui n’ont rien à voir
avec les mathématiques, comme par exemple les recettes
de cuisine.

Représentation d’un algorithme (1)


Exprimé dans un langage informel, ou incomplètement
formalisé :
• texte libre (i.e. description des différentes étapes en
français)
• organigramme (diagramme représentant les étapes),
pseudo-code (version simplifiée d’un langage informatique)
ou autres.
=> un algorithme n’est pas traité directement par un
ordinateur : il doit être formalisé, i.e. transformé en un
programme.
• Par opposition, une démonstration mathématique ou un
programme informatique sont exprimés en utilisant des
langages formels .

Représentation d’un algorithme- Organigrammes

• 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?

L’inconvénient de cette représentation est qu’il est difficile


de décrire des algorithmes complexes tout en gardant un
diagramme lisible.

exemple : le même algorithme représenté sous forme


d’organigramme puis de pseudo-code
• 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).
• Exemple 2: Pour planter et arroser un ensemble
d'arbres, on peut procéder de la manière suivante:
planter l'ensemble d'arbres et les arroser tous à la fin.

Diviser pour régner


• Plus Problème compliqué => Moins l’algorithme permettant
de le résoudre est évident à définir

• Pour cela, on utilise en général l’approche appelée diviser


pour régner.
• Cette méthode hiérarchique consiste à diviser notre
problème complexe en plusieurs sous-problèmes plus
simples à résoudre.
• L’approche s’applique récursivement aux sous-problèmes
s’ils sont eux-mêmes trop complexes
=>on les divise eux-mêmes en sous problèmes plus simples
si nécessaire.
On aboutit finalement à des sous-problèmes élémentaires,
c'est-à-dire qu’on ne peut plus les réduire à des sous-
problèmes plus simples.

Exemple : la table traçante


• Énoncé du problème :
– Une table traçante est un dispositif mécanique constitué d’une table de
dessin, d’un stylo et d’un moteur capable de déplacer le stylo.
– La table traçante possède un compteur.
– Elle est capable d’effectuer les actions suivantes :
• lever/baisser : lever le stylo, pour qu’il ne se trouve pas en contact avec la feuille
de papier posée sur la table de dessin, ou au contraire le baisser pour pouvoir
dessiner sur la feuille.
• centrer : positionner le stylo au centre de la table de dessin.
• haut/bas/gauche/droite : déplacer le stylo d’1 cm dans la direction indiquée.
• initialiser/incrémenter : initialiser/incrémenter le compteur. o Le problème est de
dessiner une croix centrée sur la feuille, et dont chaque branche mesure 10 cm.
Algorithme – Opérations de Base
• L'AFFECTATION

• 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

• Elle communique une valeur donnée ou un résultat d'une


expression à l'organe de sortie.

• INSTRUCTIONS DE CONTROLE

Instructions de contrôle

Instructions Instructions
Sélectives Itératives
• INSTRUCTIONS SELECTIVES
• Instruction « Si »

• Elle indique le traitement à faire selon qu’une condition (expression


logique) donnée est satisfaite ou non. Il est possible d’omettre
début et fin si le bloc d’instructions à exécuter est constitué d’une
seule instruction.

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 à :

2- On peut avoir plusieurs si imbriqués comme:

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

• Elle indique le traitement à faire selon la valeur d'une


variable.

• Exemple: Vérifier et Afficher si un caractère saisi est une


voyelle ou consonne
• INSTRUCTIONS ITERATIVES
• Instruction Pour

• Elle permet de répéter un traitement un nombre de fois


précis et connu en utilisant un compteur (variable à
incrémenter d'une itération à l'autre).

Exemple : Afficher la somme des entiers compris entre 0


et une valeur n saisie au clavier (n≥0).
• Instruction Tant que

Elle permet de répéter un traitement tant qu'une condition


est satisfaite.

Exemple : Afficher la somme des entiers compris entre 0


et une valeur n saisie au clavier (n≥0).
Instruction Faire Tant que

Elle permet de répéter un traitement tant qu'une condition


est satisfaite.

Exemple : Afficher la somme des entiers compris entre 0


et une valeur n saisie au clavier (n≥0).
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.

• Un programme est stocké dans un fichier (un ensemble de


données stockées sur un support persistant).

2 types de fichiers

Fichier source Fichier exécutable


(code source) (code binaire)
• Code source : programme exprimé dans un langage de
programmation compréhensible par un être humain, et ne
pouvant pas être exécuté directement par l’ordinateur.
• Code binaire : programme exprimé en langage machine,
pouvant être directement exécuté par l’ordinateur.

• Compilation : action de transformer un code source en code


binaire, de manière à obtenir un fichier exécutable à partir d’un
fichier source.

• Le code binaire est obtenu à partir du code source, en réalisant


un traitement appelé compilation. Ce traitement est réalisé par
un programme spécial appelé le compilateur.
• Compilation dépend du langage de programmation

Un programme: plusieurs sources de fichiers dédiés

Compilation

• Un seul fichier exécutable


• La première étape (en rouge) consiste à précompiler les
fichiers source
Intervient avant la compilation
Actions possibles :
– Inclusion d’autres fichiers dans le fichier à compiler.
– Définition des constantes symboliques et des macros.
– Compilation conditionnelle de code de programme
– Exécution conditionnelle des directives du précompilateur
Directives de précompilation :
– elles commencent par un #,
– elles ne sont pas des instructions C++,
– elles sont traitées avant la compilation.

• La deuxième étape (en bleu) est la compilation proprement


dite.
• La troisième étape (en orange) est appelée l’assemblage, et
consiste à transformer chaque fichier assembleur en un
fichier binaire.
• La quatrième et dernière étape (en vert) est l’édition des
liens. Elle consiste à rassembler dans un seul fichier binaire
tout le code binaire nécessaire à l’exécution du programme.
• Remarque : par abus de langage, on appelle compilation
l’ensemble de la procédure permettant d’obtenir un fichier
binaire à partir d’un ou plusieurs fichiers sources, alors qu’en
réalité, la compilation proprement dite n’est qu’une étape de
cette procédure (ici, la deuxième étape).

Erreurs de compilation et d’exécution


Deux types de problèmes

Erreur de compilation Erreur d’exécution


problème détecté lors erreur se produisant quand le
du processus de programme n’a pas le
comportement attendu lors de
compilation
son exécution

Erreur fatale Erreur non


fatale
Language C - historique
• développé à partir de 1972 dans les laboratoires Bell,
dans le but d’écrire le système d’exploitation Unix
• L’un des objectifs était de définir un langage portable.

• objectif non atteint car différentes versions du C sont


apparues, et ne sont pas complètement compatibles entre
elles.
• Les principales sont les suivantes :
– La version originale s’est stabilisée en 1978 et est appelée
Kernighan & Ritchie ou C K&R ;
– L’ANSI9 a défini sa propre version en 1989, basée sur le C K&R et
appelée C89 ou C ANSI ;
– L’ISO10 a défini sa version basée sur le C ANSI en 1999, qui est
appelée C99

Vous aimerez peut-être aussi