Changes between Version 2 and Version 3 of 2011CaoTme1


Ignore:
Timestamp:
Feb 14, 2011, 5:38:48 PM (14 years ago)
Author:
jpc
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 2011CaoTme1

    v2 v3  
    1313Comme il a été annoncé en cours un soin tout particulier devra être accordé à
    1414la présentation de votre code. A cet effet un exemple type d'indentation vous
    15 est fourni ci-après.
     15est fourni ci-après. Toujours pour une meilleure lisibilité, réduisez la taille
     16des tabulations à 2 ou 4 caractères au lieu du defaut de 8. Enfin, n'insérez
     17jamais le caractère ''tabulation'' dans votre code source, configurez votre
     18éditeur favori pour que celui-çi substitue automatiquement des espaces blanc
     19ordinaires à la place d'une tabulation.
     20
     21Pour '''{{{vim}}}'''/'''{{{gvim}}}''', ajouter dans votre {{{~/.vimrc}}} les lignes
     22suivantes:
     23{{{
     24:set shiftwidth=2
     25:set expandtab
     26
     27:autocmd FileType c,cpp set cindent
     28:autocmd FileType make set noexpandtab shiftwidth=8
     29}}}
     30
     31Pour '''{{{emacs}}}''', ajoutez dans votre {{{~/.emacs}}} les lignes suivantes:
     32{{{
     33;; CC-Mode configuration.
     34 (defun local-c-mode-hook ()
     35  (setq c-echo-syntactic-information-p t
     36                        c-basic-offset 2
     37                             tab-width 4
     38                      indent-tabs-mode nil)
     39  (c-set-offset 'topmost-intro          0)
     40  (c-set-offset 'inclass              '++)
     41  (c-set-offset 'access-label          '-)
     42  (c-set-offset 'comment-intro         '-)
     43  (c-set-offset 'arglist-cont-nonempty 'c-lineup-arglist-close-under-paren)
     44  (c-set-offset 'arglist-close         'c-lineup-arglist-close-under-paren)
     45  (c-set-offset 'defun-block-intro     '+)
     46  (c-set-offset 'statement-block-intro '+)
     47  (c-set-offset 'block-close            0)
     48  (c-set-offset 'case-label            '+)
     49  (c-set-offset 'statement-case-intro  '+))
     50 (add-hook 'c-mode-common-hook 'local-c-mode-hook)
     51 
     52 (setq auto-mode-alist
     53  (cons '("\\.\\(h\\|hh\\|hpp\\)\\'" . c++-mode)
     54   auto-mode-alist))
     55}}}
     56
     57[[Image(indentation-1.png,70%,align=center)]]
     58
     59
     60== Compilation ==
     61
     62Dans le cadre de ce premier TME, nous allons nous contenter de faire de la compilation
     63monolithique. C'est à dire que tout le code de chaque exercice sera contenu dans un
     64seul fichier source, par exemple {{{Box.cpp}}}. L'éxécutable sera créé par compilation
     65de cet unique fichier.
     66
     67Compilation monolithique d'un fichier source:
     68{{{
     69g++ -Wall -g -o box Box.cpp
     70}}}
     71Ici, l'éxécutable généré sera {{{box}}}. Attention l'argment {{{-o}}} doit immédiatement
     72être suivi du nom de l'éxécutable ({{{box}}}).
     73
     74Autres arguments donnés à {{{g++}}}:
     75* {{{-g}}} demande d'inclure le code nécessaire pour pouvoir utiliser un débogueur
     76  ({{{gdb}}} ou {{{ddd}}}).
     77* {{{-Wall}}} demande d'afficher tous les avertissements. Vous devrez toujours
     78  utiliser ce drapeau ({{{flag}}}) et à l'issue de la mise au point, votre programme
     79  ne devra générer aucun avertissement.
     80
    1681
    1782== Mon Premier Objet: {{{Box}}} ==
    1883
    1984Nous allons implémenter la classe {{{Box}}} présentée en cours.
     85La classe {{{Box}}} comporte les cinq attributs suivants:
     86* {{{_name}}} : le petit nom de l'objet courant (de type {{{std::string}}}).
     87* {{{_x1, _y1, _x2, y2}}} : les coordonnées des deux angles de la boite (de type {{{int}}}).
     88
     89
     90[[Image(BoxMain.png,75%,align=center)]]