PETIT PROGRAMME POUN ENTRAÎNER LE COLLÈGIEN AUX FRACTIONS. PAR TIENCE, EN RÉACT

cs_Klug88 Messages postés 9 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 9 janvier 2008 - 10 nov. 2005 à 08:50
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008 - 5 avril 2007 à 10:57
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/34533-petit-programme-poun-entrainer-le-collegien-aux-fractions-par-tience-en-reactualisation

cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
5 avril 2007 à 10:57
A Etam75 qui n'est pas trop sympa dans sa critique constructive:
J'ai écrit ce code il y a un certain temps, à mes débuts!Il est inspiré aussi de Basic compatible...
Chacun fait ce qu'il peut à un moment de sa vie!

Une seule question essentielle: le programme marche ou ne marche pas? C'est ce que vous 'avez pas dit! Compilé, l'utilisateur ne se souciera pas de la source...
De toute façon, les brillantes démos dans quelques temps seront aussi caduques que les miennes!
De toute façon VB6.0 est déjà mort et enterré! Ne vous donnez pas ce mal inutile.
Il n'est même plus vendu !
Bonne continuation et soyez moins agressif pour expliquer! Vous ne devez pas être prof, ce qui demande gentillesse et patience....;)
Cordialement

Lisa
Etam75 Messages postés 1 Date d'inscription lundi 17 juillet 2006 Statut Membre Dernière intervention 5 avril 2007
5 avril 2007 à 09:43
J'ai jamais vu un code pareil en VB, on a pas du avoir le meme prof..Faut revoir tes classics...

court exemple :
--------------------------------------------------------------
Option Explicit
________________________________________________________________
Function fPPCM(Nb1 As Long, Nb2 As Long) As Long
Dim K As Long, R As Long, tmp As Long
R = Nb1 Mod Nb2
If R = 0 Then
fPPCM = Nb1
Else
K = 2
While R <> 0
tmp = K * Nb1
R = tmp Mod Nb2
K = K + 1
Wend
fPPCM = tmp
End If
End Function
_________________________________________________________________
Function fPPCM2(ByVal Nb1 As Long, ByVal Nb2 As Long) As Long
fPPCM2 = Nb1 * Nb2 / fPGCD(ByVal Nb1, ByVal Nb2)
End Function
Vero_vero Messages postés 10 Date d'inscription vendredi 11 novembre 2005 Statut Membre Dernière intervention 16 novembre 2005
11 nov. 2005 à 22:04
Bonjour Lisa
C'est vrai que certaines parties du code sont de simples algos de Basic premier. Et alors ? Basic est un langage ! Si tu sais faire ça au début ? Continue, peu à peu...tu apprendras! Seule, c'est pas facile !

Tu as mis des variables de page, je crois, avec Option Explicit pour ne pas oublier de déclarations, où est la faute signalée ? Locale, de Page, Public, c'est selon ! C'est du VB, on peut !

Je remarque en effet que chez toi, comme tu l'expliques, tout nombre non-entier est filtré et ne passe pas! Bien !

Puis, entrer et restituer des fractions réduites, et surtout donner une réduction "scolaire" parfaite de la racine carrée, peu de programmes d'initiés le font! Et en 4 lignes de Basic à papa, bravo Lisa!
Puis le programme tourne bien et rapide! Moi je n'ai pas trouvé d'erreurs en tout cas !
Moi je ne vais pas te chercher la petite bête . Je vois qu'un papa est satisfait pour son fils en 6eme donc ...Apprends le VB, continue Lisa !
Vero

PS: Débutante, tu demandes à ne pas être notée, Alors, on devrait respecter ton choix...
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
10 nov. 2005 à 23:20
Ah bon, public marche sur toute feuille et valable pour tout le projet ? Merci ! J'ignorais !
Pourquoi Diane Zak fait mettre un module de code dans ce cas, pour que les variables soient valables pour toutes les feuilles, je vais la relire. ?

OK , pas obligé de déclarer ce qui est variant par défaut là je savais, mais ça me rassure LOL !
Exemple MsgBox on le voit même déclaré dans la "bible de VB" le Guide du programmeur pro, un monument, dont je sais 1 % de ce livre, même pas !Mais la bible, c'est pas l'évangile : ! (humour)

