• Aucun résultat trouvé

Algorithmes et Structures de Données Mardi 16 Janvier 2018

N/A
N/A
Protected

Academic year: 2022

Partager "Algorithmes et Structures de Données Mardi 16 Janvier 2018"

Copied!
1
0
0

Texte intégral

(1)

GM3 Nathalie Chaignaud

Algorithmes et Structures de Données Mardi 16 Janvier 2018

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

Exercice 1 : Algorithme d’Euclide (6 pts)

Pour calculer le PGCD de deux entiers naturels non nuls a et b (a > b) avec l'algorithme d'Euclide, on utilise la séquence d’instructions suivante :

(1) Diviser a par b ; obtenir le reste r.

(2) Si r = 0, alors l'algorithme se termine : PGCD(a , b) = b.

(3) Si r ≠ 0, remplacer a par b, b par r et recommencer à partir de (1).

1.2. Ecrire en pseudo-langage la fonction itérative qui réalise ce calcul.

1.2. Ecrire en pseudo-langage la fonction récursive qui réalise ce calcul.

Exercice 2 : Position d’une liste chaînée dans une autre (4 pts)

On souhaite écrire une fonction qui retourne la position d’une liste chainée L2 dans une autre L1 (L1 et L2 sont de type liste) ; 0 si L2 n’apparaît pas dans L1.

Type liste : ^cellule

cellule : Enregistrement val : entier suiv : ^cellule FinEnregistrement

Ecrire en pseudo-langage la fonction itérative qui réalise cette opération.

Exercice 3 : Pointeurs - Les vins en France (10 pts)

On souhaite construire une base de données des régions de France avec leurs vins.

Type tab-région : tableau[1..18] de région {18 régions en France}

région = Enregistrement

nomr : chaine {nom de la région}

appel : ^vin {liste des appellations}

FinEnregistrement vin = Enregistrement

nomv : chaine {nom du vin}

tcep : tableau [1..5] de ^cépage {pas + de 5 cépages par vin}

vin-suiv : ^vin {pointeur sur le vin suivant}

FinEnregistrement cépage : Enregistrement

nomc: chaine {nom du cépage}

FinEnregistrement

3.1. Faire un dessin de tr de type tab-région avec les données suivantes : 3 régions avec les appellations de vins (origine d’un vin) et leurs cépages (entre parenthèses), qui sont des types de vigne.

- Grand Est : Gewurztraminer (Gewurztraminer), Riesling (Riesling)

- Bourgogne-Franche-Compté : Bourgogne Aligoté (Aligoté, Chardonnay), Chablis (Chardonnay), Côte de nuit rouge (Pinot Noir)

- Nouvelle Aquitaine : Graves rouges (Cabernet Sauvignon, Merlot), Médoc (Cabernet Sauvignon, Merlot), Saint Estèphe (Cabernet Sauvignon, Merlot), Saint Julien (Cabernet Sauvignon, Merlot)

3.2. Ecrire en pseudo-code une procédure qui initialise le tableau tr de type tab-région à partir d’un fichier texte contenant les régions triées dans l’ordre alphabétique (une région par ligne dans le fichier). Ces régions n’ont pas encore d’appellation attribuée (mettre les pointeurs à nil).

3.3. Ecrire en pseudo-code une procédure qui initialise la liste des appellations d’une région donnée à partir d’un fichier texte contenant les appellations des vins triés dans l’ordre alphabétique (une appellation par ligne dans le fichier). Ces appellations n’ont pas encore de cépages attribués (mettre les pointeurs à nil). Faire des dessins.

3.4. Ecrire en pseudo-code une procédure qui ajoute un cépage (les tableaux de cépages sont triés dans l’ordre alphabétique) à une appellation de vin donnée et une région donnée. Faire des dessins.

3.5. Ecrire en pseudo-code une procédure qui écrit à l’écran les appellations qui contiennent un cépage donné.

Références

Documents relatifs

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

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). Expliquer

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

Nous disposons d’un fichier texte contenant des notes (séparées par des espaces) : les notes sont disposées en colonne par matière et en ligne par élève.. Nous souhaitons