Vous êtes sur la page 1sur 30

Atelier de Programmation C

1
Objectifs

 Apprendre les bases de la programmation

 Se familiariser aux vocabulaires de programmation

 Ecrire et compiler un programme en langage C

2
Initiation au langage C

3
Introduction générale
 L’algorithme sert à :
 Trouver les bonnes variables
 Imbriquer les boucles dans le bon sens
 Enchainer les si-alors sinon dans le bon ordre

 Le programme sert à :
 Coder l’algorithme afin que l’ordinateur puisse exécuter les actions
décrites
 Doit être écrit dans un langage compréhensible par l’ordinateur

Un programme est donc une suite ordonnée d’instructions


élémentaires codifiées dans un langage de programmation
Classification des langages de programmation
 Les langages de bas niveau
 Plus proche du langage machine
 Utilise des instructions complexes
 Exemple : langage assembleur ASM

 Les langages de haut niveau


 Plus proche du langage humain
 Permet de développer de façon plus souple et rapide
 Exemple : Pascal, Visual Basic, Java, C/C++

5
Langage de prog. C : Introduction
 Crée dans les années 1970s comme outil de
développement du système d’exploitation UNIX
 Avantages du langage C
 Normalisé
 ANSI (American National Standards Institute) en 1983
 ISO (International Standardization Organisation) en 1990
 Général : Le langage C n’est pas orienté vers un domaine
d’applications particulières
 Modulaire: Un programme C est écrit sous forme de sous-
programme appelés modules
 Structuré et typé : Il offre plusieurs structures de contrôle et
types de données

6
Réalisation et exécution d’un programme C
 Conception du programme :
 Analyser l’application à programmer
 Dégager les données à manipuler et les opérations à réaliser
 Choisir les meilleurs algorithmes
 Ecriture du programme :
 Traduire le résultat de la conception en un programme écrit dans le
langage de prog.
 Compilation :
 Traduction du prog. en langage machine (utiliser un compilateur)
 Création d’un fichier exécutable, sinon génération d’erreurs
 Exécution :
 Envoyer le fichier exécutable à la machine pour exécution
 Exécution séquentielle des instructions (les unes après les autres)
 Si erreurs a l’exécution alors retour en phase 2 ou même 1

7
Structure d’un programme en C
#include<>
Bibliothèques …

int fonc1(…) {

Fonctions }
secondaires
void fonc2(…) {

}

void main()
{
int i; //bloc déclaration
Programme …
principal
i=0; //bloc d’instructions
fonc1(…) ;
fonc2(…) ;

}
8
Structure d’un prog. C : Programme principal
 Chaque programme en C doit renfermer obligatoirement une
fonction principale dont le nom main est imposé

 Il ne peut y avoir qu'une seule fonction main par programme

 L’exécution du programme commence avec la 1ère instruction de


la fonction main et se termine avec la dernière

9
Structure d’un prog. C : Bibliothèques
 La directive #include permet de faire appel à des fonctions
prédéfinies (fonctions d’entrées/sorties, fonctions
mathématiques, etc.)

 Ces fonctions sont définies dans des fichiers munis de l’extension .h

 Syntaxe : #include<nom_fichier.h>

 Exemple :
 stdio.h : opérations de gestion des entrées-sorties
 math.h : fonctions mathématiques
 graph.h : fonctions graphiques
 time.h : date et heure

10
Structure d’un prog. C : les fonctions
secondaires
 La notion de procédures n’existe pas en C

 Une fonction doit avoir un type de retour

 Une fonction peut prendre zéro ou plusieurs arguments en


paramètres

 En C, une fonction secondaire doit être déclarée avant toute


appel à celle-ci

11
Structure d’un prog. C : les fonctions
secondaires
#include <stdio.h>
/*
* Calculer le cube d'un réel x
*/

double cube (double x){


return (x*x*x);
}