Concernant fix(val(text1.text)), oui, mais essaie de comprendre ce que je fais maintenant,pour simplifier mes conditions imparables d'entiers obligatoires, que je fais; (revois ça...)?

If boxtext = Val(boxtext) and val(Boxtext)= fix(val(boxtext)) then
'entrée correcte
else
message
exit sub
end if

Alors poser ces conditions avec 2 égalités de fractions, avec 12 termes à chaque fois, 12 fois l'exemple, vaut mieux avoir des variables at, av, af pour l'écrire !LOL !
Puis sans variables déclarées, suis pas très sûr que ça marcherait?

Car faire: textbox qui est une chaîne val une valeur, à moi, ça me parait pas logique...??? Comme écrire : la montagne 12 +5 ;)
Il doit y avoir des instructions avancées pour ce problème, mais en attendant, mon astuce marche absolument dans tous mes programmes et j'évite les absurdités d'un code qui traite comme 3 une saisie de 3.5 ! Ou de 3,5 !
Je refais les systèmes avec ceci et avec des textBox, les inputBox ayant été critiqués: je le remettrai ensuite ici !
Merci Julien et bonne nuit !!
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
10 nov. 2005 à 22:49
Pour public tu peux le placer sans aucun module particulier mais je ne suis pas certain de voir ce que tu veux dire.

Pour tes déclarations tu demandes s'il est utile de tout déclarer la réponse est non.

Tout d'abord il est inutile de déclarer quelque chose en variant car tout est par défaut déclaré en variant

Enifn tu n'est pas obligée d'utiliser des varaibles pour tout par exemple pour le PGCD, il est inutile de créer des variables acceuillant fix(val(text1.text))...... tu peux l'écrire directement dans le code.

Derniere remarque pour centrer tes fenetres StartUpPosition = 2
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
10 nov. 2005 à 22:22
Oui OK, Julien, j'ai revu et j'ai pigé pour les variables !
Avec les systèmes à 2 inconnues (que je refais en ce moment), ce code est un code ancien repris et c'est un des rares qui n'a pas de Module de code.

Donc je ne peux pas déclarer public pour un projet sans cette feuille spécifique de module de code, si j'ai bien compris Diane Zack ??????????
Tu me diras !???

Puis Public nom as type, il faut que ce soit nécessaire; exemple, tu calcules sur une feuille et sur une autre tu traces le graphique avec les valeurs trouvées dans la feuille précédente! Là avec module de code est Public, ça marche super, tout est gardé en mémoire!

Je trouve même que j'abuse du Public maintenant dans les programmes que je fais, et pas postés ici...

Mais, tu me diras aussi : option explicit, c'est toute autre chose = l'obligation à déclarer tes variables, sinon VB t'en informe !
J'ai voulu savoir si tout était utile à déclarer.

Maintenant, les progrés en VB moderne reste un vrai problème pour moi, être moins Basic ! Mais déjà j'approfondis ce que je sais dans les bases élémentaires et je découvre plein de choses ! Je suis contente de ça et je note tout !

Exemple pour VaL est-ce que tout le monde sait tout?

Tu mets Val(3.15) tu as quoi ????

a) Tu as 3.15 si tu es déclaré réel et seulement 3 si tu es déclaré Entier. Normal !

b) Mais tu auras Val(3.15)= 3,15 si tu es déclaré réel (Double par exemple) et AUSSI paramétré virgule en Windows !Etonnant, non, mais logique, j'ai testé tout ça avec un programme que j'ai fait !

c) En revanche si tu as Val(3,15) dans tous les cas tu auras seulement 3 car la virgule est toujours lue alphanumérique, même si VB sait remplacer 3.15 en 3,15 mathématiquement, si paramétré virgule !
Pas simple ! Tu trouves pas ! J'ai dû trouver ça seule !
Et tu vois l'importance gravissime pour les saisies! (On en en avait parlé!). Car simplifier une fraction, j'utilise l'algo d'Euclide et tu imagines la suite ! Le résultat du programme est faux par rapport à la saisie !. C'est pas une paille, ça !!

