Vous êtes sur la page 1sur 59

Cours 4 : Algorithmique et programmation

Cours 4 :

Algorithmique et
programmation

1
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Objectif et plan du cours


 Objectif:
• Apprendre les concepts de base de l'algorithmique et de la
programmation

• Etre capable de mettre en œuvre ces concepts pour analyser des


problèmes simples et écrire les programmes correspondants
 Plan:
• Généralités (systèmes d’exploitation, langages de programmation, …)

• Algorithmique (affectation, instructions conditionnelles, instructions


itératives, fonctions, procédures, …)

• C (un outil de programmation)


2
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Introduction

• Eléments d’un système informatique

Applications
(Word, Excel, Jeux, Maple, google chrome, etc.)
Langages de programmation
(pascal, Java,C/C++, Fortran,etc.)
Système d’exploitation
(DOS, Windows, Unix, Macintosh, Android, etc.)
Matériel
(PC,serveur, station SUN, etc.)

3
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Qu’est ce qu’un système d’exploitation?

 Ensemble de programmes qui gèrent le matériel et


contrôlent les applications

• Gestion des périphériques (affichage à l'écran, lecture du


clavier, pilotage d’une imprimante, …)
• Gestion des utilisateurs et de leurs données (comptes,
partage des ressources, gestion des fichiers et répertoires, …)

• Interface avec l’utilisateur (textuelle ou graphique):


Interprétation des commandes

• Contrôle des programmes (découpage en taches, partage


du temps processeur, …)

4
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Langages informatiques
 Un langage informatique est un outil permettant de donner
des ordres (instructions) à la machine
• A chaque instruction correspond une action du
processeur

 Intérêt : écrire des programmes (suite consécutive


d’instructions) destinés à effectuer une tache donnée

• Exemple: un programme de calcule la Moyenne des étudiants

 Contrainte: être compréhensible par la machine

5
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Langages Haut niveau


 Intérêts multiples pour le haut niveau:
• proche du langage humain «anglais» (compréhensible)
• permet une plus grande portabilité (indépendant du
matériel)
• Manipulation de données et d’expressions complexes
(réels, objets, a*b/c, …)

 Nécessité d’un traducteur (compilateur/interpréteur),

Code source Compilateur ou


Langage machine
en langage évolué interpréteur

6
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Compilateur/interpréteur
 Compilateur: traduire le programme entier une fois pour
toutes
Compilateur exécution
exemple.c exemple
fichier source fichier exécutable

• + plus rapide à l’exécution


• + sécurité du code source
• - il faut recompiler à chaque modification
 Interpréteur: traduire au fur et à mesure les instructions
du programme à chaque exécution
Interprétation+exécution
exemple.bas
fichier source

•- exécution lente par rapport à la compilation


7
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Etapes de réalisation d’un programme

Enoncé du problème
Spécification
Cahier des charges
Analyse
Algorithme
Traduction en langage
Programme source
Compilation
Programme exécutable
Tests et modifications
Version finale et résultats

La réalisation de programmes passe par l’écriture d’algorithmes


 D’où l’intérêt de l’Algorithmique
8
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

9
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Algorithmique
 Le terme algorithme vient du nom du mathématicien arabe
Al-Khawarizmi
 Un algorithme est une description complète et détaillée des actions
à effectuer et de leur séquencement pour arriver à un résultat donné
Intérêt: séparation analyse/codage (pas de préoccupation de syntaxe)
Qualités: exact (fournit le résultat souhaité),
efficace (temps d’exécution, mémoire occupée), clair (compréhensible),
général (traite le plus grand nombre de cas possibles), …

 Une bonne connaissance de l’algorithmique permet d’écrire des


programmes exacts et efficaces.

10
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Représentation d’un algorithme


Historiquement, deux façons pour représenter un algorithme:
 Le pseudo-code: représentation textuelle avec une série de
conventions ressemblant à un langage de programmation
(sans les problèmes de syntaxe)

 plus pratique pour écrire un algorithme


 représentation largement utilisée

 L’Organigramme: représentation graphique avec des


