Corrigés de sujets d’examens algorithme

Exercice 1 : vérification syntaxique des déclarations FORTRAN

Soit un ensemble de N lignes où chacune renferme une déclaration FORTRAN. Ecrire un algorithme commenté qui imprime pour chaque déclaration la valeur VRAI si elle est correcte, un message d’erreur si elle est fausse.
Une déclaration FORTRAN a la forme suivante :
Colonne 1 à 6 : des blancs
Colone 7 à 72 : texte de la déclaration
Le texte de la déclaration a la forme suivante :
TYPE Idf1, Idf2, ,Idfn
avec type dans { INTEGER, REAL, LOGICAL}
Idf1, Idf2, …..et Idf3 sont des identificateurs.
a)Entre TYPE et l’identificateur il y a au moins un blanc. Les identificateurs sont séparés par des virgules. Des blancs peuvent exister entre les identificateurs et les virgules.
b) Idfi : suite de caractères alphanumériques dont le premier est alphabétique. La longueur est au maximum égale à 8.
On suppose qu’il existe une relation d’ordre dans l’ensemble des caractères. On a ainsi par
définition : autres caractères <‘1′<‘2′<… <‘9′<‘A'<‘B’.. < ‘Z’
Chaque ligne renfermant une déclaration est lue caractère par caractère. On utilisera la fonction Sauter-ligne qui permet le positionnement en colonne 1 de la ligne suivante.

Exercice 2 : Course de ski

Pendant une course de ski, on a relevé après un essai les temps mis par N concurrents. On désire, après avoir mis les informations sur fichier, obtenir d’abord le tableau d’affichage des temps mis par les N concurrents, puis le tableau d’affichage concernant uniquement les trois premiers.
Les données sur fichier ont la forme suivante :
Première ligne : nombre de concurrents sur 3 positions.
Dans les N lignes suivantes, on a recensé les informations concernant les concurrents. Chaque ligne est organisée comme suit :
Colonne 1 à 4 : Numéro du concurrent
Colonne 12 à 19 : Nom du concurrent
Colonne 30 à 31 : Minutes
Colonne 32 à 33 : Secondes
Colonne 34 à 35 : Centièmes de seconde
Ecrire l’algorithme et le programme PASCAL correspondant.
* * * * *

Exercice 1 : Parties d’un ensemble donné

Ecrire l’algorithme qui engendre toutes les parties d’un ensemble V donné. On assimilera V à un vecteur V(1..N)
Exemple :
Donnée : V = { 2, 4, 8 }
Résultat : {}, {2}, {4}, {8}, {2, 8}, {2, 4}, {4, 8}, {2, 4, 8}
Coder l’algorithme en PASCAL.
* * * * *

Exercice 1: Facture

En vue d’établir une facture, on a relevé sur chaque ligne d’un fichier TEXT PASCAL les informations que l’on organise comme suit :
Ccolonne 1 à 5 : numéro du produit ou désignation
Colonne 10 à 14 : quantité ( entier)
Colonne 20 à 28 : prix unitaire
La dernière ligne ne contient que des zéros.

Exercice 2 : Analyse d’un texte

Soit un texte se terminant par le mot ‘FINTEX’. Le texte contient des mots et des commentaires. Un commentaire est une suite de caractères comprise entre /* et */.
Un mot est une suite de caractères ne contenant pas de blancs et ne commençant pas /*. Un mot est dit numérique s’il ne contient que des caractères numériques. Un mot est dit alphabétique s’il ne contient que des caractères alphabétiques.
Ecrire un algorithme commenté qui rend la valeur 0 s’il s’agit d’un commentaire, la valeur 1 si le mot est alphabétique, la valeur 2 s’il est numérique et la valeur 3 dans les autres cas. De plus, dans le cas où le mot est numérique, l’algorithme doit fournir la valeur entière de ce mot et ce en utilisant la fonction PRENDRE(Mot, I) définie ci-dessous.
NB.
– La fonction PRENDRE(Mot, I) donne le caractère de rang I dans le mot Mot.
– On suppose que l’ensemble des caractères est muni d’une relation d’ordre « < » définie comme suit : autres caractères < ‘0’<‘1′<. <‘9′<‘A'<‘B’.. <‘Z’
– La lecture se fait caractère par caractère.
Exemple
Texte : DEBUT—A-=-B5–/*AX–*/—V5+—;-A/*X—FIN–385—4B+—-/*AB+-/*-X34–*/–25–FINTEX
Résultat
1, 1, 3, 3, 0, 3, 3, 3, 1, 2(385), 3, 0, 2(25)

Exercice 3 : Tri de 4 variables

Ecrire un algorithme qui liste en ordre croissant les contenus de 4 données A, B, C et D.
* * * * *

Exercice 1 : gestion des polynômes

