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 » Problème d'affichage


Imperions Invité

Problème d'affichage

Posté le 19/06/2016 11:45

Salut,

j'ai commencer le basic hier grâce au tuto présent sur le site (qui est très bien fait d'ailleurs, merci) et mon programme marchais correctement, je trouvais à chaque fois mes erreurs jusqu'à maintenant... En effet quand je vais dans la rubrique
"reseau" de mon programme et que je choisit un chapitre, aucun texte ne s'affiche sur ma calculette...
Si quelqu'un pourrais m'aider ça serais sympa, il me le faudrait pour demain, c'est un programme pour le bac d'ETT...

Bref, je vous met le code ci-dessous....

Filename:ETT
"1: Chaine d'energie"Ù
"2: reseau"Ù
"3: Formules"Ù
"4: Torseur cohesion"Ù
"Cours a regarder"?ãAÙ
Ù
ClrTextÙ
If A>4Ù
Then Locate 8,4,"VICTIME"Ø
IfEndÙ
ClrTextÙ
If A=4Ù
Then Locate 2,2,"Torseur cohesion"Ù
Locate 9,3,"0"Ù
Locate 11,3,"0"Ù
Locate 8,4,"Ty"Ù
Locate 11,4,"0"Ù
Locate 9,5,"0"Ù
Locate 11,5,"Mfz"Ø
ClrTextÙ
Locate 1,2,"Ty = effort tranchant"Ù
Locate 1,3,"Mfz = moment de"Ù
Locate 1,4,"flexion"Ø
IfEndÙ
ClrTextÙ
If A=3Ù
Then Locate 2,2,"Formules"Ù
Locate 1,3,"radÁs en trÁmin"Ù
Locate 1,4,"W= (2Pi)Á60"Ù
Locate 1,5,"Puissance mecanique W"Ù
Locate 1,6,"(rotation)"Ù
Locate 1,7,"P=C(N.m)ÀW(radÁs)"Ø
ClrTextÙ
Locate 2,2,"Puissance meca"Ù
Locate 1,3,"(Translation)"Ù
Locate 1,4,"P=F(N)ÀV(mÁs)"Ù
Locate 1,5,"V(mÁs)=(radÁs)Àrayon"Ù
Locate 1,6,"1Pa = 1NÁm^2"Ø
IfEndÙ
ClrTextÙ
If A=1Ù
Then Locate 2,2,"Chaine d'energie"Ù
Locate 1,3,"Unites d'energie:"Ù
Locate 1,4,"1W.h = 3600J"Ù
Locate 1,5,"Unites de puissance:"Ù
Locate 1,6,"1W=1JÁs"Ù
Locate 1,7,"1 Cheval vapeur= 736W"Ø
ClrTextÙ
Locate 2,2,"Chaine d'energie"Ù
Locate 1,3,"Unites vitesse:"Ù
Locate 1,4,"1mÁs = 3,6 kmÁh"Ø
IfEndÙ
ClrTextÙ
If A=2Ù
Then Locate 7,2,"reseau"Ù
Locate 1,3,"1:Modele TCP IP"Ù
Locate 1,4,"2:MAC"Ù
Locate 1,5,"3:IPV4, IPV6"Ù
Locate 1,6,"4:Masque"Ù
Locate 1,7,"5:Next Page"Ù
"Cours a regarder"?ãBÙ
Ù
ClrTextÙ
Ù
If B=5Ù
Then Locate 7,2,"reseau"Ù
Locate 1,3,"6:Protocole TCP"Ù
Locate 1,4,"7:Type de reseau"Ù
"Cours a regarder"?ãBØ
ClrTextÙ
If B=1Ù
Then Locate 1,2,"Modele TCP IP"Ù
Locate 1,4,"Application (Message)"Ù
Locate 1,5,"Transport (Segment)"Ù
Locate 1,6,"Internet (Datagramme)"Ù
Locate 1,7,"Acces reseau (Trame)"Ø
IfEndÙ
Ù
If B=2Ù
Then Locate 1,2,"MAC:MediaAcessControl"Ù
Locate 1,3,"sous 6 octets (hexa)"Ù
IfEndÙ
If B=3Ù
Then Locate 1,2,"IPV4, IPV6"Ù
Locate 1,3,"IPV4 = 4 octets"Ù
Locate 1,4,"IPV6 = 8 double octet"Ù
IfEndÙ
Ù
If B=4Ù
Then Locate 1,2,"Masque"Ù
Locate 1,3,"Classe A: 255.0.0.0"Ù
Locate 1,4,"Classe B: 255.255.0.0"Ù
IfEndÙ
Ù
If B=6Ù
Then Locate 1,2,"Protocole TCP"Ù
Locate 1,3,"Transmission control"Ù
Locate 6,4,"Protocol"Ù
Locate 1,5,"Hyper Text Transfer"Ù
Locate 1,6,"Protocol"Ù
Locate 8,7,"HTTP"Ø
ClrTextÙ
Ù
Locate 1,2,"FileTransferProtocol"Ù
Locate 9,3,"FTP"Ù
Locate 1,4,"SimpleMailTransfer"Ù
Locate 1,5,"Protocol"Ù
Locate 1,6,"SMTP"Ù
Locate 1,7,"DomainNameService:DNS"Ù
IfEndÙ
If B=7Ù
Then Locate 1,2,"LAN:"Ù
Locate 1,3,"Local Area Network"Ù
Locate 1,4,"WAN:"Ù
Locate 1,5,"Wide Area Network"Ù
IfEndÙ
If B>7Ù
Then Locate 8,4,"VICTIME"Ø
IfEndÙ
ClrTextÙ



