Vous êtes sur la page 1sur 24

Algorithmique et programmation 1 Chapitre2

Chapitre 2 : Les objets algorithmiques


simples et leurs traitements

Vue d’ensemble
Ce chapitre détaille la première partie d’un algorithme : la déclaration des variables. Il
apporte des réponses aux questions suivantes : C’est quoi une variable ? Pourquoi on a
besoin des variables ? Comment déclarer une variable ?
Pour ceci, il présente les différents types que peut avoir une variable et les opérations qu’on
peut effectuer sur ces dernières. Tout ceci dans le but de faire comprendre la démarche de
programmation.
La deuxième partie de ce chapitre est consacrée à une notion importante en algorithmique :
les traitements ou instructions (affectation, lecture, écriture).

Objectifs spécifiques
A la fin de ce chapitre, les étudiants auront les connaissances nécessaires pour :
 Connaître l’utilité des variables,
 Déclarer les variables avec les types adéquats,
 Connaitre les opérations possibles sur les variables.
 Affecter les bonnes valeurs aux variables déclarées.
 Tracer l’exécution d’un algorithme donné.
 Utiliser les instructions simples d’écriture et de lecture.
 Ecrire des petits algorithmes.

Pré-requis
Néant

Volume horaire
4.5 heures

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 1


Algorithmique et programmation 1 Chapitre2

Eléments du contenu
 Utilité des variables,
 Déclaration des variables,
 Types et opérations en algorithmique,
 Types et opérations en C,
 L’instruction d’affectation,
 L’instruction de lecture,
 L’instruction d’écriture,
 Applications.

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 2


Algorithmique et programmation 1 Chapitre2

I. Les objets algorithmiques simples

1. Utilité des variables


Il peut s’agir de données issues du disque dur, de données fournies par l’utilisateur comme il
peut aussi s’agir de résultats obtenus par le programme, intermédiaires ou définitifs.
Dès qu’on aura besoin de stocker une information au cours d’un programme, on va utiliser
une variable.
Une variable est un emplacement mémoire (défini par une adresse) pour contenir une valeur.
Le type de la variable doit être connu d’avance.
Une variable est un objet qui a un nom, une taille, un contenu et une adresse.
 Le nom de la variable s’appelle identificateur de la variable,
 La taille dépend du type de la variable (exemple : 2 octets pour un entier, 1 octet
pour un caractère, 4 octets pour un réel…),
 Le contenu est l’information ou la valeur que contient la variable,
 L’adresse désigne le numéro du 1er octet occupé par cette variable en mémoire
centrale.
Un algorithme peut ne pas avoir des variables.

2. Déclaration des variables

Algorithme « nom de l’algorithme »


Const Partie déclarative
{Liste des constantes avec leurs valeurs}
Types
Type1 = definition_type
Var
{Liste des variables suivies par leurs types}

Début
Partie corps de
{Séquence d’actions} l’algorithme
Fin

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 3


Algorithmique et programmation 1 Chapitre2

Comme vu dans le chapitre précédent, la déclaration des variables se fait au tout début de
l’algorithme (partie déclarative), avant les instructions (partie corps de l’algorithme).
Lorsqu’on déclare une variable, on doit penser à ce que l’on va mettre dedans (type de
données), car de cela dépendent la taille de l’emplacement mémoire et le type de codage
utilisé.
Syntaxe en algorithmique
Var
nom_de_variable1 : type_de_variable1
nom_de_variable2 : type_de_variable2

nom_de_variableN : type_de_variableN
Avec :
 nom_de_variable : le nom qu’on donne à la variable. Il doit être en français et il
ne doit pas contenir des caractères spéciaux tel que , : . Espace.
 type_de_variable : le type parmi les types qu’on va définir ultérieurement.

Exemple
Var
v : entier
x, y : réel
Syntaxe en C
Type1 nom_de_variable1 ;
Type2 nom_de_variable2 ;
……
TypeN nom_de_variableN ;
Avec :
 type : le type parmi les types qu’on va définir ultérieurement.
 nom_de_variable : le nom qu’on donne à la variable. Il doit être en français et il