int main(void){
double c;
c = cube (2.0);
printf ("Le cube est %f", c);

12
Structure d’un prog. C : les commentaires
 Les commentaires permettent d’introduire des explications aux
endroits critiques, afin d’en faciliter la compréhension

 Un commentaire sur une seule linge


 Exemple : // Ceci est un commentaire sur une ligne

 Un commentaire peut s’étaler sur plusieurs lignes


 Exemple : /* un commentaire
qui s’étend
sur plusieurs lignes */

13
Syntaxe : symboles mots clés, règles
 Symboles spéciaux
 [ ] \ { } .,;:# = < > - * / ( ) ! ?
 Mots réservés
 if else int char float double while for switch case const void
break continue struct signed unsigned return do etc.
 Règles syntaxiques
 Point virgule ; après chaque instruction
 Accolade ouvrante { au début et fermante } à la fin de chaque
fonction, de chaque bloc d’instructions
 Contraintes imposées par le langage
 Toute variable apparaissant dans le bloc d’instructions doit être
déclarée

14
Déclaration des variables
 Syntaxe : type_variable nom_variable;
 nom_variable est un identificateur :
 Composé de lettres majuscules, lettres minuscules, chiffres de 0 à 9 et
le tiret-bat ( _ )
 Pas de caractère spéciaux, pas de blancs
 ne peut pas commencer par un chiffre

 Noms de variables valides


X y15 Rose_1 _temps
mot magicien TauxIntere MOT

 Noms de variables non valides


4ème “a” titre-vedette titre vedette

15
Les types
 Un type est un nom pour un ensemble de valeurs. Un
type est muni d’opérateurs. Donc:
 Déclarer une variable sert aussi à connaître les
opérateurs applicables à (la valeur de) la variable
 Les types de base en C:
 int : entier
 char : caractère (code ASCII)
 float : nombre à virgule flottante en simple précision
 double : nombre à virgule flottante en double précision
 void : représente l’absence de type. Par exemple une
fonction de type void ne retourne pas de valeur.

16
Les qualificateurs
 short : s’applique aux entiers (short int : entier codé sur 2 octets) ;
 long : s’applique aux entiers (long int : entier codé sur 4 octets) et
aux nombres à virgule flottante double précision (long double :
double précision étendue) ;
 signed : s’applique au type char (de -128 à 127) ou aux types
entiers (de −2n−1 à 2n−1 − 1, n étant le nombre de bits utilisés) ;
 unsigned : s’applique au type char (de 0 à 255) ou aux types
entiers (de 0 à 2n − 1)

 Les qualificateurs utilisés seuls s’appliquent par défaut à int

17
Les qualificateurs

18
Remarques
 Pas de type booléen :
 faux = 0,
 vrai = n’importe quelle autre valeur

 Le type caractère n’existe pas de manière indépendante en C


 caractère représenté par "char" = nombre entier (code ASCII)
 Les caractères sont entrés entre quottes ‘a’(==97), ‘b’(==98),
‘0’(==48), ‘A’(==65), etc.

 Pas de type chaîne de caractères


 chaîne de caractères = tableau de caractères et donc tableau
d’entiers.

19
Déclaration des constantes
 Syntaxe : const type nom_constante = valeur;
 nom_constante est un identificateur qui sert à nommer une valeur
 Une constante sert souvent à simplifier la lisibilité d’un programme

 Exemples:
 const int dix = 10;
 const float PI = 3.14159

 Avertissement
 On ne peut pas changer la valeur d’une constante dans le programme

20
Les opérateurs
 Affectation
identificateur_de_variable = expression
 L’expression située à droite du signe = est évaluée et sa valeur
est affectée à la variable désignée par
identificateur_de_variable située à gauche du signe égal

 Opérateurs arithmétiques
+ Addition
- soustraction
* multiplication
/ Division entière ou réelle selon le type des opérandes
% Modulo : reste de la division entière

21
Les opérateurs
 Opérateurs de compraraison
== Egalité
!= Différent
>,>=,<,<= Supérieur, supérieur ou égal, inférieur, inférieur ou égal

 Opérateurs logiques

! Négation unaire (NOT)


&& ET logique binaire
|| OU logique binaire

22
Les opérateurs de traitement de bit
 Opérateurs composites
 Des opérateurs composites sont construits à partir de
l’opérateur d’affectation et d’opérateurs binaires.
ident_var opérateur_binaire= expression

ident_var = ident_var opérateur_binaire expression

 Exemple : (+, -, *, /, %)
 i += 3 est équivalent à i = i + 3
 i *= 5 est équivalent à i = i * 5

23
Les opérateurs de traitement de bit
 Opérateur conditionnel
 L’opérateur conditionnel permet à une expression d’avoir une
valeur conditionnellement à une autre valeur.

condition ? val1 : val2

 Si condition est différent de 0, l’expression prendra la valeur


val1. Si condition vaut 0, l’expression prendra la valeur val2.
 Exemple :
max= x>y? x : y

24
Conversion de type
 Lorsque des opérandes d’un opérateur sont de type différent,
ils sont convertis en un type commun
 Par exemple, dans l’expression 2.0 + 3, l’entier 3 sera converti en
double. Il s’agit d’une conversion implicite

 Il est possible de forcer une conversion (conversion explicite)


en utilisant un opérateur conversion (cast)
(nom_type) expression

 La globalité de l’expression est convertie dans le type


nom_type

25
Instructions d’entrée-sortie
 L’instruction printf() permet d’afficher des valeurs (des
résultats) à l’écran
 L’instruction scanf() permet de saisir (lire) des données
entrées au clavier
 Pour chaque variable, un type de conversion est spécifié.
Ce type de conversion est décrit par les caractères qui
suivent le caractère “%”. %d int
%ld long
%hd short
%f float
%lf double
%c char (caractère)
%s chaîne de caractères
26
Instructions d’entrée-sortie
 scanf("FORMAT", &nom_variable)
 FORMAT permet de spécifier le type de la variable lue.
Par exemple, "%d" pour un entier, "%f" pour un réel, …
 La variable dit avoir été déclarée (avec le bon type)

 Exemple
int i;
scanf("%d",&i);

 Si l’utilisateur tape 33, la valeur de la variable i est 33.


 Si la valeur saisie n’est pas du type de la variable alors une
erreur se produit

27
Instructions d’entrée-sortie
 scanf("FORMATS", liste des variables)

Exemple
int i, j, n;
scanf("%d %d %d",&i, &j, &n);

 Si l’utilisateur tape 33 44 22, la valeur de la variable i est 33, la


valeur de j est 44 et la valeur de n est 22,

28
Instructions d’entrée-sortie
 printf("FORMAT", expression)
 printf("FORMATS", liste d’expressions)

Exemple
int i=3;
float res=3.2+1.05
printf("%d",i); //affichage de 3 à l’écran
printf("%d",5+7); //affichage de 12 à l’écran
printf(“valeur de i= %d“,i); //affichage de valeur de i=3
printf(“pour i=%d res=%f”,i,res) //affichage de pour i=3 res=4.25

 printf("FORMAT\n", expression) : affiche le résultat d’évaluation


de l’expression puis effectue un retour à la ligne

29
Exemple
#include <stdio.h>
int main () {
int i = 10;
float l = 3.14159;
char p[50] = "Bonjour";
printf ("%d bonjour %f %s\n", i, l, p);
scanf ("%d %f %s", &i, &l, p);
printf ("Apres lecture au clavier : %d %f %s\n", i, l, p);

Données en entrée
23 6.55957 salut

Données écrites en sortie standard

10 bonjour 3.141590 Bonjour


Apres lecture au clavier : 23 6.559570 salut

30

Vous aimerez peut-être aussi