Supposons que nous voulions manipuler des polynômes de la forme : P(x)= c1xe1 + c2xe2+ .. + cnxen (1) avec a) e1 > e2 .. > en
b) n<=20
c1, c2, .. cn sont des réels
e1, e2, .. en sont des entiers compris entre 0 et 19.
Un tel polynôme peut être représenté par une structure dont le premier élément indique le nombre de termes non nuls et dont le second élément est un tableau à deux dimensions où chaque ligne représente le couple (ci, ei).
Ecrire les modules suivants :
Point(P, V) : fonction qui rend la valeur P(V)
Somme(P, Q, R) : somme des polynômes P et Q; résultat dans R.
Produit(P, Q, R) : produit des polynômes P et Q; résultat dans R.
Dérivé(P, V) : dérivé du polynôme P; résultat dans R.
Ecrire une procédure PASCAL qui imprime le polynôme P sous la forme (1).
NB. On définira le type polynôme comme suit :
TYPE Polynome = STRUCTURE
Nbr : ENTIER { Nombre d’éléments non nuls }
Tab : TABLEAU[40, 2] DE REEL { Les monômes }
FIN

Exercice 2 : Accès par fonction

On a défini sur les vecteurs deux types d’accès :
– l’accès séquentiel
– l’accès dichotomique
Si l’on veut faire de l’accès séquentiel, on construit le vecteur de telle sorte que l’ordre des éléments est quelconque. Par contre, si on veut faire de l’accès dichotomique l’ordre des éléments est imposé.
On peut envisager un autre type d’accès que l’on définit comme suit :
Soit à construire un vecteur V à partir d’une liste de N valeurs V1,V2,.. Vn. On définit une fonction F qui à toute valeur Vi attribue un entier compris entre 1 et N. L’élément Vi est alors rangé à la place F(Vi). Comme on ne peut dans la pratique trouver une fonction F qui attribue une valeur différente à chaque élément de V, il se peut que l’on ait :
F(Vi) = F(Vj) = F(Vk)= . . = F(Vt)
Dans ce cas
– l’élément Vi sera rangé dans le vecteur à la position F(Vi)
– les autres Vj, Vk, .. , Vt seront rangés dans un vecteur V’ de telle sorte qu’ils soient liés entre eux

I. Enoncés de sujets d’examens
C1. Concepts de base
C2. Concepts de base – Programmation PASCAL – Machine de Turing
C3. Concepts de base – Machine de Turing
C4. Concepts de base – Machine de Turing
C5. Machine de Turing – Programmation PASCAL
C6. Machine de Turing – Vecteurs – Programmation PASCAL
C7. Concepts de base
C8. Machine de Turing – Programmation modulaire – Programmation PASCAL
C9. Vecteurs – Fichiers – Programmation PASCAL
C10. Programmation modulaire – Vecteurs – Programmation PASCAL
C11. Machine de Turing – Vecteurs – Programmation PASCAL
C12. Machine de Turing – Vecteurs – Programmation PASCAL
C13. Listes linéaires chaînées – Programmation PASCAL
C14. Machine de Turing – Programmation PASCAL
C15. Vecteurs – Programmation PASCAL
C16. Listes linéaires chaînées – Vecteurs – Fichiers
C17. Machine de Turing – Programmation PASCAL
C18. Vecteurs – Machine de Turing
C19. Concepts de base – Machine de Turing
C20. Machine de Turing – Vecteurs
C21. Vecteurs
C22. Concepts de base
C23. Machine de Turing – Programmation modulaire – Programmation PASCAL
C24. Programmation modulaire – Vecteurs – Programmation PASCAL
C25. Vecteurs
C26. Machine de Turing – Vecteurs – Programmation PASCAL
C27. Machine de Turing – Programmation PASCAL
C28. Concepts de base – Vecteurs – Programmation PASCAL
C29. Machine de Turing
II. Corrigés de sujets d’examens
Corrigé 1
Corrigé 2
Corrigé 3
Corrigé 4
Corrigé 5
Corrigé 6
Corrigé 7
Corrigé 8
Corrigé 9
Corrigé 10
Corrigé 11
Corrigé 12
Corrigé 13
Corrigé 14
Corrigé 15
Corrigé 16
Corrigé 17
Corrigé 18
Corrigé 19
Corrigé 20
Corrigé 21
Corrigé 22
Corrigé 23
Corrigé 24
Corrigé 25
Corrigé 26
Corrigé 27
Corrigé 28
Corrigé 29
III. Exercices programmés en PASCAL
PROGRAMME 1. Réalisation d’un dessin
PROGRAMME 2. Etablissement d’une facture
PROGRAMME 3. Course de Ski ( I )
PROGRAMME 4. Les mots de la forme ….XY……
PROGRAMME 5. Les mots de la forme ….X….Y….
PROGRAMME 6. Analyse des constantes « virgule flottante »
PROGRAMME 7. Recherche dichotomique dans un vecteur
PROGRAMME 8. Course de ski ( II )
PROGRAMME 9. Parties d’un ensemble
PROGRAMME 10. Inventaire
IV. Annexes
Annexe 1. Langage algorithmique
Annexe 2. Rappel PASCAL
Annexe 3. Proverbes de programmation

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *