Posté le 04/02/2014 21:55
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 111 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 10/02/2014 20:01 | #
Problème incompréhensible...
#include "stdlib.h"
int main ()
{
int tableau[3]={0,5,98};
double moyenne;
moyenne=TL_Moyenne(tableau,3);
printf("Moyenne: %f",moyenne);
return 0;
}
int TL_Somme(int tableau[],int taille)
{
int i,somme=0;
for(i=0;i<taille;i++){somme+=tableau;}
return somme;
}
double TL_Moyenne(int tableau[],int taille)
{
int i;
double moyenne=0;
for (i=0;i<taille;i++){moyenne+=tableau;}
moyenne/=i;
return moyenne;
}
J'ai une erreur lors de la compilation :conflicting types for 'TL_Moyenne'
Le prototype de la fonction est dans un .h, dans le même dossier.
Savez-vous d'où vient cette erreur ?
Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Super Mario 3
warrior
Jump Ball
First Fly
►Jeu gagnant des 48h CPC n°12◄
Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Citer : Posté le 10/02/2014 20:09 | #
Je pense que l'erreur vient de la : printf("Moyenne: %f",moyenne);
Je ne suis pas sur, mais je pense que printf ne marche pas avec des double; essaye en transformant tous tes doubles en int
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !Citer : Posté le 10/02/2014 20:12 | #
Non, printf marche aussi avec les doubles. Avec un int on doit écrire %d, avec un double c'est %f.
Même en supprimant la ligne avec printf j'ai toujours la même erreur.
Ajouté le 10/02/2014 à 20:15 :
Quand je met la fonction TL_Moyenne directement dans la fonction main ça marche
{
int tableau[3]={0,5,98};
int taille=3;
//moyenne=TL_Moyenne(tableau,3);
int i;
double moyenne=0;
for (i=0;i<taille;i++){moyenne+=tableau;}
moyenne/=i;
printf("Moyenne: %f",moyenne);
return 0;
}
Et dès que je mets le calcul de la moyenne dans une autre fonction (comme je l'ai fais précédemment) bizarrement ça ne marche plus.
Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Super Mario 3
warrior
Jump Ball
First Fly
►Jeu gagnant des 48h CPC n°12◄
Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Citer : Posté le 10/02/2014 20:17 | #
Regarde bien si le prototype de la fonction TL_Moyenne est bien identique dans le .c et .h
Citer : Posté le 10/02/2014 20:25 | #
Décidément je n'y comprend plus rien.
Quand je remplace le 'double' devant ma fonction TL_Moyenne par un 'int' (sans changer le prototype), ça marche.
Et pourtant ma fonction est censée renvoyer un double...
Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Super Mario 3
warrior
Jump Ball
First Fly
►Jeu gagnant des 48h CPC n°12◄
Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Citer : Posté le 10/02/2014 20:56 | #
Je crois que "%f" c'est pour les float;
Les double, c'est "%lf".
Citer : Posté le 10/02/2014 21:02 | #
Non, %f se met dans un printf pour afficher un double.
%lf se met dans un scanf pour demander un double.
Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Super Mario 3
warrior
Jump Ball
First Fly
►Jeu gagnant des 48h CPC n°12◄
Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Citer : Posté le 10/02/2014 22:01 | #
Les formats sont les mêmes pour print et scan.
Wikipédia : float / double = %f / %lf
Citer : Posté le 10/02/2014 22:06 | #
D'ailleurs, bienvenue Lephenixnoir ! N’hésite pas à venir te présenter ici
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !Citer : Posté le 10/02/2014 22:55 | #
Bienvenue Lephenixnoir !
Mettre un %f ou un %lf dans une chaîne de caractère ne provoquent pas d'erreurs de compilations (le compilateur ne vérifie pas le contenu d'une chaîne de caractère), l'erreur ne vient donc pas de là.
Citer : Posté le 11/02/2014 16:27 | #
En effet. Mais pour la lisibilité du code... en général je préfère faire la distinction -- mais peu importe.
J'ai souvent l'erreur "conflicting types for function" lorsque celle-ci n'est pas prototypée.
Fais attention à ce que le header soit bien inclus avant l'appel à la fonction.
Sinon, tu devrais peut-être vérifier que tu n'as pas un vieux prototype qui traîne quelque part ?
Citer : Posté le 11/02/2014 17:35 | #
J'avais oublié d'inclure le .h...
Mais c'est tout de même bizarre, ça marchait avec toutes les autres fonctions du .h. TL_Moyenne était la seule qui ne marchait pas, donc je n'ai pas pensé que le problème pouvait venir de la.
Merci .
Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Super Mario 3
warrior
Jump Ball
First Fly
►Jeu gagnant des 48h CPC n°12◄
Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Citer : Posté le 11/02/2014 18:20 | #
Ça peut marcher, soit parce que le code des fonctions est écrit avant le main(), soit parce que "par chance" elles sont compilées avant.
Dans l'ensemble c'est censé générer des erreurs.
Citer : Posté le 12/02/2014 11:06 | #
Dans l'ensemble c'est censé générer des erreurs.
ouaip, censé, mais là on parle quand même du SDK de casio (qui détecte/explique aussi bien les erreurs que mon grand père sourd entend )
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed
-mon tuto sur les Str
Mes calto: G25+, G75
Mon minecraft en dévelopement
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Citer : Posté le 12/02/2014 12:28 | #
Non, on ne parle pas du SDK de casio.
J'ai créé cette mini bibliothèque de fonctions travaillant sur les tableaux uniquement sur Code Blocks, et ça n'a rien à voir avec les calculatrices.
Ajouté le 13/02/2014 à 12:28 :
Savez-vous s'il est possible de faire des transfert avec le câble 3-pin dans un programme en C ?
J'aimerai me lancer dans un jeu à deux joueurs.
Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Super Mario 3
warrior
Jump Ball
First Fly
►Jeu gagnant des 48h CPC n°12◄
Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Citer : Posté le 13/02/2014 13:31 | #
Normalement oui: l'add-in Serial Monitor le fait
Citer : Posté le 13/02/2014 17:56 | #
Je viens de regardé les sources, mais Serial Monitor est programmé en C++ . Je n'en ai jamais vu avant donc c'est un peu difficile...
Et puis j'ai vu que ce programme peut faire plusieurs sortes de transferts. Moi je veux juste une fonction qui permet de transférer la valeur d'une variable d'une calculatrice à une autre.
Ajouté le 10/04/2014 à 19:52 :
Salut, j'ai une question mais je ne voulais pas ouvrir un nouveau topic pour ça...
Voilà, j'ai écrit ça au début de mon code source :
char caractere[]="123456789+-x/ABCDEFGHIJKLMNOPQRSTUVWXYZ";
J'ai une variable de type char qui contient le numéro du caractère souhaité.
Comment puis-je faire pour récupérer le caractère qui a le numéro stocké dans cette variable, dans le but d'être affiché ?
Par exemple, si ma variable vaut 15 ma fonction doit récupérer 'B'.
En fait c'est l'équivalent de StrMid en Basic.
Merci
Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Super Mario 3
warrior
Jump Ball
First Fly
►Jeu gagnant des 48h CPC n°12◄
Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Citer : Posté le 10/04/2014 20:00 | #
variable2=caractere[variable1];
Tout simplement
Citer : Posté le 10/04/2014 20:10 | #
Eh non, ce serait trop simple...
En faisant ça, ce n'est pas le caractère qui sera stocké mais le nombre correspondant à ce caractère (dans une chaîne de caractères chaque caractère est stocké par un nombre). Par exemple, en faisant variable2=caractere[1]; et que j'affiche variable2, ce n'est pas 1 qui s'affiche mais c'est 50 (parce que 50 code le caractère (et pas le nombre ) 1 apparemment...).
Moi ce que je veux, c'est récupérer un caractère de ma chaîne sous forme de chaîne de caractère de taille 1, pour pouvoir l'afficher. Exactement comme StrMid en Basic...
Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Super Mario 3
warrior
Jump Ball
First Fly
►Jeu gagnant des 48h CPC n°12◄
Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Citer : Posté le 10/04/2014 20:14 | #
Mais justement, un caractère est un nombre ! Si ensuite tu tapes par exemple :
Tu pourras voir ce caractère.
Par contre si tu tapes :
Tu verras le nombre.
Citer : Posté le 10/04/2014 20:20 | #
Ah oui
J'avais mis %d.
Merci beaucoup
Ajouté le 10/04/2014 à 22:11 :
Quelqu'un sait comment "s'appellent" les touches
X,O,T
F<->T
et
.
de la calculatrice en langage du SDK ?
KEY_CHAR_?
Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Super Mario 3
warrior
Jump Ball
First Fly
►Jeu gagnant des 48h CPC n°12◄
Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)