télécharger la Disquette d'accompagnement - P. TRAU

sommet sommaire documents programmation

CONTENU DE LA DISQUETTE D'ACCOMPAGNEMENT

Cedocument contient la liste des fichiers disponibles sur la disquette d'accompagnement.

Ils sont regroupés par répertoires

correction des exercices de la première partie

noms des fichiers (répertoire exercices.c). Le listing complet est donné en annexe 1.

1

while_puiss
WH_PUISS.C
2
while_err
WH_ERR.C
3
do_while
DO_WHILE.C
4
for
FOR.C
5
jeu
JEU.C
6
calcul
CALCUL.C
7
moyenne
MOYENNE.C
8
rotation
ROTATION.C
9
classer
CLASSER.C
10
chaîne
CHAINES.C
11
matrices
MATRICES.C
12
determinant
DETERMIN.C
13
tel
TEL.C
14
liste & insertion
LISTE_CH.C
15
agenda
AGENDA.C

exemples pour la première partie

L'intérêt de ces fichiers est qu'il contiennent la fonction décrite en exemple mais aussi une fonction main qui l'utilise, ainsi que quelques exemples supplémentaires. (répertoire exemples.c)

PREM_EX.C

premier petit programme du chapitre 2
SECONDEX.C
programme du chapitre 4.1
WHILE.C
exemple de boucle while
WH_ERR.C
source du programme "while_err" dont on doit expliquer la fonction
FACTORIE.C
calcul de factorielle par boucle for et par récursivité
FONCT_PT.C
exemple de fonction retournant un pointeur
ENUM.C
utilisation des énumérations
TABLO_PT
équivalence d'écriture entre tableau et pointeur
MULTIDIM.C
quatre méthodes différentes pour stocker un tableau multidimensionnel en mémoire (matrice statique, tableau unidimensionnel, tableau de lignes, pointeurs de pointeurs)
ARG_MAIN.C
arguments de la fonction main (un programme à mettre dans AUTOEXEC.BAT pour initialiser les couleurs de l'écran)
FIC_BRUT.C
utilisation de fichiers bruts (accès par blocs de taille constante)

correction des exercices de la seconde partie

Le listing est donné en annexe 2 (répertoire exercices.a)

BOUCLE.C

exercice du paragraphe 9.2
TUSEXO_A.C
exercice du paragraphe 10.1.2
TUSEXO_B.C
exercice du paragraphe 10.1.3
GAUS_MRD.C
exercice du paragraphe 11.3.1. Il montre une application des matrices rectangulaires dynamiques.
INSE_TTD.C
exercice du paragraphe 11.3.2. C'est également un exemple d'utilisation d'un stockage dynamique pour une grande matrice.

exemples pour la seconde partie

exemples donnés dans le document. En particulier les fichiers inclus contenant les manipulations de base sur les types de données sont regroupés (.INC). Les différentes fonctions données dans le document (tris par exemple) sont accompagnés d'une fonction main permettant de les utiliser directement. Certains exemples supplémentaires présents sur la disquette ne sont pas listés dans le document par manque de place (répertoire exemples.a)

FLOTTANT.C

exemple du paragraphe 9.1
BOUCLE_A.C, BOUCLE_B.C
exemples du paragraphe 9.2
BASE_TUS.INC
fonctions de base pour les tableaux unidimensionnels statiques (paragraphe 10.1.2)
EX_TUS.C
exemple du paragraphe 10.1.2
MANI_TUS.INC
fonctions de manipulation des tableaux unidimensionnels statiques (paragraphe 10.1.3)
BULL_TUS.C
implantation d'un tri bulle pour les tableaux unidimensionnels statiques (paragraphe 10.1.4.2)
INSE_TUS.C
implantation d'un tri par insertion pour les tableaux unidimensionnels statiques (paragraphe 10.1.4.3). Les deux implantations (simple et optimisée) sont prévues.
SELE_TUS.C
implantation d'un tri par sélection pour les tableaux unidimensionnels statiques (paragraphe 10.1.4.4)
SHEL_TUS.C
implantation d'un tri shell pour les tableaux unidimensionnels statiques (paragraphe 10.1.4.5)
QUIC_TUS.C
implantation d'un tri rapide (Quick Sort) pour les tableaux unidimensionnels statiques (paragraphe 10.1.4.6)
CREA_TUS.C
implantation d'un tri par création pour les tableaux unidimensionnels statiques (paragraphe 10.1.4.7)
BASE_MAT.INC
fonctions de base pour la gestion des matrices statiques (paragraphe 10.2)
GAUSS.C
résolution matricielle de AX=B avec triangulation simpliste ou améliorée (paragraphe 10.2)
BASE_LST.INC
fonctions de base sur les listes chaînées (paragraphe 12.1)
TEST_LST.C
test des fonctions de listes chaînées (paragraphe 12.1)
BULL_LST.C
implantation d'un tri bulle dans une liste chaînée (paragraphe 12.2.1)
INSE_LST.C
implantation d'un tri insertion dans une liste chaînée (paragraphe 12.2.2)
SELE_LST.C
implantation d'un tri par sélection dans une liste chaînée (paragraphe 12.2.3)
BASE_P_T.INC
fonctions de base pour l'implantation de piles par tableaux statiques (paragraphe 13.2).
BASE_P_L.INC
fonctions de base pour l'implantation de piles par listes chaînées (paragraphe 13.2).
BASE_F_T.INC
fonctions de base pour l'implantation de files par tableaux statiques (paragraphe 13.2).
POLONAIS.C
exemple de mise en oeuvre d'une pile pour évaluer une expression en notation polonaise (paragraphe 13.3)
ARB_EXPR.C
représentation d'une expression mathématique sous forme d'un arbre (paragraphe 14.2)
ARB_NOMS.C
gestion d'une liste de noms à l'aide d'un arbre binaire (paragraphe 14.3)

exemples pour la troisième partie

répertoire exemples.g :

BIB_BASE.INC

une bibliothèque de base sous TURBO C++ (initialisation, allumer un point)
G_LIGNE.INC
mise en oeuvre d'un tracé de droite quelconque en n'utilisant que BIB_BASE
CERCLES.C
test du tracé d'arc de cercle par la méthode de la dérivée, comparaison avec la méthode paramétrique (sinus, cosinus)
REMPLIR.C
remplissage d'une courbe fermée par un algorithme récursif. On voit (car c'est lent) l'ordre des appels récursifs par un remplissage qui semble désordonné
CRETE.C
exemple de tracé de surface avec élimination de lignes cachées par la méthode de la ligne de crête (nécessite la bibliothèque graphique G2D)
PARALLEL.C
projection parallèle : vue d'un cube dans toutes les positions
LAGRANGE.C
programme permettant de tester l'interpolation de Lagrange (nécessite G2D et une souris compatible).
BEZIER.C
programme de tracé de courbes de Bezier

Bibliothèque graphique

répertoire bib_graph :

Fichiers inclus :

Vous devez inclure les fichiers dont vous avez besoin dans votre fichier source. Il est inutile d'inclure les fichiers qui ne vous servent pas directement.

G2D.H

Bibliothèque graphique de base
CHAR.H
Définition du type CARACT qui définit un caractère. Ceci est nécessaire car en TURBO C les caractères sont définis autrement que par un char (unsigned char). Si vous utilisez un autre compilateur il suffit de modifier ce fichier.
CHAINES.H
Fonctions de base traitement de caractères
VECTEURS.H
onctions de base de traitement de vecteurs (produit scalaire, vectoriel...) utilisé par G3D.
GECR.H
Fonctions d'écriture
GPOLY.H
Tracé, remplissage et hachurage de polygones fermés
GREMPL.H
Remplissage d'une courbe déjà tracée à l'écran
GPLUS.H
Quelques fonctions supplémentaires à G2D
G3D.H
Bibliothèque de base 3D
G3ECR.H
Ecritures (2D) mais débutant en un point défini en 3D
G3POLY.H
Tracé, remplissage et hachurage de polygones définis en 3D. Attention, le remplissage se fait sur la projection du polygone, donc peut poser des problèmes si la surface est "trop gauche".
SOURIS.H
Utilisation d'une souris pour entrer des coordonnées 2D à votre échelle.
MENUG.H
Fonctions de menus

