Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Mes questions en C
Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

Mes questions en C

Posté le 12/05/2014 13:53

Hey tout le monde ! Petit edit du poste puisque je m'y suis remis.

Dans ce premier poste, je répertorie les 5 exercices sur les tableaux d'OC et mes futures questions apparaîtront en dessous

Exercice 1 résolu : http://hastebin.com/eceyocutez.pl (affiche la somme des valeurs du tableau)

Exercice 2 résolu : http://hastebin.com/cuqeremehu.cpp (affiche la moyenne de la somme des valeurs du tableau)

Exercice 3 résolu : http://hastebin.com/aluyumazit.cpp (copie les valeurs du premier tableau dans le second et affiche ces valeurs)

Futures questions ici.


Précédente 1, 2, 3, 4
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 29/01/2016 18:51 | #


Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaah! j'ai bien cru que j'allais y rester
Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

Citer : Posté le 29/01/2016 20:58 | #


Mon troisième exercice me demande de créer une fonction copierTableau qui prend en paramètre deux tableaux. Le contenu du premier tableau doit être copié dans le second tableau, voici mon code :

http://hastebin.com/amimumudun.cpp

J'ai deux erreurs :

erreur : invalid use of void expression


erreur : expected expression before ']' token
         tableauOriginal[]=tableauCopie[];


Que se passe-t-il ? Le cours d'OC ne nous donne aucune indications sur comment calculer des valeurs de tableaux, comment en copier un dans un autre, ce genre de trucs et ils nous demandent de faire ce genre d'exercices après... C'est pas facile pour moi alors je tente des trucs mais bien sûr, ça ne marche pas Il ne devrait pas y avoir tout faux mais seulement 1 ou 2 parties, surtout le moment où je copie le premier tableau dans le deuxième.
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Drac0300 Hors ligne Membre Points: 839 Défis: 39 Message

Citer : Posté le 29/01/2016 21:13 | #


'tableauOriginal[]=tableauCopie[];' wtfisdat !?
bon tu vois ce que c’est qu’un tableau ? C’est un pointeur vers un gros bloc de mémoire. Trop gros pour que le proco puisse le copier en une fois.
La première option qui s’offre à toi pour copier un tableau est de le copier case par case :
for (i=0;i<tailleTableau;i++) tableauCopie[i]=tableauOriginal[i]


hereusement il existe une fonction toute faite pour ça qui est – peut-être, on parle du SDK de Casio – plus optimisée. Elle se situe dans string.h et voilà son prototype :
void *memcpy(void *dest, const void *src, size_t n)


Dans Z/1Z, 42==666
Coïncidence ? Je ne pense pas.
Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

Citer : Posté le 29/01/2016 21:24 | #


Merci, j'avais oublié la variable mais il me reste toujours l'erreur du void :/
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 29/01/2016 21:27 | #


Cette fonction existe dans le sdk casio (parce que ça me changerait la vie)
Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

Citer : Posté le 29/01/2016 21:28 | #


En quoi ça te changerait la vie ? x)

(Voilà la principale différence entre un bon codeur et moi : le bon codeur voit l'utilité de chaque fonction alors que moi, non )
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 29/01/2016 21:29 | #


Va checkez mon topic sur mon moteur de déplacement (projet actif dans la signature) et tu verras pourquoi

Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

Citer : Posté le 30/01/2016 08:04 | #


Petit up sur mon problème
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 30/01/2016 08:19 | #


Drac t'as donné la réponse déjà.
1337
Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

Citer : Posté le 30/01/2016 08:38 | #


Non, il m'a fait régler le problème de la copie de tableau et m'a donné un exemple de fonction plus optimisée pour faire ça d'après lui mais mon erreur se situe ailleurs dans le code...
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 30/01/2016 08:50 | #


tableauCopie[]={0};


ça ne va pas, là tu déclares un tableau d'une seule case alors que tu veux pouvoir en copier 7.
Donc tu peux faire :

tableauCopie[]={0,0,0,0,0,0,0};
// Ou
tableauCopie[7]={0};


Ajouté le 30/01/2016 à 08:56 :
Ah et aussi, éventuellement, tu espère quoi de cette ligne ? Que va t-il s'afficher à ton avis ?


printf("Les valeurs des deux tableaux sont %d\n", copieTableau(tableauOriginal, tableauCopie, 7));

1337
Kirafi Hors ligne Membre Points: 2180 Défis: 10 Message

Citer : Posté le 30/01/2016 10:04 | #


Oui parce que le problème Elto c'est que tu as un code qui ne compile pas, mais dans tous les cas même si on corrigeait les erreur pour qu'il compile, bah t'aurais un code qui fait n'importe quoi
iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

Citer : Posté le 30/01/2016 12:15 | #


Oui, j'avais oublié de mettre la taille du deuxième tableau pour qu'il ait 7 cases initialisées à 0, merci.

Pour le deuxième code, je m'attends à ce qu'il affiche les valeurs des deux tableaux (les mêmes) pour vérifier si mon code marche :/

Ajouté le 30/01/2016 à 13:11 :
J'avais fait une erreur en lisant l'exercice, j'ai réglé le problème (merci Kirafi). Je passe à la suite du cours du coup !
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 30/01/2016 18:44 | #


Je te conseille de lire la documentation sur printf.
Tu constateras que l'attribut %d affiche un entier, en aucun cas un tableau, encore moins une fonction qui ne retourne rien
Il te faut donc appeler ta fonction avant le printf, puis faire une boucle for pour afficher chaque entier au fur et à mesure.
Au boulot !
1337
Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

Citer : Posté le 30/01/2016 18:46 | #


Tu n'as pas vu mon dernier message ?

J'ai réglé le problème, je me suis rendu compte du problème avec le %d au deuxième exercice et la boucle for au troisième
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 30/01/2016 18:48 | #


Eltoredo a écrit :
Tu n'as pas vu mon dernier message ?


Si. Tu disais merci à Kirafi...
1337
Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

Citer : Posté le 30/01/2016 18:49 | #


Oui parce que Kirafi m'a aidé, j'ai eu pas mal de mal à tout comprendre au début mais maintenant, c'est bon !
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 30/01/2016 18:51 | #


Eltoredo a écrit :
Oui parce que Kirafi m'a aidé, j'ai eu pas mal de mal à tout comprendre au début mais maintenant, c'est bon !


Ok Kirafi a genre rien dit mais bon c'est pas grave
[/HS]
1337
Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

Citer : Posté le 30/01/2016 19:35 | #


On est allés sur TS

Est-ce qu'on peut mettre la variable d'une chaîne de caractères dans un tableau (genre char tableau[chaine];) ?
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 30/01/2016 19:43 | #


Tu veux vraiment massacrer ce langage toi
Non.
Utilise memcpy ou strcpy. (Enfin je ne pense pas que la librairie string soir disponible sur le SDK Casio, alors prend plutôt memcpy)
1337
Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

Citer : Posté le 30/01/2016 19:44 | #


Ok, merci, je viens de voir ces fonctions à l'instant
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Précédente 1, 2, 3, 4

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 v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 98 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