REPUBLIQUE TUNISIENNE M MI IN NI IS ST TE ER RE E D DE E L L’ ’E EN NS SE EI IG

REPUBLIQUE TUNISIENNE M MI IN NI IS ST TE ER RE E D DE E L L’ ’E EN NS SE EI IG GN NE EM ME EN NT T S SU UP PE ER RI IE EU UR ET DE LA RECHERCHE SCIENTIFIQUES ET TECHNOLOGIQUES U UN NI IV VE ER RS SI IT TE E D DE E J JE EN ND DO OU UB BA A F FA AC CU UL LT TE E D DE ES S S SC CI IE EN NC CE ES S J JU UR RI ID DI IQ QU UE ES S, , E EC CO ON NO OM MI IQ QU UE ES S E ET T D DE E G GE ES ST TI IO ON N D DE E J JE EN ND DO OU UB BA A FASCICULE DE TDs Algorithmique et structure de données I Adressé aux étudiants de 1ère année Licence Fondamentale en Informatique Appliquée à la Gestion Equipe pédagogique : Riadh IMED FEREH Riadh BOUSLIMI Maître-Assistant en Informatique Assistant en Informatique Année Universitaire : 2006-2007 2/34 F FI IC CH HE E M MA AT TI IÈ ÈR RE E Objectifs généraux Il s'agit d'une série de TDs d'algorithmique et structure de données I. Ils ont pour but de : – Apprendre à concevoir des algorithmes efficaces indépendamment des langages ou environnements d’exécution. étudier les types de données et leurs utilisations courantes, à l’aide d’algorithmes adaptés et optimisés. – Acquérir des Bases algorithmiques (affectation, entrées - sorties, structures conditionnelles, structures itératives et boucles), notion d’emplacement mémoire (Tableaux), procédures, fonctions, passage des paramètres, recherche, tris. Pré-requis Architecture des ordinateurs Public-cible Ces TDs sont destiné essentiellement aux étudiants de la première année licence fondamentale en informatique appliquée à la Gestion, semestre1 Volume horaire Ce cours de ce module est présenté, de manière hebdomadaire, comme suit: - 1h30mn de cours - 1h30mn de Travaux dirigés pour chaque groupe Soit en total : 42h Moyens pédagogiques - Tableau - Salle de TD - Polycopies des Travaux dirigés Evaluation - Coefficient : 1.5 - Note du contrôle continu : 30% - Note d'examen : 70% 3/34 T Ta ab bl le e d de es s m ma at ti iè èr re es s TD n° 1 : Les actions élémentaires simples ............................................................................4 Correction du TD 1...................................................................................................................6 TD n° 2 : Les structures conditionnelles.................................................................................8 Correction du TD 2...................................................................................................................9 TD n° 3 : Les structures itératives ........................................................................................11 Correction du TD 3.................................................................................................................13 TD n° 4 : Les chaines de caractères ......................................................................................18 Correction du TD 4.................................................................................................................19 TD n° 5 : Les procédures et les fonctions .............................................................................22 Correction du TD 5.................................................................................................................23 TD n° 6 : Les Tableaux ..........................................................................................................26 Correction du TD 6.................................................................................................................27 4/34 TD n° 1 (Les actions élémentaires simples) Objectifs  Connaitre le vocabulaire de base de programmation (constante, variable, expression,...)  Comprendre la démarche de programmation  Comprendre les actions algorithmiques simples  Connaitre la structure générale d'un algorithme Exercice 1 1. Quel est l’ordre de priorité des différents opérateurs de l’expression suivante : ((3 * a) – x ^ 2) – (((c – d) / (a / b)) / d) 2. Evaluer l’expression suivante : 5 + 2 * 6 – 4 + (8 + 2 ^3) / (2 – 4 + 5 * 2) 3. Ecrire la formule suivante sous forme d’une expression arithmétique : z x ac xy − − − 2 4 ) 3 ( 2 Exercice 2 Sachant que a = 4, b = 5, c = -1 et d = 0, évaluer les expressions logiques suivantes : 1. (a < b) ET (c >= d) 2. NON (a < b) OU ( c # b ) 3. NON (a # b ^ 2) OU (a * c < d)) Exercice 3 Donner toutes les raisons pour lesquelles l'algorithme suivant est incorrect : Algoritme Incorrect x,y : Entier z : Réel Début z  x + 2 y  z x * 2  3 + z y  5y + 3 Fin. Année Universitaire : 2006/2007 – Semestre 1 Module : Algorithmique et structure de données Classe : 1ère LFIAG Faculté des Sciences Juridiques, Economiques et de Gestion de Jendouba Enseignants: Riadh IMED FEREH- Riadh BOUSLIMI 5/34 Exercice 4 Ecrire un algorithme qui lit deux entiers au clavier et qui affiche ensuite leur somme et leur produit. Exercice 5 Ecrire un algorithme qui calcule et affiche la résistance d'un composant électronique en utilisant la loi d'Ohm : U : Tension en V U = R x I avec R : Résistance en Ω I : Intensité en A 6/34 Correction du TD 1 Exercice 1 1. ((3 * a) – x ^ 2) – (((c – d) / (a / b)) / d) 1 3 2 8 4 6 5 7 2. 5 + 2 * 6 – 4 + ( 8 + 2 ^ 3) / ( 2 - 4 + 5 * 2) = 15 3. (( 3 – x * y) ^ 2 – 4 * a * c) / (2 * x – z) Exercice 2 1. Faux 2. Vrai 3. Faux NB : le résultat d'une expression logique est toujours Vrai ou Faux. Exercice 3 1 2 3 4 5 6 7 8 9 10 Algoritme Incorrect x,y : Entier z : Réel Début z  x + 2 y  z x * 2  3 + z y  5y + 3 Fin. Cet algorithme est incorrect pour plusieurs raisons:  Ligne 1 : le mot Algorithme s'écrit avec un "h" au milieu.  Ligne 2 : la déclaration des variables commence par le mot "Var".  Ligne 5 : la valeur de x est indéterminée.  Ligne 6 : incompatibilité de type (un réel affecté à une variable de type entier).  Ligne 7 : le membre gauche d'une affectation doit être une variable.  Ligne 8 : il faut écrire 5 *y et non 5y. 7/34 Exercice 4 : calcul de la somme et du produit de deux entiers Algorithme Som_Prod Var a , b , s , p : Entier Début Ecrire("Entrer la valeur de a="), Lire(a) Ecrire("Entrer la valeur de b="), Lire(b) s  a + b p  a * b Ecrire("Somme=",s) Ecrire("Produit=",p) Fin. Exercice 5 : calcul de la résistance d'un composant électrique Algorithme Résistance Var U, I , R : Réel Début Ecrire("Entrer la tension="), Lire(U) Ecrire("Entrer l'intensité="), Lire(I) R  U / I (* on suppose toujours I # 0 *) Ecrire("Résistance =",R," Ohms") Fin. 8/34 TD n° 2 (Les structures conditionnelles) Objectif  Construire des algorithmes comportant des traitements conditionnels. Exercice 1 Ecrire un algorithme qui calcule et affiche la valeur absolue d'un entier quelconque lu au clavier. Exercice 2 Ecrire un algorithme qui calcule et affiche si la valeur d'un entier quelconque lu au clavier est paire ou impaire. Exercice 3 Ecrire un algorithme permettant de résoudre dans R une équation du second degré de la forme ax2+bx+c=0. Exercice 4 Ecrire un algorithme permettant de simuler une calculatrice à 4 opérations(+, -, *, et /). Utiliser la structure "selon" pour le choix de l'opération à affecter. Exercice 5 Ecrire un algorithme qui lit un caractère au clavier puis affiche s'il s'agit d'une lettre minuscule, d'une lettre majuscule, d'un chiffre ou d'un caractère spécial. Exercice 6 Une année bissextile (contient 366 jours) si elle est multiple de 4, sauf les années de début de siècle (qui se terminent par 00) qui ne sont bissextiles que si elles sont divisibles par 400. Exemples  1980 et 1996 sont bissextiles car elles sont divisibles par 4  2000 est une année bissextile car elle est divisible par 400  2100 et 3000 ne sont pas bissextiles car elles ne sont pas divisibles par 400. Ecrire un algorithme qui permet de déterminer si un entier positif donné correspond à une année bissextile ou non. Année Universitaire : 2006/2007 – Semestre 1 Module : Algorithmique et structure de données Classe : 1ère LFIAG Faculté des Sciences Juridiques, Economiques et de Gestion de Jendouba Enseignants: Riadh IMED FEREH- Riadh BOUSLIMI 9/34 Correction du TD 2 Exercice 1 Algorithme Val_Abs Var x, va : Entier Début Ecrire("Entrer un entier="), Lire(x) Si ( x >= 0 ) Alors va  x Sinon va  -x FinSi Ecrire("|",x,"|=",va) Fin. Exercice 2 Algorithme pair_impair Var x : Entier Début Ecrire("Entrer un entier="), Lire(x) Si ( x Mod 2 = 0 ) Alors Ecrire("c'est un entier pair") Sinon Ecrire("c'est un entier impair") FinSi Fin. Exercice 3 Algorithme equa2d Var a,b,c,delta : Réel Début Ecrire("Entrer la valeur de a(non nulle)="), Lire(a) Ecrire("Entrer la valeur de b="), Lire(b) Ecrire("Entrer la valeur de c="), Lire(c) delta  b^2 – 4*a*c Si ( delta<0 ) Alors Ecrire("pas de solution dans R") Sinon Si ( delta=0 ) Alors Ecrire("x1 = x2 = ",-b/(2*a)) Sinon Ecrire("x1 = ",(-b-racine(delta))/(2*a)) Ecrire("x2 = ",(-b+racine(delta))/(2*a)) FinSi Fin. Remarque : Dans cet algorithme, on suppose que l'utilisateur va toujours entrer une valeur de a non nulle. Sinon ce n'est uploads/Ingenierie_Lourd/ asd.pdf

  • 22
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager