Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MOUFID
Cours dalgorithme
I. NOTION DALGORITHME
1. Introduction
Linformatique se dcline selon trois aspects : La technologie des ordinateurs (composant utilisables en rseaux) ; Les produits logiciels et matriels ; La science de ce qui se calcule sur et avec les ordinateurs (cest ici que prend place lalgorithme).
2. Machine abstraite
Il existe de nombreux types dordinateurs, mais tous correspondent un modle dordinateur unique.
Cours dalgorithme
Le programme : va traiter les donnes pour produire des rsultats attendus, le programme sera constitu essentiellement dune suite dinstruction. Une instruction correspond une action lmentaire. Unit de traitement : composante qui utilise les instructions et les donnes pour calculer les rsultats. Les rsultats : sont les valeurs que lutilisateur attend aprs avoir fourni des donnes au programme. Une telle machine programmable va nous permettre de concevoir des programmes abstraits (algorithmes). Il sera ncessaire par la suite de les transmettre dans un langage de programmation, tout simplement pour quils deviennent des programmes (traitement par lordinateur).
Le problme : est nonc dans le langage courant (avec toutes ses ambiguts) Cahier des charges : Lalgorithme : est cris dans un langage abstrait Conception : Le programme : est cris dans un langage de programmation (trs contraint) Ralisation : Lordinateur : interprte et traduit le programme en instructions simples codes en binaire (ce mcanisme est possible laide dun compilateur). NB : compilateur interprter (interprteur : ligne ligne).
5. Dfinitions fondamentales
Algorithme : En informatique, la rsolution dun problme est de travailler la suite logique de tous les ordres ncessaires la solution du dit problme, cette suite est appele Algorithme. La construction dun algorithme passe par lanalyse du problme, avec pour objectif de le dcouper en une succession de tches simplifies et distinctes. 2
Cours dalgorithme
Pour raliser un algorithme, il faut dcouper lnonc en tapes distinctes qui contiennent lalgorithme (dterminer les fonctions) dfinir les objets manipuls par lalgorithme (variables, objets) (objet = instance de classe). Programme : traduction de lalgorithme de faon ce quil soit compris par lordinateur. (Traduction + compilation) (Contrainte = syntaxe et machine). Variable : une variable en algorithme est une entit abstraite compose : un identificateur (nom, intitul) une valeur appartenant un domaine de valeur (type) et qui peut tre modifi par une affectation.
Prpar par M. MOUFID A>9 : possible Caractre de symbole A Caractre de symbole 9 La dclaration de variable identificateur : domaine Syntaxe : Nom type Exemple : Variable Filomne : entier ; X, Y, Z : entier ; 4 variables
Cours dalgorithme
Rgles :
Une variable nest dclare quune seule fois dans un algorithme ; Une variable est dclare au dbut de lalgorithme ;
Notation de lalgorithme :
Identificateur de la variable expression ; (Nom) (Prend pour valeur) (Valeur correspondant au type de la variable) La valeur de lexpression doit tre conforme au domaine de la variable affecte. Exemple :
//en tte //dclaration de deux variables de types entier //X=12 et Y na pas encore de valeur //X=12 et Y=16 //X=3 et Y vaut 16
Algorithme affecter_faux ; //en tte Variables X, Y : entier //dclaration de deux variables de type entier Dbut X; //application prdfini, initialise 0 Y X+4 ; //error, excution impossible, X+4 na pas de sens //Y=12, mais instruction pas atteinte Y 12 ; X3; //X=3, mais instruction pas atteinte Fin.
Prpar par M. MOUFID Instruction de squencement (alternative, conditionnelle) Syntaxe : SI (condition) ALORS {instruction} SINON {instruction} Notion textuelle : SI ALORS SINON Notion de type organigramme test {a1} {a2} ;
Cours dalgorithme
//facultatif
//on atteste
SI (C1) ALORS
{SI (C3)
Prpar par M. MOUFID SINON {SI (C2) ALORS {SI (C5) } SINON {SI (C4) } } Exemple : Algorithme Maxi ; Variable X, Y : entier ; DEBUT X 12 ; Y X+4 ; SI (X>Y)
Cours dalgorithme
ALORS { } SINON {
Y X X Y
FIN.
Cours dalgorithme
Exemple : Algorithme Somme_5_premiers_entier ; Variables I, N, S : entier ; DEBUT I 0; N 5; S 0; Tant que (I<N) faire { I I+1; //condition de poursuite (I<N) S S+I ; } FIN. Mmoire :
Cours dalgorithme
Boucle avec dtermination pralable du nombre de tours et dune progression arithmtique dune variable.
Pour x 0 10 pas 3
faire {a }
Fin/pour
Une boucle avec une progression arithmtique se traite avec un Tant que. Exemple :
Fin ;
Cours dalgorithme
Algorithme E/S ; Variable a : entier ; DEBUT Lire (a) ; // valeur saisie au clavier FIN.
2/ Ecrire (liste dexpression) : permet de transfrer sur le support de sortie, le contenu dune ou plusieurs @ (adresse) mmoires de donnes. Exemple :
Algorithme Somme_N_premiers_entiers ; Variables I, N, S : entiers ; DEBUT Lire (N); I 0; S 0; Tant que (I<N) faire { I I+1; S S+1; } crire (la somme des, N, premiers entiers est gale , S) ; FIN.
Identificateur : Tableau [indice Min _ _indice Max] type primitif Toto [0_ _3] de type entier. Toto
Exemple : 9
Cours dalgorithme
I : entier ; DEBUT Tab [1] -7 ; Tab [8] 50 - Tab [1] ; I0; Tant que (i<10) faire { Lire (Tab[i]) ; I i+1 ; } FIN.
Mmoire :
1.2. Syntaxe
Fonction nom_de_la_fonction (liste des paramtres et types) : Type de la valeur retourne ; Variables liste des variables locales : Types ; Dbut Instructions ; Fin ; Exemple : Calcul du maximum (avec une valeur retourne) Algorithme calcul_du_maximum ; Variables rsultat, a1, b1 : rel ; Fonction maximum (A : rel, B : rel) : rel ; Dbut Si (A<B) alors retourne A ; Sinon retourne B ;
Fin ;
10
Cours dalgorithme
DEBUT Lire (a1, b1) ; //saisie des deux variables a1, b1 Rsultat maximum (a1, b1), //appel de la fonction maximum valeur Ecrire (maximum = , Rsultat) ; FIN. Exemple : Calcul du maximum (sans retour de valeur) Algorithme calcul du maximum ; Variables A1, B1 : rel ; Fonction maximum (A, B : rel) ; Dbut Si (A>B) Alors crire (maximum :, A) ; Sinon crire ( maximum = , B ) ; Fin ; DEBUT Lire (a1, b1) ; Maximum (a1, b1) ; FIN.
11
Cours dalgorithme
Grce au retour de rsultat le contenu dune variable locale la fonction appel peut tre transmis la fonction appelante.
Cours dalgorithme
Le passage par rfrence (pointeur) est indispensable pour une fonction qui modifie plus de deux variables. En effet, une fonction qui modifie une seule variable du programme appelant peut la retourner. (Recopie avec retour par @). Exemple : Voici quatre fonctions reprsentant lchange des valeurs de deux variables de lappelant : Fonction Echange_A (a : entier, b : entier); Variable temp : entier Dbut temp a ; a b; b temp ; Fin ; 13
Prpar par M. MOUFID Question : Complter les fonctions et lalgorithme ci-dessous : Fonction Echange _B (a : entier, b : @ entier) retourne vide Fonction Echange_C ( a : @ entier, b : entier) retourne vide Fonction Echnage_D (a : @ entier, b : @ entier) retourne vide Les quatre fonctions sont appeles par lalgorithme suivant : Algorithme Test; Variables C, D: entier;
Cours dalgorithme
14