symboles (carrés, losanges, etc.)
 offre une vue d’ensemble de l’algorithme
 représentation quasiment abandonnée aujourd’hui

11
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Représentation d’un algorithme

12
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Description de l’algorithme
Environnement/ Déclaration

Comprendre le problème avant de le résoudre

 Donner un nom à l’algorithme (Nom)

 Identifier et nommer chaque Entrée/Données

 Identifier et nommer chaque Sortie/Résultats

13
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Description de l’algorithme

Corps/ programme

 Dés qu’on termine la préparation de la description de l’algorithme, on


peut résoudre le problème.

 On développe une série d’instruction qui vont calculer le Résultat


désiré a partir des données en entré (Corps)

14
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Notion de variable
 Dans les langages de programmation une variable sert à stocker la
valeur d’une donnée et/ou Résultat

 Une variable désigne en fait un emplacement mémoire dont


le contenu peut changer au cours d’un programme (d’où le nom variable)

 Règle : Les variables doivent être déclarées avant d’être utilisées, elle
doivent être caractérisées par :
 un nom (Identificateur)
 un type (entier, réel, caractère, chaîne de caractères, …)

15
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Choix des identificateurs


Le choix des noms de variables est soumis à quelques règles qui varient
selon le langage, mais en général:

 Un nom doit commencer par une lettre alphabétique


exemple valide: A1 exemple invalide: 1A

 doit être constitué uniquement de lettres, de chiffres et du soulignement


_ (Eviter les caractères de ponctuation et les espaces)
valides: SMIP2007, SMP_2007 invalides: SMP 2005, SMP;2007

 doit être différent des mots réservés du langage


(par exemple en C: int, float, else, case, default, for, main, return, …)

 La longueur du nom doit être inférieure à la taille maximale spécifiée


par le langage utilisé
16
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Types des variables


Le type d’une variable détermine l’ensemble des valeurs qu’elle peut
prendre, les types offerts par la plus part des langages sont:

 Type numérique (entier ou réel)


Entier court (codé sur 2 octets) : -32 768 à 32 767
Entier long (codé sur 4 ou 8 octets)
Réel simple précision (codé sur 4 octets)
Réel double précision (codé sur 8 octets)
Réel double précision étendue(codé sur 10 octets)
 Type logique ou booléen: deux valeurs VRAI ou FAUX

 Type caractère: (1 octets: code ASCII) lettres majuscules, minuscules,


chiffres, symboles, …
exemples: ’A’, ’a’, ’1’, ’?’, …
 Type chaîne de caractère: toute suite de caractères,
exemples: " Nom, Prénom", "code postale: 1000", …17
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Déclaration des variables


Toute variable utilisée dans un programme doit avoir fait l’objet d’une
déclaration préalable.

 En pseudo-code, on va adopter la forme suivante pour la


déclaration de variables:
Variables liste d'identificateurs : type

Exemple:
Variables d’entrées/sorties/ ou intermédiaire i,j,k : entier
………………………………………………. x, y : réel

………………………………………………. ch1: caractères

18
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

L’instruction d’affectation
 L’affectation consiste à attribuer une valeur à une variable (ça
consiste en fait à remplir où à modifier le contenu d'une zone
mémoire)

 En pseudo-code, l'affectation se note avec le signe =


Var = e ( attribue la valeur de e à la variable Var)

Remarque:
- e : peut être une valeur, une autre variable ou une expression
-Var et e doivent être de même type ou de types compatibles

Exemple valides: i =1 j =i k =i+j


x =10,3 ch1 = "SMI"
ch2 = ch1 x =4 x =j

19
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Quelques remarques
 L'affectation n'est pas commutative : A=B est différente de B=A

 l'affectation est différente d'une équation mathématique :

A=A+1 : la nouvelle valeur de A est égale to l’ancienne valeur plus 1

 Certains langages donnent des valeurs par défaut aux variables


déclarées. Pour éviter tout problème il est préférable d'initialiser les
variables déclarées.

