bekkalimohammed@gmail.com Objectif Apprendre les concepts de base de l’algorit
bekkalimohammed@gmail.com Objectif Apprendre les concepts de base de l’algorithmique et de la programmation. Etre capable de mettre en œuvre ces concepts pour analyser des problèmes simples et écrire des programmes correspondants. Informatique? Eléments du traitement automatique de l’information au moyen des ordinateurs. Eléments d’un système informatique : Applications : (Word, Excel, Jeux, Maple, etc.) Langages des programmation : C/C++, Java, Fortran, etc.) Systèmes d’exploitation : (DOS, Windows, Unix, etc.) Matériel : (PC, Macintosh, Station SUN, etc.) Langages informatiques Un langage informatique est un outil permettant de donner des ordres (instructions) à la machine A chaque instruction correspond une action du processeur Intérêt : écrire des programmes (suite consécutive d’instruction) destinés à effectuer une tache donnée Exemple : un programme de gestion de comptes bancaires Contraintes : être compréhensible par la machine Compilateur / interpréteur Compiler : traduire le programme entier une fois pour toutes Plus rapide à l’exécution Plus de sécurité du code source Il faut recompiler à chaque modification Interpréter : traduire au fur et à mesure les instructions du programme à chaque exécution Langage de programmation Deux types de langages : Langages procéduraux Langages orientés objets Exemple de langages : Fortran, Cobol, Pascal, C, … C++, Java, … Étapes de réalisation d’un programme La réalisation d’un programme passe par l’écriture d’un algorithme D’où l’intérêt de l’algorithmique Enoncé du problème Cahier des charges Algorithme Programme source Programme exécutable Version finale et résultat Spécification Analyse Traduction en langage Compilation Tests et modifications Algorithmique Le terme Algorithme vient du nom mathématicien arabe Al-Khawarizmi (820 après J.C) Un algorithme est une description complète et détaillée des actions à effectuer et de leur séquencement pour arriver à un résultat donné Intérêt : séparation analyse/codage (pas de préoccupation de syntaxe) Qualités : exact (fournit le résultat souhaité), efficace (temps d’exécution, mémoire occupée), clair (compréhensible), général (traite le plus grand nombre de cas possible),.. L’algorithmique désigne aussi la discipline qui étudie les algorithmes et leurs applications en informatique Une bonne connaissance de l’algorithmique permet d’écrire des algorithmes exactes et efficaces Représentation d’un algorithme Il y a deux façons pour représenter un algorithme: L’organigramme : représentation graphique avec des symboles (carrés, losanges, etc.) Offre une vue d’ensemble de l’algorithme Représentation quasiment abandonnée aujourd’hui Le pseudo-code : représentation textuelle avec une série de conventions ressemblant à un langage de programmation (sans les problèmes de syntaxe) Plus pratique pour écrire un algorithme Représentation largement utilisée Notion de variable Dans les langages de programmation une variable sert à stocker la valeur d’une donnée Une variable désigne en fait un emplacement mémoire dont le contenu peut changer au cours d’un programme (d’où le nom de variable) Règles: les variables doivent être déclarées avant d’être utilisées, elle doivent être caractérisées par: Un nom (Identificateur) Un type (entier, réel, chaine de caractère, …) Choix d’identificateur (1) Le choix des noms de variables est soumis à quelques règles qui varient selon le langage, mais en général: Un nom doit commencer par une lettre alphabétique exemple valide : A1 exemple non valide : 1A Doit être constitué uniquement de lettres, de chiffres et du soulignement _ (Eviter les caractères de ponctuation et les espaces) valides : point22, point_22 invalides : point 22, point-22, point;22 Doit être différent des mots réservés du langage (par exemple en Java : int, float, else, switch, case, default, for, main, return) La longueur du nom doit être inférieure à la taille maximale spécifié par le langage utilisé Choix d’identificateur (2) Conseil: pour la lisibilité du code choisissez des noms significatifs qui décrivent les données manipulées Exemple : TOtalVentes2007, Prix_TTC, Prix_HT Remarque: en pseudo-code algorithmique, on va respecter les règles citées, même si on est libre dans la syntaxe Types des variables Le type d’un variable détermine l’ensemble des valeurs qu’elle peut prendre, les types offerts par la plus part des langage sont: Types numériques (entier ou réel) Byte (codé sur un octet): de 0 à 255 Entier court (codé sur 2 octets) -32 768 à 32 768 Entier long (codé sur 4 ou 8 octets) Réel simple précision (codé sur 4 octets) Réel double précision (codé sur 4 octets) Type logique ou booléen : deux valeurs VRAI ou FAUX Type caractère : lettres majuscules, minuscules, chiffres, symboles, … Exemple : ‘A’, ‘a’, ‘1’, ‘?’, … Type chaine de caractères : toute suite de caractères, Exemple : "Nom, Prénom", "code postal :1000", … Déclaration des variables Rappel : toute variable utilisé dans un programme doit avoir fait l’objet d’une déclaration préalable En pseudo-code, on va adopter la forme suivante pour la déclaration de variables Variables liste d’identificateur : type Exemple : Variables i, j, k : entier x, y : réel OK : booléen ch1, ch2 : chaine de caractères L’instruction d’affectation L’affectation consiste à attribuer une valeur à une variable (ça en fait à remplir ou à modifier le contenu d’une zone mémoire) En pseudo-code, l’affectation se note avec le signe ← var ←e : attribue la valeur de ‘e’ à la variable var e peut être une valeur, ou une variable ou une autre expression var et e doivent être de même type ou de types compatibles l’affectation ne modifie que ce qui est à gauche de la fèche Exemples valides : i ←1, j ←i, k ←i+j, x ←10.3, OK ←VRAI, ch1 ← "table", ch2 ←ch1, x ←4, x ←j Non valides : i ←10.3 OK ←"table" j ←x Quelques remarques Beaucoup de langages de programmation utilisent le signe ‘=‘ pour l’affectation ←. Attention aux confusions : L’affectation n’est pas commutative : A ←B est différents de B ←A L’affectation est différentes d’une équation mathématique : A ←A+1 a un sens en langage de programmation A + 1 ←A n’est pas possible en langage de programmation et n’est pas équivalentes à A = 1 Certains langages donnent des valeurs par défaut aux variables déclarées. Pour éviter tout problème il est préférable d’initialiser les variables déclarées Exercices simples sur l’affectation 1 Donnez les valeurs des variables a, b , 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 Exercices simples sur l’affectation 2 Donnez les valeurs des variables a, 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 ? Exercices simples sur l’affectation 3 Ecrire un algorithme permettant d’échanger les valeurs de deux variables a et b: Variables a, b, temp : entier début temp ←a a ←b b ←temp fin Expressions et opérateurs Une expression peut être une valeur, une variable ou une opération constitué de variables reliées par des opérateurs Exemples : 1, b, a*2, a+3*b-c, …. L’évaluation d’une expression fournit une valeur unique qui est le résultat de l’opération Les opérateurs dépendent du type de l’opération, ils peuvent être: Des opérateurs arithmétiques : +, -, *, /, % (modulo), ^ (puissance) Des opérateurs logique : NON, ET, OU, XOR Des opérateurs relationnels : =, ≠, <, >, <=, >= Des opérateurs sur les chaines : & (concaténation) Une expression est évaluée de gauche à droite mais en tenant compte de priorités Priorités des opérateurs Pour les opérateurs arithmétique donnés ci-dessus, l’ordre de priorités est le suivant (de plus prioritaire au moins prioritaire) : ^ : (élévation à la puissance) *, / (multiplication, division) % (modulo) +, - (addition, soustraction) En cas de besoin (ou doute), on utilise les parenthèses pour indiquer les opérations à effectuer en priorité Exemple : ( 2 + 3 ) * 7 vaut 35 Les instructions d’entrées-sorties lecture et écriture (1) Les instructions de lecture et d’écriture permettent à la machine de communiquer avec l’utilisateur La lecture permet d’entrer des données à partir du clavier En pseudo-code, on note: lire var la machine met la valeur entrée au clavier dans la zone mémoire nommée var Remarque : le programme s’arrête lorsqu’il rencontre une instruction lire et ne se poursuit qu’après la frappe d’une valeur au clavier et de la touche Entrée Les instructions d’entrées-sorties lecture et écriture (2) L’écriture permet d’afficher des résultats à l’écran (ou de les écrire dans un fichier) En pseudo-code, on note : écrire (var) La machine le contenu de la zone mémoire var Conseil : avant de lire une variable, il est fortement conseiller d’écrire des messages à l’écran, afin e prévenir l’utilisateur de ce qu’il doit frapper Exemple (lecture et écriture) Ecrire un algorithme qui demande un nombre entier à l’utilisateur, puis qui calcule et affiche le double de ce nombre Algorithme Calcul_double Variable a, b : entier Début écrire (entrer la valeur de a ) lire (a) b ←2*a écrire ("le double de ", a , " est : ", b) fin Exemple (lecture et écriture) Ecrire un algorithme qui vous demande de saisir votre nom puis votre prénom et qui affiche ensuite votre nom complet Algorithme AffichageNomComplet Variable nom, prenom, nom_complet : chaine uploads/Science et Technologie/ cours-algorithmique.pdf
Documents similaires
-
11
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Nov 27, 2022
- Catégorie Science & technolo...
- Langue French
- Taille du fichier 1.7859MB