Fichiers sources à compiler et lier à vos programmes objets. Il faut lier les fichiers dont vous vous servez explicitement mais également indirectement (par exemple si vous avez inclus dans votre programme G3ECR.H, il faut lier votre programme à G3ECR.C mais aussi à GECR.C puisqu'il utilise ce dernier (par contre il était inutile d'inclure GECR.H dans votre programme si vous ne vous en servez pas directement).

G2D.C

Bibliothèque graphique de base
CHAINES.C
Fonctions de base traitement de caractères
VECTEURS.C
Fonctions de base de traitement de vecteurs (produit scalaire, vectoriel...) utilisé par G3D.
GECR_STD.C
Fonctions d'écriture. Implantation standard : tous les graphismes des 255 caractères d'un PC y sont définis, un caractère sera donc dessiné à l'aide d'un ensemble de segments. Ceci prend pas mal de place en mémoire et est assez lent mais marchera partout (si la couche 0 de G2D est bien définie).
GECR_ECR.C
Fonctions d'écriture. Implantation spécifique au TURBO C : On utilise les fonctions existantes sur le PC pour écrire. Ceci prend moins de place et va plus vite, mais on ne peut pas modifier la taille des caractères, ni leur inclinaison, ni faire d'écritures sur une table traçante. Si vous avez inclus GECR.H dans votre programme, il faudra soit lui lier GECR_ECR.C, soit GECR_STD.C.
GPOLY.C
Tracé, remplissage et hachurage de polygones fermés
GREMPL.C
Remplissage d'une courbe déjà tracée à l'écran
GPLUS.C
Quelques fonctions supplémentaires à G2D
G3D.C
Bibliothèque de base 3D
G3ECR.C
Ecritures (2D) mais débutant en un point défini en 3D. Utilise les écritures en 2D, donc GECR_ECR ou GECR_STD.
G3POLY.C
Tracé, remplissage et hachurage de polygones définis en 3D. Attention, le remplissage se fait sur la projection du polygone, donc peut poser des problèmes si la surface est "trop gauche".
SOURIS.C
Utilisation d'une souris pour entrer des coordonnées 2D à votre échelle.
MENUG.C
Fonctions de menus. Ceci est donné en exemple, cette bibliothèque mérite d'être complètement modifiée (en particulier en utilisation Windows)

Exemples de programmes utilisant les différentes bibliothèques :

TST2D.C

test de pratiquement toutes les fonctions de G2D
TSTECR.C
Démonstration des possibilités d'écriture. On pourra comparer les résultats obtenus en liant GECR_STD (plus de possibilités mais lent) ou GECR_ECR (rapide mais limité)
TSTPOLY.C
Démonstration de remplissage / hachurage de polygones convexes ou non
TSTREMPL.C
Test des fonctions de remplissage (frontière tracée auparavant)
TST3D.C
Fonctions 3D : On peut regarder un cube sous toutes ses faces
TST3POLY.C
Démonstration de polygones 3D
TSTSOURI.C
Utilisation des fonctions de base utilisant la souris
TSTMENU.C
Démonstration de quelques possibilités de la bibliothèque de menus

TELECHARGER CES DOCUMENTS

c'est facile, il suffit de cliquer ici (le fichier est compressé en .ZIP).

Vous pouvez également télécherger de la même manière la bibliothèque graphique en PASCAL (sources, documentation et programmes d'exemples). Cette version est un peu plus ancienne que celle en C, mais reste presque similaire (mêmes noms de procédures et fonctions, mêmes arguments)


P. TRAU, ULP-IPST, 20/3/97

sommet sommaire documents programmation