29/09/2017 Plan du cours Algorithmique et structure de données I Cours 1: Les notions de base Introduction et définition Les variables en Algorithmique Les instructions de base d’un algorithme Les expressions et opérateurs Les fonctions prédéfinies Dr. Jihène Tounsi ISG de Sousse Site web http://www.jihenetounsi.com Email: [email protected] 1 2 1 29/09/2017 Qu’est ce qu’un Algorithme? L’algorithme est un terme arabophone systématisé par le mathématicien Al Khuwarezmi. Exemples d’utilisation d’un Algorithme? Une recette de cuisine Un algorithme est une séquence d’instructions énoncés dans un ordre séquentiel, appliquée sur un ensemble de données en entrée afin de donner une solution à un problème donné (un résultat). Un mode d’emploi pour monter un meuble. Un itinéraire à suivre Une fonction de calcul. .... Un algorithme s’écrit en un langage naturel avec des instructions universelles, compréhensibles et indépendantes du langage de programmation 3 Les ingrédients : ce sont les données en entrée Les étapes : les instructions Le résultat : le plat escompté. Données en entrée Résultat Traitement = {} d’instructions 4 2 29/09/2017 Ecrire un algorithme permettant à « Angry Bird » d’arriver à destination Les instructions compréhensibles par Angry Bird Qu’est ce qu’un Algorithme en informatique? Périphériques de sortie (Ecran, baffle,….) Un cerveau = des neurones 5 sens Communication Exercice de réflexion Avance : pour aller tout droit Gauche: pour tourner à gauche Droite : pour tourner à droite Unité de calcul ou processeur (CPU = central Processing Unit) Matériel de stockage (Mémoire) Périphériques d’entrée (clavier, lecteur USB, souris…) L’étudiant = humain L’ordinateur = Machine compréhensible = intelligence + observation +Langage raisonnement+ action par l’ordinateur = ne fais que ce qu’on lui disCsharp, de faire = un algorithme traduit en un langage de programmation (langage C, C++, Java, pascal, php, JSP…) 5 6 3 29/09/2017 Etapes de réalisation d’un programme Enoncé du problème Spécification Squelette d’un Algo Conventions d’écriture Cahier des charges Analyse Algorithme Traduction en langage Programme source Squelette minimale utilisée lors de ce cours : Algorithme nom_algo; Variables <déclaration des données> Debut <instruction_1> <instruction_2> … <instruction_n> Fin. Compilation Programme exécutable Tests et modifications Version finale et résultats 7 une représentation graphique, avec des carrés, des losanges, etc. qu’on appelait des organigrammes Un pseudo-code ressemble à un langage de programmation authentique sans une rigourosité syntaxique. 8 4 29/09/2017 Plan du cours Introduction et définition Les variables en Algorithmique Les instructions de base d’un algorithme Les expressions et opérateurs Les fonctions prédéfinies Qu’est ce qu’une variable? Une variable est une étiquette d’une case mémoire servant à stocker provisoirement une donnée modifiable. Une variable dont le contenu ne peut être modifié par un algorithme est appelée constante. Les caractéristiques d’une variable Nom ou identificateur: alphanumérique commençant toujours par une lettre. S’écrit en un seul mot (pas d’espace et pas de ponctuation). Exemple : X, Y2, prix,_produit …. Type du contenu de la variable : peut être un nombre ou un texte ou booléen Exemple : X 23;Y ‘‘ABC’’ ABC X 9 10 y X1 56 7 X2 X3 X4 titi TOTO C4F C10 B1 B12 5 29/09/2017 Type des variables Le type d’une variable définit ce qu’on pourra stocker dedans. Le type d’une variable ne peut être changé une fois sa déclaration est faite au début d’un algorithme. Les types simples : Type numérique 11 Déclaration des variables Toutes les variables utilisées dans l’algorithme doivent être déclarées au début. Déclaration après le mot clé variables Syntaxe Liste des variables : type Exemple Variables : Entier : variable stockant des entiers naturels Réel : variable stockant des réels. i, j,k : entier Type caractère : lettres majuscules, minuscules, chiffres, symboles, … (Exemple : ‘2’, ‘A’, ‘z’, ‘%’, ‘ ‘,…) Type chaîne de caractère : une suite de caractères (Exemple: " jihene tounsi", " abc", …) Type logique ou booléen : deux valeurs possible vrai et faux. x, y : réel OK: booléen ch1, ch2 : chaîne de caractères 12 6 29/09/2017 Déclaration des variables Une variable qui ne change pas de valeur tout au long d’un algorithme s’appelle une constante La déclaration des constantes peut se faire avant ou après les variables. Algorithme nom_algo; Constante Taux=0,18 Plan du cours Introduction et définition Les variables en Algorithmique Les instructions de base d’un algorithme Les expressions et opérateurs Les fonctions prédéfinies Variables <déclaration des variables> Debut <instruction_1> <instruction_2> … <instruction_n> Fin. 13 14 7 29/09/2017 L’affectation L’affectation c’est donner une valeur à une variable. L’initialisation est l’affectation d’une valeur de départ à une variable. L’affectation écrase l’ancienne valeur et stocke la nouvelle. L'affectation se note avec le signe ← 15 Exercice d’application Donnez les valeurs des variables A et B après exécution des instructions suivantes ? Algorithme EXO1; Variables A, B : Entier Début A←1 B←2 A←B B ←A Fin X← e : attribue la valeur de la variable e à la variable X X← 10 : attribue la valeur 10 à la variable X Y← « abc » : attribue la chaîne de caractère à la variable Y 16 8 29/09/2017 Lecture / écriture La lecture : récupérer une valeur saisie au clavier et la stocker dans une variable Lire (A) : la valeur saisie par l’utilisateur sera stockée dans la variable A. La valeur saisie doit être du même type que la variable A L’écriture : affichage du résultat à l’écran 17 Plan du cours Introduction et définition Les variables en Algorithmique Les instructions de base d’un algorithme Les expressions et opérateurs Les fonctions prédéfinies Ecrire (A) : affiche le contenu de la variable A sur l’écran Ecrire(« ceci est une phrase ») : affiche la phrase sur l’écran Ecrire (« la valeur de la variable A est : », A) : affiche la phrase avec la valeur de la variable A. 18 9 29/09/2017 Les expressions et opérateurs Une expression ou une instruction est un ensemble d’opérandes et d’opérateurs. Opérande : une variable ou une donnée Opérateurs : arithmétiques, relationnels, alphanumérique (caractère et chaîne de caractère) ou booléen. Opérateurs arithmétiques Type de variable : numérique (entier ou réel) Opérateurs arithmétiques L’évaluation de l’expression donne lieu à une seule valeur qui doit être conservée dans une variable ou afficher ou condition permettant le passage à un bloc d’instructions. 19 + : addition - : soustraction * : multiplication / : division Div : partie entière de la division % ou modulo : reste de la division Applicable que sur le type entier 20 10 29/09/2017 Exercice d’application Ecrire un algorithme « Somme » qui calcule la somme de deux entiers. Ecrire l’algorithme Total_TTC qui permet de calculer le total tout taxe comprise d’une commande d’un produit à partir de son prix hors taxe et de la quantité commandée. 21 Opérateurs relationnels Opérateurs relationnels = ou == égalité <> ou != différence < strictement inférieur > strictement supérieur <= inférieur ou égal >= supérieur ou égal L’évaluation de l’expression retourne vrai ou faux. P.S : la TVA est une constante avec une valeur de 18%. 22 11 29/09/2017 Opérateurs alphanumérique Opérateurs pour le type caractère ou chaîne de caractère. Opérateurs logiques ou booléens OU & pour la concaténation entre 2 ou plusieurs variables de type alphanumérique Algorithme concaténation Variables A, B, C : chaîne Début A ← "Bon" B ← " jour" C ←A & B Ecrire (" la concaténation a donné : " , C) Fin 23 A F F V V B A ou B F F V V F V V V NON ET A NON A F V V F A B A ET B F F F F V F V F F V V V 24 12 29/09/2017 Plan du cours Introduction et définition Les variables en Algorithmique Les instructions de base d’un algorithme Les expressions et opérateurs Les fonctions prédéfinies 25 Fonctions prédéfinies type numérique Fonction Description Aléa (n) Renvoie une valeur aléatoire de type entier entre 0 et n-1 Sin(n) Renvoie le sinus de n Cos (n) Renvoie le cosinus de n Tang(n) Renvoie la valeur tangente d’un angle racine (n) Renvoie la racine carrée de n Abs(n) Renvoie la valeur absolue de n 26 13 29/09/2017 Fonctions prédéfinies type chaîne ou caractère Soit ch une variable de type chaîne de caractère ou un caractère Soit c une variable de type caractère int1, int2 et n des entiers Fonction Soit ch1, ch2 une variable de type chaîne description long(ch) Renvoie la longueur de ch pos(c , ch) Renvoie la première position de la lettre c dans la chaîne ch Asc (c) Renvoie le code ASCII du caractère (type entier) chr (n) Renvoie le caractère correspondant à la valeur entière n. Mid(ch, int1, int2) ou sous_chaîne Renvoie une sous chaîne de la chaîne ch commençant à la position int1 et faisant int2 caractère. Maj(ch) Renvoie la chaîne en majuscules Min(ch) Renvoie la chaîne en minuscules Left(ch,n) Renvoie n lettre de ch en commençant par la gauche Right(ch,n) Renvoie n lettre de ch en commençant par la droite 27 Fonctions prédéfinies type chaîne ou caractère Fonction comp (ch1,ch2) description Compare deux chaîne de caractère (non disponible dans tous les langages). La fonction renvoie une valeur entière: 0 si égalité Strictement positive si ch1 > ch2 Négative sinon Egale(ch1,ch2) Compare deux chaîne de caractère. La fonction renvoie une valeur booléenne: Vrai si égalité Faux sinon 28 14 29/09/2017 … 29 15