Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zér0 > Les tutoriels > Officiels > Programmation > Lecture des commentaires

Vos commentaires sur :
La programmation modulaire

Retour au tutoriel

Vous devez être inscrit pour pouvoir poster des messages

Page : 1  2 
Pseudo Commentaire
Page : 1  2 
Hors ligne Tonio1409 # Posté le 29/09/2006 16:50:57
Groupe : Membres
Et un 18, un. Pour la clarté des explications et
le schéma bilan : voilà un cours super important
qui a été facile à comprendre pour le zero que
je suis. Bravo ! :D

:-° :-° :-° Le temps, c'est beaucoup plus que de l'argent... :-° :-° :-°
 
Hors ligne Varna # Posté le 06/11/2006 00:54:49
Avatar
Groupe : Membres
Ben moi je mets 20/20 .

C'est très claire, mais il manque juste des mini tp, juste pour s'exercer.
Pour ma part je vais essayé de faire quelques mini tp tous seule mais demain je lis la suite. Je veux avancé et vu que j'adore ça, lol

Biz à tous et Bonna Noté

:p :p :p
Voila quoi ?
lol
nan rien a dire sur le passé mais bon va falloir construire le présent.

Et dit falloir sa s'ecrit pas comme ça. o_O
Ah bon ? :-°
faloir?

Du verbe je falois, tu falois, mdr :D

(c'etait de l'humour je précise entre moi et moi )
 
Hors ligne Serath # Posté le 10/11/2006 00:26:40
Avatar
Groupe : Membres
Super tuto : 19/20 ^^

Mais, comme Varna, j'aurais aimé quelques petits exercices afin de s'entrainer à utiliser la programmation modulaire.
Hors ligne The frog # Posté le 14/11/2006 20:22:02
Couin couin !
Avatar
Groupe : Membres
Bravo M@teo, j'ai juste un problème, je n'arrive pas à voir les images utilisateurs ??
Est-ce-que quelqu'un peut m'expliquer ??
Merci d'avance...

EDIT : Maintenant j'y arrive, c'est bizarre...
 
Hors ligne C0c0 # Posté le 20/11/2006 22:39:07
Ca y est j'ai une citation !
Avatar
Groupe : Membres
Très bien expliqué. Clair et simple, un grand bravo, j'ai tout simplement tout compris ;)

