[Q-Basic] petit probleme dans la compilation :(

petit probleme dans la compilation :( [Q-Basic] - Algo - Programmation

Marsh Posté le 16-04-2003 à 18:10:57    

Bonsoir,  
je me suis créé un *.exe avec quick basic d'un programme réalisé en cours (calcul d'amortissement linéaire) il n'a rien d'exceptionnel je suis d'accord.
 
voila lorsque je veux le compiler en *.exe l'operation est reussie, mais le probleme se pose quand j'execute le programme, celui-ci ne m'affiche pas mon tableau, il m'affiche seulement le titre des colonnes   :heink: .
 
apparement ca serait un probleme avec mon PRINT USING (c'est la seule chose qui ne fonctionne pas).
 
y aurait il un moyen (un autre programme) que qbasic 4.5fr pour compiler les fichier *.bas en *.exe ?
sinon est-ce que quelqu'un aurait une idée pour le réussir a le mettre en *.exe (en changeant le print using par autre chose) ?
 
voici mon code pour vous aider :
 

Code :
  1. REM ### Déclaration des proc?dures ###
  2. DECLARE SUB calc.amort (pa, annee, duree, amort)
  3. DECLARE SUB impression (pa, annee, duree, amort)
  4. 4 CLS
  5. PRINT "Bienvenue dans ce programme de calcul d'amortissements linéaires"
  6. PRINT
  7. INPUT "Voulez-vous exécuter le programme, (o) pour Oui et (n) pour Non : ", rep$
  8. WHILE rep$ = "o"
  9.         CLS
  10.         REM ### Saisie des informations ###
  11.         INPUT "Entrer le prix d'achat : ", pa
  12.         WHILE pa < 1
  13.                 INPUT "Entrer le prix d'achat : ", pa
  14.         WEND
  15.         INPUT "Entrer l'année d'acquisition : ", annee
  16.         WHILE annee < 1
  17.                 INPUT "Entrer l'année d'acquisition : ", annee
  18.         WEND
  19.         INPUT "Entrer la dur?e de l'amortissement : ", duree
  20.         WHILE duree < 1
  21.                 INPUT "Entrer la durée de l'amortissement : ", duree
  22.         WEND
  23.         amort = pa / duree
  24.         REM ### D?claration des variables du tableau ###
  25.         DIM SHARED vnc(1 TO duree)
  26.         DIM SHARED cumulamort(0 TO duree)
  27.         DIM SHARED annee(0 TO duree)
  28.         REM ### Exécution de la proc?dure calc.amort ###
  29.         calc.amort pa, annee, duree, amort
  30.         CLS
  31.         REM ### Exécution de la procédure impression ###
  32.         impression pa, annee, duree, amort
  33.         PRINT
  34.         INPUT "Voulez-vous effectuer un autre calcul, (o) pour Oui et (n) pour Non : ", rep$
  35. WEND
  36. CLS
  37. INPUT "Etes-vous sûr de vouloir quitter le programme, (o) pour Oui et (n) pour Non : ", rep2$
  38. WHILE rep2$ = "n"
  39.         GOTO 4
  40. WEND
  41. CLS
  42. PRINT "Aurevoir et @ bientôt."
  43. END
  44. SUB calc.amort (pa, annee, duree, amort)
  45. FOR i = 1 TO duree
  46.         annee(i) = annee + i - 1
  47.         cumulamort(i) = cumulamort(i - 1) + amort
  48.         vnc(i) = pa - cumulamort(i)
  49. NEXT i
  50. END SUB
  51. SUB impression (pa, annee, duree, amort)
  52. a$ = "Coût de l'immobilisation  ######.## Euros."
  53. b$ = "Année d'acquisition         ####"
  54. c$ = "Durée de l'amortissement      ## an(s)."
  55. d$ = "| #### |  ######.##  |  #####  | ######.##  |  ######.## |"
  56. PRINT USING a$; pa
  57. PRINT USING b$; annee
  58. PRINT USING c$; duree
  59. PRINT "__________________________________________________________"
  60. PRINT "|Année |"; TAB(10); "    P.A.    |"; TAB(24); " Amort  |"; TAB(34); "  Cumul    |"; TAB(46); "     VNC    |"
  61. PRINT "----------------------------------------------------------"
  62. FOR i = 1 TO duree
  63.         PRINT USING d$; annee(i); pa; amort; cumulamort(i); vnc(i)       
  64.         PRINT "----------------------------------------------------------"
  65. NEXT i
  66. END SUB


 
je sais que ce langage est très peut (voir pas du tout) utilisé masi bon je suis en terminal stt et on a vu que ce langage de programmation donc beh voila ...
 
merci par avance  :jap:


Message édité par k2t le 18-04-2003 à 07:09:37
Reply

Marsh Posté le 16-04-2003 à 18:10:57   

Reply

Marsh Posté le 16-04-2003 à 18:24:39    

voila ce que ca me sort au lieu de remplir mon tableau :
 
http://membres.lycos.fr/tstig10/amort.jpg
 
j'ai oublié de vous dire que le programme tourne impecable sous quick basic (quand il est en *.bas)

Reply

Marsh Posté le 16-04-2003 à 19:58:52    

k2t a écrit :

voila ce que ca me sort au lieu de remplir mon tableau :
 
http://membres.lycos.fr/tstig10/amort.jpg
 
j'ai oublié de vous dire que le programme tourne impecable sous quick basic (quand il est en *.bas)


 
t es en stt ig :??:


---------------
LoD 4 ever && PWC spirit|Le topak de l'iMP-450|inDATOUNEwe trust
Reply

Marsh Posté le 16-04-2003 à 20:00:11    

ui msiou, pourquoi cette question ?
si c'est parceque chui vieux (20ans) beh euh j'ai fais un BEP compta avant de retourner dans une filière "normale" et j'ai aussi redouble ma 5eme  :D . enfin voila quoi (K2T story)  :lol:


Message édité par k2t le 16-04-2003 à 20:15:52
Reply

Marsh Posté le 16-04-2003 à 22:28:07    

par curiosite ;), j ai fais stt cg, et je connaisait qque ig qui n avait rien fait d autre que du acces (mais vraiment limite, on les masterisais, et des formules de calculs sus exel) et donc je voulais etre sur ^^
 
 


---------------
LoD 4 ever && PWC spirit|Le topak de l'iMP-450|inDATOUNEwe trust
Reply

Marsh Posté le 16-04-2003 à 23:55:42    

Juste comme ça...
 
Y'a deux lignes sur la même ligne à la fin.
 
10 contre 1 que c'est ton problème ;)

Reply

Marsh Posté le 17-04-2003 à 06:58:38    

arf non c une erreur de copier/coller :(
 
merci quand meme

Reply

Marsh Posté le 17-04-2003 à 07:00:22    

pinguin007 a écrit :

par curiosite ;), j ai fais stt cg, et je connaisait qque ig qui n avait rien fait d autre que du acces (mais vraiment limite, on les masterisais, et des formules de calculs sus exel) et donc je voulais etre sur ^^
 
 
 


 
oui niveau access et excel on en voit aussi et c'est chiant mais c'est comme ca.

Reply

Marsh Posté le 17-04-2003 à 23:31:56    

J'ai testé avec le qbasic du dos ca marche. Du moins au premier passage au deuxième il y a une erreur duplicate definition a la ligne DIM SHARED vnc(1 TO duree). Bon je l'efface de mon disque je veux pas faire de la copie pirate  :)