20
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Exercices sur l'affectation


 Donnez les valeurs des variables A, B et C après exécution des
instructions suivantes ?

Variables d’entrées A, B: Entier


Variables de sortie C: Entier
Début
A=3
B =7
A=B
B = A+5
C=A+B
C=B–A
Fin

21
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Expressions et opérateurs
 Une expression peut être une valeur, une variable ou une opération
constituée de variables reliées par des opérateurs
exemples: 1, b, a*2, a+ 3*b-c, …

 Les opérateurs dépendent du type de l'opération, ils peuvent être :

des opérateurs arithmétiques: +, -, *, /, % (modulo),pow


des opérateurs logiques: NON (!), OU(|), ET (&)
des opérateurs relationnels: ==, != , || ,&& , <, >, <=, >=

 Une expression est évaluée de gauche à droite mais en tenant


compte de priorités

22
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Priorité des opérateurs


 Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de
priorité est le suivant (du plus prioritaire au moins prioritaire) :

* , / (multiplication, division)
% (modulo)
+ , - (addition, soustraction)
Exemple: 2 + 3 * 7 vaut 23

 En cas de besoin (ou de doute), on utilise les parenthèses pour


indiquer les opérations à effectuer en priorité

exemple: (2 + 3) * 7 vaut 35

23
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Les instructions d'entrées-sorties: lecture


et écriture
 Les instructions de lecture et d'écriture permettent à la machine de
communiquer avec l'utilisateur

 La lecture permet d'entrer des donnés à partir du clavier


En pseudo-code, on note: lire (var)
La machine met la valeur entrée au clavier
dans la zone mémoire nommée var

 L'écriture permet d'afficher des résultats à l'écran (ou de les écrire


dans un fichier)

En pseudo-code, on note: écrire (var)


la machine affiche le contenu de la
zone mémoire var
24
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Exemple (lecture et écriture)

 Ecrire un algorithme qui demande un nombre entier à l'utilisateur,


puis qui calcule et affiche le double de ce nombre.

 Algorithme : Calcul_double
Données A : entier
Résultats B : entier
Début
écrire("entrer le nombre ")
lire (A)
B = 2*A
écrire (B)
Fin

25
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Les instructions Conditionnelles


 Les instructions conditionnelles servent à n'exécuter une instruction ou
une séquence d'instructions que si une condition est vérifiée

 On utilisera la forme suivante: Si (condition) Alors Début_si


instruction ou suite d'instructions1
Fin_si
Sinon Début_sinon
instruction ou suite d'instructions2
Fin_sinon

 La partie Sinon n'est pas obligatoire, quand elle n'existe pas et que la
condition est fausse, aucun traitement n'est réalisé

On utilisera dans ce cas la forme simplifiée suivante:


Si (condition )Alors Début_si
instruction ou suite d'instructions1
Fin_si
26
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Exemple (Si…Alors…Sinon)
 Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis
qui teste et affiche s'il est divisible par 3 ou non

 Algorithme : Divsible_par3
Données A : entier
Début
écrire("entrer le nombre ")
lire (A)
Si (A%3== 0) alors debut_si
écrire ( "le nbr A est Divisible par 3" )
fin_si
Sinon debut_sinon
écrire ( " le nbr A n’est pas Divisible par 3 ")
Fin_sinon
Fin
27
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Exemple Tests imbriqués


Algorithme : Test un nombre
Données A : entier
Début
lire (A)
Si (A<0) Alors Début_si
Ecrire ("Ce nombre est négatif")
Fin_si

Sinon Début_sinon
Si (A>0) alors début_si
Ecrire ("Ce nombre est positif")
Fin_si
Sinon début_sinon
Ecrire ("Ce nombre est nul")
Fin_sinon
Fin_sinon
28
Fin
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Instructions itératives: les boucles


 Les boucles servent à répéter l'exécution d'un groupe d'instructions un
certain nombre de fois

 On distingue trois sortes de boucles en langages de programmation :

 Les boucles Pour ou avec compteur : on y répète des instructions en