20/20 car la perfection existe : M@teo21 :-° :D
Hors ligne Bogoris # Posté le 22/11/2006 15:38:24
Exit light ! Enter night !
Avatar
Groupe : Membres
En fait là je suis rendu au milieu du chapitre de la SDL et j'avais toujours pas compris l'intérêt des prototype.
Je viens de comprendre en fait (grâce à un test que j'ai fait qui faisait retourner une erreur à Code::Blocks). L'intérêt majeur en fait (selon moi), c'est le fait que quand des fonctions s'appellent entre elles, on n'ai pas besoin de se soucier dans quel ordre elles sont. Et ça, c'est coooool :soleil: .
 
Hors ligne Anonyme # Posté le 29/12/2006 03:04:41
Groupe :
Pas mal, mais un petit 15 car il y a une erreur dans le QCM question 6:


Cherchez l'erreur !

Code : C
long fonction(long parametre1, double parametre2);
{

};

* Une fonction ne peut recevoir un paramètre long et un paramètre double
* Une fonction n'a pas de point-virgule à la fin, c'est réservé aux prototypes

La bonne réponse est la seconde, dans ce cas, il ne faut pas oublier de mettre le point virgule dans l'exemple ^^
Hors ligne SuperBatros # Posté le 12/01/2007 17:32:03
Groupe : Membres
Salut M@teo,

j'ai copié collé ton code présentant le prototype de aireRectangle.
TOUT MARCHE PARFAITEMENT ! Super normal me diras-tu ! Bon, pour info j'utilise linux et un bête éditeur de texte de terminal (vim). Jusque là tout va bien. Sauf que... j'aime bien bidouiller un peu. J'ai essayé de faire en sorte que le programme demande d'abord la hauteur et la largeur du rectangle avant de faire le calcul. Et là ! Rien ne va plus si les variables (de la fonction aireRectangle et de main) sont d'un autre type que "long" et repérées par %ld dans les textes.
Je te copie ci dessous le code qui marche (sauf pour les variables %lf... normal)
Citation : Superbatros

#include <stdio.h>
#include <stdlib.h>

// La ligne suivante est le prototype de la fonction aireRectangle :
long aireRectangle(long largeur, long hauteur);

int main(int argc, char *argv)
{
long h = 0.0, l = 0.0;
printf("Hauteur ?\n");
scanf("%ld", &h);
printf("Largeur ?\n");
scanf("%ld", &l);
printf("Aire = %ld\n", aireRectangle(l, h));
printf("Rectangle de largeur 5 et hauteur 10. Aire = %ld\n", aireRectangle(5, 10));
printf("Rectangle de largeur 2.5 et hauteur 3.5. Aire = %lf\n", aireRectangle(2.5, 3.5));
printf("Rectangle de largeur 4.2 et hauteur 9.7. Aire = %lf\n", aireRectangle(4.2, 9.7));

}
// Notre fonction aireRectangle peut maintenant être mise n'importe où dans le code source :
long aireRectangle(long largeur, long hauteur)
{
return largeur * hauteur;
}



A partir du moment ou "long" est remplacé par "double" plus rien ne marche... (sauf les variables repéréés par %lf... :-° )

Peux tu m'expliquer pourquoi stp ?
Hors ligne BebeFoetus # Posté le 14/01/2007 15:49:28
Avatar
Groupe : Membres
Une perle ce M@teo21 !!!!
C'est mon premier tuto en programmation et je pige tout direct et même pour les pointeurs, apparemment le gros du cours, je l'ai assimilé du premier coup :-° . On verra par la suite si çà se vérifie... ;)

Je voulais également proposer une solution à SuperBatros. Ton problème c'est que tes variables et ta fonction sont déclarés avec des "long" alors que tu traites des chiffres décimaux donc des "double". N'oublie pas aussi de changer tes %ld en %lf ;)

Solution : :magicien:
Secret (cliquez pour afficher)
Code : C
#include <stdio.h>
#include <stdlib.h>

// La ligne suivante est le prototype de la fonction aireRectangle :
double aireRectangle(double largeur, double hauteur);
/* passage des long en double pour les 2 entrées
et la sortie de la fonction */


int main(int argc, char *argv)
{
    double h = 0.0, l = 0.0;    // les variables h et l sont des double
    printf("Hauteur ?\n");
    scanf("%lf", &h);           // %ld devient %lf pour la saisie de variables en double
    printf("Largeur ?\n");
    scanf("%lf", &l);           // %ld devient %lf pour la saisie de variables en double
    printf("Aire = %lf\n", aireRectangle(l, h));
    // %ld devient %lf pour la sortie en double de la fonction aireRectangle

    /*
    printf("Rectangle de largeur 5 et hauteur 10. Aire = %ld\n", aireRectangle(5, 10));
    printf("Rectangle de largeur 2.5 et hauteur 3.5. Aire = %lf\n", aireRectangle(2.5, 3.5));
    printf("Rectangle de largeur 4.2 et hauteur 9.7. Aire = %lf\n", aireRectangle(4.2, 9.7));

    Partie inutile puisque l'on entre soi-même la hauteur et la largeur
    */

}

// Notre fonction aireRectangle peut maintenant être mise n'importe où dans le code source :
double aireRectangle(double largeur, double hauteur)
/* passage des long en double pour les 2 entrées
et la sortie de la fonction */


{
    return largeur * hauteur;
}


Allez ! J'y retourne pour la suite :pirate: @++

Image utilisateur
 
