Exercices avec Solutions 1ére Année MI Septembre 2017 Préface Après quelques an

Exercices avec Solutions 1ére Année MI Septembre 2017 Préface Après quelques années d’enseignement du module « Algorithmique » de la première année licence (MI) et vue les difficultés trouvées par les étudiants dans ce module, j’ai essayé de mettre à leur disposition un support d’entrainement afin de les aider à maitriser ce module. Cet ouvrage regroupe des exercices des séries des travaux dirigés et examens (avec corrigés) du module Algorithmique de la première année MI (USTHB). Dans cet ouvrage je donne des solutions détaillées aux exercices proposés, mais il ne doit en aucun cas remplacer les séances de TD, où les étudiants peuvent discuter les solutions et voir d’autres propositions de solutions. En fait, le chargé du TD peut toujours donner plus de détails et d’explications. Une exploitation positive de cet ouvrage consiste donc à pousser les étudiants à préparer leurs séries d’exercices, comparer leurs solutions avec celles proposées et prévoir des questions à poser lors des séances de TD. Enfin, l’ouvrage est une première version d’un effort personnel. J’attends des chers étudiants et collègues leurs remarques et suggestions afin de l’améliorer dans les prochaines versions. Septembre 2017. Sommaire Les Structures de Contrôle (Conditionnelles – Itératives) . . . . . . . . . . . . . 5 Les Actions Paramétrées (Procédures et Fonctions) . . . . . . . . . . . . . . . . . 15 Les Tableaux (Vecteurs – Matrices) et Chaines de caractères . . . . . . . . . . . 23 Les Enregistrements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Les Fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Les Listes Chainées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Les Structures de Contrôle (Conditionnelles – Itératives) EXERCICE 1 Ecrire un algorithme qui demande un nombre à l’utilisateur, puis calcule et affiche le carré de ce nombre. Algorithme Carre ; Var X,X2 :reel ; Début Ecrire(‘Donner un reel’) ; Lire(X) ; X2←X*X ; Ecrire(‘Le carré de ’, X,’ est: ’,X2) ; Fin. EXERCICE 2 Un magasin de reprographie facture 2 DA les dix premières photocopies, 1.50 DA les vingt suivantes et 1 DA au-delà. Ecrivez un algorithme qui demande à l’utilisateur le nombre de photocopies effectuées puis affiche le montant correspondant. Algorithme Facture ; Const P1=2 ; P2=1.5 ; P3=1 ; Var Mont :reel ; Nbc :entier ; Début Ecrire(‘Donner le nombre de photocopies’) ; Lire(Nbc) ; Si Nbc≤10 Alors Mont←P1*Nbc SinonSi Nbc≤30 Alors Mont←P1*10+P2*(Nbc-10) Sinon Mont←P1*10+P2*20+P3*(Nbc-30) Fsi Fsi ; Ecrire(‘Le montant à payer est: ’,Mont) ; Fin. EXERCICE 3 Ecrire un algorithme permettant d’afficher la saison en introduisant le numéro du mois. Algorithme Saison; Var M :entier ; Début Ecrire(‘Donner un numéro de mois 1--12’) ; Répéter Lire(M) ; Jusqu’à M>0 et M<13 ; Exercices Corrigés d’Algorithmique – 1ére Année MI4 Les Structures de Contrôle (Conditionnelles – Itératives) Cas M Vaut 3,4,5 : Ecrire(‘La saison est : PRINTEMPS’) ; 6,7,8 : Ecrire(‘La saison est : ETE’) ; 9,10,11 : Ecrire(‘La saison est : AUTOMNE’) ; 12,1,2 : Ecrire(‘La saison est : HIVER’) ; FinCas ; Fin. EXERCICE 4 Ecrire un algorithme pour résoudre chacun des problèmes suivants : 1- Calcul de la somme des N premiers nombres entiers. 2- Recherche du minimum et du maximum dans un ensemble de N nombres. 3- Calcul du quotient et reste de la division de deux entiers A et B sans utiliser l’opération de division. 4- Le calcul du produit de deux entiers en utilisant uniquement l'opération d'addition '+’. 5- Détermination si A est divisible par B. Avec A et B des entiers positifs. 6- Déterminer tous les diviseurs d’un entier X donné. 7- Déterminer si un nombre entier X est premier ou non. 8- Calcule la somme des chiffres qui composent un entier naturel N. 1- Algorithme Somme ; Var I,N,S :entier ; Début Ecrire(‘Donner un entier N’) ; Lire(N) ; S ←0 ; Pour I ←1 à N-1 Faire S ←S+I; Fait ; Ecrire(‘La somme des’, N,’ premiers nombres est: ’,S) ; Fin. 2- Algorithme MaxMin; Var I,N,Max,Min,X :entier ; Début Ecrire(‘Donner un entier N>0’) ; Répéter Lire(N) ; Jusqu’à N>0 ; /* Lire le premier élément, puis initialiser le Min et le Max à cette valeur Lire(X) ; Max←X ; Min←X ; Pour I ←2 à N Exercices Corrigés d’Algorithmique – 1ére Année MI5 Les Structures de Contrôle (Conditionnelles – Itératives) Faire /* lire la suite des éléments et mettre à jour le Min et le Max Lire(X) ; Si Max<X Alors Max←X SinonSi Min>X Alors Min←X Fsi Fsi ; Fait ; Ecrire(‘Le Minimun des valeurs est: ’,Min,’ le Maximum est : ‘,Max) ; Fin. 3- Algorithme QuotReste ; Var A,B,Q,R :entier ; Début Ecrire(‘Donner deux entiers A et B’) ; Lire(A,B) ; Q ←0 ; R ←A ; Tantque R>B Faire Q ←Q+1; R ←R-B; Fait ; Ecrire(‘Le Quotient de A/B est : ’,Q, ‘ Le reste de A/Best : ‘,R) ; Fin. 4- Algorithme Produit ; Var A,B,P,I :entier ; Début Ecrire(‘Donner deux entiers A et B’) ; Lire(A,B) ; Si A=0 ou B=0 Alors P←0 Sinon P←0 ; /*initialiser le produit à 0 Pour I ←1 à B Faire P←P+A ; Fait Fsi ; Ecrire(‘Le produit A*B est : ’,P) ; Fin. On peut optimiser la solution en choisissant la boucle ayant le moins d’itérations : Algorithme Produit ; Var A,B,P,I :entier ; Début Exercices Corrigés d’Algorithmique – 1ére Année MI6 Les Structures de Contrôle (Conditionnelles – Itératives) Ecrire(‘Donner deux entiers A et B’) ; Lire(A,B) ; Si A=0 ou B=0 Alors P←0 SinonSi A>B Alors P←A ; /*On peut initialiser le produit à A et commencer la boucle à 2 Pour I ←2 à B Faire P←P+A ; Fait Sinon P←B ; Pour I ←2 à A Faire P←P+B ; Fait Fsi ; Ecrire(‘Le produit A*B est : ’,P) ; Fin. 5- Algorithme AdivB; Var A,B,R :entier ; Début Ecrire(‘Donner deux entiers positifs A,B’) ; Répéter Lire(A,B) ; Jusqu’à A>0 et B>0 ; R←A ; Tantque R≥0 Faire R ←R-B; Fait ; Si R=0 AlorsEcrire(A,’ est divisible par ‘,B) Sinon Ecrire(A,’ est n’’est pas divisible par ‘,B) Fsi ; Fin. 6- Algorithme Diviseurs ; Var X,M,I :entier ; Début Ecrire(‘Donner un entier X’) ; Lire(X) ; Ecrire(‘Les diviseurs de ‘,X,’ sont :’) ; /*On boucle de 1 à la moitié de X, car après la moitié il n’y a plus de diviseur sauf X /*On peut utiliser la fonction division entière DIV et la fonction reste de cette division MOD M←X DIV 2 ; Pour I ←1 à M Faire Exercices Corrigés d’Algorithmique – 1ére Année MI7 Les Structures de Contrôle (Conditionnelles – Itératives) Si X MOD I=0 Alors Ecrire(I) Fsi; Fait ; Ecrire(X) ; Fin. 7- Algorithme Premier; Var X,M,I :entier ; Pr :booléen ; Début Ecrire(‘Donner un entier X’) ; Lire(X) ; /*X est premier s’il a deux diviseurs distincts 1 et lui-même, attention 1 n’est pas premier. Pr←Vrai ; Si X=1 Alors Pr←Faux Sinon M←X DIV 2 ; I ←2 ; Tantque I ≤M et Pr Faire /*si on trouve un diviseur on arrête la boucle Si X MOD I=0 Alors Pr←Faux Fsi; I ←I+1 ; Fait Fsi ; Si Pr AlorsEcrire(X,’ est premier’) SinonEcrire(X,’ n’’est pas premier’) Fsi; Fin. 8- Algorithme SommeChiff; Var N,S,R :entier ; Début Ecrire(‘Donner un entier naturel N’) ; Répéter Lire(N) ; Jusqu’à N≥0 ; S←0 ; R←0 ; Tantque R>0 Faire S←S+R MOD 10; R← R DIV 10; Fait ; Ecrire(‘La somme des chiffres qui composent ’,N,’ est :’,S) ; Fin. EXERCICE 5 Ecrire un algorithme qui permet à l’utilisateur de saisir une suite caractère se terminant par ‘*’, et qui affiche à la fin le nombre d’apparition de la lettre ‘A’. Exercices Corrigés d’Algorithmique – 1ére Année MI8 Les Structures de Contrôle (Conditionnelles – Itératives) Solution 1 : en utilisant une boucle Répéter Algorithme Appatition ; Exercices Corrigés d’Algorithmique – 1ére Année MI9 Les Structures de Contrôle (Conditionnelles – Itératives) Var ch :caractère ; NbA :entier ; Début NbA ←0 ; Répéter Lire(ch) ; Si ch=’A’ Alors NbA ←NbA+1 Fsi ; Jusqu’à ch=’*’ ; Ecrire(‘Nombre apparition de A est :’,NbA) ; Fin. Solution 2 : en utilisant une boucle Tantque +Initialisation Algorithme Appatition ; Var ch :caractère ; NbA :entier ; Début NbA ←0 ; Ch ←’X’ ; /* Initialiser Ch à un caractère autre que ‘*’ Tanque ch<>’*’ Faire Lire(ch) ; /* la lecture se fait avant le traitement Si ch=’A’ Alors NbA ←NbA+1 Fsi ; Fait ; Ecrire(‘Nombre apparition de A est :’,NbA) ; Fin. Solution uploads/Management/ exercices-corriges-algo.pdf

  • 39
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jan 14, 2021
  • Catégorie Management
  • Langue French
  • Taille du fichier 0.8347MB