ne doit pas contenir des caractères spéciaux tel que , : . Espace.
Exemple
int v ;
float x, y ;

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 4


Algorithmique et programmation 1 Chapitre2

3. Les constantes
Une constante, comme son nom l’indique, est un objet ayant un contenu non modifiable.
Syntaxe en algorithmique
Const
nom_de_la_constante = valeur
Exemple
Const
pi=3.14

Syntaxe en C
Const type nom_de_la_constante = valeur ;

Exemple
Const float pi=3.14 ;

4. Les types de données en algorithmique


Toute variable utilisé dans un algorithme doit avoir un type qui caractérise l’ensemble de
valeur qu’elle peut prendre dans cet algorithme. Il y a 2 catégories de type les types simples et
les types complexes (qui se présentent comme composition de type simple). Dans ce chapitre
on va présenter uniquement les types simples.

4.1. Les types numériques classiques

Si l’on réserve un octet pour coder un nombre, qu’on ne pourra coder que 2 8 = 256 valeurs
différentes. Cela peut signifier par exemple les nombres entiers de 1 à 256, ou de 0 à 255, ou
de –127 à +128… Si l’on réserve deux octets, on a droit à 65 536 valeurs ; avec trois octets,
16 777 216, etc.
Le type de codage (autrement dit, le type de variable) choisi pour un nombre va déterminer :
 les valeurs maximales et minimales des nombres pouvant être stockés dans la
variable.
 La précision de ces nombres.

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 5


Algorithmique et programmation 1 Chapitre2

Tableau 1- Plage de valeurs des types numériques

Type Numérique Plage

Byte (octet) 0 à 255

Entier simple -32 768 à 32 767

Entier long -2 147 483 648 à 2 147 483 647

-3,40x1038 à -1,40x1045 pour les valeurs négatives


Réel simple
1,40x10-45 à 3,40x1038 pour les valeurs positives

1,79x10308 à -4,94x10-324 pour les valeurs négatives


Réel double
4,94x10-324 à 1,79x10308 pour les valeurs positives

Les opérations prédéfinies sur les variables numériques sont :


 Les opérations arithmétiques usuelles : +, -, /, *
 Les opérations de comparaison : <, >, <=, >=, <>, =
 La division entière notée DIV tel que n DIV p retourne la partie entière d’une division
euclidienne.
 Le module noté MOD ou % tel que n MOD p donne le reste de la division entière de n
par p.
 La lecture
 L’écriture
 L’affectation

4.2. Le type caractère


Comprend les 26 lettres latines majuscules et les 26 lettres minuscules et quelques caractères
spéciaux. Ces variables sont délimitées par deux apostrophes.
Exemple :
‘a’, ‘b’, ‘Z’

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 6


Algorithmique et programmation 1 Chapitre2

Les opérations prédéfinies sur les variables caractères sont :


 Fonction Ord (car) : donne le rang caractère c'est-à-dire son code ASCII.
Exemple : Ord (‘A’)=65
 Fonction chr (n) avec n un entier : retourne le caractère ayant n comme code ASCII
Exemple : chr (65)=A
 Fonction suivant (car) : qui retourne le caractère suivant de car.
Exemple : suivant (‘A’)=B
 Fonction précédent (car) : qui retourne le caractère précédent de car.
Exemple : précédent (‘C’)=B
 Les opérations de comparaison <, >, <=, >=, =
 La lecture
 L’écriture
 L’affectation

4.3. Le type booléen


Le type booléen ou logique contient deux valeurs vrai ou faux.
 Les opérations prédéfinies sur les variables booléennes sont les opérateurs logiques ET,
OU, NON.
A B NON (A) A ET B A OU B
Vrai Vrai Faux Vrai Vrai
Vrai Faux Faux Faux Vrai
Faux Vrai Vrai Faux Vrai
Faux Faux Vrai Faux Faux
Tableau 2 : Plage de valeurs des types numériques

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 7


