Informatique 1 1ère Année GC Ecole Hassania des Travaux Publics Karim Guennoun
Informatique 1 1ère Année GC Ecole Hassania des Travaux Publics Karim Guennoun 1 Plan du cours Partie 1: Algorithmique générale – C’est quoi un algorithme? – Notions de variables, d’actions…etc – Structures de contrôle – Structures de données avancées – Fonctions et procédures Partie 2: Le langage C – Passer de l’algorithme à la programmation 2 Partie 1: Algorithmique 3 Un algorithme, c’est quoi? Origine étymologique: – Vient du nom du mathématicien Al Khawarizmi latinisé en « algoritmi » Définitions: – Académie Française: Méthode de calcul qui indique la démarche à suivre pour résoudre une série de problèmes équivalents en appliquant dans un ordre précis une suite finie de règles. – Wikipedia: Un algorithme est un moyen pour un humain de présenter la résolution par calcul d’un problème à une autre personne physique (un autre humain) ou virtuelle (un calculateur) 4 Pour faire simple: Un algorithme est une suite d’instructions, d’actions permettant de résoudre un problème donné – Aller quelque part: le chemin – Réaliser un plat de cuisine: la recette – Faire un calcul mathématique: la méthode La granularité des instructions correspond au contexte d’utilisation de l’algorithme – Le chemin: l’interlocuteur – La recette : Le cuisiner – Le calcul: Les bibliothèques et la puissance de l’ordinateur Heureusement, les ordinateurs sont à peu près aussi idiots les uns que les autres: même types d’instructions élémentaires compréhensibles 5 Qualités d’un bon concepteur d’algorithmes L’intuition: – Pas de méthode universelle absolue pour résoudre un problème La rigueur et la logique – La méthodologie, la capacité à se mettre à la place de la machine et d’être aussi idiot qu’elle! L’expérience – Renforce les deux premiers points – Plus on écrit d’algorithmes, plus on est performant à le faire 6 Algorithmique Vs programmation Un langage de programmation n’est que l’outil de réalisation de l’algorithme L’algorithme permet de concevoir la solution alors que la programmation permet de la mettre en œuvre L’algorithme est généralement à un niveau d’abstraction plus haut que la programmation Il est, cependant, nécessaire de prendre en compte la nature, la puissance et l’expressivité du langage de programmation avant de concevoir l’algorithme 7 Les variables 8 L’intérêt des variables Parfois, il est nécessaire de stocker de l’information au cours du calcul effectué par un algorithme – Pour additionner deux valeurs, j’ai besoin de stocker ces deux valeurs – Pour additionner trois valeurs, j’ai besoin de stocker, en plus, le résultat intermédiaire Une variable est donc une case où on peut stocker de l’information repérée par une étiquette permettant d’écrire dedans et de lire depuis. Physiquement, c’est une case de la mémoire vive de l’ordinateur repérée par une adresse binaire 9 Cycle de vie d’une variable La déclaration L’instruction d’affectation La lecture/écriture et les opérations 10 La déclaration d’une variable 11 La déclaration Avant de pouvoir utiliser une variable, il faut – La créer – Lui associer une étiquette L’étiquette d’une variable correspond en gros au nom qu’on lui associe Préciser le type d’information qu’on souhaite lui associer. 12 Bonnes pratiques pour les étiquettes Pour plus de lisibilité, – Toujours privilégier les étiquettes qui ont du sens – Éviter des étiquettes à rallonge Le nom doit observer certaines règles dépendantes du langage de programmation ciblé. Règles absolues: – Une suite de lettres et de chiffres – Pas de signes de ponctuation – Surtout pas d’espaces 13 Les types classiques Les types numériques Les types alphanumériques Le type booléen 14 Les types numériques Correspondent à des variables destinées à recevoir des nombres La taille de l’espace réservé pour le stockage détermine – Les valeurs maximales et minimales des nombres pouvant être stockés dans la variable – La précision des valeurs décimales – E.g. pour un octet, on pourra coder 28 nombres c-a-d 256 nombres 15 Types numériques En gros, on retrouve pour la plus part des langages, les types classiques suivants: Type Numérique Plage Byte (octet) 0 à 255 Entier simple -32 768 à 32 767 Entier long -2 147 483 648 à 2 147 483 647 Réel simple -3,40x1038 à -1,40x10-45 pour les valeurs négatives 1,40x10-45 à 3,40x1038 pour les valeurs positives Réel double 1,79x10308 à -4,94x10-324 pour les valeurs négatives 4,94x10-324 à 1,79x10308 pour les valeurs positives 16 Types numériques Question: – Pourquoi, pour éviter tout problème, ne pas tout déclarer en Réel double? Réponse: – Parce que les ressources d’un programme sont limitées Bonne nouvelle: – en algorithmique, on se contentera de faire le distinguo entier/réel (existence de la virgule ou non) – Le raffinement vers les autres sous-types numériques sont laissés à l’étape de programmation 17 Pseudo-code En Pseudo-code, nous écrivons la déclaration d’une variable numérique : – Variable v: Entier – Variable v1, v2, v3: Réel – Variable v1: Entier Variable v2: Réel Variable v3: Entier 18 Types alphanumériques On dispose, en plus du type numérique, du type caractères ou chaîne de caractères – En Anglais, string Pour ce type de variables, on peut stocker des caractères, qu’il s’agisse de lettres, de signes de ponctuation, d’espaces, ou même de chiffres. Le nombre maximal de caractères pouvant être stockés dans une seule variable string dépend du langage utilisé. 19 Types alphanumériques En Pseudo-code, la valeur est déclarée entre guillemets "chaîne de caractères" "bonjour" "Mesdames, messieurs, bonjour!" "1234" Déclaration – Variable v: caractères 20 Type booléen Permet de stocker les valeurs logiques Vrai/Faux (True/False) Peut être remplacé par les valeurs numériques 0 et 1, mais l’utilisation des booléens: – Rend l’algorithme plus lisible – Est plus économique en terme d’utilisation de la mémoire, un bit suffit pour le stocker (deux octets pour un entier) 21 Les instructions d’affectation 22 L’affectation Une variable n’est exploitable que si elle est instanciée. L’instruction d’affectation permet d’associer une valeur à la variable Une variable ne peut recevoir que des valeurs correspondant au type avec lequel elle a été déclarée En pseudo-code, l’instruction d’affectation se note « » 23 Exemples Variable ecole1: caractères ecole1 "EHTP" On peut aussi écrire. Variable ecole2: caractères ecole2 ecole1 ecole2 "ecole1" Mais l’instruction suivante n’est pas consistante: ecole2 1 24 Exemples L’instruction d’affectation n’altère que la variable se situant à gauche Variable e1, e2: entier e1 5 e2 e1 * 2 e1 e1+10 e2e1+e2 25 Ordre des instructions L’ordre des instructions est déterminant: – Elles s’exécutent séquentiellement dans l’ordre où elles apparaissent Variable e1: entier e110 e15 Vs e1 5 e110 Les deux algorithmes sont pour illustration, si vous écrivez quelque chose de semblable, posez-vous des questions! 26 Pause exercices 27 Exo1 Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ? – Variables A, B: Entier Début A ← 1 B ← A + 3 A ← 3 Fin 28 Exo2 Quelles seront les valeurs des variables A, B et C après exécution des instructions suivantes ? – Variables A, B, C : Entier Début A ← 5 B ← 3 C ← A + B A ← 2 C ← B – A Fin 29 Exo3 Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ? – Variables A, B en Entier Début A ← 5 B ← A + 4 A ← A + 1 B ← A – 4 Fin 30 Exo4 Quelles seront les valeurs des variables A, B et C après exécution des instructions suivantes ? – Variables A, B, C en Entier Début A ← 3 B ← 10 C ← A + B B ← A + B A ← C Fin 31 Exo5 Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ? Variables A, B en Entier Début A ← 5 B ← 2 A ← B B ← A Fin Les deux dernières instructions permettent-elles d’échanger les deux valeurs de B et A ? Si l’on inverse les deux dernières instructions, cela change-t-il quelque chose ? 32 Exo6 Problème classique – écrire un algorithme permettant d’échanger les valeurs de deux variables A et B, et ce quel que soit leur contenu préalable. 33 Exo7 On dispose de trois variables A, B et C. Ecrivez un algorithme transférant à B la valeur de A, à C la valeur de B et à A la valeur de C (toujours quels que soient les contenus préalables de ces variables). 34 Expressions et opérateurs Dans une instruction d’affectation – À gauche, une variable c’est toujours le cas!, sinon il y a un problème! – À droite, une expression Suite de variables et de constantes reliées par des opérateurs Équivalent à une valeur unique! – La partie gauche et la partie droite sont évidemment du « même » type 35 Opérateurs numériques Les plus classiques: – + : addition – - : soustraction – * : multiplication – / : division – ^ : puissance Priorités – * et / sont prioritaire par rapport à + et – – Évaluation de gauche à droite – L’utilisation des parenthèses force les priorités 36 Exemples 3*4/2 3+2*5 3+4-2*3 3+(4-2)*3 (3+(4-2))*3 37 Opérateurs alphanumériques Opérateurs de concaténation – En uploads/Ingenierie_Lourd/ algorithmique 1 .pdf
Documents similaires
-
16
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 11, 2022
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 0.6797MB