Vous êtes sur la page 1sur 79

Introduction

Informatique?:

construit sur la contraction de lexpression information automatique . Linformatique est la science du traitement automatique de linformation Linformatique traite de deux aspects complmentaires : les programmes immatriels (logiciel, software) qui dcrivent un traitement raliser et les machines (matriel, hardware) qui excutent ce traitement.

Introduction
Quest ce quun ordinateur : une machine totalement dnue d'intelligence capable deffectuer un grand nombre de tches Excute trs rapidement et sans erreurs les ordres

qu'on lui donne

Quest-ce quun programme ?


Assemblage et enchanement dinstructions lmentaires
crit dans un langage de programmation

Excut par un ordinateur afin de traiter les donnes dun problme


et renvoyer un ou plusieurs rsultats

Environnement de programmation
Programme scrit dans un fichier texte On crit les commandes les unes la suite des autres
Le compilateur vrifie la syntaxe du fichier texte

Avaancer au lieu de avancer

traduit en langage machine (100101100101001011)

Hlas, il ne dtecte pas les bugs !!! Si on fonce dans le mur, il ne nous dit rien !

Environnement de programmation
Environnement de programmation ddi
Fichier source Fichier traduit

compilateur

Affichage des Erreurs

Programmation
Un programme est ralis dans le but deffectuer un

ensemble de traitements particuliers sur un ensemble de donnes


Dfinir sous quelle forme les donnes initiales seront

fournies lapplication Dfinir sous quelle forme les rsultats seront communiqus Expliciter les diffrentes actions raliser pour raliser cette tche

Donnes et traitements
Donne : valeur stocke variable ou constante Type Traitement : oprations sur les donnes instructions
Donnes initiales
Traitements

rsultats

Analyse du problme
Dcomposer la tche
Exemple simple : moyenne de 10 notes
notes saisies
Calculer Moyenne

moyenne affiche

saisie clavier

Lire et stocker les donnes notes

Additionner les donnes notes et stocker donne somme

Diviser la donne somme par 10 et stocker la donne moyenne

Afficher la Donne moyenne

affichage cran

Sous programme
Sous-programme Diviser pour mieux rgner Intrts : Programmer tche par tche Meilleure lisibilit du code conomie de codage et rutilisation Inconvnients : Ncessite de rflchir en blocs de fonctionnalits

O on apprend rellement programmer

Algorithmique
Un peu de vocabulaire Algorithme : enchanement des actions (instructions) ncessaires pour rsoudre un problme Diffrentes appellations

langage algorithmique pseudo-langage de programmation pseudo-code)

Organisation dun programme


Exemple dun programme :
PROGRAMME monProgr /* Constantes: initialisation obligatoire */ CONST const1 <- 10 : entier const2 <- "bonjour!" : chane // les variables au sens strict VAR varReel1, varReel2 : rels varChaine : chane DEBUT Instruction1 Instruction2 FIN

dclarations

Corps du programme

O on se rend compte quun ordinateur nest quune succession de boites !

Les donnes
Donnes = ensemble des informations manipules

par un programme
Les donnes d'un programme sont mmorises en

mmoire centrale dans des variables (sortes de cases)

Notion de variable
Une variable possde : une valeur contenue par la case mmoire un identificateur : nom unique par lequel on peut accder son contenu un type qui dfinit la taille de la place occupe

Ne pas confondre la variable et son contenu


Une variable est un contenant (case ou bote) Le contenu d'une variable est une valeur numrique,

alphanumrique

Variable
Une variable (VAR) est donc une boite dans laquelle on met une valeur (un nombre, un mot) qui peux changer (si lutilisateur modifie la valeur

par exemple)

Les variables dont la valeur ne change pas au cours de l'excution du programme sont appeles

variables constantes (CONST)

Dclaration de variable
Dclarer une variable : rserver une place en mmoire attribuer l'identificateur cette place La dclaration indique : lidentificateur le type Exemple : VAR maVar : rel