Hors ligne terry # Posté le 15/01/2007 19:40:21
Miam cela donne envie :p
Avatar
Groupe : Bannis
Salut les zero je trouve ce tuto exellent donc je lui met un 20/20 ^^

Bon et oui mon message est court mais il faut que j'y retourne c'est parti pour l'aventure :pirate:

Mettez votre sujet en résolu quand il l'est et pas dans 3ans, merci !
 
Hors ligne Revelc # Posté le 17/04/2007 23:39:14
La Connaissance est une Arme !
Avatar
Groupe : Membres
Oué , donc c'est plus prudent de ne pas faire des globales mais plutot des local ;) !

Sinon super cours toujours aussi bien expliquer ^^ ,

oups j'ai pas vu l'heure passer , m***** deja 11.30 , et moi qu'il voulai passer au cours suivant :-°

20/20


Image utilisateur

Asukanim Trilogie : MMORPG Francophone sur les mangas : cliquez ici

 
Hors ligne benjamin-et-la-prog # Posté le 23/04/2007 18:32:33
yes enfin un site qui n'est pa
Groupe : Membres
15/20 enfin quelque chose de plus dur !!!



trop cooool :-° j'ai hate d'avoir fini les 3 premieres partie !!!

benjaminnnnnn
 
Hors ligne nabouill # Posté le 12/05/2007 10:22:41
Avatar
Groupe : Membres
Ca se complique mais c'est toujours assez clair, merci M@teo (encore 20/20 pour ma part).

Mais j'avoue que la j'ai eu un peu plus de mal a être sûr d'avoir tous compris :euh: . Alors comme 2 où 3 l'on dit,
un petit TP ça aide beaucoup a assimilé les choses.

UNE PETITE IDEE DE TP:


Un petit Tp qui reprend un peu toutes les choses depuis le début,

Un petit programme de calcule mental, qui te pose 10 multiplications a la suite au hasard,
et a la fin, le joueur a une note /20 suivant les reponses qu'il a fourni.

Pour ça, plusieurs fichiers .h et .c sont requis:
(pour bien m'entrainer j'en ai fait un pour chaque fonction, même si c'est pas obliger comme nous l'a bien expliquer M@teo)

-main.c
-genereNombreAuHasard.c & genereNombreAuHasard.h
-caluleDeOrdi.c & caluleDeOrdi.h
-compareCalculeJoueurEtOrdi.c & compareCalculeJoueurEtOrdi.h
-comparePourIncrementerNote.c & comparePourIncrementerNote.h

En réalisant ce TP, je me suis rendu compte de beaucoup de choses, et donc une fois terminé,
là je pouvait être sûr d'avoir tous compris :p (enfin j'espère).

Nabouill
 
Hors ligne marpsody # Posté le 15/06/2007 18:31:19
Groupe : Membres
:( je suis en stage, et avant de commencer j'avais parcouru le tutorial, mais là dans mon projet, je fais comme m@teo21, j'ai fait des fichiers .h et un fichier .c, mais quand je veux compilé, sa compile pas ce qu'il y a dans les fichier.h. Il faut que le contenu de ces fichiers (les fonctions) soit mises dans mon fichier source pour que cela compile correctement. Et comble de tout je replace la fonctions dans le fichier.h respectif et ça marche. Je suis pas obligé de faire des couper/coller tout le temps. :o
Hors ligne Druviel # Posté le 21/06/2007 15:04:52
Avatar
Groupe : Membres
Très bon tutoriel, si je devais le noté je lui mettrais 16.5 ;)

Il manquerais cependant des exercices, avec les corrections à la fin du tuto.

Du genre, pour aider à la compréhension. Comme vous le disiez M@théo21, c'est en faisant des essais que nous comprenons mieux. Mais le problème (en tout cas à moi, :( c'est que je manque un petit peu d'imagination :euh: ).

Image utilisateur

Citation : Albert Einstein
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !
 
