2020/2021 1 Algorithmique et Structure de données 1ère année LM Nadra BEN ROMDH
2020/2021 1 Algorithmique et Structure de données 1ère année LM Nadra BEN ROMDHANE Institut Supérieur d'Informatique et des Techniques de Communication de Hammam Sousse ISITC - 1ère année LM nadra.benromdhane@isitc.u-sousse.tn 2 Chapitre 1 : Notions et instructions de base Algorithmique et Structure de données 2020/2021 ISITC - 1ère année LM 3 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 variable) Règle : Les variables doivent être déclarées avant d’être utilisées, elles doivent être caractérisées par : • un nom (Identificateur) • un type (entier, réel, caractère, chaîne de caractères, …) 2020/2021 ISITC - 1ère année LM 4 Choix des identificateurs (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 invalide: 1A doit être constitué uniquement de lettres, de chiffres et du soulignement _ (Eviter les caractères de ponctuation et les espaces) valides: IAG2016, IAG_2016 invalides: IAG 2016,SI-2016,IAG;2016 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ée par le langage utilisé 2020/2021 ISITC - 1ère année LM 5 Choix des identificateurs (2) Conseil: pour la lisibilité du code choisir des noms significatifs qui décrivent les données manipulées exemples: TotalVentes2004, 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 2020/2021 ISITC - 1ère année LM 6 Types des variables Le type d’une variable détermine l’ensemble des valeurs qu’elle peut prendre, les types offerts par la plupart des langages sont: Type numérique (entier ou réel) • Byte (codé sur 1octet): de 0 à 255 • Entier court (codé sur 2 octets) : -32 768 à 32 767 • Entier long (codé sur 4 ou 8 octets) • Réel simple précision (codé sur 4 octets) • Réel double précision (codé sur 8 octets) Type logique ou booléen: deux valeurs VRAI ou FAUX Type caractère: lettres majuscules, minuscules, chiffres, symboles, … exemples: ’A’, ’a’, ’1’, ’?’, … Type chaîne de caractère: toute suite de caractères, exemples: " Nom, Prénom", "code postale: 1000", … 2020/2021 ISITC - 1ère année LM 7 Déclaration des variables Rappel: toute variable utilisée 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'identificateurs : type Exemple: Variables i, j,k : entier x, y : réel OK: booléen ch1, ch2 : chaîne de caractères Remarque: pour le type numérique on va se limiter aux entiers et réels sans considérer les sous types 2020/2021 ISITC - 1ère année LM 8 L’instruction d’affectation l’affectation consiste à attribuer une valeur à une variable (ça consiste 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, une autre variable ou une 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 flèche Ex valides: i ←1 j ←i k ←i+j x ←10.3 OK ←FAUX ch1 ←"IAG" ch2 ←ch1 x ←4 x ←j (voir la déclaration des variables dans le transparent précédent) non valides: i ←10.3 OK ←"IAG" j ←x 2020/2021 ISITC - 1ère année LM 9 Quelques remarques Beaucoup de langages de programmation (C/C++, Java, …) utilisent le signe égal = pour l’affectation ←. Attention aux confusions: • l'affectation n'est pas commutative : A=B est différente de B=A • l'affectation est différente d'une équation mathématique : • A=A+1 a un sens en langages de programmation • A+1=2 n'est pas possible en langages de programmation et n'est pas équivalente à 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 2020/2021 ISITC - 1ère année LM 10 Exercices simples sur l'affectation (1) 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 2020/2021 ISITC - 1ère année LM 11 Exercices simples sur l'affectation (2) 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 ? 2020/2021 ISITC - 1ère année LM 12 Expressions et opérateurs Une expression peut être une valeur, une variable ou une opération constituée de variables reliées par des opérateurs exemples: 1, b, a*2, a+ 3*b-c, … L'évaluation de l'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 logiques: NON, OU, ET • des opérateurs relationnels: =, , <, >, <=, >= • des opérateurs sur les chaînes: & (concaténation) Une expression est évaluée de gauche à droite mais en tenant compte de priorités 2020/2021 ISITC - 1ère année LM 13 Priorité des opérateurs Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de priorité est le suivant (du plus prioritaire au moins prioritaire) : • ^ : (élévation à la puissance) • * , / (multiplication, division) • % (modulo) • + , - (addition, soustraction) exemple: 2 + 3 * 7 vaut 23 En cas de besoin (ou de doute), on utilise les parenthèses pour indiquer les opérations à effectuer en priorité exemple: (2 + 3) * 7 vaut 35 2020/2021 ISITC - 1ère année LM 14 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 2020/2021 ISITC - 1ère année LM 15 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: Ecrire (var) la machine affiche le contenu de la zone mémoire var • Conseil: Avant de lire une variable, il est fortement conseillé d’écrire des messages à l’écran, afin de prévenir l’utilisateur de ce qu’il doit frapper 2020/2021 ISITC - 1ère année LM 16 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 variables A, B : entier Début Ecrire("entrer le nombre ") Lire(A) B ← 2*A Ecrire("le double de ", A, "est :", B) Fin 2020/2021 ISITC - 1ère année LM 17 Tests: instructions conditionnelles (1) Les instructions conditionnelles servent à n'exécuter une instruction ou une séquence d'instructions que si une condition est vérifiée On utilisera la forme suivante: Si condition alors instruction ou suite d'instructions1 Sinon instruction ou suite d'instructions2 Finsi • la condition ne peut être que vraie ou fausse • si la condition est vraie, se sont les instructions1 qui seront exécutées • si la condition est fausse, se sont les instructions2 qui seront exécutées • la condition peut être une condition simple ou une condition composée de plusieurs conditions 2020/2021 ISITC - 1ère année LM 18 Tests: instructions conditionnelles (2) La partie Sinon n'est pas obligatoire, quand elle n'existe pas et que la condition est fausse, aucun traitement n'est réalisé • On utilisera dans ce cas la forme simplifiée suivante: Si condition alors instruction ou suite d'instructions1 Finsi 2020/2021 ISITC - 1ère année LM 19 Exemple (Si…Alors…Sinon) 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 2020/2021 ISITC - 1ère année LM 20 Exemple (Si…Alors) 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 2020/2021 ISITC - 1ère année LM 21 Exercice (tests) Ecrire un algorithme uploads/Ingenierie_Lourd/ algo-1lm-partie1-1.pdf
Documents similaires
-
12
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jul 12, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 1.9489MB