Académique Documents
Professionnel Documents
Culture Documents
Chapitre 1:Rappel
1. Introduction
2. Variable, saisie, calcul, affichage
3. Structures alternatives
4. Structures itératives
1
MIPC: S3 Département
Introduction
• Un programme en c : un programme écrit en
langage c qui traduit un algorithme décrivant la
solution d’un problème.
• Il est composé de:
• Directives de préprocesseur (#)
• Déclarations
• Fonctions
• Fonction principale (main)
•Instruction
• Bloc
• Commentaires (/* texte*/ , // ligne) 2
MIPC: S3 Département
Introduction (suite)
Exemple:
Bibliothèque
# include<stdio.h>
Directive float Rayon,Pi=3.14; Déclaration de données
float Surface(float r)
{ return (r*r*Pi);} Fonction
main()
{ Fonction principale
float Res;
Instruction
Scanf("%f",&Rayon);
Bloc Res = Surface(Rayon); /* Appel de la fonction*/
printf ("%f",Res);
} Commentaire
3
MIPC: S3 Département
Donnée
• Donnée: constituée de trois attributs
(identificateur, valeur et type)
• Mots réservés au langage c:
break double int struct
case else long switch
char float return typedef
const for short unsigned
continue goto signed void
default if sizeof
do static while
4
MIPC: S3 Département
Donnée (suite)
• Type: Nom Taille
char 1 octet
float 4 octets
double 8 octets
long Double 10 octets
5
MIPC: S3 Département
Donnée (suite)
• Variable:
type identificateur_var ;
Exemple: float surface ;
• Constante:
const type identificateur_const = valeur ;
Exemple: const float Pi = 3.14;
• Remarques:
•On peut utiliser # et define pour définir une
constante (#define Pi 3.14)
• Deux types de variable: globale et locale
6
MIPC: S3 Département
Calcul
7
MIPC: S3 Département
Calcul (suite)
• Opérateurs:
• Arithmétiques
• Relationnels
• Logiques
• Incrémentation / décrémentation
•…
8
MIPC: S3 Département
Calcul (suite)
• Opérateurs arithmétiques:
Opérateur Signification
+ Addition
- Soustraction
* Multiplication
/ Division
% Reste de la
division entière
9
MIPC: S3 Département
Calcul (suite)
• Opérateurs relationnels:
Opérateur Signification
== Egal
!= Différent
< Inférieur
> Supérieur
<= Inférieur ou égal
>= Supérieur ou égal
10
MIPC: S3 Département
Calcul (suite)
• Opérateurs logiques:
Opérateur Signification
! Non
|| OU
&& ET
11
MIPC: S3 Département
Saisie (Entrées)
•Instruction d’entrée: acquérir et placer une
valeur dans une variable.
scanf ("format",&variable) ;
•Exemple:
scanf ("%f",&Rayon) ;
12
MIPC: S3 Département
Saisie (Entrées)
int ou short %d
float ou double %f
char %c
String %s
13
MIPC: S3 Département
Affichage (Sorties)
•Instruction de sortie: afficher sur l’écran
(un message, le contenu d’une variable ou
le résultat d’une expression)
printf (" Message format",variable ou expression) ;
• Exemple:
printf ("Le double de %d est %d ",R,2*R) ;
Message Variable
Format Expression
14
MIPC: S3 Département
Structures alternatives
15
MIPC: S3 Département
Structures alternatives (suite)
(1) Structure de choix simple
if (conditions)
{
instruction 1;
instruction 2;
…
instruction n;
}
16
MIPC: S3 Département
Structures alternatives (suite)
(2) Structure de choix alternatif
if (conditions)
{
instructions 1;
}
else
{
instructions 2;
}
17
MIPC: S3 Département
if - else if - ... - else
if ( <expr1> )
<bloc1>
else if (<expr2>)
<bloc2>
else if (<expr3>)
<bloc3>
………………..
else if (<exprN>)
<blocN>
else <blocN+1>
18
MIPC: S3 Département
EXERCICE 1
Ecrire un programme de facturation avec remise. Il lit en
donnée un simple prix hors taxes et calcule le prix TTC
correspondant (avec un taux de TVA constant de 20 %). Il
établit ensuite une remise dont le taux dépend de la valeur
ainsi obtenue, à savoir :
● 0 % pour un montant inférieur à 1 000 DH
● 1 % pour un montant supérieur ou égal à 1 000 DH et
inférieur à 2 000 DH
● 3 % pour un montant supérieur ou égal à 2 000 DH et
inférieur à 5 000 DH
● 5 % pour un montant supérieur ou égal à 5 000 DH
19
MIPC: S3 Département
Solution
#define TAUX_TVA 20
main()
{
float ht, ttc, net, tauxr, remise ;
printf("donnez le prix hors taxes : ") ;
scanf ("%f", &ht) ;
ttc = ht * ( 1 + TAUX_TVA/100) ;
if ( ttc < 1000) tauxr = 0 ;
else if ( ttc < 2000 ) tauxr = 1 ;
else if ( ttc < 5000 ) tauxr = 3 ;
else tauxr = 5;
remise = ttc * tauxr / 100 ;
net = ttc - remise ;
printf ("prix ttc %f\n", ttc) ;
printf ("remise %f\n", remise) ;
printf ("net à payer %f\n", net) ;
}
20
MIPC: S3 Département
Structures alternatives (suite)
(3) Structure de choix multiples
switch (variable)
{
case valeur 1: instructions 1;
break;
…
case valeur n: instructions n;
break;
default: instructions n+1;
}
21
MIPC: S3 Département
Exemple
switch (choixMenu)
Exemple: Apps-Sport {
case 1:
int choixMenu; printf("Vous avez choisi le Foot
printf("=== Menu ===\n\n");
balle !");
break;
printf("1. foot balle n");
case 2:
printf("2. Tennis n");
printf("Vous avez choisi le Tennis. ");
printf("3. Natation \n");
break;
printf("4. Equitationn"); case 3:
printf("\nVotre choix ? "); printf("Vous avez choisi la natation");
scanf("%d", &choixMenu); break;
case 4:
printf("Vous avez choisi l’Equitation");
break;
default:
printf("Vous n'avez pas rentré un
nombre correct. !");
}
22
MIPC: S3 Département
Exercice 2
23
MIPC: S3 Département
solution
#include <stdio.h>
main()
{ int i;
float n,m,a,moy,som = 0 ;
printf ("donnez un entier ") ;
scanf ("%f", &n) ;
som=som+n;
printf ("donnez un entier ") ;
scanf ("%f", &m) ;
som=som+m;
printf ("donnez un entier ") ;
scanf ("%f", &a) ;
som=som+a;
moy=som/3;
printf ("Somme : %f\n", som) ;printf ("moyenne : %f\n", moy) ;
}
24
MIPC: S3 Département
Structures itératives
• Boucle (1)
• Boucle (2)
• Boucle (3)
25
MIPC: S3 Département
Structures itératives (suite)
Boucle (1)
Initiations Conditions
26
MIPC: S3 Département
Structures itératives (suite)
Boucle (2)
while (conditions)
{
instruction 1;
instruction 2;
…
instruction n;
}
27
MIPC: S3 Département
Structures itératives (suite)
Boucle (3)
do{
instruction 1;
instruction 2;
…
instruction n;
}while(conditions);
28
MIPC: S3 Département
Solution
#include <stdio.h>
main()
{ int i;
float n,moy,som = 0 ;
i=0;
do
{ printf ("donnez une note ") ;
scanf ("%f", &n) ;
som += n ;
i++ ;
}
while (i<3) ;
moy=som/i;
printf ("Somme : %f\n", som) ;
printf ("moyenne : %f\n", moy) ;
} 29
MIPC: S3 Département
Exercice 2
30
MIPC: S3 Département
Solution
main()
{
int i, nombre, somme=0;
printf("entrer un nombre\n");
scanf("%d",&nombre);
for (i=1; i<=nombre/2; i++)
{
if (nombre % i == 0)
{
somme = somme + i;
}
}
if(somme == nombre) printf("parfait");
else printf("n est pas parfat");
} 31
MIPC: S3 Département
Exercice 3
32
MIPC: S3 Département
Solution_1
main()
{
int u1, u2, u3 ; /* pour "parcourir" la suite */
int n ; /* rang du terme demandé */
int i ; /* compteur */
do
{ printf ("rang du terme demandé (au moins 3) ? ") ;
scanf ("%d", &n) ;
}
while (n<3) ;
u2 = u1 = 1 ; /* les deux premiers termes */
i=3;
while (i < n+1) /* attention, l’algorithme ne fonctionne que pour n > 2 */
{ u3 = u1 + u2 ;
u1 = u2 ;
u2 = u3 ;
i++;
}
printf ("Valeur du terme de rang %d : %d", n, u3) ; 33
} MIPC: S3 Département
Solution_2
#include<stdio.h>
int U1,U2,U3,i,n ;