faisant évoluer un compteur.

 Les boucles Tant que : on y répète des instructions tant qu'une certaine
condition est réalisée

 Les boucles Répéter…Tantque : on y répète des instructions jusqu'à ce


qu'une certaine condition soit réalisée

29
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

les Boucles Pour


 La syntaxe du Pour est la suivante :

Pour compteur allant de initiale à finale par pas valeur du pas


Debut_pour
instructions
Fin_Pour

Pour i allant de 0 à N par pas 1


Debut_pour
instructions
Fin_Pour

30
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Exemple (Pour)
 Calcul de x à la puissance n où x est un réel et n un entier positif

 Algorithme : Calcule puissance


Var Entrée: x: réel
n: entier
Intermédiaire: i: entier
Var Sortie: Puis: réel
Début
écrire("entrer la valeur de x ");
lire (x);
écrire (" Entrez la valeur de n ");
lire (n);
Puis=1;
Pour i allant de 0 à n-1 par pas de 1 Début_pour
Puis= Puis* x ;
fin_pour
écrire (x, " à la puissance ", n, " est égal à ", Puis);
Fin 31
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

les Boucles Tantque


 La syntaxe du Tantque est la suivante :

Tantque (Condition)
Debut_Tantque
instructions
Fin_Tantque

 la condition (dite condition de contrôle de la boucle) est évaluée avant chaque


itération
 si la condition est vraie, on exécute instructions (corps de la boucle), puis, on
retourne tester la condition. Si elle est encore vraie, on répète l'exécution, …

 si la condition est fausse, on sort de la boucle et on exécute l'instruction qui est


après Fin_Tantque 32
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Exemple (Tantque)
 Un algorithme qui détermine le premier nombre entier N tel que la
somme de 1 à N dépasse strictement 5

 Algorithme : Déterminer N
Intermédiaire: i, Som: entier
var Sortie N: entier
Début
i=0
Som=0
Tantque (Som<=5) Début_Tantque
i=i+1
Som=Som+i
fin_Tantque

Ecrire (" La valeur cherchée est N= ", i)


Fin

33
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

les Boucles Répéter…. Tantque


 La syntaxe du Répéter… Tantque est la suivante :

Répéter
Debut_Répéter
instructions
Fin_Répéter
Tantque (Condition)

 les instructions entre Répéter et Tantque sont exécutées au moins une fois et
leur exécution est répétée Tantque condition soit vrai.

34
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Exemple (Répéter…Tantque)
 Un algorithme qui détermine le premier nombre entier N tel que la
somme de 1 à N dépasse strictement 5

 Algorithme : Déterminer_N
Intermédiaire: i, Som: entier
Var sortie N: entier
Début
i=0
Som=0
Répéter Début_Répéter
i=i+1
Som=Som+i
fin_Répéter Tanque (Som<=5)

Ecrire (" La valeur cherchée est N= ", i)


Fin

35
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Choix d'un type de boucle


 Si on peut déterminer le nombre d'itérations avant l'exécution de la
boucle, il est plus naturel d'utiliser la boucle Pour.

 S'il n'est pas possible de connaître le nombre d'itérations avant


l'exécution de la boucle, on fera appel à l'une des boucles Tantque ou
Répéter …Tantque

 Pour le choix entre Tantque et Répéter :

 Si on doit tester la condition de contrôle avant de commencer les


instructions de la boucle, on utilisera Tantque

 Si la valeur de la condition de contrôle dépend d'une première exécution


des instructions de la boucle, on utilisera Répéter… tantque

36
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

37
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Structure d’un fichier en Langage C

38
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

Exemple
/* Programme Affiche nombre */
# include <stdio.h>

int a;

int main()
{
a = -12;

printf ("La valeur du nombre est %d\n",a);

return 0;
}

39
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C : Généralités
 Pour introduire un texte en tant que commentaire, il suffit de
précéder la ligne par /*……………..*/

 C fait la distinction entre les lettres majuscules et minuscules

 les caractères dits " spéciaux " c'est-à-dire l’espace et les