Types (1)
Type caractre lettres, chiffres, ponctuation, code des oprations, espace, retour chariot, Exemples : a + .
Type chane de caractre suites de caractres Exemples : bonjour cac40

Types (2)
Type entier les nombres entiers Exemples : 3 45
Type rel les nombres rels Exemples : 3,14
133

37,7

Types (3)
Type boolen que deux valeurs possibles soit VRAI, soit FAUX

Exemples de variables
Mmoire centrale (mmoire vive)

Identificateur : X Type : entier Valeur : 25


X 25

Identificateur : Y Type : rel


Y 3,7

Valeur : 3,7

O laddition devient complique

Oprateurs
Les oprations possibles sur les variables dpendent de

leur type
On ne peux pas multiplier des mots

Rels
oprations possibles addition soustraction multiplication Division comparaisons symbole ou mot cl + * / <, , >, , =,

Entiers
oprations possibles addition soustraction Multiplication Division Division entire Modulo Comparaisons symbole ou mot cl + * / DIV MOD <, , >, , =,

Caractres
oprations possibles comparaisons symbole ou mot cl <, , >, , =, (exemple a < z)

Chanes
oprations possibles Concatnation Longueur Extraction symbole ou mot cl & Longueur (chane) Extraction (sous-ch, ch)

Boolens
oprations possibles comparaison ngation conjonction disjonction symbole ou mot cl =, NON ET OU

Rappel
PROGRAMME monProgr /* Constantes: initialisation obligatoire */ CONST const1 <- 10 : entier const2 <- "bonjour!" : chane // les variables au sens strict VAR varReel1, varReel2 : rels varChaine : chane DEBUT Instruction1 Instruction2 FIN dclarations

Corps du programme

Instructions
Instruction = ordre que peut excuter l'ordinateur
excution d'un programme : changes d'informations en mmoire Calculs Affichage des rsultats

Informations
Les informations manipules par les instructions

peuvent prendre plusieurs formes:


des variables des constantes des valeurs littrales ("bonjour", 45, VRAI) des expressions complexes : combinaisons de variables,

constantes et valeurs littrales avec des oprateurs (2 * r * 3.14)

Les instructions lmentaires


Affectation : le fait de donner une nouvelle valeur

une variable (mettre un nombre dans une boite) lire: Permet lordinateur de rcuprer ce que lutilisateur tape au clavier ecrire: Permet lordinateur dafficher sur l'cran ce quon veux (le rsultat dun calcul, une variable)

L affectation
Syntaxe : Variable <- Valeur
Valeur value partir dune expression : Variable (le contenu dune autre boite) Constante (une valeur fixe : PI) valeur littrale (3 6 5.12) expressions complexes (un calcul)

Exemples
X <- Y
X <- 25 X <- 3,3 C <- a maChaine <- bonjour B <- VRAI X <- 25 + Y + 3

Diffrence avec le = mathmatiques


Quand on dit qu'une variable prend pour valeur une

autre variable, a ne veut pas dire qu'elles seront toujours gales ! Cela veut seulement dire que la premire variable va prendre la valeur de la seconde
Le contenu de la premire boite sera le mme celui de la

seconde boite Mais si on modifie le contenu de la seconde boite aprs, a na pas dimpact sur le contenu de la premire boite !

Exemples
Algo : Maths :
Algo : Maths : Algo : Maths :

x <- y x = y

diffrend de y <- x quivaut y = x


impossible ! a un sens a un sens impossible

x + 12 <- y x + 12 = y x <- x + 7 x = x + 7

La saisie
Syntaxe : Lire variable1 [,variableN]*
Permet un utilisateur de communiquer des donnes

au programme Assigne une valeur entre au clavier dans une variable Tant que l'utilisateur n'entre rien au clavier, le droulement du programme est stopp

Exemples
Lire (x) Lire(x, y) Lire(a, b, c, d, e, f)

Avantages
Utiliser le mme programme pour des donnes

