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 » Un algo qui ne marche pas!
Az Hors ligne Membre de CreativeCalc Points: 548 Défis: 10 Message

Un algo qui ne marche pas!

Posté le 19/05/2015 23:12

Salut, ça faisait longtemps que j'avais pas posé de question ici, mais là je bloque:
Cet algo est censé me remplir 3 listes avec des données mais les listes restent désespérément vides ! (zéro partout)
int output1, output2, output3;
[purple]int[/purple] const X0=[maroon]1580160[/maroon];
[purple]int[/purple] const Y0=[maroon]2144640[/maroon];
[purple]int[/purple] const Z0=[maroon]2745088[/maroon];
[purple]int[/purple] X=[maroon]1580160[/maroon];
[purple]int[/purple] Y=[maroon]2144640[/maroon];
[purple]int[/purple] Z=[maroon]2745088[/maroon];
[purple]int[/purple] planetStorageX1[125];
[purple]int[/purple] planetStorageY1[125];
[purple]int[/purple] planetStorageZ1[125];
[purple]char[/purple] i = [maroon]0[/maroon];
void generateOutputs(){
    [purple]int[/purple] local, local1;
    local = X0-(X/128);
    [b][blue]while[/blue][/b] (output1>1000){
        local1 = local%10;
        local = (local-local1)/10;
    }
    output1 = local;
    local = Y0-(Y/128);
    [b][blue]while[/blue][/b] (output1>1000){
        local1 = local%10;
        local = (local-local1)/10;
    }
    output2 = local;
    local = Z0-(Z/128);
    [b][blue]while[/blue][/b] (output1>1000){
        local1 = local%10;
        local = (local-local1)/10;
    }
    output3 = local;
    local = output1;
    output1 = output3*output2;
    local1 = output2;
    output2= local*output3;
    output3= local*local1;
    [b][blue]do[/blue][/b]{
        local1 = output1%10;
        output1 = (output1-local1)/10;
    } [b][blue]while[/blue][/b] (output1>1000);
    [b][blue]do[/blue][/b]{
        local1 = output2%10;
        output2 = (output2-local1)/10;
    } [b][blue]while[/blue][/b] (output1>1000);
    [b][blue]do[/blue][/b]
    {
        local1 = output3%10;
        output3 = (output3-local1)/10;
    } [b][blue]while[/blue][/b] (output1>1000);
}
void useOutputs(){
    [purple]int[/purple] planetDensity = [maroon]16[/maroon] + (output1 / 10);
    [purple]int[/purple] planetX, planetY, planetZ;
    [b][blue]for[/blue][/b] (i = [maroon]26[/maroon]; i == planetDensity+26; ++i){
        planetX = (i/2) + (output1/10) -33;
        planetY = (i/2) + (output2/10) -33;
        planetZ = (i/2) + (output3/10) -33;
        planetStorageX1[i-26] = planetX;
        planetStorageY1[i-26] = planetY;
        planetStorageZ1[i-26] = planetZ;
    }
}


Rien de mieux que le code lui-même pour me faire comprendre...
Et au passage depuis un moment déjà quand je compile et que je lance sur le SDK, je fais exe sur le debug et là l’émulation s’arrête


Lephenixnoir Hors ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 20/05/2015 06:16 | #


while (output1>1000){
        local1 = local%10;
        local = (local-local1)/10;
    }

Bon, il faut bien voir deux choses. Un int est tronqué après division donc partout où tu l'as fait, tu peux remplacer les deux lignes du milieu par
local /= 10;

Maintenant, regarde la condition de cette boucle. Et regarde si le code dans la boucle est susceptible de briser la condition. Conclusion ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Az Hors ligne Membre de CreativeCalc Points: 548 Défis: 10 Message

Citer : Posté le 20/05/2015 13:21 | #


