Année Universitaire
2018 - 2019
Atelier programmation I
Filière: MPI
Enseignants: Majdi JRIBI
Imen BEN IDA
Plan du cours
Chapitre 1 : Eléments de base du langage c
Chapitre 2 : Les structures conditionnelles et itératives
Chapitre 3 : Les tableaux et les chaines de caractères
Chapitre 4 : Les pointeurs
Chapitre 5 : Les fonctions
Chapitre 6 : Les enregistrements
Chapitre 7 : Les fichiers
2
Chapitre 1 Eléments de base du langage c
3
Chapitre 1
1- Introduction
2- Structure d’un programme en C
3- Manipulation de variables
3.1- Déclaration de variables et types
3.2- Opérateurs de base
3.3- Conversion de type
3.4- Quelques fonctions de la bibliothèque <math.h>
4- Les fonctions d’affichage et de lecture
4.1- Fonction d’affichage
4.2- Fonction de lecture
4.3- Fonction fflush(stdin)
4
1- Introduction
Processus de programmation
Code source
édité
Traduction (mon programme)
.c
• Penser à résoudre un problème quelconque
• Conception d’un algorithme
•Préciser ces entrées et les sorties !
•Structures de données utilisées !
•Mécanismes spécifiques !
•…
•Édition d’un brouillon
5
1- Introduction
Processus de programmation
Code source Crée par la
Compilation
édité compilation
(mon programme) Analyse du programme
et détection des erreurs
.c lexiques et syntaxiques .obj
Édition des liens
combiner différents fichiers
objets pour créer un fichier
exécutable
Résultats fournis par le
Crée par
programme et l’éditeur
Détection d’éventuelles Exécution des liens
erreurs logiques
.exe 6
2- Structure d’un programme C
Un programme C se présente de la façon suivante :
Insertion de bibliothèques à utiliser
void main()
/* Programme principal */
{ /* Début du programme */
Déclarations de variables; /* Corps du programme */
Instructions ;
} /* Fin du programme */
7
2- Structure d’un programme C
Remarques
Chaque instruction doit obligatoirement se terminer par ; .
Le langage C possède assez peu d'instructions, il fait appel
à des bibliothèques.
Exemples :
math.h : bibliothèque de fonctions mathématiques
stdio.h : bibliothèque d'entrées/sorties standard (Lire, Ecrire)
Le langage C distingue les minuscules des majuscules.
Les mots réservés du langage C doivent être écrits en
minuscules.
8
2- Structure d’un programme C
Inclusion de la bibliothèque
#include <stdio.h> contenant la fonction d’affichage printf
void main() Pointd'entré
Point d'entré du programme
du programme
{ Début du programme
printf("Bonjour!\n"); Première instruction
9
Fin du programme
} 8
9
3- Manipulation de variables
3.1- Déclaration de variables et types
Prototype
Type nom_de_la_variable [= valeur] ;
[…]: Facultatif
10
3- Manipulation de variables
3.1- Déclaration de variables et types
Type Description
char caractère
int entier
short entier court
long entier long
float nombres décimaux
double nombres décimaux de précision supérieure
long double nombres décimaux encore plus précis
unsigned int entier non signé
11
3- Manipulation de variables
3.1- Déclaration de variables et types
Exemples de déclaration de variables:
intnb;
float pi = 3.14;
char c = 'a';
long i,j,k;
double r = 6.2879821365;
12
3- Manipulation de variables
3.1- Déclaration de variables et types
Déclaration de constantes
Utilisation du mot clé const
Exemple:
void main()
{
const float PI = 3.14159;
...
}
13
3- Manipulation de variables
3.2- Opérateurs de base
= : Affectation
+,-,*, / : Opérateurs arithmétiques de base
% : Reste d'une division entière
== : Test d'égalité
!= : Test de différence
<, >, <=, >= :Test de comparaison
! : Négation
|| : Ou logique pour évaluer une expression
&& : Et logique pour évaluer une expression
14
3- Manipulation de variables
3.2- Opérateurs de base
Exemples
a = 2; valeur de a: 2
r = 3%2; valeur de r: 1
a=a+r ; valeur de a: 3
a = (3==3); valeur de a: 1
a = (6==5); valeur de a: 0
a = (2!=3); valeur de a: 1
a = (6<=3); valeur de a: 0
a = !1; valeur de a: 0
a =((3==3) || (6<=3)); valeur de a: 1
a =((3==3) && (6<=3)); valeur de a: 0
15
3- Manipulation de variables
3.2- Opérateurs de base
Le langage C autorise des écritures simplifiées pour
l’incrémentation et la décrémentation de variables :
i = i+1; i++;
i = i-1; i--;
a = a+b; a+= b;
a = a-b; a-= b;
a = a * b; a*= b;
a = a / b; a/= b;
a=i++; a=i; i=i+1;
a=++i; i=i+1; a=i;
16
3- Manipulation de variables
3.3- Conversion de type
L'opérateur de conversion de type, appelée cast ( ),
permet de modifier explicitement le type d'un
objet.
Syntaxe:
(type) objet
Exemple:
int i=3, j=2;
float x;
x= (float) i/j; /* x=1.5 */
17
3- Manipulation de variables
3.4- Quelques fonctions de la bibliothèque <math.h>
sqrt : racine carrée d’un entier ou d’un réel
Exemple : sqrt(16) = 4
floor et ceil: arrondissement d’un réel
Exemple : floor(2.3) = 2 floor(4.7) = 4
ceil (2.3) = 3 ceil (4.7) = 5
pow : puissance nième de x (xn)
Exemple : pow(2,3)=23=8
18
4- Les fonctions d’affichage et de lecture
Utiliser la bibliothèque <stdio.h>
Pour l’affichage et la saisie, nous devons spécifier
les formats de variables:
%d: int
%f: float
%c: char
%lf: long double
%s: les chaînes de caractères
19
4- Les fonctions d’affichage et de lecture
4.1- Fonction d’affichage: printf
Syntaxe:
printf("chaîne de caractères",variables);
Exemple: message paramètres
La partie chaine de caractères peut contenir des caractères
spéciaux par exemple: \n: Retour à la ligne
\t: Tabulation
20
4- Les fonctions d’affichage et de lecture
4.1- Fonction d’affichage pour les caractères: putchar
Syntaxe:
putchar(caractère); printf("%c\n",x);
Exemple:
Char c= ‘a’;
Putchar(c);
21
4- Les fonctions d’affichage et de lecture
4.2- Fonction de lecture: scanf
Syntaxe:
scanf("formats",paramètres);
Exemple: formats paramètres
Le nom des variables doit être précédé par le
symbole & désignant l'adresse de la variable.
22
4- Les fonctions d’affichage et de lecture
4.2- Fonction de lecture pour les caractères: getchar
Syntaxe:
Caractère=getchar(); scanf("%c",&x);
Exemple: Char c;
C=getchar();
23
4- Les fonctions d’affichage et de lecture
4.3- Fonction fflush(stdin)
Lorsqu’on saisit un caractère au clavier , on doit le
valider par "RETURN". Ce caractère sera rangé
dans un tampon.
La fonction scanf ou getchar vérifie tout d’abord le
tampon. S’il n’est pas vide, la variable prend la
valeur du tampon.
24
4- Les fonctions d’affichage et de lecture
4.3- Fonction fflush(stdin)
Exemple:
#include<stdio.h>
void main()
{
char c1, c2;
printf("Entrer un caractère: ");
scanf("%c", &c1);
printf (“le premier caractère saisi: %c\n", c1);
printf("Entrer un autre caractère: ");
scanf("%c", &c2);
printf (" le second caractère saisi: %c\n ", c2);
}
Le programme ne donne pas la main pour saisir le
deuxième caractère.
25
4- Les fonctions d’affichage et de lecture
4.3- Fonction fflush(stdin)
Solution: utilisation de la fonction fflush(stdin) avant
la deuxième saisie. Cette fonction permet de vider
la tampon
#include<stdio.h>
void main()
{
char c1, c2;
printf("Entrer un caractère: ");
scanf("%c", &c1);
printf (“le premier caractère saisi: %c\n", c1);
fflush(stdin);
printf("Entrer un autre caractère: ");
scanf("%c", &c2);
printf (" le second caractère saisi: %c\n ", c2);
}
26