Le langage SMS est exclu sur les forums ProgBoards, tout message ne respectant pas la charte sera déplacé, modifié, ou supprimé par nos modérateurs.

Forum Langages » BASIC » DO LOOP imbriqué en qbasic

M3dine
Visiteur
Citer Windows XP Msie 7.0 - Posté le 09/01/2010 à 14:57
bonjour a tous,
je suis Belge, en 5ieme secondaire, et j ai un petit probleme dans mon programme, je dois utilisez 2 doo loops imbriqué un s arretant quand un element du DATA s'appele "x" et la deuxieme boucle doit s'arreter quand la l'élément de la DATA s appele "z", et mon programme ne sesse de recommencer pourtant z et x sont bien dans les data y a t il une commande pour arreter un do loop que je ne connaitrait pas ?

merci pour vos réponses
M3dine
RemonterCiter MacOS Firefox 3 - Posté le 09/01/2010 à 15:01
Le code source ?
Change la caféine en lignes de code, et aurait parfois besoin de l'inverse.
M3dine
Visiteur
RemonterCiter Windows XP Msie 7.0 - Posté le 09/01/2010 à 15:02
je te le sorts de suite
M3dine
Visiteur
RemonterCiter Windows XP Msie 7.0 - Posté le 09/01/2010 à 15:04
REM Examen D‚cembre 2009

Voila



REM NOM & Pr‚nom : Voumard Loic


' d‚finition des varibales
DEFSNG G, M, P 'Montant, lonGtitre, Positab
DEFSTR D, I, L, N, T, X 'Date, Identite, libelle, nature, titre, "using"
X = "###,###,###.##"
CLS
RESTORE
READ Inom, Iprenom
DO
Titre1 = "tenue de compte de Mr "
Identite = Inom + " " + Iprenom
Titre2 = Titre1 + Identite
Gtitre = LEN(Titre2)
POSITAB = (80 - Gtitre) / 2
PRINT TAB(POSITAB); Titre2
PRINT TAB(10); "COMPTE BANQUE"; TAB(40); "DEBIT"; TAB(54); "CREDIT"
READ Date, Nature, Libelle, Montant
MontantD = 0
MontantC = 0
DO
SELECT CASE Nature
CASE IS = "D"
MontantD = MontantD + Montant
CASE IS = "C"
MontantC = MontantC = Montant
PRINT TAB(7); "*"; TAB(10); Date; TAB(36); "*"; TAB(57); : PRINT USING X$; Montant; TAB(62); "*"
END SELECT
LOOP UNTIL Date = "x"



LOOP UNTIL Date = "Z"



Edité par neliger ( 09/01/2010 15:07:46 )
Freem
Modérateur
RemonterCiter Windows XP Opera 9 - Posté le 09/01/2010 à 15:08
Les commandes pour que la boucle se termine, (enfin, les commandes propres) sont les while et until, que l'on met après le loop. Peut-être qu'on peut aussi après le do, je me souvient plus très bien.

De toute façon, ce que je te suggère, c'est d'utiliser les fonctions de débogage de QB. Tu mets les variables que tu testes en observation (le nom change selon l'IDE et je me souviens plus de celui de QB) puis tu exécutes en pas à pas. Tu comprendras au moins ton erreur.

[edit]
Tu ne modifies jamais ta variable date dans la 2nde boucle.
De même, tu as une erreur dans ton select case. montantD=montantD=montant

Edité par Freem ( 09/01/2010 15:12:12 )
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin
RemonterCiter MacOS Firefox 3 - Posté le 09/01/2010 à 15:08
Trop d'années que j'ai abandonné le QuickBasic.

Ceci dit, je vois que ton x est en minuscule et ton Z en majuscule, problème de casse peut-être ?
Change la caféine en lignes de code, et aurait parfois besoin de l'inverse.
M3dine
Visiteur
RemonterCiter Windows XP Msie 7.0 - Posté le 09/01/2010 à 15:10
il me mets la ligne de fin de boucle "LOOP UNTIL Date = "x""
type invariable me dit il et comme je suis forcement la cause du probleme ... ^^
M3dine
Visiteur
RemonterCiter Windows XP Msie 7.0 - Posté le 09/01/2010 à 15:11
j ai fais expres de mettre le "x" en minuscule et le "Z" en majuscule pour voir si une des deux boucles s arretait mais non ... donc le probleme ne vient pas de la ...
Freem
Modérateur
RemonterCiter Windows XP Opera 9 - Posté le 09/01/2010 à 15:12
La 1ère s'arrêtera peut-être un jour, mais la 2nde ne risque pas.

Tu ne modifies pas la variable Date dedans...
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin
M3dine
Visiteur
RemonterCiter Windows XP Msie 7.0 - Posté le 09/01/2010 à 22:10
non mais les data change don cles deux devrait bien s arreter, si vous voulez la premiere boucle s'arrete en "x" et la deuxieme s arrete en "z" le seul probleme est que ben elle s'arrete pas mais je peux mettre les DATA vous verrez que il y a bien deux DATA faisant office de point d'arret
Freem
Modérateur
RemonterCiter Windows XP Opera 9 - Posté le 10/01/2010 à 01:31
Que les data changent ou pas, si tu ne les lis pas, la valeur de date restera inchangée.
Pour preuve, utilises le mode de débogage de qb, ou ajoutes des instruction qui affichent à l'écran la valeur de Date...
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin

Poster une réponse

STOP aux fautes volontaires !
Message
Formatage
Note: pour partager du code source, merci d'utiliser le wall !
Smileys (sourire) (yekyek) (clein d'oeil) (désapprouve) (triste) (cool) (langue) (confus) (gêné) (neutre) (eek) (surpris) (diable) (flèche) (exclamation) (question) (diable) (idée) (méchant)
Pseudonyme
Recopiez le code
v6 © Computaid SPRL 2005-2012 - Tous droits réservés - Hébergé par eTigris - Page générée en 0,034 s - Crédits - Stats
1 connecté