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.