Vous êtes sur la page 1sur 41

Année Universitaire

2023 - 2024

Atelier programmation I
Filière: MPI/CBA

Enseignants : Rabaa Youssef


Asma Ben Hassouna
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
Logiciels à utiliser:
CodeBlocks

4
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)

5- Exercice
5
1- Introduction

 Processus de programmation

Code source
édité
Traduction (mon programme)

• Penser à résoudre un problème quelconque


.c
• Analyser et Concevoir un algorithme
• Préciser ces entrées et les sorties !
• Déduire les structures de données utilisées !
• Décrire l’ensemble d'actions dans l’ordre d’exécution
• …
• Éditer un brouillon

6
1- Introduction

 Processus de programmation

Spécification Résolution Codage

Problème Enoncé Algorithme Programme

7
1- Introduction

 Processus de programmation
Mon
programme
Code source (Programme.c)
Analyse du programme
et détection des erreurs .c
lexiques et syntaxiques Compilation

Mon
Code objet (Programme.obj) programme
Combiner différents
fichiers
objets pour créer un fichier
.obj
Edition des liens
exécutable

Programme exécutable
Mon
Résultats fournis par le
(Programme.exe) programme
programme et
Détection d’éventuelles Exécution .exe
erreurs logiques

8
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 */

Remarque :

Chaque programme C doit renfermer une fonction du nom de « main » (Fonction


principale de chaque programme C).

9
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.

10
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


11

} Fin du programme
8

11
3-Manipulation de variables
3.1- Déclaration de variables et types
 Prototype
 Une variable est une zone mémoire caractérisée par un:
 Nom
 Type

 Forme générale de la déclaration:

Type nom_de_la_variable [= valeur] ;

[…]: Facultatif

Les variables doivent être déclarées avant leur utilisation.

12
3-Manipulation de variables
3.1- Déclaration de variables et types
Les noms des variables sont composés de lettres et de chiffres.
 L’ensemble des symboles utilisables:
 Lettres ‘a’, ’b’,………..., ‘z’, ’A’, ’B’,………., ’Z’.
 Chiffres 0, 1, 2,…….’9’.
 Le symbole ‘_’.

 Le nom d’une variable doit obligatoirement commencer par


une lettre ou le symbole ‘_’.

 Le langage C distingue les majuscules et les minuscules.


NOM et nom sont deux variables différentes.

 Les noms de variables ne peuvent pas être des mots


réservés
(include, if, void,…). 13
3-Manipulation de variables
3.1- Déclaration de variables et types
 Correct / Incorrect ??

Salaire Correct SALAIRE Correct

*SALAIRE Incorrect Salaire_1 Correct

3Salaire Incorrect Salair Correct

Salaire-annuel Incorrect Salaire. Incorrect

Profession du pere Incorrect Profession_du_pere Correct


14
3-Manipulation de variables
3.1- Déclaration de variables et types
 Toute variable doit être déclarée avant son utilisation.

Type NomVariable;
int nbre_occurrence;
float racine;

Une variable peut être initialisée lors de la déclaration.


int nbre_occurrence = 0; float racine = 12.34;
Une variable non initialisée a une valeur
indéfinie.
Plusieurs variables peuvent être déclarées
à la fois.
float x = 23.5 , y , z = 3.5*x ;

Une variable ne peut être déclarée qu’une


seule fois. 15
NB:
 int a = 3;int b;int a ;

int x ;
float x ; // Interdit

16
3-Manipulation de variables
3.1- Déclaration de variables et types
 Exemple d’affectation
NomVariable = Expression;

 Affectation avec des valeurs constantes:


On va ranger une valeur dans une variable.
Temperature = 29;

 Affectation avec des valeurs de variables:


La valeur à placer dans une variable peut provenir d’une autre
variable.
x = 8;
y = x;

 Affectation avec des valeurs d’expressions:


On peut ranger dans une variable le résultat d’un calcul.
x = 5;
y = x * 3;
17
3-Manipulation de variables
3.1- Déclaration de variables et types
Type Description
char caractère
int entier
short int entier court
long int 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é

18
3-Manipulation de variables
3.1- Déclaration de variables et types
 Exemples de déclaration de variables:
 Déclarer un entier « nb » int nb;
 Déclarer un réel « pi » ayant pour valeur initiale
« 3.14 » float pi = 3.14;
 Déclarer un caractère « c » de valeur initiale « ’a’ »
char c = 'a';

 Déclarer 3 entiers long «i», «j» et « k » long int i,j,k;


 Déclarer un réel double « r » de valeur initiale
6.2879821365 double r =
6.2879821365;

19
3-Manipulation de variables
3.1- Déclaration de variables et types
 Déclaration de constantes
Une constante est une donnée dont la valeur ne peut pas varier.

Utilisation de valeurs constantes pour calculer, initialiser des


variables, ...

Une constante ne peut être initialisée qu’à la déclaration.

Déclaration d’une constante: Ajout du qualificateur de type const

