Licence Sciences 2ème Année | |||
Filière -- Mathématiques, Informatique et Applications aux Sciences | 2004 - 2005 | ||
Algorithmique avec le langage C | |||
1er semestre | 2004 | ||
TP 1 -- Quelques rappels sur le langage C | |||
04 Octobre 2004 | |||
Quelques rappels sur le langage C
Tout d'abord, lisez entièrement la charte des TPs. | |||
énoncé correction | |||
TP 2 -- Tableaux et tris, révision sur les structures de données | |||
Auteur Marc Zipstein | 11 Octobre 2004 | ||
Tableaux et tris, révision sur les structures de données
Cette séance de TP sera consacrée dans un premier temps à des révisions sur les structures de données et dans un second temps à la
manipulation de tableaux et à leur tris. Afin de réviser les structures de données, nous allons implanter un ensemble de structures
permettant de manipuler des | |||
énoncé correction | |||
TP 3 -- Introduction à la récursivité | |||
Auteur Marc Zipstein | 18 Octobre 2004 | ||
Introduction à la récursivité
Cette séance de TP va consister à l'écriture et au test de différentes fonctions récursives. Nous implanterons ainsi certaines
fonctions vues en TD ou en cours (fonction factorielle, les trois fonctions puissances, la fonction de calcul du pgcd et la
fonction de recherche dichotomique) en utilisant un paramètre permettant de déterminer le nombre d'appels récursifs réalisés par
chacune de ces fonctions.
| |||
énoncé correction | |||
TP 4 -- Récursivité (suite) | |||
Auteur Marc Zipstein | 25 Octobre 2004 | ||
Récursivité (suite)
Durant cette séance de TP, nous allons approfondir la notion de récursivité (vue durant le TP précédent) à travers la résolution de
deux problèmes. Le premier
concerne les chaînes de caractères et plus spécifiquement leur inversion ainsi que la détermination des mots
palindromes (un mot que l'on peut lire indifféremment de droite à gauche ou de gauche à droite). | |||
énoncé correction | |||
TP 5 -- Tableaux et Tris | |||
Auteur Marc Zipstein | 08 Novembre 2004 | ||
Tableaux et Tris
Durant cette séance de TP, nous allons utiliser une opération fondamentale en Informatique : le tri. Il existe plusieurs
algorithmes de tri et de nombreuses variantes que nous allons implanter dans ce TP. De plus, il est intéressant de pouvoir
observer le comportement en cours de déroulement des divers algorithmes de tris. Pour se faire, nous allons utiliser la
librairie graphique MlvLib. | |||
énoncé correction | |||
TP 6 -- Ensembles et Allocation dynamique | |||
Auteur Marc Zipstein | 15 Novembre 2004 | ||
Ensembles et Allocation dynamique
Durant cette séance de TP, nous allons utiliser l'allocation dynamique (plus spécifiquement les fonctions malloc,
realloc et free) afin de manipuler des ensembles d'entiers de taille variable. Nous verrons
de plus des fonctions permettant de réaliser l'union et l'intersection de deux ensembles. Dans un dernier temps, nous verrons
l'utilisation de la fonction realloc qui permet d'adapter la place mémoire strictement nécessaire à un ensemble.
| |||
énoncé correction | |||
TP 7 -- Fichiers et Listes chaînées | |||
Auteur Marc Zipstein | 22 Novembre 2004 | ||
Fichiers et Listes chaînées
Cette séance de TP sera consacrée dans un premier temps à la manipulation des fichiers (structure FILE permettant
de représenter un fichier en C) notamment au travers des fonctions fopen, fscanf,
fprintf et fclose. Dans un second temps, nous verrons une structure récursive, les listes
chaînées. En effet, cette structure a un de ces champs qui est de type pointeur sur cette structure. Nous verrons
ainsi, des fonctions
d'insertion, de création, d'affichage et de libération sur les liste chaînées. | |||
énoncé correction | |||
TP 8 -- Listes chaînées | |||
Auteur Marc Zipstein | 29 Novembre 2004 | ||
Listes chaînées
Dans ce TP, nous allons poursuivre l'implantation des listes chaînées commencée durant le TP précédent. Nous verrons notamment la
fonction permettant d'extraire une cellule d'une liste, puis une fonction réalisant le tri fusion sur une liste
chaînée. Afin de réaliser l'ensemble des fonctions, il est fortement recommander de dessiner les listes et de numéroter les
différentes actions à effectuer. Pour réaliser les tests de vos fonctions, un
fichier de nombre aléatoire est disponible.
| |||
énoncé correction | |||
TP 9 -- Compléments sur les listes chainées | |||
Auteur Marc Zipstein | 29 Novembre 2004 | ||
Compléments sur les listes chainées
Dans ce TP, nous allons compléter la manipulation des listes chaînées au travers quelques implantations un peu plus complexes
(listes doublement chaînées et listes circulaires). Ainsi, dans un premier temps nous utiliserons une
liste chaînée circulaire afin de résoudre le problème de la permutation de Josephus. Dans un second temps,
nous verrons
la structure de donnée possible afin d'implanter des listes doublement chaînées ainsi que les fonctions de bases
que sont la création, l'insertion et la suppression d'une cellule de la liste. Enfin,
nous essayerons de résoudre avec une liste doublement chaînée circulaire le problème de la permutation de Josephus.
| |||
énoncé correction | |||
TP 10 -- Compléments sur les listes chainées (fin du TP 9) | |||
Auteur Marc Zipstein | 29 Novembre 2004 | ||
Compléments sur les listes chainées (fin du TP 9)
Dans ce TP, nous allons finir les exercices proposés dans le TP précédent.
| |||
énoncé correction | |||
Projet -- Fourmis et Fourmilières | |||
Auteur Marc Zipstein | Deadline : 7 Janvier 2005, midi | 18 Novembre 2004 | |
Fourmis et Fourmilières
Le but de ce projet est de vous faire simuler l'affrontement de deux colonnies de fourmis (les noires et les rouges) à l'aide
de la bibliothèque graphique MlvLib. Le projet est découpé en quatre niveaux de difficultés à développer
successivement. Chaque colonnie de fourmis est composée de trois groupes d'individus possibles, les fourmis, les fourmilières et
les reines. Les fourmilières servent à produire de nouvelles unités et ne se déplacent pas, tandis que les reines se déplacent et
peuvent se transformer en fourmilières. Enfin les ouvrières se déplacent et peuvent attaquer les unités adverses. | |||
sujet horaire de passage |
Copyright © 2003 - 2004 Gautier Loyauté, Last modified: Sat Aug 28 18:20:35 CEST 2004 |