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
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...
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:
- Programmation d'un logiciel
- Money logiciel - Télécharger - Comptabilité & Facturation
- Logiciel montage vidéo windows - Guide
- Logiciel de sauvegarde gratuit - Guide
- Logiciel - Guide
- Logiciel de programmation pour débutant - Guide
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
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.
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.
luckydu43
Messages postés
4085
Date d'inscription
vendredi 9 janvier 2015
Statut
Membre
Dernière intervention
18 février 2025
1 009
28 mai 2015 à 20:09
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 ;-)
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 ;-)
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
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 ?
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 ?
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
28 mai 2015 à 21:44
luckydu43
Messages postés
4085
Date d'inscription
vendredi 9 janvier 2015
Statut
Membre
Dernière intervention
18 février 2025
1 009
28 mai 2015 à 22:04
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é :
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 !
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 !
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
4085
Date d'inscription
vendredi 9 janvier 2015
Statut
Membre
Dernière intervention
18 février 2025
Modifié par FiceA le 28/05/2015 à 22:38
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)?
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)?
luckydu43
Messages postés
4085
Date d'inscription
vendredi 9 janvier 2015
Statut
Membre
Dernière intervention
18 février 2025
1 009
28 mai 2015 à 23:13
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
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
et
Enfin, la répétition (inutile en plus) du
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 ;-)
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 commentairepour 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 ;-)
luckydu43
Messages postés
4085
Date d'inscription
vendredi 9 janvier 2015
Statut
Membre
Dernière intervention
18 février 2025
1 009
28 mai 2015 à 23:26
28 mai 2015 à 23:26
J'ai optimisé ;-) Cela va te plaire !
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" ;-)
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" ;-)
Modifié par luckydu43 le 29/05/2015 à 23:22
30 mai 2015 à 00:26