1 Les objectifs
2 Les notions
IN3S02 : Corrigé en français du TD de C
Groupe ESIEE, Denis BUREAU, octobre 2006.
3 Premier programme
inclusion pour les entrees/sorties
programme principal :
afficher "Bonjour"
retourne OK
fin prog.pr.
4 Passage de paramètres (voir légende au 6.)
inclusion pour les entrees/sorties
prototype de s2jhms
prototype de hms2s
programme principal :
declaration des 3 variables donnees
declaration des 4 variables resultats
affichage de "h mn s ? "
saisie des 3 donnees
calcul des 4 resultats a partir des 3 donnees
afichage des 4 resultats
retourne OK
fin prog.pr.
procedure s2jhms a 1 PE et 4 PS : s, pj, ph, pm, ps
declaration locale de t initialise a s
CQEPP ps recoit le calcul du nb de secondes
t devient le total de minutes
CQEPP pm recoit le calcul du nb de minutes
t devient le nb d'heures
CQEPP ph recoit le calcul du nb d'heures
CQEPP pj recoit le calcul du nb de jours
fin s2jhms
fonction hms2s a 3 PE : h, m, s
retourne le nb de secondes calcule a partir de h, m, s
fin hms2s
5 Chaînes de caractères /* Pointeurs de caractères */
inclusion pour les entrees/sorties
inclusion pour les chaines de caracteres /* PTR-: */
declaration de la constante MAX (taille de tableau)
definition du type Chaine
/* PTR+: */ definition du type PtrChar
prototype de la procedure affiche /* PTR=: parametre a modifier */
programme principal :
declaration des chaines m1,m2
declaration de la chaine /* PTR=: du pointeur */ m
declaration des entiers i, n
affichage de "Phrase 1 ? "
saisie de la phrase dans m1
affichage de "Phrase 2 ? "
saisie de la phrase dans m2
n recoit 1
pour i de 1 a 8 :
si n vaut1
alors recopier m1 dans m /* PTR=: m recoit m1 */
sinon recopier m2 dans m /* PTR=: m recoit m2 */
fin si
affiche m
n recoit 3 - n
fin pour
retourne OK
fin prog.pr.
procedure affiche a 1 PE : ch /* PTR=: parametre a modifier */
affichage de (ch)
fin affiche
6 Pointeurs et chaînes de caractères
PTR- : à supprimer,
PTR+ : à ajouter,
PTR= : à remplacer,
PE : paramètre d'entrée,
PS : paramètre de sortie,
PES : paramètre d'entrée/sortie (ou paramètre mixte),
CQEPP : Ce Qui Est Pointé Par
7 Pointeurs et allocation dynamique
inclusion pour les entrees/sorties
inclusion pour l'allocation dynamique
declaration de la constante INCREMENT
definition du type PtrDouble
prototype de la procedure agrandit
programme principal :
declaration du pointeur v
declaration des entiers t, i, j
declaration du reel d initialise a 0.0
affichage de "Quelle taille initiale ? "
saisie du nombre dans t
allocation dynamique de t reels (v recoit l'adresse)
affichage de "Saisissez des nombres :"
i recoit 0
tant que d >= 0.0 :
saisie d'un reel dans d
si i >= t
alors agrandit v t
fin si
v[i] recoit d
incrementation de i
fin tant que
pour j de 0 a t-1 :
affichage de v[j]
fin pour
retourne OK
fin prog.pr.
procedure agrandit a 2 PES : av, at
declaration de 2 pointeurs ov, nv
declaration de 2 entiers ot, i
ov recoit CQEPP av
ot recoit CQEPP at
CQEPP at recoit CQEPP at + INCREMENT
allocation dynamique de CQEPP at reels (nv recoit l'adresse)
pour i de 0 a ot-1 :
nv[i] recoit ov[i]
fin pour
liberation de la memoire a l'adresse ov
CQEPP av recoit nv
fin agrandit
File translated from
TEX
by
TTH,
version 3.74.
On 28 Oct 2006, 17:09.