Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Répondre
Résumé de la discussion (messages les plus récents en premier)
- qbasic45
- 05-05-2014 17:03:06
boujour yoshi
je neveux pas donner une leçon de Basic
c'est une question ?
merci
- yoshi
- 05-05-2014 05:52:19
Salut,
Tu cherches quoi ?
A donner une leçon de Basic ? Tu posais une interro ?
Je croyais que tu cherchais des tuyaux ?
Je regarderai ça, voir ce que tu fais : le programme, lui, me le dira, enfin j'espère parce qu'il est bizarrement écrit : il y aurait des "factorisations à faire".
En outre, même si ton sujet est le Quick Basic, je constate qu'il sans rapport avec la roulette de Zeoioui... Je te demande (et ce n'est plus là, une suggestion) donc, si tu veux continuer ces échanges, de bien vouloir ouvrir ta propre discussion.
Merci
@+
[EDIT]
Ton prog fonctionne effectivement. Mais pour l'instant malgré le défilement à l'écran, je n'ai rien compris à ce que tu fais dans la boucle contrôlée par t, ni l'idée directrice de tes permutations circulaires.
Je souhaiterais récrire ça "proprement", mais sans comprendre ce que tu fais, c'est quasi mission impossible...
- yoshi
- 04-05-2014 19:12:46
Salut,
Vite fait sur le gaz comme ça...
Je suppose avoir déclaré et construit un tableau T
tel que :
T=(8,5,3,6,10,7,2,4,9,1)
Pour opérer une permutation circulaire, j'écrirais :
FOR i =1 TO 9
T(i)=T(i+1)
NEXT
T(10)=a
Si tu veux les voir toutes, 2 boucles imbriquées :
FOR j = 1 TO 10
a=T(1)
FOR i =1 TO 9
T(i)=T(i+1)
NEXT
T(10)=a
NEXT
J'ai testé en Python, voila les sorties :
[5, 3, 6, 10, 7, 2, 4, 9, 1, 8]
[3, 6, 10, 7, 2, 4, 9, 1, 8, 5]
[6, 10, 7, 2, 4, 9, 1, 8, 5, 3]
[10, 7, 2, 4, 9, 1, 8, 5, 3, 6]
[7, 2, 4, 9, 1, 8, 5, 3, 6, 10]
[2, 4, 9, 1, 8, 5, 3, 6, 10, 7]
[4, 9, 1, 8, 5, 3, 6, 10, 7, 2]
[9, 1, 8, 5, 3, 6, 10, 7, 2, 4]
[1, 8, 5, 3, 6, 10, 7, 2, 4, 9]
[8, 5, 3, 6, 10, 7, 2, 4, 9, 1]
Voilà pour les permutations sur 10.
Pour le reste, ton "cahier des charges" n'est pas assez précis et détaillé...
@+
- yoshi
- 04-05-2014 13:52:25
Ave,
Bienvenue à bord !
Hmmm....
La règle d'or dans un forum est un sujet = une discussion..
Est-ce que ton post a quelque chose à voir avec la discussion ouverte par Zeoioui ?
Pour le moment, je n'en ai pas l'impression.
Si j'ai raison, veux-tu bien ouvrir ta propre discussion s'il te plaît ? Merci d'avance.
ok !
Quoi, ok ?
Problème : une chaîne de caractère BASIC ne peut pas contenir plus de 255 caractères.
Ça, je sais, j'ai assez fait de Basic dans le temps pour m'en souvenir...
De même les noms de fichiers avant XP étaient limités à 8 caractères + 3 pour l'extension.
De toute façon, on peut ruser...
On peut fabriquer à la demande et/ou à la volée, des noms de chaînes A1$, A2$, A3$, A4$... en quantité suffisante pour stocker le nombre de caractères voulu (dans des limites raisonnables quand même...).
Pour 1000, 4 suffisent 255*3 + 235...
j'ai fait un programme en qbasic 4.5 de 1000 caractères sans problème
Et ça veut dire quoi ?
Que ton prog faisait 1000 caractères ou que tu as stocké plus de 1000 caractères ?
Un prog de 1000 caractères n'est pas un exploit : j'avais écrit en Locomotive Basic (Basic Amstrad CPC) un programme de conjugaison, un prog d'Astrologie de quelques milliers de lignes...
Avec Python, le nombre de caractères d'une chaîne ou le nombres de chiffres d'un entier naturel n'est limité que par la taille de ta RAM...
J'ai pu ainsi, en n'utilisant pas de décimaux, calculer le nombre d'or avec 20000 décimales en une poignée de secondes.
Qasic, est drôle un moment, mais sacrément limité. Mieux vaut Python quand même.
Dans la même veine et compatible à 95% avec QB, FreeBasic offre plus de solutions et couplé à Fbedit un GUI pour éditer FreeBasic, c'est quand même plus sympa..
Bon à part ça, tu veux quoi ?
C'est toi ici : http://www.maths-forum.com/a-ont-appris … 154412.php ?
Qu'est-ce que tu attends exactement ?
@+
- zeoioui
- 19-04-2014 19:06:11
Super Yoshi, je vais étudier ton progr. avec plaisir...
Je reviendrai avec des commentaires ou questions peut être, un bon exercice encore en attendant de pouvoir exécuter...
Bon week end pascal et @ plus, je bouge pas de la maison...
Zéoioui.
- yoshi
- 18-04-2014 11:08:47
Bonjour;
Ok !
Ma version FreeBasic :
DIM AS INTEGER Temoins(1 TO 10),Manque(1 To 3), Sortis(1 TO 10)
DIM AS INTEGER n,nb,i,j,t,p,ok,fin,c,cpt
DIM a AS String
n = 100
cpt = 0
c=0
RANDOMIZE TIMER
CLS
PRINT " *** FAITES VOS JEUX ! ***"
PRINT CHR$(13):PRINT CHR$(13)
PRINT "Tirages : ";
FOR i=1 TO 10:Temoins(i)=0:NEXT
FOR i=1 TO n
nb = 1 + INT(RND * 10)
PRINT USING"###"; nb;
IF Temoins(nb) = 0 THEN
cpt = cpt + 1
IF cpt < 8 THEN
Temoins(nb) = i
Sortis(nb)=nb
IF cpt = 7 THEN
PRINT CHR$(13)
PRINT CHR$(13)
PRINT CHR$(13) + " --------------- "
PRINT " *** Tirage no "; i; " objectif atteint ! ***"
PRINT " --------------- "
PRINT CHR$(13)
ok=i
FOR j =1 TO 10
IF Sortis(j)=0 THEN
c=c+1:Manque(c)=j
ELSE
PRINT " Le nombre";USING "##"; j;
PRINT " est sorti au";USING "##";Temoins(j);
PRINT "e tirage."
END IF
NEXT
PRINT CHR$(13)
PRINT " !! Ne sont pas sortis :";USING"###";Manque(1);Manque(2);Manque(3);
PRINT " !!"
PRINT CHR$(13)
INPUT "Dans combien de tirages, entre 1 et 5, le 8e nombre sortira-t-il ? ",p
PRINT " .... Tolérance de + ou - 1 ..."
PRINT CHR$(13)
PRINT "Reprise du tirage : ";
END IF
ELSEIF cpt=8 THEN
PRINT CHR$(13):PRINT CHR$(13):PRINT CHR$(13)
PRINT "Le nombre ";USING "##";nb;
PRINT " vient de sortir au tirage no";USING"###";i
EXIT FOR
END IF
END IF
NEXT
IF i>=ok+p-1 and i<=ok+p+1 THEN
PRINT " Veinard, vous gagnez !"
ELSE
PRINT " Pas de chance, vous avez donc perdu !"
La version Python 3.4 (D'habitude, je travaille avec les versions 2.6/2.7
Temoins,Sortis,Manque,=["_",0,0,0,0,0,0,0,0,0,0],["_",0,0,0,0,0,0,0,0,0,0],[]
ok,cpt,n=0,0,100
print (" *** FAITES VOS JEUX ! ***")
print ()
print ()
print ("Tirage :",end="")
for i in range(1,n+1): # Je boucle de 1 à n (le n+1 est le test d'arrêt)
nb=randint(1,10) # Je tire au sort un nombre entre 1 et 10
print ("%3i" % nb,end="") # J'affiche mes tirages sur la même ligne (grâce à la ,)
if Temoins[nb]==0: # si le temoin associé à ce nombre est 0 alors
cpt+=1 # j'incrémente mon compteur de 1 : nombre pas encore tiré
if cpt<8: # si le compteur est < 8 alors
Temoins[nb]= i # je stocke la position de ce tirage
Sortis[nb]=nb
if cpt==7:
print ()
print ()
print (" *** Tirage no",i,": objectif atteint ***")
ok=i
print ()
for j in range(1,11):
if Sortis[j]==0:
Manque.append(j)
else:
print (" Le nombre","%2i" % j,"est sorti au",str(Temoins[j])+"e tirage.")
print ()
print (" !! Ne sont pas sortis :",Manque[0],Manque[1],Manque[2],"!!")
print ()
p=int(input("Combien de tirages(entre 1 et 10) encore pour la sortie du 8e ? "))
print (" ... Avec une tolérance de + ou -1 ...")
print ()
print ("Reprise du tirage :",end="")
else:
print ()
print ()
print ("Le nombre",nb,"vient de sortir au ",str(i)+"e tirage")
break
if i>=ok+p-1 and i<=ok+p+1:
print (" Veinard, vous gagnez !")
else:
print (" Pas de chance, vous avez donc perdu !")
Tu peux constater que la sortie est identique à celle de la la version FreeBasic (post # 32) :
*** FAITES VOS JEUX ! ***
Tirage : 9 3 10 6 3 6 3 7 5 10 9 3 10 1
*** Tirage no 14 : objectif atteint ***
Le nombre 1 est sorti au 14e tirage.
Le nombre 3 est sorti au 2e tirage.
Le nombre 5 est sorti au 9e tirage.
Le nombre 6 est sorti au 4e tirage.
Le nombre 7 est sorti au 8e tirage.
Le nombre 9 est sorti au 1e tirage.
Le nombre 10 est sorti au 3e tirage.!! Ne sont pas sortis : 2 4 8 !!
Combien de tirages(entre 1 et 10) encore pour la sortie du 8e ? 5
... Avec une tolérance de + ou -1 ...Reprise du tirage : 8
Le nombre 8 vient de sortir au 15e tirage
Pas de chance, vous avez donc perdu !
@+
- zeoioui
- 18-04-2014 09:36:01
Salut Yoshi,
Je laisse pas tomber encore ( voir mon mail envoyé ce matin ) Ceci dit j' ai téléchargé les deux cours Python et j'ai mis de côté Python 3.4 . Merci, surtout pour les tutoriels, j'essaie d'en finir avec Qbasic et je mets au travail avec Python...
Zéoioui.
- totomm
- 18-04-2014 09:20:24
Bonjour,
@yoshi : Encore un grand merci pour ces références qui vont être (très) utiles à plusieurs de mes petits-enfants grands adolescents
- yoshi
- 18-04-2014 08:50:37
Salut,
Je peux constater que tu as toujours tes problèmes...
Laisse tomber...
Télécharge Python 3.4 ici : https://www.python.org/downloads/release/python-340/
Et tu cliques sur la ligne Windows x86-64 MSI installer...
Pour apprendre Python, deux bouquins simples et didactiques téléchargeables gratuitement ici :
http://perso.limsi.fr/pointal/_media/py … ython3.pdf
http://inforef.be/swi/download/apprendre_python3_5.pdf
@+
- yoshi
- 16-04-2014 15:12:27
Salut,
C'est clair que Python, C, C++ pour ne citer qu'eaux sont un autre monde, des horizons immensément plus vastes.
Pythpn, pour un débutant est assez facile à apprendre.
Après, lorsqu'on veut faire des choses très élaborées, il faut vraiment se creuser la cervelle...
J'ai déjà transformé en Python un programme que j'ai baptisé Phynance (allusion à la "pompe à phynance" d'Alfred Jarry): calculs de remboursements de prêts de types divers avec affichage des tableaux d'amortissement et calculs de capitalisation, calcul du nombre d'or avec 1000; 10000, 20000, 30000... décimales (où seule ta quantité de RAM te limite), divers programmes de tri, un programme idiot : toutes les manières de réaliser un score de match de Rugby, des programmes de codage/décodage de messages.... etc...
M'enfin, QB ou FreeBasic, ne te donnent pas de mauvaises habitudes, pourquoi pas pour débuter ?
Après, hein, l'appétit vient en mangeant... ^_^
@+
- zeoioui
- 16-04-2014 13:53:29
Pas mal ce jeu que tu as créé, j'étudie un peu tes commentaires et je reviendrai vers toi car compte tenu de ce que tu as fait , en créant ce jeu, j'ai réalisé que je pouvais synthétiser le codage de mon programme-jeu, et sans doute l'alléger de quelques instructions inutiles.
Je t'exposerai plus explicitement ma synthèse, et tu me diras ce que tu en penses. Quant à ce que tu as fait, ça donne des idées et ça donne envie de construire et imaginer des jeux, tout en apprenant en ce qui me concerne, mais pour toi qui sait coder, t'as que l'imagination à mettre en branle pour construire des choses ( dans le domaine des jeux ) qui peuvent intéresser...
En tout cas, bien ton petit progr. avec filtres...
A plus Yoshi, faut que je rédige un peu pour t'exposer... Sinon, pour le Basic que je recherche, ça va être réglé d'ici 2 ou 3 jours, je pourrais enfin exécuter et tester un peu.
Je compte ensuite apprendre Python, on me conseille de partout d'oublier QBasic !
Je vais voir aussi ce que je peux faire via le lien que tu me fournis pou Free Basic.... A plus.
Zéoioui.
- zeoioui
- 16-04-2014 11:24:09
Salut,
J'ai pas vu la suite du message Yoshi, peut être as-tu été interrompu : " Bon, j'ai avancé et créé un jeu à ma... "
Sinon, je te montrerai comment j'ai monté la 1ère partie du programme en basic, en m'inspirant de ce que tu m'as appris.
Demain, je ne serai pas à la maison, je reviendrai vendredi matin 18 avril, aujourd'hui, je suis là...
A plus. Zéoioui.
- yoshi
- 16-04-2014 10:46:54
Salut,
Bon, j'ai avancé et créé un jeu à ma façon :
*** FAITES VOS JEUX ! ***
Tirage : 7 10 4 3 5 7 2 6
*** Tirage no 8 : objectif atteint ***
Le nombre 2 est sorti au 7e tirage.
Le nombre 3 est sorti au 4e tirage.
Le nombre 4 est sorti au 3e tirage.
Le nombre 5 est sorti au 5e tirage.
Le nombre 6 est sorti au 8e tirage.
Le nombre 7 est sorti au 1e tirage.
Le nombre 10 est sorti au 2e tirage.!! Ne sont pas sortis : 1 8 9 !!
Combien de tirages(entre 1 et 10) encore pour la sortie du 8e nombre ? 3
... Avec une tolérance de + ou -1 ...Reprise du tirage : 10 9
Le nombre 9 vient de sortir au 10e tirage
Veinard, vous gagnez !-------------------------------------------------
*** FAITES VOS JEUX ! ***Tirage : 9 2 7 5 7 7 10 5 8 4
*** Tirage no 10 : objectif atteint ***
Le nombre 2 est sorti au 2e tirage.
Le nombre 4 est sorti au 10e tirage.
Le nombre 5 est sorti au 4e tirage.
Le nombre 7 est sorti au 3e tirage.
Le nombre 8 est sorti au 9e tirage.
Le nombre 9 est sorti au 1e tirage.
Le nombre 10 est sorti au 7e tirage.!! Ne sont pas sortis : 1 3 6 !!
Combien de tirages(entre 1 et 10) encore pour la sortie du 8e nombre ? 4
... Avec une tolérance de + ou -1 ...Reprise du tirage : 6
Le nombre 6 vient de sortir au 11e tirage
Pas de chance, vous avez donc perdu !
Sorties en Python.
Ainsi que tu le vois :
* j'ai ajouté un titre (rappelant la roulette du Casino)
* j'ai ajouté les mentions "Tirage" et "Reprise du Tirage" pour clarifier
* j'affiche les tirages successifs et je m'interromps au 7e nombre tiré
* j'affiche les infos : le n° de ce tirage, puis les sorties et leur n° d'ordre et enfin les nombres manquants...
* j'affiche les nombres manquants.
Je demande alors au joueur, nanti de ces informations, de deviner dans combien de tirages le 8e numéro sortira...
Supposons que la réponse soit 5, je précise une tolérance de + ou -1, rendant bonnes les réponses 4, 5, 6...
Supposons encore que le 7e nombre soit sorti au 15e tirage, les ordres de sorties gagnants seront donc 19, 20 et 21.
L'affichage du tirage reprend alors jusqu'à la sortie du 8e nombre et là je sors définitivement de la boucle...
Si l'ordre de sortie du 8e nombre est (dans mon exemple) 19, 20 ou 21, c'est gagné, sinon, c'est perdu.
Voilà la sortie BASIC :

Tu noteras que cela a été fait avec FreeBasic qui est compatible à 98% avec QB : c'est du QB amélioré...
QB ne peut afficher en dimensions au delà de 640 x 480 (rikiki sur mon 24 pouces en 1920 x 1200 !).
FreeBasic va jusqu'à 1280 x 1024...
Il y a de plus quelques légères modifs de syntaxe : dans les déclarations de tableaux par ex et les variables doivent être déclarées avant usage comme en C, C++, Pascal...
J'ai encore amélioré en ajoutant une interface graphique : plus pratique pour travailler (avec la souris, des icônes et des menus Windows habituels)
Les deux, FreeBasic + interface graphique, se trouvent ici :
http://sourceforge.net/projects/fbide/
@+
- zeoioui
- 14-04-2014 20:52:55
Bien reçu le fichier Yoshi, j'ai fait réponse au mail...
A demain, si Dieu veut...
Zéoioui
- yoshi
- 14-04-2014 18:35:55
Salut,
Oui, gmail a bloqué : j'ai recommencé à l'adresse de ta femme...
Si tu avais suivi pas à pas le programme en regardant les sorties, muni d'un crayon et d'un papier pour simuler les boucles : tu aurais sûrement compris !
Mais quand on est débutant, c'est un réflexe et une habitude qu'on a n'a pas...
Je le fais encore quand j'ai un prg qui coince et quand je n'ai pas réussi à trouver pourquoi.
@+