Puis plein d'autres choses aussi, sur les simples bases de VB, je cimente mais j'avance pas dans l'étude ! Les goto attendront, car le pire c'est d'avoir des résultats faux et des error no 124 LOL
Je trouve ça extrêmement grave, les erreurs dans les résultats !

Mais je note bien tout ce que tu m'as dit! C'est Vrai aussi pour l'absence de Public dans ce code.
Lisa
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
10 nov. 2005 à 21:25
1) Oui les goto sont assez critiqués à chaque fois, mais je n'ai pas appris encore les autres boucles . C'est du Basic premier, certains passages.
Do while je ne connais pas bien, et ne sais pas en + comment en tirer parti. En revanche, moi je comprends parfaitement les goto, même dans un autre code que le mien, parce que j'ai commmencé par du Basic, c'est sans doute ça !
Dès que j'aurai appris, je ferai un effort, promis !

Option explicit, je le mets avant les Public, dans les modules, cpomme ON m'a appris, car ça t'informe si une variable n'est pas déclarée, et en fait c'est vrai
Je ne sais plus si j'ai mis ça en variables de page.

Mais en module je mets bien forcément dessous :

Public nom-variable as type ? Bien obligée et Public, c'est bon pour passer d'une form à une autre !Sinon, ça marcherait pas!
Je ne comprends pas ta remarque ?????????????
Où tu veux mettre que des Public? J'ai pas compris, Julien!
Les Public, on ne peut les metre que dns un module, si on a plusieurs pages ??? Je vais regarder ce que tu as vu...

2) Fenêtre :
J'ai assez centré selon mon goût avec l'utilitaire plutôt que la formule, (flegme...lol) mais mon écran est un 21 pouces, LOl, ça peut faire différent
J'oublie pas les conseils, merci !
Lisa!
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
10 nov. 2005 à 20:37
Bonjour

Si on ne regarde que l'execution c'est très bien a part que les fenetres ne sont pas centrées, en revanche le code n'est pas extraordinaire, l'utilisation abusive des Goto n'est pas une bonne idée je pense, ils peuvent etres facilement remplacés par des boucles while ou for.

Les Goto allongent le code et rendent les choses difficiles a comprendre.

La déclaration des variables c'est bien mais je ne comprends pas pourquoi tu ne mets pas Public "variable" as "type" au lieu de option explicit ...
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
10 nov. 2005 à 15:17
Les fractions, le gros morceau est plutôt 5eme et 4e même !
Mais c'est vrai, on les initie dès le CM.
Ici, vous avez le choix des exos et vous pouvez introduire des exemples très simples: 1/5 + 2/5 ou des fractions décimales.

J'aurais pu placer qq règles, mais ça fait long à programmer et des exercices de révision ne doivent jamais remplacer un prof ou les parents ! Sinon, on irait à la cata selon moi !

Montrer que 3/4 est pareil que 6/8 avec le classique dessin de la tarte découpée de manière différente...

A signaler aussi de bons CD pro éducatifs dans le commerce, sous forme plus ludiques avec musique, animations, etc...Même de bons manuels de révisions (Nathan).
Bonne journée
Lisa

PS :
Ici, c'est qu'un loisir (intelligent) la programmation amateur. On est loin du logiciel pro, à notre époque ! Tant pis ! :)
cs_Klug88 Messages postés 9 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 9 janvier 2008
10 nov. 2005 à 12:42
Je pensais plutôt aux fractions, il est vrai qu'il à encore le temps pour le reste.
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
10 nov. 2005 à 12:09
1) Pour les fractions, le PPCM, et les racine, c'est un peu tôt en 6eme, non?
Mieux d'attendre en 5e, plutôt en 4e ? Voire en 3e pour les racines.
Mais s'il est motivé pourquoi pas.

2) Question intro en VB, je ne suis pas sûr d'être un bon modèle. Vous trouverez bien mieux ici.
Mais merci Klug !
cs_Klug88 Messages postés 9 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 9 janvier 2008
10 nov. 2005 à 08:50
Très bonne idée pour mon fils qui est en 6ieme.
De plus cela pourra aussi lui faire une bonne intro en VB....

;-)