Hors ligne aZerTy56 # Posté le 23/06/2007 11:54:56
Groupe : Membres
Trop bien le tuto!(comme le site)
Je comprend trop bien tous ca maintenant(encore heureux) :lol:
je vien de commencer, et je pense que je vais continuer!

Bien commencer c'est mieux que mal commencer (merci siteduzero!)
ouai je sais c'est pourri mais bon...
 
Hors ligne rodolftaupegun # Posté le 09/07/2007 13:29:37
"Qui ne tente rien n'a rien"
Avatar
Groupe : Membres
Bonjour.
J'aimerais te dire M@teo que ton tutorial est très réussi car je pense qu'il est compréhensible par tous ( sinon il faut vraiment se demander si on est normalement constitué :p . J'espère sincèrement que je n'heurte personne en disant cela :-° parceque sinon c'est pas volontaire ).
Encore merci de nous faire partager ton savoir qui est pour nous, les nuls non avertis, la base d'une futur connaissance bien étoffée et constituée :D .

;) La vie n'est qu'un long fleuve tranquille tant que la mort ne le fais pas sortir de son lit ;)
Alors : Citation : un illustre homme latin
Carpe Diem
 
Hors ligne cassim # Posté le 30/08/2007 11:13:33
Avatar
Groupe : Membres
Bonjour à tous, et merci à toi m@teo pour tout tes formidable tutoriaux.
Alors voila je suis sous linux et j'ai une erreur bizarre, vous me direz que c'est minime mais j'aimerai savoir d'où ça vient, voila mon code source:

La ça écrit sur la console:
Hello, world2
Hello, world3
...
Hello, world49
Hello, world50

Code : C - Afficher / masquer les numéros de ligne
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. long incremente();//prototype
  5.  
  6. int main(int argc, char *argv[])
  7. {
  8.  long i;
  9.   for(i=0;i<50;i++)
  10.   {
  11.    printf("Hello, world!%ld\n", incremente());
  12.   }
  13. return EXIT_SUCCESS;
  14. }
  15.  long incremente()
  16.  {
  17.   static long nombre = 0;//variable de type "static" : ne se supprime pas a la fin de la fonction
  18.   nombre++;
  19.   return nombre;// je retourne la variable nombre
  20.  }


Merci d'avance
edit: en faite le code était juste sauf pour linux allez savoir pourquoi^^
Cassim
Hors ligne Jeremie78 # Posté le 26/11/2007 21:59:11
Aide toi et le zero t'aidera
Groupe : Membres
Une petite pensée pour les unixiens ?
À la place de :
Code : C - Afficher / masquer les numéros de ligne
  1. system("PAUSE");

Mettez :
Code : C - Afficher / masquer les numéros de ligne
  1. getchar();

Générateurs : de Bannières animées (GIF), et celui de Userbars (animées)
Web-Modules : outils pour webmasters (compteurs, tchat, news ...) à installer sur son site !
 
Hors ligne DeviantKarot # Posté le 07/12/2007 19:49:18
Avatar
Groupe : Membres
Le tutorial est très clair mais un point obscure subsiste :
Citation
Il faut inclure le fichier .h grâce à une directive de préprocesseur.


Hmmm, perso quand j'inclus le .h dans le main.c le compilateur m'envoie balader, par exemple :
Dans le main.c
Code : C - Afficher / masquer les numéros de ligne
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "tableau.h"
  4.  
  5.  
  6. int main()
  7. {
  8.   long tabl[5] = {1,2,3,4,5};
  9.   afficherTableau(tabl, 5);
  10.   return 0;
  11. }

Un extrait de tableau.h :
Code : C - Afficher / masquer les numéros de ligne
  1. void afficherTableau(long tableau[], long tailleTableau);