Algorithmique et programmation 1 Chapitre2

4.4. La priorité des opérateurs


Tableau 3- La priorité des opérateurs

Priorité Opérateurs Ordre d’évaluation


1 ( )
2 Non
3 *, /, % Gauche à droite
4 +, - Gauche à droite
5 <,<=,>= ,> Gauche à droite
6 =, <> Gauche à droite
7 ET
8 OU
Exemple
Evaluer les expressions suivantes :
Expressions Evaluation
45>10 : Vrai
2=3 OU 5>6 ET vrai : Faux
5+6%5=(5+6)%5 : Faux
5*6%5=5*(6%5) : Frai Faux
56/2>30 ET ‘D’>’c’ : Faux

5. Les types de données en C


Le langage C est un langage typé : toutes les variables et les constantes, ainsi que les valeurs
retournées par les fonctions sont d’un type spécifié.
Les types de base en C concernent :
 Les caractères,
 Les nombres entiers,
 Les nombres flottants ou réels.

5.1. Les caractères


Le type caractère ou char (de l’anglais « character ») permet de représenter les caractères de
la machine utilisée qui sont représentés sous forme d’entiers conforme au jeu de caractères
ISO-8859.

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 8


Algorithmique et programmation 1 Chapitre2

Ce jeu de caractère est codé sur 8 bits (un octet) dont les 128 premiers caractères
correspondent au code ASCII, les 128 derniers étant utilisés pour coder les caractères
spécifiques (accentués, de la langue arabe, etc.).
Il existe des caractères non imprimables: caractères de changement de ligne (\n), tabulation
(\t), etc
Il existe une conversion systématique de char en int. Une valeur de type caractère peut être
considérée:
 Comme le caractère concerné (a, z, \n)
 Comme le code de ce caractère: ex: 1000001 => 65 => caractère A (en ASCII)

Exemple :
#include<stdio.h>
void main()
{
char x = ‘A’;
printf(“ %c “, x);
}
 Ce programme affiche le caractère A

5.2. Les entiers :


Le mot-clé désignant une donnée de type entier est int (de l’anglais « integer »).
On peut faire précéder le mot-clé int par un attribut de précision (short ou long) et/ou d’un
attribut de représentation (signed ou unsigned (non signé c’est-à-dire pas de bit réservé au
signe, des nombres positifs seulement)).

Remarque :
Le langage C ne fournit pas de type booléen. On travaille dans ce cas avec des entiers en
utilisant la convention suivante : la valeur nulle représente la constante booléenne faux (ou
false), toute autre valeur sera assimilée à la constante vrai (ou true).

5.3. Les réels


Les types flottants permettent de représenter, de manière approchée, une partie des nombres
réels.
Notation: M.BE Avec M: mantisse ; E: exposant; B:base

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 9


Algorithmique et programmation 1 Chapitre2

Exemple: 1.5 1022 0.472 10-8


1.5 et 0.472: mantisses ;
22 et -8: exposants

Un nombre réel sera représenté en flottant. Le C prévoit trois types de flottants: float, double
et long double
Les constantes flottantes peuvent s’écrire indifféremment suivant l’une des deux notations:
 Décimale
 Exponentielle

La notation décimale doit comporter obligatoirement un point (~ virgule). La partie entière ou


décimale peut être omise : 12.43 -0.38 -.38 4. .27

La notation exponentielle utilise la lettre e (ou E) pour introduire un exposant entier


(puissance de 10), avec ou sans signe : 4.25E4 4.25e+4 42.5E3 54.27E-32
542.7E-33 5427e-34

5.4. Les opérateurs relationnels


Le langage C permet de comparer des expressions à l’aide d’opérateurs classiques de
comparaisons (2*a>b+5). Le résultat de la comparaison est:
 0 si le résultat de la comparaison est faux
 1 si le résultat de la comparaison est vrai
