Licence Sciences 1ère Année
Filière -- Mathématiques, Informatique et Applications aux Sciences 2004 - 2005
Programmation
2ème semestre 2005
TD 1 -- Variables et instructions conditionnelles
11 Février 2005
Variables et instructions conditionnelles

Cette séance de TD sera une première introduction au langage C, à sa syntaxe et à la structure des programmes. Une description exhaustive d'un programme exemple sera ainsi faite en exercice introductif. Par la suite, nous verrons l'utilisation des fonctions printf et scanf permettant l'affichage et la saisie de données formatées. Nous verrons dans un second temps les structures conditionnelles (if, else if et else) ainsi que l'échange simple de deux variables (par l'utilisation d'une variable temporaire). Enfin, nous verrons un programme un peu plus complet permettant la résolution d'une équation du second degré.

TD 2 -- Itérations
17 Février 2005 et 24 Février 2005
Itérations

Durant cette séance de TD, nous allons aborder les différentes boucles en langage C. Nous verrons ainsi la structure de la boucle for(initialisation; condition de continuation; incrementation), la boucle while(condition de continuation) et enfin la boucle do ... while(condition de continuation). Pour bien appréhender leur utilisation et les différences de ces trois types d'itérations, nous réaliserons des programmes permettant de faire la somme de n entiers, le calcul de la factorielle d'un nombre, l'affichage d'un triangle isocèle, la détermination du minimum et du maximum d'une suite d'entiers et enfin la saisie d'une suite croissante.

TD 3 -- Fonctions et transmission des paramètres
24 Février 2005 et 03 Mars 2005
Fonctions et transmission des paramètres

Cette séance de TD abordera la notion de fonction et son utilisation. Ainsi, nous allons voir comment un problème peut être résolu en le décomposant en plusieurs sous-problèmes plus simples, principe du diviser pour régner. Une grande partie des exercices proposés dans cette feuille concerne les nombres premiers.

Examen surprise 1
Auteur G. Loyauté 24 Février 2005

Ce petit examen surprise porte sur la compréhension des boucles (while, for et do while) ainsi que des structures de contrôle vues durant les trois premiers TDs.

TD 4 -- Fonctions, transmission des paramètres
10 Mars 2005 et 17 Mars 2005
Fonctions, transmission des paramètres

Dans cette séance de TD, nous approfondissons l'utilisation des fonctions vues dans le TD précédent. Nous verrons ainsi le principe du passage par adresse qui permet à une fonction de changer la valeur d'un paramètre. De fait, il est nécessaire de faire précéder cette variable par l'opérateur & (qui correspond à l'opération de prise d'adresse) au moment de l'appel et de faire précéder le nom du paramètre par l'opérateur * (indiquant que la variable est un pointeur) dans le prototype de la fonction.

Examen surprise 2
Auteur G. Loyauté 17 Mars 2005

Ce petit examen surprise porte sur la compréhension des fonctions ainsi que les deux modes de passage des arguments, par valeur ou par adresse. Nous verrons ainsi l'une des utilisation possible du passage par adresse en calculant le n-ième nombre Harmonique.

TD 5 -- Tableaux
24 Mars 2005 et 07 Avril 2005
Tableaux

Cette séance de TD sera consacrée à l'introduction de la structure de données « tableau ». Les tableaux manipulés sont statiques c'est-à-dire que la taille du tableau est connue à la compilation et ne dépend pas du nombre de données entré par l'utilisateur. Pour se faire nous allons définir dans le programme une constante symbolique N indiquant la taille du tableau. Après avoir défini un tableau en C, nous verrons des fonctions (accès aux cases, lecture affichage, ...) permettant de les manipuler. Nous verrons aussi comment passer un tableau à une fonction. Enfin, nous verrons les tableaux à deux dimensions et quelques utilisations (le triangle de Pascal) de cette représentation.

TD 6 -- Chaînes de caractères
07 Avril 2005
Chaînes de caractères

Cette séance de TD est consacrée à la manipulation de chaînes de caractères. Dans le langage C, les chaînes de caractères sont représentées sous forme d'un tableau de caractères finissant par un caractère particulier, un marqueur de fin de mot. Il s'agit du caractère \0. Nous verrons des fonctions permettant de saisir et d'afficher une chaîne de caractère passée en argument, de déterminer la longueur d'une chaîne, de déterminer le nombre de chiffres qu'elles exhibent, de faire la mise en majuscule de la chaîne, .... Enfin, nous verrons deux techniques permettant de tester si un mot est un palindrome (un mot pouvant être lu indifféremment de droite à gauche ou de gauche à droite, par exemple été), la première utilisant une fonction inversant la chaîne tandis que la seconde procède directement sur la chaîne à tester.

Examen surprise 3 -- Tableaux
Auteurs C. Rispal et G. Loyauté 19 Mai 2005
Tableaux

Ce petit contrôle porte sur la bonne compréhension des tableaux (unidimensionnel et bidimensionnel) au travers des fonctions de détermination du minimum et du maximum dans un tableau d'entiers, de réaliser le décalage à gauche dans un tableau de caractères et enfin de déterminer si un tableau bidimensionnel d'entiers est un carré magique.

TD 7 -- Structure
12 Mai 2005
Structure

Ce TD va se consacrer à l'utilisation de la notion de structure, définie à l'aide du mot clé struct, qui permet de regrouper dans une même variable plusieurs informations de types différents. Nous définirons ainsi une structure regroupant toutes les informations nécessaires à l'élaboration d'une fiche d'un étudiant, une autre définissant des polynômes et enfin une dernière pour les nombres rationnelles. Nous utiliserons ces structures à l'aide des fonctions permettant de les lire et les écrire sur l'entrée et la sortie standard.

TD 8 -- Tableau de structures
19 Mai 2005
Tableau de structures

Cette séance de TD s'intéresse à l'utilisation d'un tableau de structure et plus exactement un tableau de fiches d'information sur des étudiants. Nous définirons ainsi une nouvelle structure représentant un TD d'étudiants ainsi que des fonctions permettant de la manipuler. Ces fonctions permettront de faire la saisie ou l'affichage d'un TD complet, une fonction permettant de faire la moyenne d'un étudiant donné ainsi qu'une autre permettant de déterminer quel étudiant à la meilleur moyenne. Enfin, nous réaliserons une fonction permettant de faire la saisie ordonnée alphabétiquement des étudiants d'un TD, ce qui permettra d'introduire l'algorithme du tri par insertion.

Les fonctions définies durant le TD précédent sur la manipulation des fiches d'étudiants seront abondamment utilisées.

Examen surprise 4 -- Structure de données et chaînes de caractères
Auteurs C. Rispal et G. Loyauté 19 Mai 2005
Structure de données et chaînes de caractères

Ce petit contrôle porte sur la bonne compréhension des chaînes de caractères (tableaux de caractères se terminant par '\0') au travers une fonction de détermination du nombre d'occurence d'un caractère spécifié en argument. Ainsi que des structures de données par l'implantation de fonction de lecture et d'affichage de deux structures, la première représentant un Conducteur, la seconde un Véhicule. Enfin, une fonction permettant de calculer le pgcd et le ppcm de deux nombres devra être implantée (retour sur le passage par adresse).