Exemples d'exercices d'algorithmique corrigés avec l'analyse descendante via ps
Exemples d'exercices d'algorithmique corrigés avec l'analyse descendante via pseudo-code EX N°1 Soit la suite définie par : • Le premier terme U0 est un entier donné qui dépasse 1. • Le terme Un est égal à la somme des carrés des chiffres de Cette suite est soit périodique ou stationnaire (constante). Établir les analyses puis les algorithmes permettant d'afficher les termes de la suite si elle est constante ou les termes de la période si la suite est périodique. Solution Solution Analyse Résultat = Proc Affiche (P,N,T) (P,N,T)=[N0,T[0]U0] Répéter NN+1 T[N]Fn SCC(T[N-1]) PFn Recherche(T[N],0,N-1,T) Jusqu'à (T[N]=1) ou (P>=0) U0=[ ] Répéter U0=Donnée("Donner un entier >1 ") Jusqu'à U0>1 Le tableau de déclaration des nouveaux types Type Tab = Tableau de 21 Entiers {les cases sont numérotées à partir de 0} Le tableau de déclaration des objets globaux Objet Type/Natu re Rôle P Entier ……. N Entier ……. U0 Entier ……. 1 T Tab ……. SCC Fonction ……. Recherc he Fonction ……. Algorithme 0) Début Ex1 1) Répéter Écrire("Donner un entier >1 ") Lire(U0) Jusqu'à U0>1 2) N0, T[0]U0 Répéter NN+1 T[N]Fn SCC(T[N-1]) PFn Recherche(T[N],0,N-1,T) Jusqu'a (T[N]=1) ou (P>=0) 3) Proc Affiche(P,N,T) 4) Fin Ex1 • Analyse de la fonction SCC (Version itérative) Analyse Résultat= SCC SCCS S=[S0] Répéter SS+Carré(N mod 10) N N div 10 Jusqu'à N =0 Le tableau de déclaration des objets locaux Obj et Type/Natu re Rôle S Entier ……. Algorithme 0) Def Fn SCC(N:Entier):Entier 1) S0 Répéter SS+Carré(N mod 10) NN div 10 Jusqu'à N = 0 2 2) SCCS 3) Fin SCC • Analyse de la fonction SCC (Version Récursive) Analyse Résultat= [ ] Si N=0 Alors SCC0 Sinon SCCFn SCC(N div10)+ Carré(N mod 10) Fin Si Algorithme 0) Def Fn SCC(N:Entier):Entier 1) Si N=0 Alors SCC0 Sinon SCCFn SCC(N div 10)+ Carré(N mod 10) Fin Si 2) Fin SCC • Analyse de la fonction Recherche (Version Itérative) Analyse Résultat= Recherche Recherche=[ ] Si T[I]=X Alors Recherche I Sinon Recherche -1 Fin Si I= [ ID-1 ] Répéter I I+1 Jusqu'à (T[I]=X) ou(I=F) Le tableau de déclaration des objets locaux Obj et Type/Natu re Rôle I Entier ……. Algorithme 0) Def Fn Recherche(X,D,F:Entier; T:Tab)Entier 3 1) ID-1 Répéter II+1 Jusqu'à (T[I]=X) ou(I=F) 2) Si T[I]=X Alors Recherche I Sinon Recherche -1 Fin Si 3) Fin Recherche • Analyse de la fonction Recherche (Version Récursive) Analyse Résultat= [ ] Si T[D]=X Alors Recherche D Sinon Si D>F Alors Recherche -1 Sinon Recherche Fn Recherche(X,D+1,F,T) Fin Si Algorithme 0) Def Fn Recherche(X,D,F:Entier; T:Tab)Entier 1) Si T[D]=X Alors Recherche D Sinon Si D>F Alors Recherche -1 Sinon Recherche Fn Recherche(X,D+1,F,T) Fin Si 2) Fin Recherche • Analyse de la procédure Affiche Analyse Résultat= [ ] Si T[N]=1 Alors Pour I de 0 à N Faire Écrire(T[I]) Fin Pour Sinon Pour I de P à N faire Écrire(T[I]) Fin Pour 4 Fin si Le tableau de déclaration des objets locaux Obj et Type/Natu re Rôle I Entier ……. Algorithme 0) Def Proc Affiche(P,N:Entier; T:Tab) 1) Si T[N]=1 Alors Pour I de 0 à N Faire Écrire(T[I]) Fin Pour Sinon Pour I de P à N faire Écrire(T[I]) Fin Pour Fin si 2) Fin Affiche EX N°2 Établir les analyses et les algorithmes permettant de déterminer les deux entiers A et B qui représentent respectivement le numérateur et le dénominateur de la somme des N fractions d'entiers. Exemple: Solution Solution Analyse Résultat= Écrire("La somme est = ",A,"/",B) (A,B)=Proc Somme(N,Num,Den,A,B) N=[ ] Répéter N = donnée ("N = ") Jusqu'à N dans[1..50] (Num,Den)=Proc Lecture(N,Num,Den) Le tableau de déclaration des nouveaux types 5 Type Tab = Tableau de 50 Entiers Le tableau de déclaration des objets globaux Obje t Type/Nat ure Rôl e A Entier ……. B Entier ……. N Entier ……. Num Tab ……. Den Tab ……. Lectu re Procédure ……. Som me Procédure ……. Algorithme 0) Début Ex4 1) Répéter Écrire("N = "), Lire(N) Jusqu'à N dans [1..50] 2) Proc Lecture(N,Num,Den) 3) Proc somme(N,Num,Den,A,B) 4) Écrire("La somme est = ",A,"/",B) 5) Fin Ex4 • Analyse de la procédure Lecture Analyse Résultat= (Num,Den) (Num,Den) = [ ] Pour I de 1 à N faire Num[I]=Donnée ("Num[",I,"]=") Répéter Den[I]=Donnée ("Den[",I,"]=") Jusqu'à Den[I]<>0 XFn PGCD(Abs(Num[I]),Abs(Den[I])) Num[I]Num[I] div X Den[I]Den[I] div X Fin Pour 6 Le tableau de déclaration des objets locaux Obj et Type/Nat ure Rôl e I Entier ……. PGC D Fonction ……. Algorithme 0) Def Proc Lecture(N:Entier; Var Num,Den: Tab) 1) Pour I de 1 à N faire Écrire("Num[",I,"]="), Lire(Num[I]) Répéter Écrire("Den[",I,"]="), Lire(Den[I]) Jusqu'à Den[I]<>0 XFn PGCD(Abs(Num[I]),Abs(Den[I])) Num[I]Num[I] div X Den[I]Den[I] div X Fin Pour 2) Fin Lecture • Analyse de la procédure Somme Analyse Résultat= (A,B) (A,B) = [A0, B1 ] Pour I de 1 à N faire AA*Den[I]+B*Num[I] BB*Den[I] XFn PGCD(Abs(A),Abs(B)) AA div X BB div X Fin Pour Le tableau de déclaration des objets locaux Obj et Type/Nat ure Rôl e I Entier ……. PGC D Fonction ……. Algorithme 7 0) Def Proc Somme (N:Entier; Num,Den:Tab; Var A,B:Entier) 1) A0, B1 Pour I de 1 à N faire AA*Den[I]+B*Num[I] BB*Den[I] XFn PGCD(Abs(A),Abs(B)) AA div X BB div X Fin Pour 2)Fin Somme • Analyse de la procédure PGCD Analyse Résultat= [ ] Si B = 0 Alors PGCD A Sinon PGCD Fn PGCD(B, A mod B) Fin Si Algorithme 0) Def Fn PGCD(A,B:Entier):Entier 1) Si B = 0 Alors PGCD A Sinon PGCD Fn PGCD(B, A mod B) Fin Si 2) Fin PGCD EX N°3 Établir les analyses et les algorithmes permettant de convertir un nombre romain R vers son équivalent arabe A. Exemples: R A "MMMXXIX" 302 9 "DCCCLIV" 854 "MCMLXXVII I" 197 8 "MMX" 201 0 Solution Solution 8 Analyse Résultat=Écrire(A) AFn convar(R) R=Donnée("Saisir un nombre romain ") Le tableau de déclaration des objets globaux Obje t Type/Nat ure Rôl e A Entier ……. R Chaine ……. Conv ar Fonction ……. Algorithme 0) Début Ex6 1) Écrire("Saisir un nombre romain) Lire(R) 2) AFn convar(R) 3) Écrire(A) 4) Fin Ex6 • Analyse de la fonction Convar version Itérative Analyse Résultat = Convar ConvarS S=[SFn Chiffre(R[Long(R)]] Pour I de 1 à Long(R) -1 Faire Si Fn Chiffre(R[I])<Fn Chiffre(R[I+1]) Alors SS-Fn Chiffre(R[I]) sinon SS+Fn Chiffre(R[I]) Fin Si Fin Pour Le tableau de déclaration des objets locaux Obje t Type/Nat ure Rôl e I Entier ……. S Entier ……. 9 Chiffr e Fonction ……. Algorithme 0) Def Fn Convar(R:Chaine):Entier 1) SFn Chiffre(R[Long(R)] Pour I de 1 à Long(R) -1 Faire Si Fn Chiffre(R[I])<Fn Chiffre(R[I+1]) Alors SS-Fn Chiffre(R[I]) Sinon SS+Fn Chiffre(R[I]) Fin Si Fin Pour 2) ConvarS 3) Fin Convar • Analyse de la fonction Convar version Récursive Analyse Résultat = [ ] Si Long(R) =0 Alors Convar0 sinon Si Long(R) =1 Alors ConvarFn Chiffre(R[1]) Sinon Si Fn Chiffre(R[1])<Fn Chiffre(R[2]) Alors Convar Fn Convar(Souchaine(R,2, Long(R)-1)-Fn Chiffre(R[1]) Sinon Convar Fn Convar(Souchaine(R,2, Long(R)-1)+Fn Chiffre(R[1]) Fin Si Le tableau de déclaration des objets locaux Obje t Type/Nat ure Rôl e Chiffr e Fonction ……. Algorithme 0) Def Fn Convar(R:Chaine):Entier 1) Si Long(R) =0 Alors Convar0 sinon Si Long(R) =1 Alors ConvarFn Chiffre(R[1]) Sinon Si Fn Chiffre(R[1])<Fn Chiffre(R[2]) Alors Convar Fn Convar(Souchaine(R,2, Long(R)-1)-Fn Chiffre(R[1]) 10 Sinon Convar Fn Convar(Souchaine(R,2, Long(R)-1)+Fn Chiffre(R[1]) Fin Si 2) Fin Convar • Analyse de la fonction Chiffre Analyse Résultat = Chiffre ChiffreN N =[ ] Selon Majus(C) Faire "I": N1 "V":N5 "X":N10 "L":N50 "C":N100 "D":N500 "M":N1000 Fin Selon EX N°4 Soit une entreprise qui comporte un nombre fini d’employés ; Chaque employé est caractérisé par un code (Numérotation automatique), un nom, un salaire, une catégorie (1-2-3 ou 4), un sexe et une ancienneté. Établir un algorithme qui permet la création d’un fichier contenant les employés, la saisie des employés (cette saisie se termine par un salaire nul qui ne doit pas être tenu en compte), puis augmenter les salaire par un montant qui est égale au double de l’ancienneté enfin créer un fichier comportant les hommes dans l’ordre décroissant des catégories et afficher les résultats calculés. Solution Solution Analyse Résultat=Proc Affiche(Ff) Proc Affiche(H) Ff= Proc Augmenter(F) F=Proc Saisie(F) H=Proc Hommes(Ff,H) Le tableau de déclaration des nouveaux types Type 11 Employe=Enregistreme nt Code: Mot Cat, Anc: Octet Nom: chaine[30] Sal: Réel Sexe: Caractère Fin Employe Entreprise= Fichier d'employe Le tableau de déclaration des objets globaux Objet Type/Natu re Rôle F Entreprise ……. H Entreprise ……. Affiche Procédure ……. Augmentat ion Procédure ……. Saisie Procédure ……. Hommes Procédure ……. • Analyse de la procédure saisie Analyse Résultat=F F = [Associer(F,"c:\employes.dat"), recréer(f), I0] Répéter II+1 E.codeI E.Nom=donnée ("……….") Répéter E.Sal=donnée("………") Jusqu'à E.Sal>=0 Répéter E.cat=donnée("………") Jusqu'à E.Cat dans[1..4] Répéter E.sexe=donnée("………") Jusqu'à E.sexe dans["F","f","H","h"] Répéter 12 E.Anc=donnée("………") Jusqu'à E.Anc >=0 Si E.Sal>0 Alors Écrire(F,E) Fin Si Jusqu'à E.Sal=0 Le tableau de déclaration des objets locaux Obj et Type/Nat ure Rôl e E Employe ……. Algorithme 0) Def Proc saisie(var f:Entreprise) 1) Associer(F,"c:\employes.dat"), recréer(f), I0 Répéter II+1 E.codeI E.Nom=donnée ("……….") Répéter E.Sal=donnée("………") Jusqu'à E.Sal>=0 Répéter E.cat=donnée("………") Jusqu'à E.Cat dans[1..4] Répéter E.sexe=donnée("………") Jusqu'à E.sexet dans["F","f","H","h"] Répéter E.Anc=donnée("………") Jusqu'à E.Anc >=0 Si E.Sal>0 Alors Écrire(F,E) Fin Si Jusqu'à E.Sal=0 2) Fermer(f)1 3) Fin saisie • Analyse de la procédure Augmentation Analyse 1 Pour sécuriser les données uploads/Science et Technologie/ pseudo-code.pdf
Documents similaires
-
12
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 13, 2022
- Catégorie Science & technolo...
- Langue French
- Taille du fichier 0.1107MB