Algorithme et programmation C
Initiation à l’algorithmique et programmation C
Chapitre 2: Types de base, opérateurs
et expressions
Algorithme programmation
Syntaxe : Void main()
Algorithme « nom de l’algorithme » {
Const
<déclarations> ;
« Liste des constantes avec leurs valeurs »
Var
<instructions> ;
« Liste des variables suivies par leurs types » }
Début
Algorithme Programmation C
Définition d’une variable Les variables
Une variable est un emplacement
mémoire capable de contenir des
‐ Une variable possède :
valeurs de type défini au préalable. Elle Un nom .
peut être définie comme une boite qui Un type .
admet un nom, une taille, un contenu
et une adresse mémoire. Un contenu.
Le nom de la variable s’appelle ‐ Elle est modifiable.
identificateur de la variable.
‐ Elle est rangée en mémoire à
→ La taille dépend du type de la
variable (exemple : 2 octets pour un
partir d’une certaine adresse.
entier, 1 octet pour un caractère, 4 Syntaxe de déclaration :
octets pour un réel…).
Type nom_variable1,
→ L’adresse désigne le numéro du 1er
octet occupé par cette variable en nom_variable2,……….,
mémoire centrale. nom_variableN ;
Algorithme Programmation C
Dans un algorithme, les variables Ou bien :
sont déclarées comme suit : Type nom_variable1= val1,
Var nom_variable2=val2,……
Liste des variables suivies par des …., nom_variableN= valN;
virgules : type 1… → on peut declarer une
Liste des variables suivies par des variable et on l’initialise.
virgules : type i ici les variables à des valeurs
→ Dans un algorithme, on peut initiales.
avoir 0 à plusieurs variables. Exemple :
Exemple : Char C ;
Var Int X,Y ;
X,Y : entier Float z = 4.5 ;(initialisation)
A : réel
Algorithme Programme C
Une constante est une donnée
Les constantes: qui reste constante durant
La définition d’une constante est la l’exécution du programme.
même que celle d’une variable à la
différence que la valeur d’une Elle peut être entière,
constante reste inchangée tout au flottante ou caractère.
long de l’algorithme.
Exemple :
Syntaxe :
Les constantes entières :
Const
Int X = 2345 (base 10).
Nom const 1 = val 1
Int Y = 0377 (base 8).
Nom const i = val i
Int Z = 0x1f ( base 16).
Exemple :
Les constantes flottantes :
Const float X1 = 12.34.
Min = 10 Les constantes de type
Max = 200 caractère
PI = 3.14 Char = ‘A’.
Programme C
Les chaines de caractères :
Il n'existe pas de type de données pour les chaînes de caractères (suite de
caractères) en langage C. Pour créer une chaîne de caractères on utilisera
donc des tableaux contenant dans chacune de ses cases un caractère.
Exemple :
#include<stdio.h>
#include<stdio.h> void main()
void main() {
{ const char ch1[]=“bonjour”;
const char ch1[15]= « Hi»; printf(ch1);
printf(ch1)
} }
Programme C
Les caractères de contrôle :
\n : retour à la ligne
\t : tabulation horizontale
\v : tabulation verticale
Exemple :
\b : retour arrière
printf("ENISO \n Sousse") ;
\r : retour chariot
→résultat : ENISO
\f : saut de page
Sousse
\a : signal d’alerte
Programme C
Les commentaires
Si on veut ajouter un commentaire à l’une des instructions du
programme, on doit le mettre entre des délimiteurs : il commence
par /* et finit par */.
Exemple :
Si on veut ajouter un commentaire à ce programme, on écrit :
#include <stdio.h>
Void main()
{
Printf("Bienvenue’’) ; /* Affichage d’un message de bienvenue */
}
Types de base
Algorithme Programme C
A toute variable est attribué un type Les différents types de base sont :
qui définit : - Les nombres entiers int.
‐ L’ensemble des valeurs que peut - Les nombres flottants float ou
double.
prendre la variable.
- Les caractères char.
‐ L’ensemble des opérations qu’on a)Le type entier int
peut appliquer sur la variable. Il existe trois types différents :
Il existe des types simples qui sont Short int ou short codé sur 2 à 4
prédéfinis tels que les types : entier, octets et situé entre -32768 à
réel, caractère ou booléen. 32767
‐ Int codé sur 2 à 4 octets et situé
a) Type entier entre -32768 à 32767
- Il représente l’ensemble des entiers ‐ Long int ou long codé sur 4
relatifs tel que : 8, -10, 3…… octets et situé entre -2147483647
à 2147483648.
Types de base
Algorithme Programme C
- Les opérations permises sont : +, -, Type Occupatio Plage de
n mémoire valeurs
*, div (division entière) et mod (
Short int ou 2 à 4 octets -32768 à
reste de la division entière). short 32767
b) Type réel int 2 à 4 octets -32768 à
32767
- Il représente l’ensemble IR Long int ou 4 octets -2147483647 à
- Deux formes de représentation : long 2147483648
- La forme usuelle « a.b » b) Le type réel (float)
Exemple : -4.6, 13.9 ….. Les types float, double et long double
servent à représenter des nombres en
ou la forme scientifique a E b
virgule flottante.
Exemple : 345 = 3.45 E2.
Types de base
Algorithme Programme C
- Les opérations permises sont : Type Occupation Plage de
mémoire valeur
l’addition+, le soustraction -, la
float 4 octet 3.4.10-38 à
multiplication * et la division /. 3.4.1038
c) Type caractère double 8 octet 1.7.10-308 à
1.7.10308
- Il peut être une lettre, un chiffre Long 10 octet 3.4.10-4932 à
ou caractère spécial exemple : double 3.4.104932
‘a’, ‘b’, ‘3’ ….
c) Type caractère
- Les opérations permises : =, ≠, Un objet de type caractère
<, <=, >, >=. contiendra le code binaire de
n’importe quel caractère utilisé
sur la machine.
Types de base
Programme C
Un objet de type caractère est pour C un entier occupant un seul
octet.
Si le caractère A est stocké sous forme char, l’ordinateur n’écrit
pas A mais le nombre 65 (valeur ASCII du caractère) sur un octet
(sous forme binaire).
→ ASCII : American Standard Code for Information Interchange
Algorithme Programme C
d) Type booléen d) Type booléen
Un booléen correspond à une variable qui
prend la valeur « Vrai » ou « Faux » ; on les
- Il représente deux valeurs
utilise donc pour faire des tests de comparaison ‘true’ et ‘false’.
logique. Exemple :
Exemple : bool existe= true;
Agorithme
var Remarque il faut ajouter la
existe false bibilothéque .
T = tableau [0..99] de réel
Début #include <stdbool.h>
pour i de 1 à 99 faire
Si T[i] == 125 Alors
existe vrais
Si non
existe faux
Fin Si
FinPour
Fin
Les opérateurs et les expressions
Algorithme Programme C
1. Instruction d’affectation 1. Instruction d’affectation
Cette action permet de ranger une Elle donne la valeur de l’opérande de
nouvelle valeur dans une variable. droite à l’opérande de gauche.
Syntaxe a) Affectation simple
Identificateur var ← <expression> Int x ;
Expression peut être : une variable, une X = 1;
constante, une expression arithmétique ou
→ la variable x reçoit 1.
logique.
Remarque Int X,Y ;
- Une constante ne peut jamais figurer à X=Y=1 ;
gauche d’une affectation. → Affecte 1 à x et y
- Après une affectation, l’ancien contenu b) Affectation Combinée
est perdu pour être substitué par le Les affectations mélangent une
nouveau contenu. opération d’affectation avec une
opération arithmétique ou logique.
- Une action d’affectation doit se faire
entre deux types compatibles. Exemple : X+=Y ↔ X = X +Y
Les opérateurs et les expressions
Programme C
b) Affectation Combinée
X-=Y ↔ X = X –Y
X*=Y ↔ X = X *Y
X/=Y ↔ X = X /Y
X%=Y ↔ X = X %Y
2. Les opérateurs d’incrémentation et de décrémentation
Les opérateurs d’incrémentation et de décrémentation ++ et augmentent ou diminuent la
valeur d’une variable de la quantité
Exemple
X++ ↔ ++X ↔ X = X+1
X-- ↔ --X↔ X = X-1
Postfixé :
Int x =1, y ; Y = x++ ;
On affecte à y la valeur x avant de l’incrémentation donc le résultat sera y =1 et x = 2.
Préfixé :
Int x =1, y ; Y =++x ;
→ x augmente de 1 → x =2 ensuite y =x → y =2
Les opérateurs et les expressions
Algorithme Programme C
2. Les opérateurs arithmétiques 3. Les opérateurs arithmétiques
Syntaxe : Les opérateurs arithmétiques sont :
<exp-arith> op_arith <exp-arith> L’addition +, la soustraction - , la
multiplication * et la division /.
Op_arith peut être une addition
Le modulo % ( c’est la reste de la
‘+’, soustraction ‘-‘, division ‘/’ ou
division entière).
multiplication ‘*’.
Exemple : Remarques : Si les arguments de
(Y/2) + x*3 / sont des entiers alors le
L’ordre de priorité des opérateurs
résultat est un entier.
arithmétiques est : Exemple : x = 3/2 est 1 même si
- signe négatif x est déclaré de type float.
( ) parenthèses
Pour la puissance, on utilise la
^ puissance
fonction power : si on veut
* et / multiplication et division
+ et – addition et soustraction
écrire x² → power(x ,2)
Les opérateurs et les expressions
Algorithme Programme C
3. Les Opérateurs logiques 4. Les Opérateurs logiques
→ && : et
Les expressions logiques admettent
Vrai ou Faux comme résultat.
→ || : ou
→ ! : non
Elles peuvent utiliser des opérateurs
Exemple :
relationnels ( = , ≠, <,<=, >, >=) ou des
• ( a<b) && (c<d) : donne 1 si les
opérateurs logiques (NON, ET, OU). expressions sont vraies et 0 sinon.
L’ordre de priorité est : • ( a<b) || (c<d) : donne 1 si l’une
des expressions au moins est vraie
et 0 sinon.
• !(a<b) : donne 1 si la condition est
Non fausse et 0 sinon.
ET Remarques :
OU ! (a<b) ≠ ! a==b
If (n) ↔ if (n!= 0)
If (!n) ↔ if (n== 0)
Les opérateurs et les expressions
Algorithme Programme C
4. Les opérateurs de comparaison 4. Les opérateurs de comparaison
Elles peuvent utiliser des opérateurs Elles peuvent utiliser des
relationnels ( = , ≠, <,<=, >, >=) opérateurs relationnels <,≤, > , ≥,
==(égal à), !=(différent de).
L’ordre de priorité est :
→ Le résultat d’une comparaison
Supérieur, supérieur ou égale,
est un entier :
inférieur , inférieur ou égale , égale
et différent - 0 si le résultat est faux
- 1 si le résultat est vrai
> Exemple :
>= (a<b) == (c<d) → cette expression
< retourne 1 si (a<b) et (c<d) ont la même
<=
= valeur
≠ Remarques : a == b est différent a = b (la
première est une comparaison et la
deuxième est une affectation).
Instruction d’écriture ou de sortie
Algorithme Programme C
Définition : Les instruction d’écriture et La bibliothèque standard
sortie permettent respectivement d’écrire <stdio.h> contient un
sur un périphérique ou de lire à partir d’un
ensemble de fonctions qui
périphérique.
assurent la communication de
1. Instruction d’écriture ou de sortie
la machine avec le monde
Elle permet d’afficher des résultats sur un
extérieur : printf(), scanf(),
périphérique de sortie (écran). Ce résultat
peut être : putchar(), getchar()…
Une chaîne de caractères délimitée par 1. Ecriture formatée de
des ‘’ ‘’. données :
La valeur d’une variable dont le nom La fonction printf() est utilisée
est spécifié. pour transférer du texte, des
La valeur d’une expression. valeurs de variables ou des
résultats d’expression vers
l’écran.
Instruction d’écriture ou de sortie
Algorithme Programme C
Syntaxe : Syntaxe :
Ecrire (Liste d’expressions Printf (‘’<format>’’, <exp1>,
séparées par des virgules). <exp2>,….., <expN>) ;
L’ordinateur évalue tout d’abord
Format : format de représentation
l’expression puis affiche le résultat
obtenu c’est une chaîne de caractères
qui peut contenir :
Exemple :
Du texte
Lire (somme)
Lire(Nbre) Des séquences d’échappement
Ecrire (‘’La moyenne est :’’, Des spécificateurs de format
somme / Nbre) Ce format indique la manière dont
Si l’utilisateur introduit 120 pour les valeurs des expressions
somme et 10 pour Nbre alors <exp1>, <exp2>,…..,
l’affichage sera : La moyenne est <expN> seront imprimées.
12.
Instruction d’écriture ou de sortie
Programme C
Spécificateurs de format pour printf :
Format Données
Exemple :
%d ou %i Entier relatif (int)
Int i =5 ;
%u Nombre entier non
signé Printf(‘’%d’’,i) ; → l’affichage
%o Entier exprimé en octal sera : 5
%x Entier exprimé en
printf (‘’%f’’, x) ;
hexadécimal Si x = 1.2345 → 1.234500
%c Caractère x = 12.3456789 → 12.345678
%f Nombre à virgule x = 1.234 E 5 →
flottante 123450.000000
%e, %E Nombre à virgule → Par défaut, l’affichage se fait
flottante en format
exponentiel
avec six chiffres après la virgule.
%s Chaîne de caractère
Instruction d’écriture ou de sortie
Algorithme Programme C
2. Instruction de lecture ou 2. Instruction de lecture ou
d’entrée: d’entrée:
Syntaxe :
Elle permet d’affecter, à une variable,
Scanf(‘’<format>’’, <adr_var1>,
une donnée introduite à partir d’une <adr_var2>,….., <adr_varN>) ;
périphérique d’entrée (clavier). Format : format de lecture des
Syntaxe : données : détermine la façon avec
laquelle seront interprétées les
Lire (nom_var1, nom_var2,……) données reçues. Ces formats sont
Exemple : les même que ceux de la fonction
Lire(A) : lit une valeur à partir du printf mais seulement en
remplaçant %x par %b.
périphérique d’entrée et la range dans
la case mémoire associée à A. adr_var1, adr_var2,.., adr_varN :
adresses des variables aux quelles
Lire(X,Y) : lit deux valeurs la première les données seront attribuées.
pour X et la deuxième pour Y.
Instruction d’écriture ou de sortie
Programme C
Exemple :
scanf (‘’%d’’, &x) ; → l’opérateur d’adresse & appliqué au nom de la variable
informe la fonction scanf de l’emplacement de stockage de la valeur saisie.
3. La macro getchar :
La macro getchar lit un caractère isolé depuis le clavier et le met à la
disposition du programme.
Exemple :
include<stdio.h>
void main()
{
Char car ;
Printf(‘’entrer un caractère’’) ;
Car = getchar() ;/* lecture d’un caractère et affectation du caractère à la
variable car*/
}
Instruction d’écriture ou de sortie
Programme C
3. La macro putchar :
Elle affiche un caractère sur l’écran. La donnée à afficher est écrite sous
forme de paramètre entre les parenthèses de la macro.
Exemple :
include<stdio.h>
void main()
{
Char car ;
Printf(‘’entrer un caractère’’) ;
Car = getchar() ;
Printf (‘’le caractère est :’’) ;
Putchar(car) ;
}
Exercices
Exercice 1 :
Ecrire un algorithme qui lit deux entiers X et Y et affiche
leurs valeurs avant et après permutation, donner le
programme C correspondant.
Exercice 2 :
Ecrire un algorithme et son équivalent en C qui lit trois
entiers et qui calcule et affiche leur somme, leur produit et
leur moyenne.