Vous êtes sur la page 1sur 63

UNIVERSITE ABDELMALEK ESSAADI

Faculté des Sciences et Techniques – Tanger


Parcours : GEGM/MIPC
2017/2018

Pr. BAKKALI HAJIRA


Docteur de l’Université Abdelmalek Essaadi en Informatique et Intelligence Artificielle
 Introduction
 Notion et structure d’algorithme
 Structure d’un programme en C
 Instructions de base
 Instructions de contrôle
 Instructions de répétition

Algorithmique 2
Analyse
Problème réel

Identification des Traitement


données

Résultats
Résultats

 Réalisation d’un appel téléphonique


 Réalisation d’ un gâteau
 Traduction d’un texte
 ….

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

Algorithme Nom de l’algorithme


Déclarations de données
Début
Instructions
Fin

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>

Déclarations des variables globales

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 :

Pour une variable

<son type> <son nom>;

Pour plusieurs variables de même type


< type> < nom var1>, < nom var2>, < nom var3> ;
Pour une constante
const int a = 5;

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

 Composantes d’un programme en C

 Discussion d’un programme en C


#include <stdio.h>

int main( )

{
printf("Bonjour tout le monde \n");

return 0 ;

 Ce programme affiche le message :"Bonjour


tout le monde".
 Les fonctions : En C, une fonction est définie par :
◦ une ligne déclarative qui contient :
 <TypeRésultat> : type de résultat de la fonction
 <Nomfonction> : nom de la fonction
 <TypeParl> <NomParl>, … : types et noms des paramètres de la fonction

◦ un bloc d’instructions délimité par les accolades {}, contenant :


 <déclarations locales> : déclarations des données locales (c.-à-d. des
données uniquement connues à l’intérieur de la fonction).
 <instructions> : liste des instructions qui définit l’action qui doit être
exécutée.

◦ En C, toute instruction simple est terminée par un point virgule ( ; ).


 La fonction main
◦ Une fonction et une seule s’appelle main.
◦ C’est la fonction principale des programmes en C ; elle se
trouve obligatoirement dans tous les programmes.
◦ L’exécution d’un programme entraîne automatiquement l’appel
de la fonction main.
◦ Le type du résultat de main est toujours int (entier). Il n’est pas
déclaré explicitement.
◦ L’instruction return 0 ; indique à l’environnement que le
programme s’est terminé avec succès.
 Les variables
◦ Sont des objet repérés par leurs nom, pouvant contenir des
données, qui pourront être modifiées lors de l'exécution du
programme

◦ Elles sont généralement stockées dans la mémoire vive d'une


machine.

◦ Les noms des variables sont des identificateurs quelconques.

◦ Toute variable doit être déclarée avant les instructions et son


type spécifié dès la déclaration.
 Les identificateurs
◦ Les noms des fonctions et des variables en C sont composés d’une suite
de lettres et de chiffres, plus le caractère souligné ( _ ).
◦ Le 1er caractère doit être une lettre.
◦ Ces identificateurs(mots clefs) sont réservés :

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.

◦ En C les majuscules et minuscules sont interprétés différemment


(sensible à la casse) PGCD et Pgcd sont deux identificateurs différents.
 Les commentaires

◦ Sont utilisés pour rendre un programme plus compréhensible.

◦ Sont ignorés par le compilateur.

◦ un commentaire sur une ligne commence par les caractères //.


◦ un commentaire multi lignes commence par les caractères /* et se
termine par */. A l’intérieur de ces délimiteurs, vous avez droit à
toute suite de caractères .

◦ attention : on ne peut donc imbriquer des commentaires


 La fonction printf fait partie de la bibliothèque de fonctions
standard <stdio>, qui gère les entrées et les sorties de
données.

 La 1ère ligne du programme #include <stdio.h> : informe le


compilateur d’inclure le fichier “stdio.h“ dans le texte du
programme. Ce fichier contient les informations nécessaires
pour utiliser les fonctions de la bibliothèque standard
<stdio>.
 Dans les années 70, D. Ritchie crée le langage
C, et K. Thomson le système d'exploitation
UNIX, écrit en C.
 C est un langage de bas niveau, assez proche
de la machine.
 Dans la plupart des cas il permet de se passer
de l'assembleur.
 Compilateur de base réduit <=> portabilité.
 Domaines d'application : écriture de langages
et de systèmes d'exploitation, programmes
numériques, traitement de textes, bases de
données...

20
 Elles doivent être déclarées avant de pouvoir
être utilisées.
 Exemple :

int i, cpt, max;

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

"Salut "&"tout le monde" "Salut tout le monde"

3^3 27

Y*5 Dépend de la valeur initiale de Y

18/4 4

18mod4 2

Algorithmique 30
 Instruction d’affectation
◦ Syntaxe :

Variable  valeur
Variable  expression

Algorithmique 31
 Instruction d’affectation (suite)
◦ Exemple :

Instructions d’affectation Valeur de X


Nom  "Ahmed" Nom = "Ahmed"
Age  45 Age = 45
Marié  vrai Marié = vrai

Salaire  6000 Salaire = 6000


X  25 X = 25
Y2
X=2
XY
Y2
X3 X = 10
X  (X+Y)*2

Algorithmique 32
 Instruction d’affectation en langage C
Syntaxe :

Nom de variable= valeur


Nom de Variable = expression

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

La fonction Printf pour afficher un message ou le contenu d’une variable


La fonction Scanf recopie la saisie de l'utilisateur à une adresse mémoire.

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

Aprés l’exécusion les programes affichent :


 i vaut 70 (i est le nom de variable initialisée
par la valeur 70)
 a vaut c (a est le nom de variable initialisée
par le caractére c)

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 :

Opérateur Cas numérique Cas alphanumérique

= Egal à Egal à

<> Différent Différent

< Strictement inférieur Placé avant dans l’ordre alphabétique

> Strictement supérieur Placé après dans l’ordre alphabétique

<= Inférieur ou égal Placé avant dans l’ordre alphabétique ou égal

>= Supérieur ou égal Placé après dans l’ordre alphabétique ou égal

Algorithmique 45
 Condition simple (suite)
◦ Opérateurs de comparaison en C:

Opérateur Cas numérique Cas alphanumérique

== Egal à Egal à

!= Différent Différent

< Strictement inférieur Placé avant dans l’ordre alphabétique

> Strictement supérieur Placé après dans l’ordre alphabétique

<= Inférieur ou égal Placé avant dans l’ordre alphabétique ou égal

>= Supérieur ou égal Placé après dans l’ordre alphabétique ou égal

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

condition1 ET condition2 = VRAI condition1 = VRAI , condition2 = VRAI

condition1 = VRAI , condition2 = FAUX


condition1 OU condition2 = VRAI condition1 = FAUX, condition2 = VRAI
condition1 = VRAI, condition2 = VRAI
condition1 = VRAI , condition2 = FAUX
condition1 XOR condition2 = VRAI
condition1 = FAUX, condition2 = VRAI

Non condition = VRAI condition = FAUX

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 :

Selon variable ou expression faire


Valeur1 : bloc1 d’instructions
Valeur2 : bloc2 d’instructions

Valeurn : blocn d’instructions
Autrement : bloc d’instructions
Finselon

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:

printf(« rien a faire pour ce cas");


break;
}

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

Ecrivez un algorithme qui demande à


l’utilisateur le nombre de photocopies
effectuées, qui calcule et affiche le prix à
payer

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.

Les trois coefficients A, B et C seront


saisis au clavier avant traitement.

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

Vous aimerez peut-être aussi