• Aucun résultat trouvé

Algorithmes et Structures de Données Mardi 8 Novembre 2016

N/A
N/A
Protected

Academic year: 2022

Partager "Algorithmes et Structures de Données Mardi 8 Novembre 2016"

Copied!
1
0
0

Texte intégral

(1)

GM3 Nathalie Chaignaud

Algorithmes et Structures de Données Mardi 8 Novembre 2016

Durée 2H – Cours et TD NON autorisés

Exercice 1 : Pile (5 pts)

Considérons les 3 suites suivantes pour n≥0 :

u

0

=1, v

0

=2, w

0

=3

u

n+1

=2u

n

+3v

n

+w

n

v

n+1

=u

n

+v

n

+2w

n

w

n+1

=u

n

+4v

n

+w

n

1.1. Ecrire les fonctions u, v et w en pseudo langage.

1.2. Simuler la pile sur l’appel écrire(u(2)){@0} dans le programme principal.

Exercice 2 : Chaines de caractères (5 pts)

Soit une chaine de caractères contenant des chiffres et éventuellement une virgule. Nous souhaitons transformer cette chaine en un réel correspondant à la valeur de cette chaine.

Exemple : ‘‘436,78’’ → 436,78 ; ‘‘79,0’’ → 79 ; ‘‘45’’ → 45 ; ‘‘0,57’’ → 0,57 ; ‘‘,4’’ → 0,4 2.1. Expliquer en français le principe de cette transformation.

2.2. Ecrire en pseudo-langage la fonction qui réalise cette transformation :

Fonction chaine-en-réel (c : chaine) : réel

Rappel : pour transformer un caractère c en chiffre n, on utilise le calcul suivant :

n ← ord(c)–ord(‘0’)

Exercice 3 : Récursivité (5 pts)

Soit un nombre entier strictement positif, nous souhaitons afficher les chiffres le constituant.

3.1. Expliquer en français la méthode pour réaliser cet affichage de gauche à droite de façon récursive. Ex : pour l’entier 45 071, les chiffres 4, 5, 0, 7 et 1 sont affichés successivement.

Ecrire en pseudo-langage la Procédure afficher-rec-gd (E n : entier)

3.2. Expliquer en français la méthode pour réaliser cet affichage de droite à gauche de façon récursive. Ex : pour l’entier 45 071, les chiffres 1, 7, 0, 5 et 4 sont affichés successivement.

Ecrire en pseudo-langage la Procédure afficher-rec-dg (E n : entier)

Exercice 4 : Tableau et fichier texte (5 pts)

Nous souhaitons calculer la fréquence de chacune des notes (entières sur vingt) contenues dans un fichier texte (ce fichier contient une note par ligne).

4.1. Expliquer en français comment effectuer cette tâche de façon optimale en décrivant les structures de données utilisées.

4.2. Ecrire en pseudo-langage le programme qui réalise ce calcul.

Références

Documents relatifs

si (c[i] est une prarenthèse ouvrante) p.empiler(c[i]) sinon si (c[i] est une paranthèse fermante) { si (p.estVide() ) stop “erreur: il manque une parenthèse ouvrante”..

On veut écrire une procédure qui affiche la médiane des nombres du fichier (qu’on définit comme la plus petite valeur m du fichier telle que le nombre de valeurs

Ecrire en pseudo-langage une procédure qui, étant données n chaînes de longueur lg et le recouvrement k, donne l’ordre dans lequel il faut placer les n sous-chaînes pour

Ecrire la procédure Carré(E xa,ya,d,f : entier) où xa et ya sont les coordonnées du sommet en bas à gauche du grand carré, d est la longueur de son côté et f la longueur

Expliquer en français la méthode (vous appellerez la fonction javanais-inverse pour faire la traduction en français d’une chaîne écrite en javanais). Écrire en

En utilisant un tableau de notes pour faire les calculs, écrivez un programme qui calcule ces valeurs (vous pouvez écrire plusieurs fonctions ou procédures comme bon vous

Expliquer en français comment effectuer la traduction d’un message (message et message codé sont enregistrés dans 2 fichiers texte) de façon optimale. La clé et la table sont

numl pointe sur la ligne non vide suivante suivl (les lignes sont classées selon les numéros de lignes croissants) et sur son premier élément non nul suivc ; les éléments