INPT APAD
Algorithmique et Programmation 1 et 2
Contenu du CD
Xavier Crégut & Majid Ahmadpanah
16 octobre 2003
Ce document décrit le déroulement chronologique du module d'Agorithmique
et programmation 1 dispensé dans le cadre de l'APAD (Année Probatoire À
Distance), à l'INPT
. Il est accessible sur
http://xavier.cregut.free.fr/2002-apad-algo1/algo1-apad-2002-deroulement-sujet.html
,
le module est disponible sur la plate-forme de
télé-formationPlei@d
pour les gens inscrits
à la formation.
Le langage de programmation utilisé est le C. Nous utiliserons l'outil
Dev-C++, version 4.9.8
développé par
BloodShed Software
. Il s'agit d'un
environnement de développement intégré pour C/C++. La version 4.9.8 est en
fait une version béta. Nous vous fournissons également la version
stable 4
(et WinZip
).
L'avantage de 4.9.8 est qu'elle intègre une interface graphique plus intuitive
pour utiliser le débogueur que la simple ligne de commande de la version 4.
Le module est découpé en 4 semaines principales plus une semaine numérotée 0
qui correspond à la séance supplémentaire du samedi 24 mai 2003, séance qui a
lieu en présentiel.
Les intervenants de ce module sont :
Les sujets sont disponibles au format PostScript (ps) ou PDF (pdf). Le format
pdf est obtenu automatiquement à partir du format ps en utilisant la commande
ps2pdf.
Vous avez à votre disposition une version de ce document sous la forme
d'un seul fichier HTML et une
version découpée en séances.
Ce document et les documents associés contiennent encore certainement des
erreurs et/ou des imprécisions. Merci de signaler vos remarques, vos
suggestions ou vos interrogations à
Xavier Crégut
<Xavier.Cregut@enseeiht.fr>.
Chapitre 1 Algorithmique et Programmation 1
1.1 Semaine 0 : Introduction au module
Cette première séance constitue une introduction au module. Les documents
fournis sont :
1.2 Semaine 1 : Les bases
La première semaine est consacrée à l'acquisition des éléments fondamentaux
de l'algorithmique et du langage C. Les documents fournis sont les suivants :
1.3 Semaine 2 : Les types utilisateurs
Nous voyons maintenant les éléments du langage qui permettent à l'utilisateur
de construire de nouveaux types : les types énumérés, les tableaux et les
enregistrement. Les documents fournis sont les suivants :
1.4 Semaine 3 : Les sous-programmes
Cette semaine est consacrée à la présentation des sous-programmes.
Les documents fournis sont les suivants :
1.5 Semaine 4 : Synthèse
Cette dernière semaine est consacrée à un exercice de synthèse (et donc de
révision). Il s'agit d'un jeu de
puissance 4 (ps
,
pdf
). Vous partez
d'un programme
qu'il
vous faut compléter.
Voici quelques indications
supplémentaires
.
Voici la solution (ps
,
pdf
) et le
fichier C
correspondant
.
Chapitre 2 Algorithmique et Programmation 2
2.1 Journée 1 : Récursivité, type abstrait de données et module
La première journée est consacrée aux notions de récursivité, de type abstrait
de données et de modules. C'est également l'occasion de revoir rapidement les
concepts du module Algo1.
-
le cours (ps
,
pdf
) et les
programmes C donnés en exemple
;
- les énoncés des exercices
résolus (ps
,
pdf
) et les fichiers fournis
;
- les énoncés des exercices
corrigés (ps
,
pdf
). L'environnement de Borland ne fournissant pas le fichier d'entête
stdbool.h vous pouvez le récupérer
ici
(dans une
version très pauvre et rudimentaire !).
Voici les fichiers C
de la
solution.
2.2 Journées 2 et 3 : Allocation dynamique de mémoire
L'objectif de cette journée est de comprendre l'allocation dynamique de
mémoire en C.
-
le cours (ps
,
pdf
) et les
programmes C donnés en exemple
;
- Le premier exercice consiste à reprendre les deux applications utilisant
la pile (afficher un entier et vérifier un parenthésage) et à modifier le type
pile pour en proposer une implantation avec allocation dynamique de
mémoire. Quelle est l'intérêt de cette nouvelle version ?
On constate que les programmes applicatifs n'ont pas à être changés malgré la
modification de l'implantation du module pile.
Voici les
fichiers de la solution
.
Merci de signaler toute erreur ou problème concernant ce
document à
Xavier Crégut <Xavier.Cregut@enseeiht.fr>.
Ce document a été traduit de LATEX par
HEVEA.