Les opérateurs relationnels sont: <, <=, >, >=, == (égal à), != (différent de). Les quatre
premiers sont de même de priorité (<, <=, >, >=). Les deux derniers (==, !=) sont de même
priorité, mais inférieure à celle des précédents.

Remarque :
Une comparaison peut porter sur deux caractères :
 c1==c2 est vrai si c1 et c2 contiennent le même caractère
 c1==‘e’ est vrai si c1 contient le caractère ‘e’ (code de c1 est égal au code de ‘e’)
 c1<c2 est vrai si le code de c1 a une valeur inférieure au code de c2 (le résultat de
cette comparaison varie selon le codage employé)

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 10


Algorithmique et programmation 1 Chapitre2

Exemple:
#include <stdio.h>
void main()
{
char c1=’1’, c2=’a’;
if(c1< c2) printf(“ inf ”);
else printf (“ sup ”);
}
 Ce programme affiche inf

L’ordre alphabétique est respecté pour les minuscules et majuscules ‘a’ < ‘b’
Les chiffres sont classés par ordre naturel ‘2’<‘ 3’

5.5. Les opérateurs logiques


Il existe trois opérateurs logiques: ET (noté &&), OU (noté ||), NON (noté !). Ces opérateurs
produisent un résultat numérique (int).
Exemple :
(a<b) && (c<d): prend la valeur 1 si les deux expressions sont vraies. 0 sinon.
(a<b) || (c<d): prend la valeur 1 si l’une des expressions est vraie. 0 sinon.
!(a<b): prend la valeur 1 si l’expression est fausse.
On rencontre fréquemment if (!n) équivalentà if (n==0).
Remarque :
 ! est prioritaire: !a==b ceci revient à (!a)==b et non !(a==b)
 || est moins prioritaire que &&. Tous deux sont de priorité inférieure aux
opérateurs arithmétiques et relationnels.

II. Les traitements

1. L’affectation
C’est l’action de charger une valeur dans une variable. Cette valeur peut elle-même être une
variable, le résultat d’une expression arithmétique ou logique ou une constante.
Syntaxe en algorithmique
Identificateur_var  <expression>

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 11


Algorithmique et programmation 1 Chapitre2

Syntaxe en C
Identificateur_var = <expression>

Expression peut être :


 Une variable
 Une constante
 Une expression arithmétique
 Une expression logique
Exemple1
L’instruction : A6 Signifie « mettre la valeur 6 dans la case mémoire identifié par A ».
Alors que l’instruction : B (A+4) Mod 3 Range dans B la valeur 1 (A toujours égale à
6).

Remarque
 Une constante ne peut jamais figurer à gauche d’une affectation.
 Après une affectation, l’ancien contenu est perdu pour être substitué par le nouveau
contenu.
 Une action d’affectation doit se faire entre deux types compatibles.

Exemple 2
A 3
B S+2
C B
D C+5
Remarque: on ne peut pas écrire A+B 4

Exemple 3
Algorithme exemple_3
Var X, Y : entier
Début
X12
Y X+4
X 3
Fin

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 12


Algorithmique et programmation 1 Chapitre2

Valeur de X Valeur de Y
Instruction 1 : 12 ---
Instruction 2 : 12 16
Instruction 3 :3 16

Exercice
Soient 3 variables A, B, et C. Ecrire une séquence d’instructions permettant de faire une
permutation circulaire de sorte que la valeur de A passe dans B, celle de B passe dans A. On
utilisera une seule variable supplémentaire.
Solution :
X C
C B
B A
A X

Cas particuliers : Les opérateurs d’incrémentation et de décrémentation:


 int i=5;
x = i + +;
 passe d'abord la valeur de i à x et incrémente après (x : 5 ; i : 6)
 int i=5;
x=i--;
 passe d'abord la valeur de i à x et décrémente après (x : 5, i : 4)
 int i=5;
x=++i;
 incrémente d'abord et passe la valeur incrémentée à x (i : 6, x : 6)

