Sujet: A peine je m'y mets que j'ai déjà des problèmes >.< !
11/09/2011 @ 23:25:06: Clandestino: A peine je m'y mets que j'ai déjà des problèmes >.< !
Avant de t'attaquer à un language en particulier, tu devrais plutôt t'orienter vers de l'algorithmique, histoire d'acquérir les bases de la programmation. Un langage de programmation, c'est comme une langue étrangère : de la grammaire et du vocabulaire. Mais à la base, il faut dejà savoir parler...
11/09/2011 @ 23:27:35: crodilus: A peine je m'y mets que j'ai déjà des problèmes >.< !
A sa place, je laisserais tomber le C pour l'instant et je me dirigerais vers un langage qui empêche de faire ce genre de bêtises ...

Pascal, Java, C#, ...


A vrai dire on va me l'imposer à l'école :bogoss: !
11/09/2011 @ 23:32:30: rfr: A peine je m'y mets que j'ai déjà des problèmes >.< !
Es-tu en train de dire que l'école dans laquelle tu vas aller va commencer l'apprentissage de la programmation avec le C?
11/09/2011 @ 23:39:46: crodilus: A peine je m'y mets que j'ai déjà des problèmes >.< !
Es-tu en train de dire que l'école dans laquelle tu vas aller va commencer l'apprentissage de la programmation avec le C?


Oui ! Voici le programme de première si vous voulez y jeter un coup d'oeil :clindoeil:

http://www.helha.be/?page_id=1271

ben si:

int genereNombre ()
et
nombreMystere = genereNombre(MIN, MAX);


Si je mets ceci :

nombreMystere = compareNombre (nombreMystere)

int genereNombre (int nombreMystere)

et que je remplace tout les nombres dans la fonction genereNombre par nombreMystere ?

La c'est correct ? Car si ce n'est pas le cas je ne vois plus quoi faire car nombreMystere est égal au nombre généré par la fonction genereNombre. De plus l'argument que j'ai envoyé de dans est bien le nombreMystere pour lequel je cherche une valeur.
12/09/2011 @ 10:11:50: Dr_Dan: A peine je m'y mets que j'ai déjà des problèmes >.< !
Es-tu en train de dire que l'école dans laquelle tu vas aller va commencer l'apprentissage de la programmation avec le C?


C'est souvent le cas! :oh:
Mais peut-importe le langage de programmation, ici c'est un problème dans la méthode d'apprentissage.

Programmer des fonctions et jouer avec des pointeurs alors qu'on ne maîtrise pas encore les concepts de base, c'est comme piloter une formule 1 alors qu'on apprend à conduire. :joce:
12/09/2011 @ 10:33:05: crodilus: A peine je m'y mets que j'ai déjà des problèmes >.< !


C'est souvent le cas! :oh:
Mais peut-importe le langage de programmation, ici c'est un problème dans la méthode d'apprentissage.

Programmer des fonctions et jouer avec des pointeurs alors qu'on ne maîtrise pas encore les concepts de base, c'est comme piloter une formule 1 alors qu'on apprend à conduire. :joce:


Je suis bien conscient de se que tu dis :clindoeil: ! Je sais que mon aprentissage par moi même est rempli de lacunes. Mais si je le fait c'était d’abord pour voir si cela me plaisais afin de me diriger vers le études concernées.

Les pointeurs ? ! J'ai déjà lu un mot la dessus mais ici je n'en utilise pas :ohwell: ! Bien qu'il y en a qui doivent être cachés ? !

La méthode que je suis est celle donnée sur le site du zero

]http://www.siteduzero.com/tutoriel-3-14189-apprenez-a-programmer-en-c.html
12/09/2011 @ 10:39:37: gizmo: A peine je m'y mets que j'ai déjà des problèmes >.< !

Les pointeurs ? ! J'ai déjà lu un mot la dessus mais ici je n'en utilise pas :ohwell: ! Bien qu'il y en a qui doivent être cachés ? !


char** est un pointeur de pointeur. Donc tu en utilises deja.
12/09/2011 @ 10:44:10: crodilus: A peine je m'y mets que j'ai déjà des problèmes >.< !


char** est un pointeur de pointeur. Donc tu en utilises deja.


Donc j'utilise des pointeurs sans le savoir :disapointted: !

C'est le prochain chapitre de la méthode...

A sa place, je laisserais tomber le C pour l'instant et je me dirigerais vers un langage qui empêche de faire ce genre de bêtises ...

Pascal, Java, C#, ...


Vous aviez peut-être raison :ohwell: ! J'aurais peut-être du en rester à Python III :lol: !
12/09/2011 @ 12:30:35: max: A peine je m'y mets que j'ai déjà des problèmes >.< !

Si je mets ceci :

nombreMystere = compareNombre (nombreMystere)

int genereNombre (int nombreMystere)


Du tout.