Un extrait de tableau.c :
Code : C - Afficher / masquer les numéros de ligne
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "tableau.h"
  4.  
  5.  
  6. void afficherTableau(long tableau[], long tailleTableau)
  7. {
  8.   long i;
  9.   for (i=0 ; i<tailleTableau ; i++)
  10.     {
  11.       printf("%d ",tableau[i]);
  12.     }
  13.   printf("\n");
  14. }


Et à la compilation

Code : Console - Afficher / masquer les numéros de ligne
karot@karot-desktop:~/c$ gcc main.c -o prog
/tmp/ccy7x1Bs.o: In function `main':
main.c:(.text+0x43): undefined reference to `afficherTableau'
collect2: ld a retourné 1 code d'état d'exécution


Alors que si j'inclus le fichier 'tableau.c', pas de problème! Ce qui me paraît cohérent d'après ce que j'ai lu dans le tutorial :

Citation
La commande #include demande d'insérer le contenu du fichier dans le .c. C'est donc une commande qui dit "Insère ici le fichier affichage.h" par exemple.

Donc c'est le .c qu'il faut inclure, puisqu'il faut bien qu'il y ait le code de la fonction à un moment donné de la compilation.


Vous en pensez quoi?
(Comment ça c'est moi qui n'ait rien compris? :D )
Hors ligne khris_adh # Posté le 29/12/2007 19:03:00
MoinsTuDorsPlusTesFort
Avatar
Groupe : Membres
Bonjour, Dans ton QCM tu as écrit :

Citation : M@teo21
Lequel de ces fichiers ne sert plus après compilation et peut donc être supprimé sans problème ?
Mauvaise réponse : .c
La bonne réponse était : .o

Explications : Les .o (fichiers objets) sont des fichiers temporaires compilés, correspondant chacun à un .c. Après que le linker ait fait son travail, ces fichiers deviennent inutiles et peuvent être supprimés.

Retenez bien :

* .c = fichier source (contient le code des fonctions)
* .h = fichier header (contient les prototypes des fonctions)
* .o = fichier objet (fichier temporaire)
* .a = librairie compilée (contient des fonctions compilées, c'est donc similaire à un .o à part que ces fichiers-là faut pas les supprimer parce qu'ils doivent resservir :p )


Dans la question c'était bien dit "après compilation", le linker en fait-il partit ? Si non les .o ne doivent pas être supprimés, puisque se sont justement les fichiers générés lors de la compilation. J'espère mettre bien exprimé, je suis loin d'être expert mais ça me semble logique, salut ;) .

MoinsTuDorsPlusTesFort
 
Hors ligne reynolds # Posté le 09/01/2008 17:58:11
Groupe : Membres
pffff... Obligé de prendre deux secondes pour écrire un petit message ici parceque depuis le début du cour tout est Parfait... :-° Parfaitement clair, parfaitement expliqué, parfaitement organisé... Génial! ^^ Un grand merci à M@téo ;)
Hors ligne piloudoc # Posté le 27/02/2008 21:32:10
Groupe : Membres
Bonjour, le tuto est toujours aussi bien ;) , à un détail près, mais un énorme détail: c'est que si dans un projet je défini, en plus du main, un certain nombre de sous programmes (fonctions), ils peuvent être dans le main, avant ou après l'appel, ils peuvent être dans des fichiers séparés (même répertoire que le main, mais hors du main) avec ou sans header, ça fonctionne toujours !
Qu'est-ce que j'ai raté ? :(
Une petite remarque de plus qui n'a rien à voir avec le sujet précédent: je confirme que des variables globales ne sont pas forcément à éviter, et permettent certaines simplifications non négligeables; mais ceci impose une bonne analyse du sujet qui justifie l'écriture du programme, et une gestion rigoureuse des noms de variables utilisées.
Merci et à bientôt de te lire. :)
Hors ligne biosebus # Posté le 10/03/2008 22:33:44
Groupe : Membres
Salut !

J ai compris le chapitre, ca c'est cool.
Je l'ai appliqué a merveille a mon code du nombre mystere.