int i=5;
x=--i;
 décrémente d'abord et passe la valeur décrémentée à x (i : 4, x : 4)

Remarque :
 i=i+1 ; equivalent à i++ ; equivalent à ++i ;
 i=i-1 ; equivalent à i--; equivalent à --i ;

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 13


Algorithmique et programmation 1 Chapitre2

Exemple:
void main()
{
int n, i=5;
n= ++i -5 ;
printf("i: %d et n: %d",i,n); /* affichage i:6 et n: 1*/
i=5;
n= i++ -5 ;
printf("\n i: %d et n : %d",i,n); /*affichage i:6 et n: 0*/
}

2. La lecture
C’est une opération d’entrée.
L'ordre LIRE permet à l'ordinateur d’acquérir des données à partir de l’utilisateur, dans des
cases mémoire bien définies (qui sont les variables déclarées). On rappelle que les variables
sont des cases mémoire, supposées contenir un type de données, nommées par le nom de
variable.
Syntaxe en algorithmique
LIRE (variable 1, variable 2, …, variable N)

Equivalente à
LIRE (variable 1)
LIRE (variable 2)
………
LIRE (variable N)

L’instruction LIRE (variable 1) correspond aux opérations suivantes :


 Attendre : le programme est interrompu en attente d’une valeur saisie par l’utilisateur.
 Accepter : saisie de la valeur
 Affecter : la valeur entrée par l’utilisateur est attribuée à la variable

Exemple :
Lire(A) : lit une valeur à partir du périphérique d’entrée et la range dans la case mémoire
associée à A.

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 14


Algorithmique et programmation 1 Chapitre2

Lire(X,Y) : lit deux valeurs la première pour X et la deuxième pour Y.

Remarques
 La saisie se fait uniquement dans des variables. Ce sont les cases (cellules) qui pourront
accueillir les données correspondantes.
 La donnée à introduire doit être de même type que la variable réceptrice.

Avec le langage C on a 2 fonctions de lectur : getchar() et scanf().

2.1. La fonction getchar()

Syntaxe
getchar () ;

Cette fonction lit le prochain caractère du clavier. En général, getchar est utilisé dans une
affectation:
char x;
x = getchar();

Exemple :
#include <stdio.h>
void main()
{
char x;
x=getchar();
putchar(x);
}
 exécution si on saisit la lettre f : f

2.2. La fonction scanf()


Elle permet de lire une chaîne de caractères et de la convertir relativement à des spécifications
de conversion pour obtenir des données en format, bien déterminé. Elle est utilisée pour lire
des entiers, des réels, des caractères, etc.
Syntaxe
scanf (« format », adresse_variable1, adresse_variable2, …) ;

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 15


Algorithmique et programmation 1 Chapitre2

Avec :
 "format" : format de lecture des données
 adresse_variable1, … : adresses des variables auxquelles les données seront
attribuées
La fonction scanf reçoit ses données à partir du fichier d'entrée standard stdin (par défaut le
clavier).
La chaîne de format détermine comment les données reçues doivent être interprétées.
Les données reçues correctement sont mémorisées successivement aux adresses indiquées par
adresse_variable1, ….
L'adresse d'une variable est indiquée par le nom de la variable précédé du signe &.

Exemple 1 :
#include<stdio.h>
void main()
{
int n ;
printf(« saisir un entier ») ;
scanf(« %d »,&n) ;
printf(« l’entier est %d », n) ;
}
 exécution : saisir un entier 5
l’entier est 5

Exemple 2 :
#include<stdio.h>
void main()
{
int n ;
float m ;
printf(« saisir un réel et un entier ») ;
scanf(« %f%d », &m,&n) ;
printf(« les valeurs sont %d et %f», n, m) ;
printf(« les valeurs sont %f et %d », m, n) ;
}
 exécution : saisir un réel et un entier 3.6
7

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 16


Algorithmique et programmation 1 Chapitre2