diffrentes Sans instruction de saisie (ou de lecture sur un priphrique quelconque), un programme fournirait toujours le mme rsultat

Piges
Saisir une valeur ne correspondant pas au type de la

variable o elle doit tre stocke


Essayer de mettre un mot dans une variable de type texte

Lutilisateur peut penser que le programme sest arrt Si il ny a rien daffich, lutilisateur ne voit quun curseur clignotant

Laffichage
Syntaxe : ecrire variable1 [, variableN]*
L'instruction d'affichage permet de fournir des

rsultats l'utilisateur travers l'cran

Exemples
Ecrire(x)
Ecrire(bonjour) Ecrire(x, y, z) Ecrire(x + y) Ecrire(le rsultat de x + y est : , x

+ y)
On peut afficher plusieurs trucs la suite grce la virgule !

Avantages
Permet de fournir un rsultat
Permet de guider lutilisateur Permet dafficher des valeurs intermdiaires Permet de dbuguer

Exemple complet
PROGRAMME bonjour CONST bj <- Bonjour : chane mr <- Monsieur : chane varNom, ch : chane

VAR

DEBUT Ecrire(Quel est votre nom ?) Lire(varNom) ch <- mr & varNom Ecrire(bj, ch ) FIN

Raliser un algorithme : exprimer en pseudo-code les rgles de traitement dun problme pour le soumettre un ordinateur (par un programme)
Les donnes dun programme sont mmorises dans des variables qui sont des cases mmoire Les instructions permettent de manipuler et de dplacer une donne d'un endroit un autre de la mmoire

Une variable est un contenant, qui contient une et une

seule valeur un moment donn. Elle est caractrise par


un identificateur (son nom) une valeur (qui peut varier au cours du programme, sauf pour les

constantes) un type (qui dtermine sa taille et les oprations possibles)

Les instructions de base sont :


l'affectation (permet de changer la valeur d'une variable) la saisie (permet d'assigner une variable, une valeur entre au

clavier) l'affichage (permet d'crire le contenu d'une variable ou d'une expression l'cran)

Exemples de synthse
Exemple 1 : Calcul de la surface d un rectangle Analyse :
Les trois tapes de cet algorithme : 1. Lecture de donnes, longueur et largeur 2. Calcul de la surface, longueur*largeur 3. Edition du rsultat

Algorithme :
Algorithme surface_rectangle; Variables longueur, largeur, surface : rel; Dbut Ecrire ( Donner les valeurs de la longueur et la largeur ); Lire (longueur, largeur); surface longueur*largeur; Ecrire ( la surface du rectangle est : , surface); Fin
50

Exemples de synthse
Exemple 2 : euroVersDirham Analyse :
Les trois tapes de cet algorithme : 1. Lecture des donnes : VE, tauxC 2. Calcul du VD (valeur en dirham) 3. Edition du rsultat

Algorithme :
Algorithme euroVersDirham Entte Variables VE, VD, tauxC : rel; Dclaration des variables Dbut Ecrire ( Donner les valeurs du VE et de tauxC); Lire (VE, tauxC); VD VE*tauxC; Les instructions Ecrire ( le prix VD est : ,VD); Fin
51

Commentaires
Afin d'amliorer la lisibilit d'un algorithme, on peut utiliser des commentaires. Un commentaire est une suite de caractres quelconques encadre par les symboles /* et */ Exemple : /* ceci est un commentaire */

/* le calcul du prix TTC */ Algorithme prix_ttc; /* entte de l algorithme */ /* dclaration des variables */ Variables PH,TVA, PTTC : rel; Dbut /* lecture des variables PH et TVA */ Ecrire ( Donner les valeurs du PH et de la TVA); Lire (PH, TVA); PTTC PTTC+PH*TVA; /* Calcul du PTTC */ Ecrire ( le prix TCC est : ,PTTC); /* Edition du rsultat */
Fin
52

Exercices
1. Soient n et m deux entiers, crire l algorithme qui permute les valeurs de n et m