Cependant une interrogation me cours dans la tête.

Lors du remaniment de mon code, j ai passer toute mes fonctions provenant du main a un autre .c avec le .h l'include et tout et tout.
alors que tout se déroulait correctement quand toute les fonctions était dans le main, VCB me demande de déclaré NULL dans la fonction qui génère le nombre aléatoire. J avou que ca me laisse perplexe. mais aprés avoir fait un long NULL = 0; dans cette même fonctionne trés bien.

Si Mateo pouvait m'éclairé de ses lanternes ^^
voilou toujours de bons tuto sinon !
Hors ligne Plexi 00 # Posté le 19/03/2008 05:49:36
Just do it!!
Avatar
Groupe : Membres
Désolée! mon commentaire apparaissait dans la mauvaise partie :D
Je voulais le laisser pour les pointeurs!

Plexi00 ;)
 
Hors ligne bubu2904 # Posté le 08/04/2008 15:13:28
Groupe : Membres
Merci beaucoup pour ce tuto très bien réaliser et assez facile à comprendre. :p
Hors ligne Jakal # Posté le 08/05/2008 18:56:36
Groupe : Membres
Ce tuto est génialissime, mais il y'a un point que j'ai du mal à comprendre...

Les prototypes.

A vrai dire, je n'ai absolument rien compris aux prototypes :honte:

Si quelqu'un pouvait m'aiguiller, je serai aux anges. Merci d'avance :)
Hors ligne magiccerbere # Posté le 19/06/2008 03:26:16
La liberté vaincra!!
Avatar
Groupe : Membres
Bien, mais il manque, comme quelque un l'ont suggéré, des exemple de tp précis!
Mais sinon, parfait et pour ma part,je le trouve moins dur que le précedent.
Pour l'histoire des prototypes, je trouve que tout es trés bien expliqué et je vois mal comment mieux l'expliquer.
Relis le cours!

18/20 (19, si il y aurait eu un tp!)

Parce que partager, c'est avancer. Et parce que j'ai toujours besoin d'aide en C, magiccerbere@hotmail.fr
 
Hors ligne yaz21 # Posté le 22/06/2008 01:34:58
Avatar
Groupe : Membres
C'est un super cours, clair et facile à lire.
J'ai juste une remarque concernant les variables globales:
Citation : M@teo21
Il est possible de déclarer des variables qui sont accessibles dans toutes les fonctions de tous les fichiers du projet.
Citation : M@teo21
Pour déclarer une variable "globale" accessible partout, vous devez faire la déclaration de la variable en-dehors des fonctions. Vous ferez la déclaration tout en haut du fichier, après les #include généralement.

Pour illustrer tout ça il y a un exemple qui utilisais une variable globale déclarée dans le fichier main.c...et ça marche.
Par contre si on a plusieurs fichiers, il faudrait la déclarer dans tout les fichiers *.c (pour qu'elle soit vraiment globale) où alors la déclarer dans un fichier *.h qu'on inclura à tout les autres (ce qui revient un peu au même)
Ce qui reste à faire c'est d'initialiser la variable globale, dans un seul fichier (par exemple, dans main.c) sinon ça génère des erreurs.
C'est ce que j'ai testé dans les 3 IDE:
  • Code::Blocks 8.02
  • Vusual C++ 2008 Express
  • Dev-C++ 4.9.9.2
Si on le fait dans un seul fichier, ça ne serait pas reconnu dans tout le projet. Merci de m'éclairer, si j'ai raté quelque chose.

Pour m'entrainer j'ai bidouillé ce site
 

Vous devez être inscrit pour pouvoir poster des messages

Retour au tutoriel

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | Fil RSS | XHTML 1.0 | CSS 2.0
Édité par Simple IT SARL : Nous contacter | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 433 Zéros connectés | Requêtes SQL 6 requêtes | Temps de génération de la page : Total (SQL) 0.0779s (0.0639s)