les valeurs sont 7 et 3.6


les valeurs sont 3.6 et 7

Remarque :
Pour tous les spécificateurs, nous pouvons indiquer la largeur maximale du champ à évaluer
pour une donnée. Les chiffres qui passent au-delà du champ défini sont attribués à la
prochaine variable qui sera lue.

Exemple :
Soient les instructions:
int A,B;
scanf("%4d%2d", &A, &B);

 Si on tape 1234567 alors A=1234 B=56


 Le chiffre 7 sera gardé pour la prochaine instruction de lecture.

Remarque :
 putchar(x); équivalent à printf(« %c »,x);
 x=getchar(); équivalent à scanf(« %c »,&x) ;

3. L’écriture
C’est une opération de sortie.
Elle permet d’afficher des résultats sur un périphérique de sortie (écran). Ce résultat peut être:
 Une chaîne de caractères délimitée par des " ".
 La valeur d’une variable dont le nom est spécifié
 La valeur d’une expression

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 17


Algorithmique et programmation 1 Chapitre2

.Syntaxe en algorithmique
Ecrire (var) {afficher sur l’écran la valeur contenue dans la variable var.}
Ecrire (" message ") {afficher à l’écran la chaîne message}.
Ecrire (" message ", var) {afficher à l’écran le message puis la valeur contenue
dans la variable var}.
Ecrire (" message ", expression) {afficher à l’écran le message puis le
résultat de l’expression}.

Exemple 1
Ecrire (" La valeur est égale à : ", 3*2)
 
Message Expression
Ecrire (" La moyenne est = ", MOY)
 
Message Variable
Exemple 2
Lire (somme)
Lire(Nbre)
Ecrire ("La moyenne est : ", somme / Nbre)
Si l’utilisateur introduit 120 pour somme et 10 pour Nbre alors l’affichage sera : La moyenne
est 12.

Avec le langage C on a 2 fonctions d’écriture/affichage : putchar() et printf().

3.1. La fonction putchar()

Elle permet d’afficher sur l’écran un caractère.


Syntaxe
putchar (c)
Avec
c : une variable ou une constante de type char
Exemples
char A =225;
char B = '\a';
int C = '\a';

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 18


Algorithmique et programmation 1 Chapitre2

putchar('x'); /* affiche la lettre x */


putchar('?'); /* affiche le symbole ? */
putchar('\n'); /* retour à la ligne */
putchar(65); /* affiche le symbole ayant le code ASCII 65 => A
*/
putchar(A); /* affiche la lettre ayant le code ASCII 225 => ß */
putchar(B); /* beep sonore */
putchar(C); /* beep sonore */

3.2. La fonction printf()

Elle permet de convertir des arguments en chaînes de caractères relativement à des spécifications
de conversion.
Syntaxe
printf (format, liste d’expressions)
Avec
format : chaine entre « »
liste d’expressions : variables et expressions séparées par des virgules d’un
type en accord avec le format correspondant.
La partie « format » est en fait une chaîne de caractères qui peut contenir:
 du texte
 des séquences d'échappement
 Les spécificateurs de format qui indiquent la manière dont les valeurs des
expressions <Expr1.. N> sont imprimées.
 La partie "<format>" contient exactement un spécificateur de format pour chaque
expression <Expr1.. N>.
 Les spécificateurs de format commencent toujours par le symbole % et se terminent
par un ou deux caractères qui indiquent le format d'impression.
 Les spécificateurs de format impliquent une conversion d'un nombre en chaîne de
caractères. Ils sont encore appelés symboles de conversion.

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 19


Algorithmique et programmation 1 Chapitre2

Exemple 1:
#include<stdio.h>
void main()
{
printf(“ informatique appliquée “);
}
 Exécution : informatique appliquée

Exemple 2 :
#include<stdio.h>
void main()
{
int n=5 ;
printf(“ la valeur de n est %d “, n );
}
 Exécution : la valeur de n est 5

