Programmation d'un logiciel

Résolu/Fermé
FiceA Messages postés 34 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 24 août 2016 - 28 mai 2015 à 19:58
FiceA Messages postés 34 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 24 août 2016 - 30 mai 2015 à 00:26
Bonjour, je souhaite créer un logiciel d'entrainement pour niveau primaire.
M'y connaissant en programmation, j'ai déjà commencé. Je compte ensuite corriger les codes,et autres bugs.
Pour que mon fichier BATCH ne puisse pas être modifié, je vais le convertir en fichier exécutable. Mais le problème n'est pas là, quand j'utilise la fonction "IF", que je met mes conditions, je rajoute un "ELSE" suivit de goto deb.
La cible étant un peu avant dans le code.
Seulement après plusieurs reprise de modifications, j'ai remarquer qu'il y avait écrit :"goto était inattendu". Et puis j'ai re-modifier et maintenant ca ferme carrément la fenêtre. Ce problème de boucle m'empêche de continuer a programmer mon logiciel et je compte sur vous pour m'aider.

Cordialement...
A voir également:

4 réponses

FiceA Messages postés 34 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 24 août 2016 4
29 mai 2015 à 23:07
OH merci, je suis vraiment très heureux que tu ai pu m'aider, et je te remercie du fond du coeur. Peut-être un jour pourrions nous travailler ensemble ? Et puis, pour la grande aide que tu m'as fournie, je te livre mon adresse e-mail : axel.arnold@hotmail.fr
C'est simple, tu a un problème, tu a besoin d'aide ?
Envoie moi un e-mail (je te le dois bien) et en plus pas besoin de ligne de code pour les e-mails juste de savoir écrire !!!

Cordialement.
1
luckydu43 Messages postés 3484 Date d'inscription vendredi 9 janvier 2015 Statut Membre Dernière intervention 30 juin 2022 815
Modifié par luckydu43 le 29/05/2015 à 23:22
Je t'ai ajouté, tu as dû recevoir un mail ;-) Heureux de t'avoir aidé !
0
FiceA Messages postés 34 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 24 août 2016 4 > luckydu43 Messages postés 3484 Date d'inscription vendredi 9 janvier 2015 Statut Membre Dernière intervention 30 juin 2022
30 mai 2015 à 00:26
Oui merci.
0
luckydu43 Messages postés 3484 Date d'inscription vendredi 9 janvier 2015 Statut Membre Dernière intervention 30 juin 2022 815
28 mai 2015 à 20:09
Bonsoir !

Je complète vos connaissances... l'utilisation des labels type label/goto est à éviter... Cela peut causer des problèmes, comme le vôtre.
D'ailleurs, la commande goto semble être tout simplement non reconnue !

Vous pourriez utiliser un if, ou une boucle for... tout est faisable en dev ;-)
0
FiceA Messages postés 34 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 24 août 2016 4
Modifié par FiceA le 28/05/2015 à 21:44
Merci, pour cette si rapide réponse,

J'aimerai néanmoins savoir ce qu'est un "if, ou une boucle for" et ce qu'est un "dev" Merci d'avance.

Juste pour revenir, je vais poster une capture d'écran du code et de la réponse. N'y a t-il vraiment aucune autre solutions ?
0
FiceA Messages postés 34 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 24 août 2016 4
28 mai 2015 à 21:44


Quand je ne marque rien, la fenêtre se ferme,
et quand je marque autre que 1,2,3,4,5,6,7,8,9 ou 10
ça marque :"call était inattendue".
0
luckydu43 Messages postés 3484 Date d'inscription vendredi 9 janvier 2015 Statut Membre Dernière intervention 30 juin 2022 815
28 mai 2015 à 22:04
Autant pour moi, toutes mes excuses.

J'ai lu trop vite le post.
La commande call n'a évidemment rien à voir avec les labels ! J'ai cru lire "goto était inattendu"...

Voici la correction ! Alleluia.......



L'erreur citée m'a été causée uniquement lorsque je lançais le programme sans rien saisir et que j'appuyais sur entrée lors de l'affichage "version".
Si on appuie sur un chiffre et qu'on valide, la prochaine fois que l'on appuiera sur entrée, ça prendra la valeur précédente.

Voici le code débugué :