symboles : (, ), +, -,= et ; sont interdits.

40
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C : nom et type des variables


 Le nom d'une variable peut être une combinaison de lettres et de
chiffres, mais qui commence par une lettre, qui ne contient pas
d'espaces et qui est différente des mots réservés

 Le type d'une variable : Les principaux types définis en C sont : int


(entier), float (réel), Char (chaîne de caractères). unsigned (non
signé;
 Séparateur : ; Séparateur fin de ligne

, Séparateur des variables


 Une constante est un identificateur qui contient une valeur qui
ne sera jamais modifiée au cours du programme.
#define nom_constante valeur_constante

41
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C : Opérateurs

42
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C : l'affectation

L'opérateur ? : est un opérateur ternaire dont la syntaxe est résumé par :


expression1 ? expression2 : expression3 ;
Si expression1 rend la valeur vraie alors expression2 est évaluée et le
résultat est celui d'expression2, sinon c'est expression3 qui est évaluée et
le résultat est celui d'expression3.
L'exemple:
c = a<b ? a : b ; calcule le minimum des nombres a et b, et place le
43
résultat dans c.
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C : instructions d'entrées-sorties
 La fonction Printf : printf("%d",A); permet d'afficher la valeur de la
variable A (c'est l'équivalent de écrire en pseudo code).
 printf( " la Somme= %d",S);

44
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C : instructions d'entrées-sorties
 Exemple:
int x=10 ; float y=2,5 ;
printf (" je vais afficher %d", x) ; // je vais afficher 10
printf (" je vais afficher %.2f",y) ; // je vais afficher 2.50

45
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C : instructions d'entrées-sorties
 La fonction scanf: scanf("%d",&A); permet de saisir la valeur de la
variable A (c'est l'équivalent de lire en pseudo code).

 Exemple:
float y ;
scanf(%f", &y) ; // je veut saisir la valeur de y

46
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C: Instructions conditionnelles ou de sélection


 Les instructions conditionnelles permettent de réaliser des tests, et
suivant le résultat de ces tests, d'exécuter des parties de code
en pseudo code Traduction en C
Si (condition) alors if (condition)
Début_si {
instructions instructions ;
Fin_si }

Si (condition) alors if (condition )


Début_si {
instructions 1 instructions1;
Fin_si }
Sinon Début_sinon else {
instructions2 instructions2;
Fin_sinon }

47
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C : Exemple (if…..else)
 Ecrire un programme qui demande deux nombres entier à l'utilisateur, puis
affiche le plus grand.
Solution :
#include <stdio.h>
int A,B;
int main ()
{
printf("donnez le premier nombre");
scanf(" %d ", &A);
printf("donnez le deuxième nombre");
scanf(" %d ", &B);
if (A > B) {
printf(" %d est supérieur à %d", A,B);
}
else {
printf(" %d est supérieur à %d", B,A);
}
return 0; 48
}
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C: Instructions de répétition ou d'itération


 Les instructions répétitives sont commandées par trois types de
boucles : le while le for le do … while
 en pseudo code Traduction en C
Tantque (condition) faire While (condition)
Début_Tantque {
instructions instructions ;
Fin_tantque }
Pour compteur=min jusqu’à max alors For (initialisation de compteur; condition;Pas )
Début_Pour {
instructions instructions;
Fin_Pour }

Répéter Début_Répéter do {
instructions instructions;
Fin_Répéter }
Tantque (Condition) While (Condition);
49
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C : Exemple Do…While & While


#include <stdio.h>
int n,F,i;
int main (){
do {
printf("donner un nombre:");
scanf("%d",&n) ;
} while (n<0) ;
i=1 ;
F=1 ;
while (i<=n)
{
F=F*i ;
i++ ;
}
printf("le factoriel de %d est %d",n,F) ;
return 0 ;}

50
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C : Exemple For N
i+ 1
Écrire un programme C qui permet de calculer S=∑ 2 avec N ∈ℕ
i =1 −(2i+ 1)
#include <stdio.h>
#include <math.h>
int N,i; float S;
int main ()
{ printf("donner un nombre N:");
scanf("%d",&N) ;
S=0 ;
for (i=1; i<=N ; i++)
{
S=S+ (i+1)/(-pow(2*i+1,2));
}
printf("La somme = %f ",S) ;
return 0 ;
}

51
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C : Exemple For (plusieurs expression)


Écrire un programme C qui permet d’utiliser plusieurs expressions dans
l'instruction de rebouclage.
#include <stdio.h>
int i,j;
int main() {
for(i=0,j=10; i <=5,j>=5; i++,j--) {
printf("i=%d ", i);
printf("j=%d \n", j);
}
printf("fin du programme\n");
return 0; }

52
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C : Exemple For (imbriquée)


Écrire un programme C qui permet d’utiliser plusieurs expressions dans
l'instruction de rebouclage.
#include <stdio.h>
int i,j;
int main() {
for(i=0; i <=4; i++) {
printf("%d ", i);
for(j=1; j<=2; j++)
{ printf("%d ", j); }

// printf("\n");
}
printf("fin du programme\n");
return 0;
53
}
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C: Table de branchement
 Pour éviter les imbrications d'instructions if, le C possède une
instruction qui crée une table de branchement : c'est l'instruction
switch
 La syntaxe du switch est résumée:
switch (Variable) {
case value1 : <bloc d'instructions 1> ;
break ;
case value2 : <bloc d'instructions 2> ;
break ;
case valueN: <bloc d'instructions 3> ;
break ;
default : <bloc d'instructions 4> ;
break ;
}

54
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C : Exemple SWITCH
#include <stdio.h>
char c; float a,b,res;
int main ()
{ scanf("%f",&a) ;
scanf("%f",&b) ;
scanf("%c",&c) ;
switch(c) { case '+': res=a+b;
break;
case '-': res=a-b;
break;
case '*': res=a*b;
break;
case '/': if (b!=0) res=a/b;
else printf("erreur de division par zero");
break;
default: printf(" cette opération est erronées");
}
printf("Le Résultat = %f",res);
return 0 ; 55
} 2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C: Instructions de rupture de séquence


 L’instruction break peut être utilisée pour interrompre l’exécution d’une
boucle. (Il ne peut sortir que d'un niveau d'accolade.)

 Remarque: Mis à part break qui peut être utilisé dans le contexte d’un bloc
switch, les instructions de rupture de séquence ne peuvent être utilisées que
dans le corps d’une boucle.

 L’instruction continue peut être utilisée pour interrompre l’exécution d’une


itération de boucle. L’exécution reprend au début de l’itération suivante de la
boucle si la condition est vérifié et à la première instruction suivant la boucle
sinon.

 Le goto permet d'aller n'importe où à l'intérieur d'une fonction. Il est


cependant très utilisé après des détections d'erreur, car il permet de sortir de
plusieurs blocs imbriqués. Il est associé à une étiquette appelée label. Un
label est une chaîne de caractères suivie de : 56
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C : Exemple Break
Exemple:
#include <stdio.h>
int d ;
int main ()
{
for (d=100; d>=0; d-=10)
{ if(d == 50) {
break;
}
printf("%d ", d);

}
printf( " fin du programme\n") ;
return 0 ;
}

57
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C : Exemple Continue
Exemple:
#include <stdio.h>
int d ;
int main ()
{
For (d=100; d>=0; d-=10)
{ if(d == 50) {
continue; }
printf("%d ", d);

}
printf( " fin du programme\n") ;
return 0 ;
}

58
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1
Cours 4 : Algorithmique et programmation

C : Exemple goto
Exemple:
#include <stdio.h>
int d ;
int main ()
{
For (d=100; d>=0; d-=10)
{ if (d == 50)
goto pr;
printf("%d ", d);

}
pr: printf( " fin du programme\n") ;

return 0 ;
}

59
2014-2015 © École Préparatoire en Sciences et Techniques Semestre 1

Vous aimerez peut-être aussi