(exemple : passer de n=10, m=15 n=15, m=10)


Algorithme permutation; Variables X,Y : rel ; Z : rel ; /* variable intermdiaire */ Dbut /* lecture des variables X et Y */ Ecrire ( Donner les valeurs de X et de Y); Lire (X, Y); Ecrire ( Avant permutation : X =,X, Y= ,Y); /* permutation des valeurs des variables X et Y */ ZX; XY; YZ; Ecrire ( Aprs permutation : X =,X, Y= ,Y); Fin
53

2. Les structures de contrles

Objectifs Dans ce chapitre nous dcrivons : la structure alternative SI ALORS SINON la structure de choix multiple CAS ... les structures rptitives la boucle POUR la boucle TANT QUE la boucle REPETER

54

Enchanement des actions


On utilisera cette structure lorsqu'une action doit succder une autre

e1

T1 T s1 e2 T2 T

Exemple : Calcul du prix TTC Algorithme :


Algorithme prix_ttc Variables PH,TVA, PTTC : rel; Dbut Ecrire ( Donner les valeurs du PH et de la TVA); Lire (PH, TVA); PTTC PTTC+ PH*TVA; Ecrire ( le prix TCC est : ,PTTC);
Fin

s2

55

Structure alternative ou conditionnelle


oui condition Vraie ? non

T1

T2

SI (Condition) ALORS T1; SINON T2; FSI

suite du programme

La condition dsigne une expression boolenne dont la valeur est VRAI ou FAUX. T1 et T2 dsignent une suite d'instructions (pouvant elles mmes tre des structures alternatives).

56

Structure alternative ou conditionnelle


Exemple 1 : n et m sont deux entiers. crire l algorithme qui retourne la plus grande valeur de A et B ?
ALGORITHME MAXIMUM_DE_DEUX_NOMBRES VARIABLES A, B : ENTIER; /* les deux nombres comparer */ MAX : ENTIER; /* le plus grand */ DEBUT ECRIRE('Entrez les valeurs de A et B :'); LIRE(A, B); SI (A >= B) ALORS MAX A; SINON MAX B; FSI /* Fin de la structure SI */ ECRIRE('le maximum de ', A,' et de ',B,' est : ',MAX); FIN
57

Structure alternative ou conditionnelle


Exemple 1 : n et m sont deux entiers. crire l algorithme qui retourne la plus grande valeur de A et B ?
ALGORITHME MAXIMUM_DE_DEUX_NOMBRES VARIABLES A, B : ENTIER; /* les deux nombres comparer */ MAX : ENTIER; /* le plus grand */ DEBUT ECRIRE('Entrez les valeurs de A et B :'); LIRE(A, B); MAX A SI (B >A) ALORS MAX B; FSI /* Fin de la structure SI */ ECRIRE('le maximum de ', A,' et de ',B,' est : ',MAX); FIN
58

Structure alternative ou conditionnelle