Exemple 3 :
#include<stdio.h>
void main()
{
int n=5 ;
float m=2.6 ;
printf(“ la valeur de n est %d et celle de m est %f “, n, m );
printf(“ la valeur de m est %f et celle de n est %d “, m, n );
}
 Exécution : la valeur de n est 5 et celle de m est 2.6
la valeur de m est 2.6 et celle de n est 5

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 20


Algorithmique et programmation 1 Chapitre2

Le tableau ci-dessous présente les principaux codes de conversion :

Remarque : Action sur le gabarit d’affichage


Par défaut, les entiers sont affichés avec le nombre de caractères nécessaires (sans espaces
avant ou après). Les flottants sont affichés avec six chiffres après le point.
Un nombre placé après % dans le code de format précise un gabarit d’affichage, c-à-d un
nombre minimal de caractères à utiliser. Si le nombre peut s’inscrire avec moins de
caractères, printf le fera précéder d’un nombre suffisants d’espaces ; en revanche, si le
nombre ne peut s’afficher convenablement dans le gabarit imparti, printf utilisera le nombre
de caractères nécessaires.
Le signe (-) placé après le symbole % (ex : %-4d), demande de cadrer l’affichage à gauche au
lieu de le cadrer (par défaut) à droite.

printf(« %3d », n);


 si n=20 => $20 (le symbole $ représente un espace)
 si n=3 => $$3
 si n=12345 => 12345

printf(« %10.3f »,x);


 si x=1.23 => $$$$$1.230
(six emplacements avant la virgules et 3 chiffres après la virgules)

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 21


Algorithmique et programmation 1 Chapitre2

Exemple 1:
#include<stdio.h>
void main()
{
int i=3;
printf("%d%d%d",i,i,i);
}
 exécution : 333

Exemple 2:
#include<stdio.h>
void main()
{
int i=3;
printf("%3d%3d%3d",i,i,i);
}
 exécution : 3 3 3

Exemple 3:
#include<stdio.h>
void main()
{
int i=12345;
printf("%2d %2d %2d",i,i,i);
}
 exécution : 12345 12345 12345

Exemple 4:
#include<stdio.h>
void main()
{
float x=12.5;
printf("%f %f",x,x);
}
 exécution : 12.500000 12.500000

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 22


Algorithmique et programmation 1 Chapitre2

Exemple 5:
#include<stdio.h>
void main()
{
float x=12.5;
printf("%5.2f %5.2f",x,x);
}
 exécution : 12.50 12.50

4. Applications
4.1. Application 1
Quel résultat produit le programme suivant ?
Algorithme valeur
Var
val, double : réel
Début
val231
doubleval*2
ecrire (" la valeur de val est : ", val)
ecrire (" la valeur de double est : ", double)
Fin

Correction
La valeur de val est : 231
La valeur de double est : 462

4.2. Application 2
Ecrire un algorithme qui demande un nombre à l’utilisateur puis qui calcule et affiche le
carré de ce nombre.

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 23


Algorithmique et programmation 1 Chapitre2

Correction
Algorithme carré
Var n, c : entier
Début
Ecrire (" donner un entier n ")
Lire (n)
cn*n
ecrire (" le carré est : ", c)
Fin

4.3. Application 3
Ecrire un algorithme qui lit le prix d’un article, le nombre d’articles et le taux de TVA et
qui fournit le prix total TTC correspondant sachant que :
Prix total TTC = prix unitaire * nbre*(1+TVA)
Correction
Algorithme calcul
Var Prix, TVA, nbr, TTC : réel
Début
Ecrire (" donner prix unitaire ")
Lire (Prix)
Ecrire (" donner TVA ")
Lire (TVA)
Ecrire (" donner le nombre d’articles ")
Lire (nbr)
TTCPrix * nbr*(1+TVA)
Ecrire (" le prix totale TTC est : ", TTC)
Fin

Abir BELHAJ KACEM – Karim HASSAN – Rym KALAI 24

Vous aimerez peut-être aussi