Alors ces glouglous, tu as regardé un peu mieux comment ça fonctionnait ?
Les jeunes passions sont des feux de paille, on se donne à fond pendant un temps, puis on finit par s’en foutre ^^
Ou pas ;p
Meuh non je m’en fous pas, roh !
Il est sympa ce fil, ca m’aurait aider y a trois/quatre ans quand j’ai decider sauvagement de me jetter dans le C pour prendre de l’avance sur le programme scolaire
@wavesound :
Tu as tendance a vouloir mener tout de front et a faire comme la majorite des jeunes, c’est a dire se mettre devant le clavier et pondre de longues lignes de codes sans comprendre finement ce qu’elles font (ce n’est pas un reproche, c’est une constatation au vue des 21 pages du fil que je viens de parcourir et de bons nombres de personnes de ma classe (oui meme en ecole d’inge option electronique, y en as qui apers 2 ans de C ne savent pas ce qu’est une liste chainée et font encore des erreurs sur des printf)
D’abord tu doit calmement envisager ce que tu va faire (on dis conceptualiser le truc pour faire bien :~) et ensuite le “coder” dans un langage dit “naturel”, la phase 1 de Matt, puis ensuite coder réellement. Après ce qui est dur quand on est débutant, je m’en rappelle encore un peu, c’est qu’on veux absolument que ca avance, que tout aille vite, mais la c’est pas possible. Il vaut mieux passer 2/3 heures a cogiter pour mettre a plat un tout petit bout de ton programme plutot que de foncer tete baissé et de “gaspiler” (parce que tu apprends quand meme des choses mais c’est plus une question de chance et de feeling) du temps. Quand tu aura plusieurs milliers de lignes de code derrière toi tu détailleras moins tes briques élémentaires mais tu fera toujours un petit bout de texte histoire d’avoir une idée de la direction a prendre.
Ensuite pour ce qui est des fonctions tu dis qu’elles te posent problèmes, c’est a dire?? Qu’est ce qui te chagrine dans les fonctions ?? Une fonction te permet juste de renvoyer un resultat en “fonction” de ce que tu lui donne en entrée (ce que Fran.b et Matt t’ont expliqué beaucoup plus joliment que moi… et que tu as sans doute lu sur le site du Zero). Tu peux voir ca comme un échange d’un coté toi tu donnes une 10aines de feuilles de papier et de l’autre tu veux recevoir un poster (ouais c’est assez imagé et peut etre un peu tiré par les cheveux…)
Tiens ca c’est spécialement sur les fonctions :
www-rocq.inria.fr/codes/Anne.Can … itre4.html
Sinon j’ai trouvé ca sur le net, si ca t’interesse (bon le site est tres moche :p). C’est le reste du lien juste au dessus.
www-rocq.inria.fr/codes/Anne.Canteaut/COURS_C/
Merci pour ta réponse.
Effectivement, c’est vrai que je veux aller trop vite.
Je vas essayer de suivre tes conseils au mieux.
Quant aux fonctions, je ne sais pas si c’est vraiment plus dur ou si ce n’est que moi qui me fais des idées…
Je vais aller voir ces liens, merci encore.
salut wavesound
je reviens, j’ai lu juste les dernieres pages du fil.
au risque d’etre redondant des autres,
de ce que j’ai lu, t’avais pigé que c’était un bout de code qui fait des calcules en utilisant quelques arguments paramètres qui apportent des infos sur comment on va faire les calculs, dans quel cadre, pour quelles valeurs etc…
par contre tu semblais bloquer sur le return.
“main” c’est la fonction principale, celle qui va etre appellée quand l’executable de ton programme est lancée. en général on lui fait retourner un chiffre… genre 0 si on veut pas se prendre la tete, mais tu pourrais lui faire retourner des chiffres comme… 15 ( et 15 voudrant dire au pif…“erreur de configuration untelle” ). tu peux même appellée cette fonction main à partir d’un autre programme et lire le resultat de l’execution à la fin du programme.
tout ça pour te dire qu’à présent tout ce que tu as fait c’était déjà de comprendre le contenu d’une fonction qui s’appelle main, et qui en appelle d’autres: toutes celles que tu as ecris dans ton main().
et en gros toutes les fonctions ont droit à un emplacement mémoire à la fin de leur fonctionnement, ou elles peuvent écrire un résultat.
à moins d’avoir précisé “void”. genre…[quote] void MaFonction(int un_parmètre){ return void;};[/quote]
car là on lui demande de retourner “void”, c’est à dire vide.
donc dans ton main ou dans une fonction appellée par ton main ( ou dans une fonction appellée par une fonction appellée par ton main ( ou etc…)), tu peux ecrire le code qui fait appeller MaFonction();
mais comme ça ne retourne rien, tu ne peux pas ecrire :
parce que ça n’a pas de sens.
Cependant tout le reste du temps, donc pour les fonctions comme un_type une_fonction(un_autre_type un_paramètre)
tu peux écrire
si tu as bien défini int Mon_Calcul(){ return 7; }
en gros le return c’est ce qui va rester de ta fonction, une fois qu’elle a été effectuée.
Le feu de paille couve ou bien c’est foutu???
Ben la c’est bientôt la rentrée scolaire, donc pour s’y mettre maintenant, c’est pas trop le moment. Mais je lâche pas.
Mwhahahaha le fake
Mwhahahaha le fake [/quote]
Naaaan. :smt111
Je m’y remets. Il faut que je révise ce que j’ai déjà vu en douceur, ensuite on pourra en apprendre plus et répondre aux (lointaines) questions de mattotop !
Voila les deux codes que j’ai retrouvé sur ce fil. Malheureusement, ça compile pas. Il doit y a voir des paquets GCC non installés ?
[code]#include <stdio.h>
#include <stdlib.h>
#include <time.h>
long jeu(long MAX, long MIN)
{
long nombreMystere, nombreEntre;
srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
do
{
printf(“Quel nombre pensez-vous que j’ai choisi ? “);
scanf(”%ld”, &nombreEntre);
if (nombreMystere > nombreEntre)
{
printf("+\n\n");
}
else if (nombreMystere < nombreEntre)
{
printf("-\n\n");
}
else
{
printf("=\n\n");
}
}
while (nombreEntre != nombreMystere);
}
int main(void)
{
long MAX = 0, MIN = 0;
char rejouer = 'o';
printf("\n");
printf("--------------------------------\n--------------------------------------------------\n\n");
do
printf("Le nombre tiré sera compris entre 1 et : ");
scanf("%ld", &MAX);
jeu(MAX);
printf("Rejouer [o/n] ? ");
scanf("%c", &rejouer);
scanf("%c", &rejouer);
printf("\n");
} while (rejouer == 'o');
return 0;
}
[/code]
[code]#include <stdio.h>
int main(void)
{
int nombre = 0;
printf("\n"); ------------------\n\n");
printf("Quel type de calcul souhaitez-vous effectuer ?\n\n1. Addition\n2. Soustraction\n3. Multiplication\n4. Division\n");
scanf("%d", &nombre);
printf("\n");
switch (nombre)
{
case 1:
printf("Vous souhaitez effectuer une addition.\n\n");
float resultat1 = 0, nombre1 = 0, nombre2 = 0;
printf("Entrez le premier nombre : ");
scanf("%f", &nombre1);
printf("Entrez le deuxième nombre : ");
scanf("%f", &nombre2);
resultat1 = nombre1 + nombre2;
printf("%f + %f = %f", nombre1, nombre2, resultat1);
printf("\n\n");
break;
case 2:
printf("Vous souhaitez effectuer une soustraction.\n\n");
float resultat2 = 0, nombre3 = 0, nombre4 = 0;
printf("Entrez le premier nombre : ");
scanf("%f", &nombre3);
printf("Entrez le deuxième nombre : ");
scanf("%f", &nombre4);
resultat2 = nombre3 - nombre4;
printf("%f - %lf = %f", nombre3, nombre4, resultat2);
printf("\n\n");
break;
case 3:
printf("Vous souhaitez effectuer une multiplication.\n\n");
float resultat3 = 0, nombre5 = 0, nombre6 = 0;
printf("Entrez le premier nombre : ");
scanf("%f", &nombre5);
printf("Entrez le deuxième nombre : ");
scanf("%f", &nombre6);
resultat3 = nombre5 * nombre6;
printf("%f * %f = %f", nombre5, nombre6, resultat3);
printf("\n\n");
break;
case 4:
printf("Vous souhaitez effectuer une division.\n\n");
float resultat4 = 0, nombre7 = 0, nombre8 = 0;
printf ("Entrez le dividande : ");
scanf("%f", &nombre7);
printf("Entrez le diviseur : ");
scanf("%f", &nombre8);
resultat4 = nombre7 / nombre8;
printf("%f / %f = %f\n\n)", nombre7, nombre8, resultat4);
break;
default:
printf("Opération inconnue. Veuillez relancer le programme et saisir un nombre valide.\n\n");
break;
}
return 0;
}
[/code]
wavesound@Cosmos:~$ make /home/wavesound/Programmes/PlusMinus\ 1.0.0
make: *** Pas de règle pour fabriquer la cible « /home/wavesound/Programmes/PlusMinus 1.0.0 ». Arrêt.
wavesound@Cosmos:~$ make /home/wavesound/Programmes/SimpleCCalculator\ 1.0.1
make: *** Pas de règle pour fabriquer la cible « /home/wavesound/Programmes/SimpleCCalculator 1.0.1 ». Arrêt.
wavesound@Cosmos:~$
On en est pas là.quote="mattotop"
Bon, maintenant plus dur, et pour l’instant totalement détaché du reste:
fais la fonction demandeNombre, qui affiche “Veuillez donner le argument de :”, qui prend et comme argument, et qui attend une valeur numérique int, puis qui renvoie cette valeur.[/quote]Alors pourrais tu répondre à cette dernière question qui date d’il y a trois pages et deux mois ?
intraitable le matt ?
Ben pour construire une maison, on ne commence pas par le toit.
La compil, c’est aprés avoir écrit le code.
Je n’arrive pas à trouver la réponse pour le moment. Réviser mon cours me semble essentiel.
Et même avec du bon code (qui n’est pas de moi) j’ai une erreur à la compilation :
/home/wavesound/Programmes/test.c:7: warning: incompatible implicit declaration of built-in function ‘printf’
/home/wavesound/Programmes/test.c:8: warning: incompatible implicit declaration of built-in function ‘scanf’
wavesound@Cosmos:~$
c’est pas une erreur mais un warning
[mode trop gentil]déjà si ton fichier à compiler s’appelle truc.c, tu fabriques ton executable truc en faisant make truc dans le répertoire ou se trouve truc.c[/mode trop gentil]
Mais avant de vouloir compiler et de comprendre les warnings ou les erreurs de compil, il faut comprendre le code que tu ecris.
Quel interet de regarder ton ordinateur compiler pour compiler ?
J’ai quand même des notions, j’ai réussi à coder une calculette avec menus et un jeu avec menus aussi, quand même…
De la à dire que je ne comprends pas mon code.
Sinon, pas besoin d’être en mode “trop gentil”.
quote="wavesound"
Sinon, pas besoin d’être en mode “trop gentil”. [/quote]OK. Alors:[quote=“mattotop”]On en est pas là.quote="mattotop"
Bon, maintenant plus dur, et pour l’instant totalement détaché du reste:
fais la fonction demandeNombre, qui affiche “Veuillez donner le argument de :”, qui prend et comme argument, et qui attend une valeur numérique int, puis qui renvoie cette valeur.[/quote]Alors pourrais tu répondre à cette dernière question qui date d’il y a trois pages et deux mois ?[/quote]
OK. Alors :
[quote=“wavesound”]Je n’arrive pas à trouver la réponse pour le moment. Réviser mon cours me semble essentiel.
Et même avec du bon code (qui n’est pas de moi) j’ai une erreur à la compilation :
[/quote]