Merci d'avance pour l'aide et à bientôt!



Lephenixnoir Hors ligne Administrateur Points: 22763 Défis: 149 Message

Citer : Posté le 19/06/2016 11:50 | #


La structure de ton code est surprenante. Normalement tu ne dois passer que dans un et un seul des tests sur A. Tu devrais donc avoir quelque chose comme ceci :
?→A
ClrText

If A>4
Then ...

Else If A=4
Then...

Else If A=3
Then...

IfEnd


Edit : Petite erreur de ma part. L'erreur est bien ici :
If B=5
Then Locate 7,2,"reseau"
Locate 1,3,"6:Protocole TCP"
Locate 1,4,"7:Type de reseau"
"Cours a regarder"?->BØ
ClrText
If B=1

Mais ce n'est pas ce que je disais. Le If B=1 n'est testé, et le texte n'est affiché, que si tu rentres d'abord dans le If B=5. Donc si tu tapes 1 directement, le test n'est pas affiché.


Imperions Invité

Citer : Posté le 19/06/2016 11:52 | #


Merci pour l'aide, je vais modifier tout ça et je dit si ça fonctionne, et oui, structure surprenante, je cherchais pas à optimiser le programme mais à le faire facilement ...

Bon je vais modifier tout ça et je revient.
Lilougue Hors ligne Membre Points: 276 Défis: 5 Message

Citer : Posté le 19/06/2016 11:54 | #


C'est peut être dû au fait que tu ne pense pas à mettre le ◢ avant les CLRTEXT.
Zezombye En ligne Rédacteur Points: 1756 Défis: 13 Message

Citer : Posté le 19/06/2016 12:06 | #


If B=5
Then Locate 7,2,"reseau"
Locate 1,3,"6:Protocole TCP"
Locate 1,4,"7:Type de reseau"
"Cours a regarder"?->BØ
ClrText
[b]IfEnd[/b]
If B=1
Then Locate 1,2,"Modele TCP IP"
Locate 1,4,"Application (Message)"
Locate 1,5,"Transport (Segment)"
Locate 1,6,"Internet (Datagramme)"
Locate 1,7,"Acces reseau (Trame)"Ø
IfEnd


Rajoute le IfEnd en gras et ça devrait marcher.
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE


Imperions Invité

Citer : Posté le 19/06/2016 12:36 | #


Me revoilà, merci pour les conseils.

Donc voilà mon programme final, il marche je vient de tester.

Filename:ETT
"1: Chaine d'energie"Ù
"2: reseau"Ù
"3: Formules"Ù
"4: Torseur cohesion"Ù
"Cours a regarder"?ãAÙ
Ù
ClrTextÙ
If A>4Ù
Then Locate 8,4,"VICTIME"Ø
ClrTextÙ
Else If A=4Ù
Then Locate 2,2,"Torseur cohesion"Ù
Locate 9,3,"0"Ù
Locate 11,3,"0"Ù
Locate 8,4,"Ty"Ù
Locate 11,4,"0"Ù
Locate 9,5,"0"Ù
Locate 11,5,"Mfz"Ø
ClrTextÙ
Locate 1,2,"Ty = effort tranchant"Ù
Locate 1,3,"Mfz = moment de"Ù
Locate 1,4,"flexion"Ø
ClrTextÙ
Else If A=3Ù
Then Locate 2,2,"Formules"Ù
Locate 1,3,"radÁs en trÁmin"Ù
Locate 1,4,"W= (2Pi)Á60"Ù
Locate 1,5,"Puissance mecanique W"Ù
Locate 1,6,"(rotation)"Ù
Locate 1,7,"P=C(N.m)ÀW(radÁs)"Ø
ClrTextÙ
Locate 2,2,"Puissance meca"Ù
Locate 1,3,"(Translation)"Ù
Locate 1,4,"P=F(N)ÀV(mÁs)"Ù
Locate 1,5,"V(mÁs)=(radÁs)Àrayon"Ù
Locate 1,6,"1Pa = 1NÁm^2"Ø
ClrTextÙ
Else If A=1Ù
Then Locate 2,2,"Chaine d'energie"Ù
Locate 1,3,"Unites d'energie:"Ù
Locate 1,4,"1W.h = 3600J"Ù
Locate 1,5,"Unites de puissance:"Ù
Locate 1,6,"1W=1JÁs"Ù
Locate 1,7,"1 Cheval vapeur= 736W"Ø
ClrTextÙ
Locate 2,2,"Chaine d'energie"Ù
Locate 1,3,"Unites vitesse:"Ù
Locate 1,4,"1mÁs = 3,6 kmÁh"Ø
ClrTextÙ
Else If A=2Ù
Then Locate 7,2,"reseau"Ù
Locate 1,3,"1:Modele TCP IP"Ù
Locate 1,4,"2:MAC"Ù
Locate 1,5,"3:IPV4, IPV6"Ù
Locate 1,6,"4:Masque"Ù
Locate 1,7,"5:Next Page"Ù
"Cours a regarder"?ãBØ
Ù
ClrTextÙ
Ù
If B=5Ù
Then Locate 7,2,"reseau"Ù
Locate 1,3,"6:Protocole TCP"Ù
Locate 1,4,"7:Type de reseau"Ù
"Cours a regarder"?ãBØ
IfEndÙ
ClrTextÙ
If B=6Ù
Then Locate 1,2,"Protocole TCP"Ù
Locate 1,3,"Transmission control"Ù
Locate 6,4,"Protocol"Ù
Locate 1,5,"Hyper Text Transfer"Ù
Locate 1,6,"Protocol"Ù
Locate 8,7,"HTTP"Ø
ClrTextÙ
Ù
Locate 1,2,"FileTransferProtocol"Ù
Locate 9,3,"FTP"Ù
Locate 1,4,"SimpleMailTransfer"Ù
Locate 1,5,"Protocol"Ù
Locate 1,6,"SMTP"Ù
Locate 1,7,"DomainNameService:DNS"Ù
Else If B=7Ù
Then Locate 1,2,"LAN:"Ù
Locate 1,3,"Local Area Network"Ù
Locate 1,4,"WAN:"Ù
Locate 1,5,"Wide Area Network"Ø
ClrTextÙ
Else If B=1Ù
Then Locate 1,2,"Modele TCP IP"Ù
Locate 1,4,"Application (Message)"Ù
Locate 1,5,"Transport (Segment)"Ù
Locate 1,6,"Internet (Datagramme)"Ù
Locate 1,7,"Acces reseau(Trame)"Ø
Ù
Else If B=2Ù
Then Locate 1,2,"MAC:MediaAcessControl"Ù
Locate 1,3,"sous 6 octets (hexa)"Ù
Else If B=3Ù
Then Locate 1,2,"IPV4, IPV6"Ù
Locate 1,3,"IPV4 = 4 octets"Ù
Locate 1,4,"IPV6 = 8 double octet"Ù
Ù
Else If B=4Ù
Then Locate 1,2,"Masque"Ù
Locate 1,3,"Classe A: 255.0.0.0"Ù
Locate 1,4,"Classe B: 255.255.0.0"Ù
Else If B>7Ù
Then Locate 8,4,"VICTIME"Ø
IfEndÙ
ClrTextÙ