void main()
{
const int x = 4;
const float pi = 3.14 ;
...
}
20
3-Manipulation de variables
3.2- Opérateurs de base
Opérateurs arithmétiques :
 + : addition  a + b

 - : soustraction  a – b

 * : multiplication  a * b

 / : division (entière et rationnelle)  a / b


 Si a et b sont des entiers (a = 7; b = 2) a/b
donne 3
 Si a ou b est un réel (a = 7; b = 2.0) a / b donne 3.5

 % : modulo (reste de la division entière)  a % b


 a = 7; b = 2 alors a%b donne 1

21
Exercice 1
 Déclarer une variable V de deux chiffres (valeur
initiale au choix) et une constante C de valeur (0.5)
 Faire la somme des chiffres de V et le multiplier à
C
 Afficher le résultat.

22
CORRECTION EXERCICE 1

23
3-Manipulation de variables
3.2- Opérateurs de base
Opérateurs logiques:
Pas de type booléen en C. 1: vrai / 0: faux

a
 && : et logique (AND)
0
b 0 0 0 1
 || : ou logique (OR) 0 1 0 1 1
a &&
1 b0 0 1 0
 ! : négation (NOT)
1
a || b 1 1 1 0

Les opérateurs logiques considèrent toute valeur différente de zéro comme


!a
vrai et zéro comme faux.

(4 < 10) 1 (vrai)


!(5 > 1) 0 (faux)
(5 > 1) || !(4 < 8) 1 (vrai)
24
3-Manipulation de variables
3.2- Opérateurs de base
 Opérateurs de comparaison : 1: vrai / 0: faux

 == : égal à  a == b

 != : différent de  a != b

 < : strictement inférieur  a < b

 <= : inférieur ou égal  a <= b

 > : strictement supérieur  a > b

 >= : supérieur ou égal  a >= b

Les résultats des opérateurs de comparaison et des opérateurs logiques sont du


type int:
 la valeur 1 correspond à la valeur booléenne vrai.
 la valeur 0 correspond à la valeur booléenne faux.

25
3-Manipulation de variables
3.2- Opérateurs de base
 Exemples
 a = 2; valeur de a: 2
 r = 3%2; valeur de r: 1
 x=a+r ; valeur de x: 3
 b = (3==3); valeur de b: 1
 c = (6==5); valeur de c: 0
 d = (2!=3); valeur de d: 1
 e = (6<=3); valeur de e: 0
 f = !1; valeur de f: 0
 g =((3==3) || (6<=3)); valeur de g: 1
 h =((3==3) && (6<=3)); valeur de h: 0

26
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;
27
3-Manipulation de variables
3.3- Conversion de type
 L’operateur 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, y; Le cast est appliqué sur la valeur de
i, cela permet au reste du calcul de
float x; se transformer en float
x= (float)i/j; /* affiche x=1.5 */
y = (int) x /* affiche y=1 */

28
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
29
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:
Type formatage
char %c
int %d, %i
short int %hd
long int %ld
float %f
double %lf
long double %Lf
unsigned int %u
30
4-Les fonctions d’affichage et de lecture
4.1- Fonction d’affichage: printf
 Syntaxe:
printf("chaîne de caractères",variables);

 Exemple:

 La partie chaine de caractères peut contenir des caractères


spéciaux par exemple: \n: Retour à la ligne
\t: Tabulation
31
4-Les fonctions d’affichage et de lecture
4.1- Fonction d’affichage: printf
Exemple

// Affichage d’un message

printf (“Bonjour”);
// Affichage d’un entier long
int x = 5;
printf ("%d \n", x);
// Affichage d’un réel
float taille = 1.74;
printf ("%f", taille);

// Affichage d’un entier et d’un réel

printf (“%d %f", x, taille);

// Affichage d’un message

printf (“La valeur de x est %s”, msg);


32
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);

33
4-Les fonctions d’affichage et de lecture
4.2- Fonction de lecture: scanf
 Syntaxe:
scanf("formats",paramètres);

 Exemple:

 Le nom des variables doit être précédé par le


symbole & désignant l'adresse de la variable.
34
4- Les fonctions d’affichage et de lecture
4.2- Fonction de lecture: scanf
Exemple

// Saisie du jour, mois et année


int j, m, a;
scanf ("%d %d %d", &j, &m, &a);

// Saisie d’un entier et d’un réel :

int j; float y;

scanf (“%i %f" , &j, &y);


35
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();

36
4-Les fonctions d’affichage et de lecture
Récapitulatif
 Lecture  scanf Écriture  printf
Format Données
%i ou %d Nombre entier
%u Nombre entier non signé
%c Caractère
%f Nombre à virgule flottante

 Lecture d’un caractère : scanf ou getchar()
char lettre;
scanf (“%c”, &lettre) lettre = getchar();
Ecriture d’un caractère : printf ou putchar()
char lettre = ‘A’;
printf (“%c”, lettre) putchar (lettre); 37
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.

38
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.
39
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);
}
40
5-Exercice

 Écrire un programme C qui permet de calculer et


afficher la somme de 2 entiers saisis au clavier.

41

Vous aimerez peut-être aussi