J'y suis presque...
Hey mais j'ai fait n'importe quoi la!
Bon voila c'est en peu mieux comme ca, parcotre les listes retent toujours vides!
Code corrigé :
Cliquer pour enrouler

void generateOutputs(){
    [purple]int[/purple] local, local1;
    local = X0-(X/128);
    [b][blue]while[/blue][/b] (local>1000){
        local /= [maroon]10[/maroon];
    }
    output1 = local;
    local = Y0-(Y/128);
    [b][blue]while[/blue][/b] (local>1000){
        local /= [maroon]10[/maroon];
    }
    output2 = local;
    local = Z0-(Z/128);
    [b][blue]while[/blue][/b] (local>1000){
        local /= [maroon]10[/maroon];
    }
    output3 = local;
    local = output1;
    output1 = output3*output2;
    local1 = output2;
    output2= local*output3;
    output3= local*local1;
    [b][blue]do[/blue][/b]{
        local1 = output1%10;
        output1 = (output1-local1)/10;
    } [b][blue]while[/blue][/b] (output1>1000);
    [b][blue]do[/blue][/b]{
        local1 = output2%10;
        output2 = (output2-local1)/10;
    } [b][blue]while[/blue][/b] (output2>1000);
    [b][blue]do[/blue][/b]
    {
        local1 = output3%10;
        output3 = (output3-local1)/10;
    } [b][blue]while[/blue][/b] (output3>1000);
    useOutputs();
}
void useOutputs(){
    [purple]int[/purple] planetDensity = [maroon]16[/maroon] + (output1 / 10);
    [purple]int[/purple] planetX, planetY, planetZ;
    [b][blue]for[/blue][/b] (i = [maroon]26[/maroon]; i == planetDensity+26; ++i){
        planetX = (i/2) + (output1/10) -33;
        planetY = (i/2) + (output2/10) -33;
        planetZ = (i/2) + (output3/10) -33;
        planetStorageX1[i-26] = planetX;
        planetStorageY1[i-26] = planetY;
        planetStorageZ1[i-26] = planetZ;
    }
}

Je fais du Biohacking, des jeux vidéo et j'écris... Un lien pour les controler tous et dans les ténèbres les lier https://linktr.ee/axelfougues
Lephenixnoir Hors ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 20/05/2015 17:32 | #


for (i = 26; i == planetDensity+26; ++i)

C'est quoi cette condition ? Tant que i est égal à planetDensity+26 ?
Tu penses que ça va se produire souvent vu que i est initialisé à 26 et que planetDensity ne va pas être plus souvent nul que output1 égal à -160 ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Az Hors ligne Membre de CreativeCalc Points: 548 Défis: 10 Message

Citer : Posté le 20/05/2015 21:59 | #


comment j'ai fait pour rater ca ? *mind blown*
Merci Lephe , je vais voir ou je me suis embrouillé et corriger ce bazar, j'ai de grandes ambitions pour ce projet la!

for (i = 26; i <= planetDensity+26; ++i)


Ajouté le 22/05/2015 à 18:52 :
bon, j ai réussi a faire marcher l'affichage aussi! Les résultats ne sont pas parfaits mais voila les premiers points jamais traces par mon générateur pro. rien de très impressionnant mais ce n'est qu'un début:

Je fais du Biohacking, des jeux vidéo et j'écris... Un lien pour les controler tous et dans les ténèbres les lier https://linktr.ee/axelfougues
Lephenixnoir Hors ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 23/05/2015 10:29 | #


Ce n'est pas que je veux être démoralisant, mais... ça représente quoi ? Au moins juste, pour le programme ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Az Hors ligne Membre de CreativeCalc Points: 548 Défis: 10 Message

Citer : Posté le 24/05/2015 15:52 | #


Attend que je finisse le tout, pour l'instant ce ne sont que des points
Je fais du Biohacking, des jeux vidéo et j'écris... Un lien pour les controler tous et dans les ténèbres les lier https://linktr.ee/axelfougues

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