Encore merci et Zezombie aussi même si j'ai fait autrement que ce que tu a dit...
Shyked Hors ligne Membre Points: 272 Défis: 20 Message

Citer : Posté le 19/06/2016 12:48 | #


De souvenir, il me semblait que pour chaque If, il fallait un IfEnd
If ...
Then ...
Else If ...
Then ...
Else ...
IfEnd
IfEnd


Sinon il y a des risques que le code après le IfEnd soit pas atteint.
Enfin dites-moi si je me trompe :x
Lephenixnoir Hors ligne Administrateur Points: 22763 Défis: 149 Message

Citer : Posté le 19/06/2016 14:01 | #


Shyked a écrit :
De souvenir, il me semblait que pour chaque If, il fallait un IfEnd

Ah oui, je peux me tromper '-'
En l'écrivant, je me suis dit que le Basic devait bien se comporter comme tous les langages classiques, mais même ça c'est pas sûr --'
Shyked Hors ligne Membre Points: 272 Défis: 20 Message

Citer : Posté le 19/06/2016 14:10 | #


Je viens d'essayer, je confirme

1→A
If A=1
Then "X"
Else If A=2
Then "Y"
IfEnd
"Z"


Ici il n'affiche que X. Le Else If n'existe pas en Casio Basic, c'est juste des conditions imbriquées.


Du coup pour en revenir à Imperions, je te conseille de prendre l'habitude de compter tes If et tes IfEnd pour vérifier que y'en a autant, sinon tu risque d'avoir une mauvaise surprise un de ces quatre et tu saura pas d'où ça vient x)
Zezombye En ligne Rédacteur Points: 1756 Défis: 13 Message

Citer : Posté le 19/06/2016 14:14 | #


D'ailleurs pourquoi tu commences les locates à la 2e ligne ? Tu pourrais éviter le "next page" dans les réseaux si tu affichais directement toutes les options (il y a 7 lignes au total).
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Imperions Hors ligne Membre Points: 54 Défis: 0 Message

Citer : Posté le 19/06/2016 14:21 | #


Je commence a la deuxième ligne car quand je commence à la première, rien ne s'affiche, je ne sais pas pourquoi encore une fois, et comme par magie, quand je commence à la seconde ligne, ça marche...

Et merci, je vais faire ça pour mon programme de physique alors, enfin, je le ferais mardi pour mercredi...

J'ai regardé vite fait comment programmer en Basic, ce qui change vraiment par rapport à la programmation web c'est la place limitée...
Lephenixnoir Hors ligne Administrateur Points: 22763 Défis: 149 Message

Citer : Posté le 19/06/2016 14:25 | #


Zezombye, n'oublie pas que l'instruction "?" nécessite deux lignes pour s'exécuter et qu'elle ignore le Locate car il ne modifie pas la position du curseur virtuel. Du coup tu peux pas afficher 7 lignes.

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