Introduction au langage C : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
(Retours sur la formation / Remontée de bugs)
(Retours sur la formation / Remontée de bugs)
Ligne 16 : Ligne 16 :
 
  unaccent UTF-8 < toto.c > toto.no_accents.c
 
  unaccent UTF-8 < toto.c > toto.no_accents.c
 
A l'Ensimag seule la première solution fonctionne car <code>unaccent</code> n'est pour l'instant pas installé.
 
A l'Ensimag seule la première solution fonctionne car <code>unaccent</code> n'est pour l'instant pas installé.
 +
 +
* [EXO TRICHE] L'exercice ne fonctionne pas à tout les coups. Lors d'une allocation suite à une dés-allocation l'espace mémoire alloué peut changé. Ainsi Toto ne récupère pas forcement la moyenne.
  
 
==== Erratta ====
 
==== Erratta ====

Version du 2 février 2016 à 13:55

Formation au langage C

Retours sur la formation / Remontée de bugs

  • Il faudrait que les réponses au test "j'ai réussi" ou "je suis bloqué" soient dans le même ordre pour tous les tests.
  • Le niveau de difficultés des exercices devrait être affiché dans les sommaires
  • Il faudrait pouvoir consulter les résultats d'évaluation après coup. Chamilo les fait disparaître au bout d'une seconde.
  • [EXO PALINDROME] Il manque l'appel à la fonction est_palindrome sur le main et l'affichage s'il s'agit ou pas d'un palindrome. (./palindrome fait rien).
  • [EXO LISTES] La solution ne compile pas:
listes.c:142:19: error: ‘tmp’ undeclared (first use in this function)
         p->suiv = tmp->suiv;

Il faut changer le nom de la variable tmp en style (ce qui est beaucoup plus joli pour l'appel à free! Ok, ç'aurait été mieux de changer tmp dans les trois lignes et pas dans deux...).

  • [ddd] l'utilisation du débogueur graphique ddd pose problème en raison des accents dans les commentaires des fichiers sources (alors qu'il c'est parfois bien pratique, par exemple dans un exercice comme listes avec du chainage). Vous pouvez alors convertir le fichier pour éliminir tous les accents. Deux solutions:
iconv -f UTF-8 -t ASCII//TRANSLIT toto.c > toto_no_accents.c
unaccent UTF-8 < toto.c > toto.no_accents.c

A l'Ensimag seule la première solution fonctionne car unaccent n'est pour l'instant pas installé.

  • [EXO TRICHE] L'exercice ne fonctionne pas à tout les coups. Lors d'une allocation suite à une dés-allocation l'espace mémoire alloué peut changé. Ainsi Toto ne récupère pas forcement la moyenne.

Erratta

  • [encoder] Complément de spécification : La clé doit être écrite sur un octet et non sous la forme d'une chaîne ASCII. Sans cela, l'exécutable decoder ne fonctionnera pas
  • [slab] Coquille lors de la définition de la structure "data" qui est marquée "datav" -> enlevez le 'v' en trop.

Documentation annexe

Langage C
Makefile

Séance d'introduction à Git

Une présentation de l'outil de développement collaboratif Git (pour travailler dans de bonnes conditions à plusieurs sur le même projet), aura lieu par demi-groupe le lundi 2 février 2015 11h15-12h45, ou le mardi 3 février 2015 11h15-12h45. Consultez ADE pour connaître votre demi-groupe ainsi que les salles.

Outils intéressants

Utilisation de votre éditeur pour le C

Outils pour (bien) développer en C

  • Valgrind : trouver les problèmes liés à la gestion mémoire à l'exécution d'un programme.
  • GDB : un débogueur, pour exécuter pas-à-pas un programme et comprendre son fonctionnement ou non-fonctionnement.
  • Makefile : pour compiler rapidement un projet.
  • GCC : Le compilateur utilisé à l'Ensimag. Regardez les options de compilations, certaines (comme -Wall) peuvent vous aider à écrire du code de meilleure qualité.

Pour organiser votre travail en groupe

Styles de codage