Laboratoire 9 - Structures et données

Sommaire

Produit

readLine

Écrivez une routine readLine qui:

  • Alloue a0 octets dans le tas,
  • Lit son contenu avec readString (maximun a0 octets).
  • Retourne l’adresse de la chaîne,

readProduit

Écrivez une routine readProduit (sans argument) qui:

  • Alloue un nouveau produit dans le tas.
  • Demande à l’utilisateur sa description: utilisez readInt et readLine
  • Retourne l’adresse du produit.

Utilisation

  • Lisez deux produits avec readProduit et affichez-les

Liste chainée

addLastProduit

  • Implémentez addLastProduit qui ajoute un produit à la fin de la liste des produits

Attention à gérer correctement le cas de la liste vide.

Le retour de fold

foldlist

Implémentez une routine foldlist qui prend en paramètre

  • a0: l’adresse d’un maillon (ou 0 pour une liste vide)
  • a1: le décalage du pointeur vers le maillon suivant (prNext pour les produits par exemple)
  • a2: l’adresse d’une routine à appeler
  • a3: une valeur initiale

foldlist fonctionne comme fold mais invoque la routine a2 sur les maillons successifs.

Utilisation de foldlist

Utilisez foldlist pour réaliser les opérations décrites. Pour ce faire, implémentez les routines auxiliaires nécessaires (a2)

  • Afficher la somme des prix des produits.
  • Affichez tous les produits d’une liste.
  • Afficher le produit le plus cher.