title CP_Additions
color a
echo off

cls
echo yolo !
pause

:deb
cls
echo 1~10

echo Version ?
set /a ver=0
set /p ver=">"

if %ver%==1 call CP-A1
if %ver%==2 call CP-A1
if %ver%==3 call CP-A1
if %ver%==4 call CP-A1
if %ver%==5 call CP-A1
if %ver%==6 call CP-A1
if %ver%==7 call CP-A1
if %ver%==8 call CP-A1
if %ver%==9 call CP-A1
if %ver%==10 call CP-A1
goto deb


Maintenant il gère les fausses saisies ;-) Pardonne le texte, j'ai saisi le code très vite !

Enfin :
Dev : Développement, programmation
If : Structure conditionnelle
If... Then..... Else.... IfEnd
For : Boucle Itérative
For.... To.... Step.... Next

Bonne soirée !
0
FiceA Messages postés 34 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 24 août 2016 4 > luckydu43 Messages postés 3484 Date d'inscription vendredi 9 janvier 2015 Statut Membre Dernière intervention 30 juin 2022
Modifié par FiceA le 28/05/2015 à 22:38
Je te remerci de tout coeur, pour ces informations et m'excuse, car il y avait bien écrit "goto était inattendu. C'etait bien une erreur de ma part.
Juste (vous devez ma trouver chiant) pourriez vous m'expliquer le code debugué car je ne connaît pas encore tout les secret de la programmation, et enrichir mes connaissance m'epanouirai encore plus.

Cordialement. (Encore merci)?
0
luckydu43 Messages postés 3484 Date d'inscription vendredi 9 janvier 2015 Statut Membre Dernière intervention 30 juin 2022 815
28 mai 2015 à 23:13
Ahah ! J'avais raison !!
Blague à part, je suis heureux que tu sois autant passionné pour la programmation. Peut-être franchira-tu un jour la porte du monde de l'objet (Java, C++), du web (HTML, CSS, Ajax, PHP)...

Je vais commencer par le début.
Tu avais mis le label :deb après l'affichage des versions. Comment veux-tu que l'on s'y retrouve si l'on fait une fausse manip ?
Il faut voir grand, et imaginer son appli dans toutes ses coutures.

Ensuite, épurer le code.
Il faut séparer le code par des espaces pour délimiter les différentes parties, mettre des commentaires (j'en ai pas mis, faute de temps, il te suffit de marquer
rem ceci est un commentaire
pour préciser des informations sur ton programme.

Le bug venait de la variable ver. En effet, elle n'était pas initialisée (ne contenait aucune valeur). Or, si on fait un test sur sa valeur, et qu'il n'y en a pas, problème. D'où l'erreur "XXXX était inattendu".
J'ai alors mis 0 comme valeur par défaut.
De plus, il faut que chaque ligne de code ne laisse aucun doute sur sa syntaxe.
Entre
set/p"ver=>"

et
set /p ver=">"
... il y a une différence flagrante ! L'une est plus compréhensible que l'autre, donc plus facile à débuguer !

Enfin, la répétition (inutile en plus) du
else goto deb

m'a piqué les yeux. Il suffisait de faire les tests. Si on atteint la fin des tests, c'est qu'aucun n'a fonctionné, donc la valeur est fausse. C'est là qu'il faut renvoyer au début !

Je vais essayer d'optimiser un peu le code... je ne garantit rien ;-)
0
luckydu43 Messages postés 3484 Date d'inscription vendredi 9 janvier 2015 Statut Membre Dernière intervention 30 juin 2022 815
28 mai 2015 à 23:26
J'ai optimisé ;-) Cela va te plaire !

title CP_Additions
color a
echo off

cls
echo yolo !
pause

rem label où retourne le programme en cas d'erreur
:deb
cls
echo 1~10
echo Version ?

set /a ver=0
set /p ver=">"
set chaine=CP-A%ver%

call %chaine%
goto deb


J'ai créé une variable qui prend pour valeur la concaténation du texte "CP-A" et de la variable %ver%

Si le call n'appelle rien, le programme va continuer sa route... courte, puisqu'il va directement tomber sur le goto deb, et ainsi de suite...

Ainsi, tu auras juste à changer le texte "echo 1~10" ;-)
0