Le problème, c'est ça:


int genereNombre (int Max,int Min)
{
int nombre=0;
const int MAX = 100, MIN = 1;
srand (time(NULL));
nombre = (rand () % (MAX - MIN + 1)) + MIN;
return nombre;
}


les arguments Max et Min ne servent à rien
et les constantes MAX et MIN sont déjà déclarées dans main() (ligne 31 dans ton dernier message).
12/09/2011 @ 15:37:52: crodilus: A peine je m'y mets que j'ai déjà des problèmes >.< !
Donc je suppose que je dois corriger mon code de cette manière :


  1. #include <stdio.h> 
  2. #include <stdlib.h> 
  3. #include <time.h> 
  4. int genereNombre () 
  5.     int nombreMystere=0
  6.     const int MAX = 100, MIN = 1
  7.     srand (time(NULL)); 
  8.     nombreMystere = (rand () % (MAX - MIN + 1)) + MIN; 
  9.     return nombreMystere; 
  10. int compareNombre(int nombreEntre, int nombreMystere) 
  11.     if (nombreEntre==nombreMystere) 
  12.     { 
  13.         printf("bravo tu as trouvé le nombre"); 
  14.     } 
  15.     else if (nombreEntre != nombreMystere) 
  16.     { 
  17.         printf("\nContinue de chercher ce n'est pas le bon nombre !\n"); 
  18.     } 
  19.     return nombreEntre; 
  20. int main ( int argc, char** argv ) 
  21.     int nombreMystere = 0, nombreEntre = 0, nombreEntre1=0, compteur=2
  22.      
  23.     nombreMystere = genereNombre(); 
  24.     printf("Inscrivez un nombre : "); 
  25.     scanf("%d",&nombreEntre); 
  26.     compareNombre (nombreEntre,nombreMystere); 
  27.     if (nombreEntre != nombreMystere) 
  28.     { 
  29.         do 
  30.         { 
  31.             printf("\nInscrivez a nouveau un nombre : "); 
  32.             scanf("%d",&nombreEntre1); 
  33.             if (nombreMystere > nombreEntre1) 
  34.             { 
  35.                 printf("\nC'est plus !\n"); 
  36.             } 
  37.             else if (nombreMystere < nombreEntre1) 
  38.             { 
  39.                 printf("\nC'est moins !\n"); 
  40.             } 
  41.             else 
  42.             { 
  43.                 printf ("\nBravo, vous avez trouve le nombre mystere en %d coups !!!\n\n", compteur); 
  44.             } 
  45.             compteur++; 
  46.         } while (nombreEntre1 != nombreMystere); 
  47.     return 0
  48. }
13/09/2011 @ 10:21:11: Schnick: A peine je m'y mets que j'ai déjà des problèmes >.< !
Je ne suis ni un expert en C ni un expert en programmation mais je trouve qu'il y a plusieurs choses qui sont inutiles ou qui rendent la chose confuse :

1) Il n'y a pas de commentaire dans le texte donc à part le nom de la fonction, on doit deviner ce qu'elle fait et ce qu'elle renvoit, or le commentaire est super important.

2) Pour la fonction genereNombre()

- Pourquoi créer une variable qui porte le même nom que celle utilisée dans le main, cela peut porter à confusion.
- D'ailleurs tu pourrais même si je ne me trompe pas ne pas déclarer de variable du tout et faire directement :
  1. return (rand () % (MAX - MIN + 1)) + MIN;

- Il me semble que je déclarerais les constantes en global puisque c'est une règle générale de ton programme qui ne permet pas qu'un nombre ne soit pas entre 1 et 100

3) Pour la fonction compareNombre(...)

- Je retournerai une valeur de résultat de la comparaison au lieu de renvoyer un nombre que tu connais déjà puisqu'il est en entrée.
Exemple : -1, si ton nombre est plus petit que ton nombre mystère, 0 s'il est égal ou +1 s'il est plus grand.
L'avantage de cette fonction, c'est que du coup tu n'aurais rien à appeler dans ton mais que la fonction compare et genere, une boucle et un if
- A quoi sert le if derrière le else ?

4) Du coup dans le main la logique deviendrait un truc du genre

- Le système génère un nombre mystère
- J'ouvre une boucle dont je ne sors que lorsque mon nombre est trouvé
- J'incrémente mon compteur
- Je demande un nombre à l'utilisateur
- Je le compare à mon résultat
- si - 1, nombre plus petit, si +1, nombre plus grand, si 0, bravo et sortie
- Je ferme la boucle
13/09/2011 @ 18:54:29: crodilus: A peine je m'y mets que j'ai déjà des problèmes >.< !
3) Pour la fonction compareNombre(...)

- Je retournerai une valeur de résultat de la comparaison au lieu de renvoyer un nombre que tu connais déjà puisqu'il est en entrée.
Exemple : -1, si ton nombre est plus petit que ton nombre mystère, 0 s'il est égal ou +1 s'il est plus grand.