Exemple 2 : Afficher la valeur absolue d un entier quelconque N
ALGORITHME Valeur_absolue VARIABLES N : ENTIER; ABS : ENTIER; /* valeur absolue */ DEBUT ECRIRE('Entrez une valeur entire :'); LIRE(N); SI (N >=0) ALORS ABS N; SINON ABS -N; FSI ECRIRE( la valeur absolue de ', N,' est : ',ABS); FIN

59

Structure alternative ou conditionnelle

Exercice : on veut rsoudre, dans lensemble des nombres rels, une quation du second degr coefficients rels. a, b et c sont des rels non nuls, crire l algorithme qui retourne les racines relles de l quation suivante : ax2 + bx +c = 0

60

Structure alternative gnralise


e

Expression

T1

T2

T3

T4

Suivant la valeur de l'expression, un des traitements T1, T2, T3 ou T4 est excut.

61

Structure alternative gnralise


En pseudo-langage, on crira CAS (expression) valeur1 : T1; valeur2 : DEBUT T21; T22; FIN valeur3 : T3; valeur4 : T4; AUTRE T_autre; FIN CAS

62

Structure alternative gnralise


Exemple : On dsire calculer le salaire net (SN) d'un employ en tenant compte du nombre de personnes charge. Le tableau des dductions par rapport au nombre de personnes charge est le suivant :
Nombre de personnes charge 0 1 2 3 4 ou 5 6 et plus Dductions du salaire brut (SB) 20% 18% 15%

13%
10% 08%

Ecrire l algorithme qui lit les donnes suivantes : le nombre de personnes charge (pers_ch de type entier) le nombre d'heures de travail (nb_heur de type entier) le taux horaire (taux de type rel) puis calcule le salaire net ?
63

Structure alternative gnralise


ALGORITHME exemple1_CAS VARIABLES SN, SB, Taux : rel; nb_heur, pers_ch : entier; dduction : rel; DEBUT

ECRIRE( le nombre de pers_ch '); LIRE (pers_ch); ECRIRE( le nombre d heures '); LIRE (nb_heur); ECRIRE( le taux horaire '); LIRE (taux); SB taux*nb_heur; CAS (pers_ch) 0 : dduction 0.20*SB; 1 : dduction 0.18*SB; 2 : dduction 0.15*SB; 3 : dduction 0.13*SB; 4,5 : dduction 0.10*SB; AUTRE dduction 0.08*SB; FIN CAS SN SB - dduction ECRIRE( le salaire net est : ,SN);

64

FIN

Structure alternative gnralise


Exercice : crire l algorithme qui lit un caractre et vrifie s il est une lettre, un chiffre ou un caractre spcial.

ALGORITHME exemple2_CAS VARIABLES C : CARACTERE; DEBUT ECRIRE('Entrez un caractre :'); LIRE(C) ; CAS (C) a z , A Z : ECRIRE(C , est une lettre ); 09 : ECRIRE(C , est un chiffre ); AURTE : ECRIRE(C , est un caractre spcial ); FIN CAS FIN

65

Structures itratives
La notion d'itration est l'une des notions fondamentales de l'algorithmique. Elle est utilise lorsque l'on doit exercer plusieurs fois le mme traitement sur un mme objet.

Il existe trois rptition :

structures

de

initialisation

1. La boucle POUR 2. La boucle TANT QUE 3. La boucle REPETER

condition Vraie ? oui bloc d'instructions

non

modification

suite du programme

66

La boucle POUR
Pour variable_de_contrle = valeur_min jusque valeur_max Faire Dbut Bloc d instructions; Fin

ou
variable_de_contrle est la variable de contrle (compteur) valeur_min et valeur_max indique respectivement la valeur minimale
est la valeur maximale

67

La boucle POUR
Exemple 1 : Soit n un entier, afficher les valeurs 1, 2, , n
ALGORITHME exemple1_POUR VARIABLES n : ENTIER; i : ENTIER; /* variable de contrle */ DEBUT ECRIRE('Entrez une valeur entire :'); LIRE(n); POUR i=1 jusque n FAIRE dbut ECRIRE( i); Fin
FIN

68

La boucle POUR
Exemple 2 : Calculer n! (n!= 1*2*3* *n)
ALGORITHME exemple2_POUR VARIABLES n, fac : ENTIER; i : ENTIER; /* variable de contrle */ DEBUT ECRIRE('Entrez une valeur entire :'); LIRE(n); fac 1 POUR i=1 jusque n FAIRE dbut fac fac*i Fin ECRIRE( factoriel de ', n,' est : ',fac); FIN
69

La boucle Tant que


TANT QUE Condition FAIRE DEBUT T1; FIN
Lorsque la condition a pour valeur VRAI, on excute le traitement T1 puis on revient tester la condition. Il est donc ncessaire que l'action T1 modifie la condition sinon l'itration ne s'arrtera pas. Lorsque la condition a pour valeur FAUX, le traitement squentiel continue. L'itration est termine
e VRAI Condition

FAUX T1

70

La boucle Tant que


Une suite S de nombres non nuls est saisie au clavier. La fin de S est marque par un nombre nul. crire lalgorithme qui affiche les variables (Pos) et (Neg) reprsentant respectivement le nombre de valeurs positives et le nombre de valeurs ngatives

Exemple :

71

La boucle Tant que


ALGORITHME exemple_Tant-que VARIABLES pos, neg ,n : ENTIER; i : ENTIER; /* variable de contrle */ DEBUT pos 0 ; neg 0 ECRIRE('Entrez une valeur entire : (0 pour terminer)'); LIRE(n); TANT QUE (n<>0) FAIRE dbut /* dbut de tant que */ SI n<0 ALORS neg neg +1 SINON pos pos +1 ECRIRE('Entrez une valeur entire : (0 pour terminer)'); LIRE(n); fin /* fin de tant que */ /* afficher les valeurs de Pos et neg */ FIN
72

La boucle REPETER
REPETER Bloc d instructions; JUSQUA CE QUE (expression soit Vraie)
b lo c d ' in s tru c tio n s

N on

c o n d itio n v ra ie

O ui

s u ite d u p ro g ra m m e

73

Exercices
Exercice 1: Calcul de la somme des n premiers entiers positifs
Calculer la somme des n premiers entiers positifs, par additions successives des entiers : Somme = 1+2++N.

ALGORITHME Somme_v1 VARIABLES somme ,N : ENTIER; i : ENTIER; /* variable de contrle */ DEBUT Somme 0; ECRIRE('Entrez la valeur de N'); LIRE(N); Pour i=1 jusqu a N Faire dbut /* dbut de Pour */ Somme Somme +i; fin /* fin de Pour */ ECRIRE( Somme = , Somme); FIN
74

/* La structure Pour */

Exercices
ALGORITHME Somme_v2 VARIABLES somme ,N : ENTIER; i : ENTIER; /* variable de contrle */ DEBUT Somme 0 ; ECRIRE('Entrez la valeur de N'); LIRE(N); i=1; Tant que (i<=N) Faire dbut /* dbut de Tant que */ Somme Somme +i; i=i+1; fin /* fin de Tant que */ ECRIRE( Somme = , Somme); FIN

/* La structure Tant que */

75

Exercices
ALGORITHME Somme_v2 VARIABLES somme ,N : ENTIER; i : ENTIER; /* variable de contrle */ DEBUT Somme 0 ; ECRIRE('Entrez la valeur de N'); LIRE(N); i=1; Rpter Somme Somme +i; i=i+1; Jusque a ce que (i>N) ECRIRE( Somme = , Somme); FIN

/* La structure Rpter */

76

Exercices
Exercice 1
crire l'algorithme qui calcule le carr d'un entier saisi au clavier.

Exercice 2
crire l'algorithme qui saisie un prix unitaire, une quantit et qui calcule le prix total.

Exercice 3
crire l'algorithme qui lit deux nombres et les imprime dans lordre croissant de leurs valeurs.

Exercice 4
Soient trois nombres x, y et z. crire un algorithme qui dtermine et imprime le plus grand des trois.

77

Exercices A partir dun nombre lu en donnes, on dtermine un montant net par application dune remise de :
1.5 % si le montant est compris entre 2000 et 5000 DH 2.5 % si le montant est compris entre 5001 et 10000 DH 3 % si le montant excde 10000 DH crire l'algorithme qui lit en entre le montant et fournit en sortie la remise net.

78

Exercices
Exercice 6 Donner la trace de l algorithme suivant :
Variables I, J : entier ; Dbut I1; Ecrire(Itration ,I); Rpter J1; Tant que (J<4) Faire Dbut de tant que Ecrire(Itration ,J); J J+1 ; Ecrire(I, J) ; Fin tant que I I+1 ; Jusqu (I=5) ; Fin

79

Vous aimerez peut-être aussi