Académique Documents
Professionnel Documents
Culture Documents
Algorithmique 2
Analyse
Problème réel
Résultats
Résultats
Algorithmique 4
Définition :
Un algorithme est une suite d’actions ou
instructions appliquées sur des données dans un
ordre bien déterminé pour résoudre un
problème ou atteindre un but.
Algorithmique 6
Structure d’un algorithme
Algorithmique 7
Exemple d’un algorithme
Algorithme surface ;
Variable R,S : réel ;
Constante Pi : réel=3,141559;
Début
Ecrire (‘Donner la valeur du rayon :’);
Lire (R);
S Pi*R^2;
Ecrire (‘la surface du disque est : ‘);
Ecrire (S);
Fin
Algorithmique 8
#include <stdio.h>
Bibliothèques
#include<conio.h>
int main ()
{
Déclarations des variables locales Corps du
Instructions programme
return(0);
}
Algorithmique 9
La déclaration d'une variable en C se fait simplement en écrivant :
Algorithmique 10
Variables
◦ Types : Exemple :
Entier : int
int i,a,b,c;
Réel : float
Car : char char a,b,c,d,e,f;
Booléen: Bool
Algorithmique 11
Premier programme en langage C
int main( )
{
printf("Bonjour tout le monde \n");
return 0 ;
auto, break, case, char, const, continue, default, do, double, else, enum,
extern, float, for,goto, if, int, long, register, return, short, signed,
sizeof, static, struct, switch, typedef, union,unsigned, void, volatile,
while.
20
Elles doivent être déclarées avant de pouvoir
être utilisées.
Exemple :
Identificateur de
Liste des
type prédéfini.
identificateurs
21
int
entier sur 32 bits (de -2 147 483
648 à 2 147 483 647).
char
caractère, sur 8 bits (de -128 à
127).
float
réel en virgule flottante, sur 32
bits
22
short
entier sur 16 bits, de -32 768 à 32 767.
double
réel en virgule flottante, sur 64 bits (même
ensemble de définition que float), 16 chiffres
significatifs.
unsigned int
entier positif sur 32 bits (de 0 à 4 294 967 295)
(on peut utiliser de même unsigned short et
unsigned char).
23
printf("contrôle", arg1, arg2, ...)
contrôle est une suite de caractères qui
sont affichés, sauf les caractères précédés
d'un % ou d'un \.
Les caractères précédés d'un % sont
remplacés par l'argument correspondant.
Cet argument est formaté suivant le
caractère (dit 'de conversion').
24
scanf("contrôle", adresse1, adresse2, ...)
lit sur l'entrée standard les champs séparés par des
caractères blancs, convertit leur valeur suivant le
format contrôle, et les affecte aux adresses
adresse1, adresse2, ...
Algorithmique 25
Les caractères précédés de \ permettent
d'obtenir des caractères spéciaux :
◦ \n : représente le retour à
la ligne.
◦ \t : la tabulation
◦ \b : le retour arrière.
◦... cf.
26
main()
{
int n, m ;
float r ;
n = 2 ; m = 1234567 ; r = 3.1416 ;
printf("n = %d\t m = %d \t r = %f\n", n, m,
r) ;
}
27
Opérateurs et expressions
Types Opérateurs
+
-
*
Entier et réel
/
^ (en C , la fonction « powf »)
Mod (en C %)
Car et chaîne &
ET
Booléen OU
NON
Algorithmique 29
Opérateurs et expressions (suite)
◦ Exemple :
Expression Résultat
2+3-1 4
3^3 27
18/4 4
18mod4 2
Algorithmique 30
Instruction d’affectation
◦ Syntaxe :
Variable valeur
Variable expression
Algorithmique 31
Instruction d’affectation (suite)
◦ Exemple :
Algorithmique 32
Instruction d’affectation en langage C
Syntaxe :
Exemples :
int i; char car;
i = 65;
car = 'E';
Algorithmique 33
Instructions de lecture/écriture
◦ Syntaxe :
Lire variable
Ecrire variable
Ecrire "message"
◦ Exemple :
Algorithme surface
Variable R,S : réel
Début
Ecrire "Donner la valeur du rayon : "
Lire R
S 3.14*R^2
Ecrire "la surface du disque est : "
Ecrire S
Fin
Algorithmique 34
Fonctions d'entrées et sorties en C
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main ()
{ float r,s;
printf("Donner la valeur du rayon :\n ");
scanf("%f",&r);
s = 3.14*powf(r,2);
printf("la surface du disque est\n%f",s);
getch();
return(0);
}
Algorithmique 35
Donnez les valeurs des variables A, B et C
après exécution des instructions suivantes ?
Variables A, B, C: Entier
Début
A←3
B←7
A←B
B ← A+5
C←A+B
C←B–A
Fin
Algorithmique 36
Donnez les valeurs des variables A et B après
exécution des instructions suivantes ?
Variables A, B : Entier
Début
A←1
B←2
A←B
B←A
Fin
Les deux dernières instructions permettent-
elles d’échanger les valeurs de A et B ?
Algorithmique 37
Ecrire un programme qui permet d’afficher
les valeurs suivantes : 70, 82, 185 et 30
Ecrire un programme qui permet d’afficher
les caractères suivants: c, o, u, C, O, U.
Algorithmique 38
Ecrire un algorithme qui demande un
nombre entier à l'utilisateur, puis qui
calcule et affiche le double de ce
nombre
Algorithmique 39
Algorithme Calcul_double
variables A, B : entier
Début
écrire("entrer la valeur de A ")
lire(A)
B ← 2*A
écrire("le double de ", A, "est :", B)
Fin
Algorithmique 40
#include <stdio.h>
#include <conio.h>
int main ()
{
int a,b;
printf("entrer la valeur de A ");
scanf(%d,&a);
b= 2*a;
printf("le double de %d ", a, "est %d:", b);
getch();
}
Algorithmique 41
Ecrire un programme qui permet d’afficher :
L’addition de 2 nombres a et b
la soustraction de 2 nombres a et b
la multiplication de 2 nombres a et b
La division et le modulo de 2 nombres a et b
Algorithmique 42
Condition simple
◦ Définition :
Une condition simple est une comparaison entre
deux expressions du même type. Elle est évaluée
comme étant vraie ou fausse.
Algorithmique 44
Condition simple (suite)
◦ Opérateurs de comparaison :
= Egal à Egal à
Algorithmique 45
Condition simple (suite)
◦ Opérateurs de comparaison en C:
== Egal à Egal à
!= Différent Différent
Algorithmique 46
Condition complexe
◦ Définition :
Une condition complexe est une condition
composée de plusieurs conditions simples reliées
par des opérateurs logiques : ET, OU, XOR et NON.
Algorithmique 47
Condition complexe (suite)
◦ Opérateurs de comparaison :
Condition Signification
Algorithmique 48
Condition complexe (suite)
◦ Opérateurs de comparaison :
Symbole Signification
&& ET
|| OU
! NON
Algorithmique 49
Structure alternative
◦ Syntaxe :
Si condition alors
Bloc1 d’instructions
Sinon
Bloc2 d’instructions
Fin si
◦ Cas simple :
Si condition alors
Bloc d’instructions
Fin si
Algorithmique 50
Les conditions en C
◦ Syntaxe :
if (condition vraie)
{
instructions 1
}
else
{
instructions 2
}
Algorithmique 51
Structure alternative (suite)
◦ Exemple :
Algorithme positif;
Variable nb : entier;
Début
Si (nb>0) alors
Ecrire (‘Nombre positif’);
Sinon
Ecrire (‘Nombre négatif ou nul’);
Finsi
Fin
Algorithmique 52
Structures alternatives imbriquées
◦ Exemple (version 2):
Algorithme signe;
Variable nb : entier;
Début
Ecrire (‘nb=‘);
Lire(nb);
Si (nb>0) alors
Ecrire (‘Nombre positif’);
Sinon
Si (nb<0) alors
Ecrire (‘Nombre négatif’);
Sinon
Ecrire (‘Nombre nul’);
Finsi
Finsi
Fin
Algorithmique 53
Remarque : dans la version 2 on fait
trois tests systématiquement alors
que dans la version 1, si le nombre
est négatif on ne fait qu'un seul
test.
Conseil :utiliser les tests imbriqués
pour limiter le nombre de tests et
placer d’abord les conditions les
plus probables (minimiser la
complexité).
Algorithmique 54
Algorithme AffichageValeurAbsolue (version1)
Variable x : réel
Début
Ecrire " Entrez un réel : "
Lire (x)
Si x < 0 alors
Ecrire ("la valeur absolue de ", x, "est:",-x)
Sinon
Ecrire ("la valeur absolue de ", x, "est:",x)
Finsi
Fin
Algorithmique 55
Algorithme AffichageValeurAbsolue (version2)
Variable x,y : réel
Début
Ecrire " Entrez un réel : "
Lire (x)
y← x
Si x < 0 alors
y ← -x
Finsi
Ecrire ("la valeur absolue de ", x, "est:",y)
Fin
Algorithmique 56
Structure sélective
◦ Syntaxe :
Algorithmique 57
Structure sélective (suite)
◦ Exemple :
Algorithme feu;
Variable feu : car;
Début
Selon feu faire
'V' : Ecrire (‘le conducteur passe’);
'R' : Ecrire (‘Le conducteur s’arrête’);
'O' : Ecrire (‘le conducteur ralentit’);
Finselon
Fin
Algorithmique 58
switch (feu)
{
case ‘V’:
printf (" le conducteur passe. ");
break;
case ‘R’:
printf(" Le conducteur s’arrête.");
break;
case ‘O’:
printf(" le conducteur ralentit… ");
break;
default:
Algorithmique 59
Ecrire un algorithme qui demande un
nombre entier à l'utilisateur, puis
qui teste et affiche s'il est
divisible par 3
Algorithmique 60
Le prix de photocopies dans une reprographie
varie selon le nombre demandé: 0,5 DH la
copie pour un nombre de copies inférieur à
10, 0,4DH pour un nombre compris entre 10 et
20 et 0,3DH au-delà.
Algorithmique 61
Écrire l’algorithme qui calcule le
discriminant DELTA d’un trinôme du second
degré AX2 + BX + C et qui, en fonction de
son signe, calcule la ou les racines réelles
du trinôme ou affiche qu’il n’ya pas de
racine réelle.
Algorithmique 62
Ecrire un algorithme qui demande deux
nombres à l’utilisateur et l’informe ensuite si
leur produit est négatif ou positif
Algorithmique 63