jeudi 18 septembre 2014

Mise à niveau informatique : cours 3

Résumé

Dans les cours précédent nous avons vu les bases de l'algorithmique :

  • les instructions
  • les structures de contrôle
  • les variables simples et les tableaux
On a mis cela en pratique avec la réalisation un "jeu de pendu" en langage C.
Ensuite on a vu le mode de gestion "manuel" de la mémoire avec les fonctions malloc et free.

En travail personnel vous deviez modifier votre jeu de pendu pour qu'il fasse de la gestion "manuelle" de la mémoire, et qu'il utilise des fonctions. C'est la première chose que je vérifierai mardi 23 au matin!

ATTENTION : Si ne serait-ce qu'un seul des concepts que je viens de citer ne vous est pas familier, vous ne pourrez pas comprendre la suite!Il est donc important que vous fassiez le travail demandé avant de passer à la suite du cours.

1er cours sur les structures de donnés

Les listes chaînées

Vous avez déjà identifié que les tableaux sont des structures de données simples et pratique, mais pas très efficace. En particulier parce qu'on ne peut pas "retailler" un tableau, or bien souvent on ne connait pas à l'avance la quantité de données qu'on aura à stocker. Nous allons voir dans ce support de cours de 2A, comment on peut trouver une solution élégante à ce problème : les listes chaînées.  Nous regarderons spécifiquement les pages : 16 à 24.

Une fois le principe compris, nous allons le mettre en oeuvre dans un programme qui gérera une liste contenant des nombres entiers. Comme il s'agit d'un programme assez complexe pour des débutants, je vous demande de biens suivre ces étapes. Vous testerez chaque étape avant de passer à la suivante, pour ne pas vous "perdre en route" :
  • Créez un programme vide.
  • Créez la structure (struct) pouvant représenter une "cellule" (juste la définition du type)
  • Créez une fonction d'insertion (insertion en début de liste, c'est la plus simple), que vous appellerez dans le main.
    Vous devez absolument avoir une exécution sans erreur de votre programme avant de passer à la suite.
  • Créez une fonction d'affichage, appelez la sur la liste constitué au point précédent.
  • Ajoutez plusieurs éléments à votre liste et re-testez le tout. Que percevez vous sur l'ordre d'affichage des éléments ? Est-ce normal ? pourquoi ?
  • Écrivez une fonction de désallocation, appellez là (au bon endroit) dans le main.
Pour les plus rapides d'entre vous, vous pouvez essayer d'écrire (et utiliser) la fonction d'insertion en fin de liste.

Travail personnel : pour la prochaine fois vous devrez avoir finaliser le travail sur les listes chaînées. Je vous conseille de faire des fiches qui résument tous les concepts vus jusqu'à présent, car on verra de nouveaux concepts de plus en plus complexe et qui seront basé sur les précédents...