Donc si je suis te bien, au lieu de renvoyer le nombreEntre il reverait -1,0 ou 1 dans le main. Si -1 ou 1 il recommence la boucle compareNombre ou si 0 il s'arrête là ?

En ce qui concerne la déclaration des variables je suis d'accord que c'est un peu brouillon d'utiliser le même nom dans des fonctions différentes !

C'est vrai qu'ajouter des commentaire pourrait rendre le tout plus clair !


Si je regarde se que j'ai fait pour le moment, j'arrive à construire un programme qui marche. Mais le problème c'est qu'il fonctionne avec des incohérences ou des choses superflues !
13/09/2011 @ 22:01:24: dede: A peine je m'y mets que j'ai déjà des problèmes >.< !

Si je regarde se que j'ai fait pour le moment, j'arrive à construire un programme qui marche. Mais le problème c'est qu'il fonctionne avec des incohérences ou des choses superflues !


Bienvenue dans le monde du développement informatique !
15/09/2011 @ 15:08:17: crodilus: A peine je m'y mets que j'ai déjà des problèmes >.< !


Bienvenue dans le monde du développement informatique !


Aujourd'hui j'y ai mis les pieds ! C'était la rentrée ! :grin:
27/09/2011 @ 19:32:41: crodilus: A peine je m'y mets que j'ai déjà des problèmes >.< !
Bonsoir les amis ! J'espère que la communauté va bien :grin: ?

Aujourd'hui je viens vous posez une question mais pas sur un langage de programmation :lol: !

Nous avons un petit cours consacré au MS-DOS, étant intrigué par le sujet et me rappelant la bonne vieille fenêtre de démarrage de mon windows 98 je me suis décider d'en approfondir les connaissances par moi même :smile: ! Mais très vite j'ai pu lire que le MS-DOS avait été abandonné depuis quelques années par Windows au profit de Windows NT.

Donc je me demandais si cela était encore utile d’approfondir ses connaissances sur le MS-DOS ou si il valait mieux que je consacre ce temps à un langage de programmation ou à toutes autres choses ?

Amicalement crodilus !
28/09/2011 @ 00:04:34: max: A peine je m'y mets que j'ai déjà des problèmes >.< !
Je ne pense pas que savoir optimiser un config.sys pour avoir au plus près de 640Ko au démarrage ait encore un sens de nos jours. Disons que tu peux rapidement faire le tour avec l'interpréteur de commande fournis dans nos windows modernes pour savoir comment naviguer dans tes dossiers, copier ou déplacer des fichiers, les supprimer, en changer les attributs, faire une petite boucle rudimentaire, afficher un message etc... Ca peut aider les jours de disettes mais n'espère pas faire de grande chose avec.
28/09/2011 @ 08:17:47: Clandestino: A peine je m'y mets que j'ai déjà des problèmes >.< !
Aaaaah, les joies du himem.sys et du pc-tools optimizer... Nostalgie, quand tu nous tiens !
28/09/2011 @ 09:16:34: crodilus: A peine je m'y mets que j'ai déjà des problèmes >.< !
Ca peut aider les jours de disettes mais n'espère pas faire de grande chose avec.


Pourtant à se que j'ai pu lire les fichiers batch sont encore fort utilisés ?!

Peut-être qu'il y a différence entre l'apprentissage du MS-DOS et des fichiers Batch ?
28/09/2011 @ 09:27:52: Jean-Christophe: A peine je m'y mets que j'ai déjà des problèmes >.< !
Tout dépend de ton activité future.

Il y a une analogie que j'aime beaucoup, c'est celle entre l'informatique et les métiers de la construction.
Je fais de l'informatique, comme beaucoup sur ce site, mais je serai incapable de faire les tâches quotidiennes de pas mal de monde sur ce site. Tout comme un électricien ne sait pas forcément faire une charpente.
Bref. Dans ma spécialité qu'est l'infrastructure, je me sers de fichiers batch presque de manière quotidienne.
Que ce soit des login script, des script d'installation automatique, de configuration, utilitaires ou cosmétique, je m'en sers très régulièrement.

Tout comme dans le bâtiment, il y a le gros oeuvre, les finitions et les aménagements extérieurs, en informatique, il y a le développement, l'infrastructure et la R/D hardware.
Si tu veux t'orienter vers le développement, tu peux te contenter du strict minimum de connaissance batch/script/etc. Si par contre, tu comptes aller vers l'infrastructure, ça te sera utile tous les jours.
28/09/2011 @ 09:28:50: Jean-Christophe: A peine je m'y mets que j'ai déjà des problèmes >.< !
Ca peut aider les jours de disettes mais n'espère pas faire de grande chose avec.

:mmmfff: Je suis PRESQUE vexé :smile:
... 
Retour