Message édité par Dag elg le 17-04-2003 à 23:33:50
Reply

Marsh Posté le 18-04-2003 à 07:08:42    

pkoi de la copie pirate ?
tu peu continuer a tester ya aps de pb.
 
moi sous dos avec quick basic il tourne sans probleme :( par cpntre jai trouve une erreur dans la declaréation d'une de mes fonctions, mais ca ne resoud pas lotre probleme qui est de reussi ra la faire tourner dans un exe. :(
 
merci pour le pti up ;)

Reply

Marsh Posté le 18-04-2003 à 07:08:42   

Reply

Marsh Posté le 18-04-2003 à 07:09:53    

voila jai modif le programme. bonen journee

Reply

Marsh Posté le 18-04-2003 à 12:41:07    

As tu essayé www.powerbasic.com ?
sinon pour la copie pirate c'est plutot une blague
pas terrible je reconnais.

Reply

Marsh Posté le 18-04-2003 à 13:39:38    

oki :lol:, merci pour le site jirais faire un tour kand j'orai un peu plus de tps.
 
@tt

Reply

Marsh Posté le 18-04-2003 à 20:06:54    

Power Basic, c'est le successeur de Turbo Basic de Borland.
 
J'ai pas mal pratiqué QuickBasic, mais ai galéré à trouver le problème !! La variable duree de la boucle de la fonction impression était altérée (très faible => pas de boucle de sortie, si duree%, 3224 tours, etc..).
 
Ce qui cause un pb est la ligne contenant des TAB(), je ne sais pas pourquoi (peut-être qu'il y a un conflit entre la position courante et celle où on veut mettre le curseur, mais pourquoi ça casserait les variables ?).
 
PRINT USING a$; pa  
PRINT USING b$; annee  
PRINT USING c$; duree  
PRINT "__________________________________________________________"  
PRINT "|Année     P.A.   | Amort  |  Cumul    |     VNC    |"  
PRINT "----------------------------------------------------------"  
fonctionne très bien une fois compilée (l'option "code de déboggage" permet de "tuer" le programme avant la fin ^par CTRL+Break (s'il boucle par ex) et l'option "autonome" rend le prog plus gros, mais évite d'avoir besoin du prog "annexe" vbrun.exe)
 
Y a des trucs divers qui me gènent, comme la non déclaration des types de variables (integer, single, ... ?), le tableau annee() qui existe aussi sous variable annee, un peu confus quand on relit. Certains langages interdisent les noms identiques, QB le permet quand ce ne sont pas les mêmes types. Bof...
 
Pour le print, vu que sous DOS, en mode texte y a que des positions de caractères de largeur fixe, on peut imposer les "tabulations" avec des espaces
PRINT "|Année     P.A.   | Amort  |  Cumul    |     VNC    |"  
PRINT "|Année     P.A.   |   Amort  | Cumul  |   VNC    |"
selon besoin.  

Reply

Marsh Posté le 18-04-2003 à 20:24:20    

en fait je vire mes TAB(x) et je fais moi meme les espaces ?
 
en tout merci pour le coup de main

Reply

Marsh Posté le 18-04-2003 à 20:41:09    

Oui.
Je sais pas du tout pourquoi ça coince. Y se passe qq chose en mémoire qui altère la variable.
Au début de la fonction, bien. Après passage du print avec les TAB, tout cassé.
 
QuickBasic en environnement et en EXE ne se comporte pas tj pareil : une fois, ai vu une boucle avec variable single (pas trop recommandé, vaut mieux integer car pb d'arrondi sinon), en "environnement" QuickBasic, 13 tours, en compilé 12 comme normalement attendu.
 
La c'est bizarre, j'ai bien dit bizarre. :pt1cable:  
 :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed