Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » Add In
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

Add In

Posté le 04/02/2014 21:55

Salut,
Mon apprentissage du C avance bien, mais pour le moment je ne sais toujours pas comment mettre mon programme de Code Blocks sur ma calculatrice. C'est donc pour moi un peu difficile de visualiser ce que je programme.
Ma calculatrice est compatible avec les Addins, mais le code sur Code Blocks n'est pas au format .g1a.
Même si c'est pour mettre un programme minuscule (juste un affichage de texte), j'aimerai bien savoir comment ça marche.

Pouvez-vous m'aider ?


Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

Citer : Posté le 10/02/2014 20:01 | #


Problème incompréhensible...

#include "stdio.h"
#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 ?
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

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...)
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

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
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
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

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
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 !
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

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 main ()
{
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.
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

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...)
Smashmaster Hors ligne Ancien modérateur Points: 4561 Défis: 253 Message

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
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

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...

Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

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...)
Lephenixnoir Hors ligne Administrateur Points: 22763 Défis: 149 Message

Citer : Posté le 10/02/2014 20:56 | #


Je crois que "%f" c'est pour les float;
Les double, c'est "%lf".
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

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.
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

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...)
Lephenixnoir Hors ligne Administrateur Points: 22763 Défis: 149 Message

Citer : Posté le 10/02/2014 22:01 | #


Les formats sont les mêmes pour print et scan.
Wikipédia : float / double = %f / %lf
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 10/02/2014 22:06 | #


D'ailleurs, bienvenue Lephenixnoir ! N’hésite pas à venir te présenter ici
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
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

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
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 !
Smashmaster Hors ligne Ancien modérateur Points: 4561 Défis: 253 Message

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à.
Lephenixnoir Hors ligne Administrateur Points: 22763 Défis: 149 Message

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 ?
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

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 .
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

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...)
Lephenixnoir Hors ligne Administrateur Points: 22763 Défis: 149 Message

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.
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 12/02/2014 11:06 | #


Lephenixnoir a écrit :
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 )
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-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


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

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.
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

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...)
Alphacreator Hors ligne Membre Points: 1464 Défis: 43 Message

Citer : Posté le 13/02/2014 13:31 | #


Normalement oui: l'add-in Serial Monitor le fait
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

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
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

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...)
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 10/04/2014 20:00 | #


char variable1=14,variable2;
variable2=caractere[variable1];

Tout simplement
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

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...
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

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...)
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 10/04/2014 20:14 | #


Mais justement, un caractère est un nombre ! Si ensuite tu tapes par exemple :
printf("%c",variable2);

Tu pourras voir ce caractère.
Par contre si tu tapes :
printf("%d",variable2);

Tu verras le nombre.
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

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_?
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

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...)

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 45 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