![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: juin 2005
Localisation: RENNES
Version Excel : Excel 2000 (PC)
Messages: 7 079
|
Bonsoir
Quelqu'un ici s'est-t-il amusé à essayer de coller le contenu de fichiers.bas (QBasic) dans VBE? Et ensuite de voir comment traduire le tout en VBA? Est-ce seulement possible? Si oui, est-ce vain? |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: novembre 2006
Localisation: Saint etienne
Version Excel : Excel XP (PC)
Messages: 3 969
|
bonjour staple
c'est vain, dans le fait ou Qbasic n'est pas un langage strcturé objet, que seuls les commandes faciles peuvent etre transcrites. il existe des possibilités en QB qui à ma connaissance ne sont pas possibles en VBA (selon mes faibles connaissances de VBA). personnellement, en 1984, j'ai à l'aide d'une moulinette, transcrit des programmes Kbasic sous CPM en Mbasic86 sous Dos, les deux basic se ressemblant, la difficulté n'etait pas enorme. Mais QB et VBA, n'ont pas la meme structure, personnellement, je pense que QB est plus puissant que VBA, et VBA plus pratique et c'est peu dire.
__________________
salutations Wilfried Plus j'apprends, plus je sais....... plus je sais que je ne sais rien. Venez visiter mon zoo : Cliquez ici il est si petit, un petit click quotidien merci |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Accro
Date d'inscription: février 2005
Localisation: Maurecourt
Version Excel : Excel 2003 (PC)
Messages: 1 539
|
Bonjour le Forum,
Je n'ai pas testé mais je serais curieux de faire le test ! Même si une fonction n'existe pas on doit pouvoir la reproduire ! Peux tu mettre un fichier joint que je teste. Merci Creepy
__________________
|
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: novembre 2006
Localisation: Saint etienne
Version Excel : Excel XP (PC)
Messages: 3 969
|
bonjour creepy
je ne sais pas si je peus retrouver dans mes archives une partie tres specifique de QB (Programmation directe en code assembleur dans le source de Qb). je suis ben incapable de programmer en assembleur. mais dans j'ai vu Qb le traduir. l'interet ne serait pas dans ce sens, mais dans l'autre sens. Qb etant compilable.................. bye billou pour la distrbution des projets lol
__________________
salutations Wilfried Plus j'apprends, plus je sais....... plus je sais que je ne sais rien. Venez visiter mon zoo : Cliquez ici il est si petit, un petit click quotidien merci |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: juin 2005
Localisation: RENNES
Version Excel : Excel 2000 (PC)
Messages: 7 079
|
Bonjour Creepy
Voici un exemple QBasic Code:
1 REM * The Towers Of Hanoi 2 REM * BASIC 3 REM * Copyright (c) 1998 Amit Singh. All Rights Reserved. 4 REM * NOTES: Tested under Chipmunk BASIC 1.0 5 REM * NOTES: Tested under Microsoft(TM)(R)(C) *QBasic* 1.1 6 REM --- S is the stack 10 DIM S(4096) 15 REM --- b is the stack pointer 20 b = 1 25 REM --- _sfTO 30 t = 2 35 REM --- _sfFR 40 f = 0 45 REM --- _sfUS 50 u = 1 55 REM --- _sfNU 60 n = 3 65 REM --- _sfEN 70 e = 0 75 REM --- remain 80 m = 0 85 REM --- the stack variable 90 INPUT "Number of disks (0 < disks < 100)"; v 91 IF v>0 AND v<100 THEN GOTO 94 ELSE GOTO 92 92 PRINT "Illegal number of disks" 93 GOTO 90 94 INPUT "DISPLAY (Y/N)"; a$ 99 REM --- PUSH N (=v here) 100 GOSUB 2000 110 v = 1 120 GOSUB 2000 130 v = 3 140 GOSUB 2000 150 v = 0 160 GOSUB 2000 170 WHILE b > 1 180 GOSUB 3000 190 e = v 200 GOSUB 3000 210 t = v 220 GOSUB 3000 230 f = v 240 GOSUB 3000 250 n = v 260 m = 6 - f - t 270 IF e <> 0 THEN GOTO 280 ELSE GOTO 380 280 GOSUB 4000 290 v = n - 1 300 GOSUB 2000 310 v = m 320 GOSUB 2000 330 v = t 340 GOSUB 2000 350 v = 0 360 GOSUB 2000 370 GOTO 570 380 IF n <> 1 THEN GOTO 390 ELSE GOTO 560 390 v = n 400 GOSUB 2000 410 v = f 420 GOSUB 2000 430 v = t 440 GOSUB 2000 450 v = 1 460 GOSUB 2000 470 v = n - 1 480 GOSUB 2000 490 v = f 500 GOSUB 2000 510 v = m 520 GOSUB 2000 530 v = 0 540 GOSUB 2000 550 GOTO 570 560 GOSUB 4000 570 WEND 575 PRINT "Move count: "; count 580 END 1999 REM --- procedure push(v) 2000 S(b) = v 2010 b = b + 1 2020 RETURN 2999 REM --- procedure pop() 3000 IF b = 0 THEN GOTO 3030 ELSE GOTO 3010 3010 b = b - 1 3020 v = S(b) 3030 RETURN 3999 REM --- procedure movedisk(from, to) REM 4000 PRINT USING "move # --> #"; f; t; 4000 count=count+1 4001 IF A$ = "N" THEN RETURN 4002 PRINT "move ";f;" --> ";t; 4010 PRINT "" 4020 RETURN |
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: juin 2005
Localisation: RENNES
Version Excel : Excel 2000 (PC)
Messages: 7 079
|
Re
et un autre un peu plus court Code:
REM Euler Pseudoprime Test
REM Robert Campbell, 970701
DECLARE FUNCTION gcd& (x&, y&)
DECLARE FUNCTION powmod& (number&, exponent&, modulus&)
PRINT "Test number for primality using Euler test"
INPUT "number = "; thenumb&
PRINT powmod&(2, thenumb& - 1, thenumb&), powmod&(3, thenumb& - 1, thenumb&), powmod&(5, thenumb& - 1, thenumb&)
IF ((powmod&(2, thenumb& - 1, thenumb&) = 1) AND (powmod&(3, thenumb& - 1, thenumb&) = 1) AND (powmod&(5, thenumb& - 1, thenumb&) = 1)) THEN
PRINT "Prime (probably, testing w/ bases 2, 3 and 5)"
ELSE
PRINT "Composite"
END IF
END
FUNCTION powmod& (number&, exponent&, modulus&)
e& = exponent&
accum& = 1
pow2& = number&
WHILE (e& > 0)
IF ((e& MOD 2) = 1) THEN accum& = (accum& * pow2&) MOD modulus&
pow2& = (pow2& * pow2&) MOD modulus&
e& = e& \ 2
WEND
powmod& = accum&
EXIT FUNCTION
END FUNCTION
|
|
|
|
|
|
#8 (permalink) | |
|
XLDnaute Barbatruc
Date d'inscription: novembre 2006
Localisation: Saint etienne
Version Excel : Excel XP (PC)
Messages: 3 969
|
re:
dans le premier, c'est un horreur, cela date de matusalem, avec des n° de ligne à chaque ligne de plus la programmation est ignoble avec plein de truc inutiles exemple : Citation:
le deuxieme il y as deux declare function et une seule fonction de définie. meme en Qb cela fait une erreure alorqu'en vba il n'y a as d'erreur puisque pas besoin de declarer les fonctions.
__________________
salutations Wilfried Plus j'apprends, plus je sais....... plus je sais que je ne sais rien. Venez visiter mon zoo : Cliquez ici il est si petit, un petit click quotidien merci |
|
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: juin 2005
Localisation: RENNES
Version Excel : Excel 2000 (PC)
Messages: 7 079
|
Bonsoir
Est-ce de cette façon qu'il faut traduire en VBA? Je ne suis pas habitué à l'utilisation du caractère de désignation de type de données. Je ne sais pas si j'ai fait une erreur mais pour 3 il trouve composite et non pas nombre premier Code:
Sub test()
'auteur:
''Euler Pseudoprime Test
'Robert Campbell, 970701
Dim thenumb&
thenumb = InputBox("Un nombre?")
Debug.Print powmod&(2, thenumb& - 1, thenumb&)
Debug.Print powmod&(3, thenumb& - 1, thenumb&)
Debug.Print powmod&(5, thenumb& - 1, thenumb&)
If ((powmod&(2, thenumb& - 1, thenumb&) = 1) And (powmod&(3, thenumb& - 1, thenumb&) = 1) And (powmod&(5, thenumb& - 1, thenumb&) = 1)) Then
MsgBox "Le nombre" & thenumb & " est un nombre premier (probably, testing w/ bases 2, 3 and 5)"
Else
MsgBox "Composite"
End If
End Sub
Function powmod&(number&, exponent&, modulus&)
e& = exponent&
accum& = 1
pow2& = number&
While (e& > 0)
If ((e& Mod 2) = 1) Then accum& = (accum& * pow2&) Mod modulus&
pow2& = (pow2& * pow2&) Mod modulus&
e& = e& \ 2
Wend
powmod& = accum&
Exit Function
End Function
Dernière modification par Staple1600 ; 06/04/2007 à 23h23. |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Conversion txt | burni | Forum Excel Downloads - Archives | 6 | 11/08/2004 11h57 |
| PB conversion XLS CSV | samp | Forum Excel Downloads - Archives | 1 | 25/02/2004 08h34 |
| conversion | fred | Forum Excel Downloads - Archives | 10 | 02/07/2003 12h49 |
| help conversion | pascal | Forum Excel Downloads - Archives | 5 | 15/01/2003 22h33 |
| Pb conversion xls en csv | tst | Forum Excel Downloads - Archives | 2 | 30/11/2002 16h16 |