RÉSOUDRE GRAPHIQUEMENT ET NUMÉRIQUEMENT UN SYSTÈME À 2 INCONNUES: ELÈVES DE 3E D

us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 - 15 oct. 2005 à 18:38
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008 - 17 sept. 2008 à 16:20
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/34133-resoudre-graphiquement-et-numeriquement-un-systeme-a-2-inconnues-eleves-de-3e-des-colleges-verifiez-vos-resultats

cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
17 sept. 2008 à 16:20
Alors merci US ! Jamais ça ne peut être parfait. Au moment du programme en VB6, je débutais mais j'avais des notions en Basic ancien que j'utilisais un peu trop... VB6 le permettait...Mais là bien entendu, en Vb 2008, source Net, je n'ai pas jeté le moindre coup d'oeil sur le programme en VB6, VB6 que j'ai désinstallé d'ailleurs. Je ris franchement des commentaires qui sont restés ici...Tellement ça n'a plus rien à voir....
C'est le graphisme du Net qui m'a donné le plus de mal, très différent! En VB 6 il suffisait d'utiliser le vieux Basic avec ses psets. Le cours d'Halvorson m'a un peu aidé. Mais c'est surtout une explication sur un forum qui m'a permis de faire évoluer le point, avec une structure Point. Sinon, jamais lu...
(Zak n'a jamais traité que de la bureautique, ou elle excelle, et concernant les enregistrements avec la classe StreamReader, je lui donne de loin ma préférence pour conserver l'accentuation et le chemin du fichier txt placé imparablement dans bin).
Quant à toi, en relisant, je vois que j'ai dû retenir entre autre, l'idée de placer 1 par défaut en dénominateur pour éviter 2 shémas et des fautes d'utilisateur...;).
Ce programme devait être refait, m'avait dit un modérateur, raison pour laquelle je l'ai refait en Vb 2008 sans ajouter une nouvelle source...
Je vais en profiter pour remercier Microsoft d'offrir les versions Express, VB, C#, C++ ! Prenez vite VB 2008 Express gratuit, presque identique à Vb 2005, des fois que MS (dont la générosité soudaine nous a étonnés..LOL), changerait d'avis! Une licence nous a été délivrée, on est paré! Lisa
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
16 sept. 2008 à 21:45
Bonsoir Lisa,

J'ai regardé de nouveau ta nouvelle version sous VB2008... En effet, elle n'a plus rien à voir en terme de structure, par rapport à la première version... du moins d'après mes souvenirs.
Si le programme n'a pas changer, je vois que tu as nettement progressée. Je ne vois plus de code inutile. En fait, je n'ai pas de remarque particulière... Bon, dire que c'est la perfection, peut-être pas; mais dire que c'est correct, assurément !

Je te souhait une bonne poursuite, et bravo pour le suivi... 10/10.

Amicalement,
Us.
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
15 sept. 2008 à 18:55
Programme entièrement réécrit en Visual Basic 2008. Pas une seule ligne n'a été conservée de Vb 6!
La plupart des commentaires ci-dessus sont donc devenus caduques.
Et me font maintenant un peu sourire...même si c'est pas beaucoup mieux...;)
Pour info !
Lisa
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:34
Moi je trouve ça pas médiocre du tout : tracé et impression graphiques, études sans faille de tous les cas, du travail de romain! Qu'importe les détails ! Bien !
Mais ce que dit US_30 est exact !
Ce serait dommage d'employer un terme pas gentil et injuste !Pourquoi ?
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
21 oct. 2005 à 22:17
PS:
a=text1.text
est placé avant V= val(text1.text)

Excuses !

Lisa
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
21 oct. 2005 à 08:56
Bon, sueur et réflexion de débutante qui a bûché avec peu de connaissances des intructions VB.
Pour signaler et stopper l'entrée de décimaux, si non souhaités, et de négatifs ou d'entrée vide, je crois avoir la solution !
Et quel que soir le pramétrage du décimal de Windows XP ( . ou ,).(Les anciens savent que c'est pas les mêmes résultats assez étonnants d'ailleurs: Val(a) saura transcrire 15,6 mais ne saura lire que 15.6, même en paramétrage virgule de XP. Voicipour ceux qui liront et que ça intéresse...
Dim delta As Double, a As Variant, F As Double

delta Val(Text1.Text): a Text1.Text: F = Fix(Val(Text1.Text))

Label7.Caption = "Entrez un entier positif !"

If Text1.Text "" Then Label7.ForeColor &HFF&: Label7.Caption = "Vous devez entrer un nombre entier positif !": Exit Sub

If delta < 0 Then
Label7.ForeColor &HFF&:label7.caption "Entrez un entier positif !"
Exit Sub
End If
('Il faut la double égalité pour couvrir tous les cas: a=delta=F)
If a delta And delta F Then '(élimine toute entrée 8.4 et 8,4)
Label7.Caption = "Entrée correcte"
'GoTo Programme
Else
Label7.Caption = "Vous devez entrer un nombre entier positif !"
Exit Sub
End If

Programme:

PS: j'avais demandé de l'aide pour ceci, (. ou, selon XP) mais que nennie !!! Silence.
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
19 oct. 2005 à 18:31
QQ. erreurs de frappe dans le texte ci-dessu, exemple : 2 fois exit sub.
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
19 oct. 2005 à 18:27
J'ai fait fait un petit progr. de tests pour les saisies décimales point ou irgule selon les paramétrages de XP:
On voit que :
1-XP paramétré virgule:
a) text 2,6 ; Val 2; Fix =2 donc Val ne sait pas lire 2,6
b) Text 2.6 ; Val 2,6 ; fix 2. Là, Val lit le point décimal et transcrit en virgule 2,6. Notez le bien !!!

2-XP paramétré point:

a) text 2,6 ;val 2 fix2 val = fix; Val ne lira pas 2,6 numérique
b) text 2.6 ; val =2.6 et Fix = 2

Conclusion 1 :
Val sait lire que le point décimal qq. soit le paramétrage.
Val sait écrire 2.6 en 2,6 en paramétrage virgule

Donc Val sait écrire le décimal virgule (paramétrage virgule de XP), Mais ne sait jamais lire le décimal virgule 2,6

Pour bloquer une saisie décimale, il me semble que, le plus simple : satisfaire la double égalité:

If Text1.text val(text1.text) Fix(val(text1.text))then
aller au programme (goto)
else
"Message entrez un entier"
exit sub
End If
exit sub

Car attention, avec 2,6 on a:
val(text1.text) = Fix(Val(text1.text))

val donnant 2 dans tout paramétrage de Windows.

Il me semble avoir trouvé..voir ???
Lisa

J'ai fait ceci :

Private Sub Command1_Click()
Dim a As Variant 'ceci un programme test en observant les réponses
Dim q As Single
Dim v As Double
Dim f As Integer
a Text1.Text: Label4.Caption a
v Val(Text1.Text): Label6.Caption v
f Fix(Val(Text1.Text)): Label8.Caption f
Label10.Caption = 9 / 2 'teste le paramétrage Windows point ou virgule

End Sub

Vos remarques ?
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
18 oct. 2005 à 16:05
Info pour les débutants:

Dans un programme d'entiers, pour éliminer sans bug les entrées décimales, j'avais trouvé:

dim a as double

if val(text1.text) <> Text1.text or Fix(a) <> a then
label1.caption= "Vous devez Entrer un entier"
exit sub
end if

Ainsi avec 2.6 ou 2,6 sur mon PC ça marche, mais pas sur le second PC qui dit "Type incompatible", pour 2.6 mais marche dans l'autre cas.
La raison simple, je vois:
le second PC a pour symbole décimal dans Windows la virgule et le premier le point.

Avec le point, Windows, donc VB, comprend bien le programme dans les deux cas. La virgule est logiquement considérée comme du texte par VAL.
Mais dans le cas inverse de paramétrage virgule, le point est refusé par Windows et pas considéré comme du texte par VAL comme il le devrait !
Une incohérence de Windows et de VB6...

Et mon problème n'est pas résolu pour tout PC.

Si vous avez un truc simple ? Merci !
Lisa
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
17 oct. 2005 à 19:08
Au fait US_30, je viens de reconsulter "Déclarations des variables", chez Diane Zak, elle déclare exactement comme tu m'avais dit. Dont acte ! C'est important et peut expliquer certaines errances...
Et aussi je tiens à défendre cette prof qui est irréprochable, je ne sais où j'avais lu cette connerie.
Lisa
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
17 oct. 2005 à 11:09
Julien :
Excuse, j'ai tapé 6 par erreur, avec ces étoiles, ça a changé.
Tu peux pas essayer ça pour moi:
Je crois qu'un textBox ou un inputBox prennent du texte comme des nombres, par défaut.
a) J'ai lu que VAL extrait la valeur numérique de la chaîne entrée dans le text Box.
Donc c'est pour ça que val(2,25) dans textBox te sortira 2 seulement, car le nombre US Microsoft est 2.45 (Le point!).
b) Concernant 2.25 le décimal reconnu, tu as 2 en demandant
Fix(2.25) ou Int(2.25).

c)Pour cette raison, et ne recevoir que les entiers si l'utilisateur tape mal, j'ai écrit ceci, comme je te disais :

dim a as double: a = val(text1.text)

If Val(Text1.Text) <> Text1.Text or Fix(delta) <> a Then

Label1.ForeColor &HFF&: Label1.Caption "Vous devez entrer un nombre entier !"
Exit Sub
End If

M'aider vraiment ce serait ceci ! Même si j'accepte les conseils de petits détails...:

Tu ouvres une form1, place une Commande, un Quitter, un text1 et un label1 et un label2 (par exemple).

Tu mets mon code en fonction de ça...

Tu ajoutes la ligne:
label2.caption = a

Ensuite tu tapes 4.21 puis 4,21 par exemple puis aussi 45, par exemple et tu me dis si ça marche ! (En VB !).
Sur mon PC, ça marche terriblement bien et j'élimine ainsi les décimaux sans plantage, et l'écriture 12,14 = 12.

Le but est de savoir si mon idée fonctionne ailleurs. Ceci me fait vraiment progresser !
(Mon PC2 refuse le point , sans doute question paramétrage Windows qui est paramétré "virgule". Là ça me gêne, ce PC2.)
Merci Julien !

US:
Us remarquera que j'ai mis des "exit sub", et modifier les déclarations comme il dit. Et ça marche ! Merci à lui, surtout pour les variables...
Je lui redis que mon programme , surtout le graphique est dans le langage Basic et non pas vraiment en VB ! Et ça ne se compare pas! En Basic il est assez correct et complet, mais en VB il ne vaut pas grand chose, forcément, encore moins en C++, LOL !
Mais je rends le Basic séquentiel en événementiel, déjà pas mal, grâce au logiciel VB6.
PS: compilé en TurboBasic (un peu modifié), il tourne sur XP qui émule le Dos ancien... Jai le vieux logiciel Turbo basic, de papa, je compile en TB et mes logiciels Basic-dos tournent en émulation dos. Là je vous promets...Grâce à papa !
C'est une info !
Amitié à tous.
Lisa
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
16 oct. 2005 à 13:44
Bien sûr Julien ! US, il m'apprend des choses , surtout les variables où il faut répéter pour chaque! C'est important et peut expliquer certains plantages.
Attaquée, moi ? Non, la seconde fois, US a pris pour reproche, (il m'a semblé) une remarque générale qui me vient à l'esprit qui est de tester le programme avant. Et nous concerne tous. Et ensuite il a paru un peu énervé. Pas grave ! L'incident qui n'existe même pas est clos.
Même débutant, on peut exprimer des pensées générales , mais par écrit c'est délicat, c'est parfois mal perçu, je connais, même en forum. On prend une idée émise pour une engueulo.
En faisant tourner, on peut découvrir qq défauts de plus, puis même des qualités. Comme toi, tu as trouvé le résultat bon est rapide... c'est ce que retient l'utiliseur.
Mais si on connaît mieux, on peut programmer plus vite et plus court et là j'en suis convaincue. Patience. Je note les conseils de US et des autres.
Pour les inputBox, j'ai expliqué à US :
Le progr. avait été fait quand je maîtrisais encore moins les interfaces. Je l'ai seulement arrangé sans tout refaire.
Puis un peu pinailleuse avec peu de connaissance, j'aurais été tentée de mettre tous les cas de label et de textBox avec et sans fractions,en mettant des visibles puis etc...avec un tas de combinaisons vu les 2 égalités, puis tracer le graphique, résultat un code croisé avec des longueurs épouvantables qui, en fait, en décourage bcp, car je vois pas de saisies d 'entiers et fractions en même temps. Mettre que des fractions en collant 1 à tout dénominateur sans nécessité ne me plaît pas ! Je connais les élèves...de 4e- 3e et même seconde.
Je crois que dans le trinôme du second degré je n'ai pas mis d'inputBox, mais un page d'options, puis une feuille pour entiers et une feuille pour fractions. Puis une autre feuille pour le graphique de la courbe.
En fait, c'est plus simple en interface que les systèmes à 2 égalités.
Mais ça peut servir, un débutant peut parfois trouver une idée: en 4 lignes basic j'ai trouvé un truc pour réduire la racine carrée en: x aVb. (Ex. V18 3V2, pas facile à demander au PC). Et ça marche...alors...D'autres le font aussi aVb, mais rien compris à leur code...VB et très très long...

Je regarderai tes sources.
Excuse ma longueur et de ne parler que de moi!
Et ne t'excuse pas d'avoir trop bien noté...sourire...
Merci !
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
16 oct. 2005 à 12:57
Je n'ai malheureusement pas le temps de lire tout les codes surtout ceux qui sont aussi longs que le tient, j'ai regardé l'executable et comme il semblait assez rapide j'ai pensé que le code était assez soigné. D'où cette note.

De plus je suis assez souvent généreux avec la notation car j'aprécie particulierement qu'on commente et note mes sources par conséquent je fait ce que j'apprécie que les autres fassent pour moi.

En revanche us_30 lui s'est manifestement interressé au code pour t'aider, et non por t'attaquer je pense.
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
16 oct. 2005 à 12:39
PS: en cliquant sur Aide, mon logiciel dit qu'il n'a pas l'aide, il manque la base de données! Je ne mens pas, voyons...:)
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
16 oct. 2005 à 12:36
1) Merci à Julien qui compense la "médiocrité" d'une débutante en metant 8! Et ça encourage, tu as au moins vu vu le travail, le résultat en exe, car tu as dû faire tourner! L'élève ne regarde pas le code en exe, surtout, sourire. Merci Julien ! Smak !

2) Us_30:
a)On dirait que tu as mal pris qq chose? Tu as tort, j'apprécie tout tes enseignements, je te l'ai dit. Et je parlais en général, que on devrait tester puis conseiller ensuite, suite surtout à des trucs qu'on me donne et ne marche pas.(mais parfois seulement) .e toute façon, je n'en veux à personne, car des conseils qui tombent à côté, (Rarement)sont de bonne volonté.
Un entraîneur conseille le joueur en le voyant en situation de jeu. Mais c'est pas grave, va.
Qd j'écris, je sais que bcp lisent, c'est dans cet esprit que je m'exprime. Et en ce moment également!

b) Empty = vide, se teste par isEmpty. C'est le cas d'un variant à l'origine... J'ai aussi le "dico" "Le Guide du Programmeur" de FRantz, je viens de regarder. Il y a aussi Null...et isNull.
Ce livre se consulte, mais n'est pas un cours à lui seul...
Mais merci !

c) Tu as mal regardé : pour le dénominateur 1 je le dis sans arrêt aux élèves, je l'affiche, je suis en + prof de maths et je sais que des 3e oublient ça ! Vois aussi le trinôme du second degré.
Mais qd on a des entiers et c'est souvent le cas, penser à l'utilisateur c'est éviter de lui coller des fractions et l'obliger dans tous les cas à mettre 1. Là c'est la facilité! Et si tu vois, tous les programmes que j'ai vus ici, (sous réserve , j'ai pas tout vu...)s'en tiennent aux entiers concernant les systèmes (3e) et l'équation du 2e degré.
Mais on ne va pas les contraindre à réduire au même dénominateur, multiplier les membres pas le PPCM, ce n'est plus un programme mais un exo... sourire...;).Je demande qd même de chasser les décimaux en multipliant pas 10, 100, 1000.
...facile, on le fait au CM...car les décimaux gênent pour l'algo d'Euclide. Encore que mes programment transforment les égalités en coeff entiers, mais bon.
Il faudrait aussi prévoir des coeff du type (Racine de a)X + by = c, on en a en seconde; mais dur et long ! La perfection serait là !Et encore !
d) Ce que je voulais dire à l'occasion, mais C encore une remarque générale, on lit parfois et c pas pour toi...non plus, (ni à moi qu 'on dit ça...et poutant, je fais du vieillot...médiocre):
"Ne mets pas ça car c'est vieillot". Si c'est aussi simple et efficace, cette remarque me fait sourire, je ne vois pas en quoi la mode importe ici. Toutes les instructions nouvelles ne sont pas forcément mieux. Je trouve même concernant Excel, que Office 97 était plus simple (pour moi) pour les graphiques que OFFICE 2003.
On aidait davantage : marquez cellules pour les abcisses, et ensuite pour les ordonnées, etc...Mais il y aussi le commercial, faut changer, tu le sais ! On change office, c'est du flan !
Là je pars dans tous les sens, excuse-moi.
d) Donc je suis débutante et le resterais, en progressant qd même.
C'est comme les mots croisés. Un passe-temps passionnant. Je ne serai jamais pro !
Mais "médiocre", c'est pas gentil. Le programme que je vais revoir pour stopper les entrées décimlales, (ce que tu n'as pas compris que je t'ai dit au no 2), et éviter un plantage...tourne bien en exe enfin chez moi ! Il n'abuse pas de l'utilisateur, je pense.
Par rapport à quoi il est aussi médiocre? Car il n'emploie pas les instructions plus récenytes, Comprends que c'est du Basic, et compatible volontairement par MS....
En fait, oui, je sais peu de choses, mais c'est pas trop élégant de dire ça à une jeune fille avec un programme qui marche bien et qui a demandé des mois de boulot. Encore merci à Julien pour voir ça !
Le meilleur des programmes ici est médiocre par rapport au travail de ceux qui ont fait Windows ou Linux, ou Office, ou Photoshop, non ? Et vois les CD éducatifs du primaire seulement, avec le son, les animations, la musique, franchement on est tous bien petits en VB devant ce travail d'ingénieurs et de pédagogues. Tu crois pas ? Enfin moi, je le ressens ! Soyons réalistes modestes et sympas. En fait on s'amuse ici. Le logiciel pro nous écrase, et c'est tant mieux.
Grosse bise et merci pour tout. Même pour la "médiocité"...Bonne journée, US et Julien !
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
16 oct. 2005 à 11:01
C'est pas mal, seul probleme a mon gout le nombre des inputbox, mais rien de grave. Je n'ai pas regardé le code en détail je met 8/10.
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
16 oct. 2005 à 10:59
Bonjour,

1) Ne me concerne pas.

2) Rien compris.

3) Exit Sub n'est pas END.

Exit sub : Quitte le sous-programme en cours (donc sans arrêt de l'application. Parfaitement identique à End Sub, lorsque l'exécution arrive à ce piont). Ici "Exit Sub" c'est surtout plus propre que "Goto fin" !

End : Arrêt de l'application.

4) INPUTBOX : C'est a toi de voir ce qui te plait ! Je faisais une simple remarque d'ordre général... Néanmoins, je maintiens mes propos, qui m'engage que moi. Songe tout de même qu'il n'y a pas nécessairement 2 façons de programmer la résolution (fraction ou décimal). En effet, il suffit de mettre le dénominateur à 1, dans ton fameux cas de coefficients fractionnaires...

5) source VBA : "Le mot clé Empty est utilisé comme un sous-type Variant. Il indique une valeur de variable non initialisée."

Traduction : tout type Empty renvoyé par Tyname, sont des variables déclarées en Variant, valeur par défaut.

Dans VB6 comme dans tous les autres, il y a une aide... marquée comme dans toutes les applications du reste, par " ? " puis "Aide sur..."

6) Perso, j'ai passé du temps pour te donner des conseils pour t'aider. Sans prétention, je pense que ces conseils pourraient être dit par bien d'autre personne, tant qu'elles sont évidentes.

Et une personne attentive, remarquera que je ne touche pas à la structure (médiocre) de ton programme. Je te fais juste remarquer des points qui sont améliorables (un peu), ou inutiles pour l'exécution... en pensant à ton niveau de connaissance, comme tu le soulignes dans l'intro ; j'ai fait attention à ne pas de parler de nouvelle notion qui ne te permetterai pas de t'en sortir...

Finalement, je tentais de répondre à tes souhaits dans ton intro (me semble-t-il ? ) : "Et on est ici pour apprendre et partager." ... donc j'ai essayé de te faire partager mes connaissances pour que tu puisses apprendre...


Bon courage,
Us.
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
16 oct. 2005 à 09:48
1) Merci ! Je note tout ce que tu me dis, j'ai appris comme ça avec un mec sympa les inputbox que j'ignorais; je dois savoir 3 % du VB mais 60 % du Basic et du turboBasic ancien, ça aide ...Parfois on me donne ici des instructions qui ne marchent pas LOL, mais je les note...

2)J'ai trouvé des trucs qui marchent super sur mon PC1 mais plantent sur mon PC2, mystère ??? (Tout en EXE dans les deux cas)

Ainsi,but: éliminer l'entrée de décimaux avec remarque mais non fin de programme (avec condition et goto saut du code qu tu trouves compliqué, LOL :) )...

VOICI :
Dim delta as double '(double pour prévoir des entrées illicites)
Delta = val(text1.text)
if val(text1.text) <> text1.text or Fix(delta) <> delta then goto fin (on peut dire goto "attendre"....LOL...c'est qu'une étiquette.).
Là mon idée à moi, "géniale" qui marche super sur mon PC1 éliminer les décimaux aussi bien 2.6 que 2,6 ce que je désire dans un progr d'entiers.
(Prévoir des entrées tordues, car c'est moche un plantage du programme !)
Mais pour 2.6 mon PC2, lui, dit "type incompatible", c'est Woindows, ça ! Et...avec le même XP. Mais 2,6 marche car val ne considére que le 2; le ",6" étant considéré comme du texte, it is not ?. Pour ça que je mets "val(text1.text) <> text1.text".
Bonne idée, non ???
En revanche, mon PC1 est plus doué...LOL !

3) Concernant "ton" exit sub ( j'apprends !!), à condition que ce soit pas un END car "goto Fin" saute le code suivant mais ne quitte pas le programme et attend la décision de l'utilisateur, c'est événementiel.

4) Concernant mes inputBox, essaie d'maginer des textBox et label et traits de fractions dans un système à 2 inconnues avec ou sans fractions. Avec a fraction et a' non, ou a' oui et a non, ou a oui et c' non, etc...la page est illisible de combinaisons label et textBox et de line rendus visisles ou invisibles , et le code à rendre fou ! Et avec du graphique sur une autre page retours incessants...c'est dingue.Je fais parfois avec une page d'options sur feuilles différentes, mais avec 2 équations, ça se complique encore...
Pour ça qu'ici je n'ai pas vu une seule fois la saisie possible d'entiers et de fractions au choix ! Déjà les réponses en fractions irréductibles sont plua rares ( y en a ), mais avec la saisie possible de fractions , j'ai pas vu, mais il se peut qu'il y en ait ...Là je devrais être appréciée, non ?...LOL :).


5) Je n'ai pas l'aide dans VB 6 offert par ma famille...! C'est quoi Empty ?

Ne critique pas Diane Zak, pour VB 6, elle fait l'unanimité, sa pédagogie pour débutants en 1000 pages et excellente, avec exos et questions de contrôle, j'en suis au 1/10eme du livre !Je lui dois bcp, même si je suis "peu". Mais je programme et ça tourne !
Cette importance utilisateur est souvent oubliée ici, pour des instructions plus à la mode, comme les jupes courtes ou longues...Sourire. Si MS a laissé certaines instructions: for next, Print, goto, c'est pas pour rien...Un print se glisse où l'on veut, quand on veut, plus aisé à se faufiler qu'un label.Caption. Mais parfois ! Quand on trouve que c'est utile...Rien à fiche de la mode!
Pour ça que les pros abandonnent les appareils photos automatiques....

Je vais revoir les dim...Si tu disais faux, au moins un ici te sauterait dessus !

6) Une critique : on devrait toujours essayer le programme AVANT, et essayer les modifications suggérées, avant de les conseiller. Mais peu le font. Ainsi j'ai eu plein de conseils qui plantent.

Tiens, las administrateurs devraient l'écrire dans les conseils donnés.
Bonne journée, merci et bizzz.
Lisa
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
15 oct. 2005 à 22:48
Salut,

JE ne sais pas c'est quoi DianeZak, mais si c'est un livre pour apprendre, fout-le à la bellepou !


PREUVE par VB :

=

Sub es()

Dim a, b As Variant, c As Double, d As String

MsgBox TypeName(a)
MsgBox TypeName(b)
MsgBox TypeName(c)
MsgBox TypeName(d)

End Sub

=

Typename renvoi le type de déclaration de la variable. (Va voir l'aide de VB sur cette foncttion, c'est mieux que DianeTruc...)


Pour a renvoi Empty (et regarde bien le DIM, a sans déclaration de type)
Pour b renvoi Empty (et il y a 'b as variant')
Pour c renvoi Double (logique)
Pour d renvoi String (logique)

Voilà ! JE crois que ça parle de lui-même... Ceci dit en passant, tous les livres n'ont pas tout faux ! Moi, j'en ai qui font pas d'erreurs de débutant ! -:);

... normal, que tu as du mal à progresser...

=

Amicalement,
Us.
cs_Lisa46 Messages postés 99 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 20 août 2008
15 oct. 2005 à 19:37
Merci des conseils! Curieux, j'avais aucun commentaire alors que mon trinôme 2 degré a fait forum...LOL ! Ce devait être pitié d'une pauvre fille...:)
Pour les variables dans les livres je vois toujours ainsi, même Diane Zak ?
Ex. Dim a, b, c as integer .
Etonnée ! Quelle version tu as ? Moi la 6 ! Je demande un autre avis...:)
Je suis sans voix, lol!

Le msg Box je l'avais mis, et je l'ai enlevé, je l'ai trouvé inutile puisque ça marche avec un renvoi à Fin: ...les goûts et les couleurs...

Maintenant, pour les inputBox, j'ai fait ce choix pour une page simple graphique! Ou alors il faut faire des changements de feuilles.
Si tu imagines une interface bourrée de labels et textBox avec du graphique , visible, plus visible, galère. Essaie-le! Tu réalises pas ! Ici les graphiques tracés VB sont rares...En fait c'est là du Basic que je fais .
Je l'ai repris, mais je l'avais conçu à une époque où j'en savais encore moins, c'est dire ! Et tout refaire, flegme !Je l'ai fait pour les élèves ...en utilisateurs. Lis mon intro, elle avoue ma nullité en VB...
Vois qd même mon équation 2 degré, j'ai fait un renvoi à une page graphique avec sur les autres plein d'objets, LOL, tu vas être content, sourire...Mais les Systèmes sont plus durs en programmation, faut tracer tous les cas de droites! Mais tu le sais. Même si y a pas de solutions, y a des droites, et c'est des fois les axes ou tout le plan ! La méningite et les codes dans le bon ordre! Ouf, dur !!
Mais merci!
PS:
Je demande confirmation pour la déclaration des variables où les livres ont tout faux !!...??????? Là je suis bouche bée !
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
15 oct. 2005 à 18:38
Bonjour Lisa,

Bon, je vais être critique (mais nullement méchant et selon mes modestes compétences) sur une source, dans le seul but que tu puisses progresser en programmation... En plus, je n'ai rien testé -:);
Et mes critiques sont orientés uniquement programmation ! A toi de voir...

=

Dans le système numérique :


J'ai vu dans module ceci :

Public a, b, c, a1, b1, c1 As Long
Public Qfrac, qfrac1 As String

Je pense que tu crois que a,b,c,a1,b1 sont en Long. Et bien non ! Erreur classique de débutant... seul c1 est bien déclaré en Long. Les autres sont en Variant, valeur par défaut. Pour bien faire il faut faire :

Public a as Long, b as long, c as long, a1 as long, b1 as long, c1 As Long

Même chose pour la seconde ligne... Tu auras compris le principe.

=

Dans la form, on peut faire le même type de remarque avec les lignes :

Dim coa, cob, coc

Dim numerateura, denominateura, numerateurb, denominateurb, numerateurc, denominateurc

etc...

où aucun type est déclaré. Normalement, pour une bonne structure, il faut mieux trouver le bon type à chaque variable. Ici c'est Double.

=

Les "GoTo fin" pourrait être remplacé par "exit sub" c'est plus simple...

=

J'ai vu les 2 lignes que se suivent :

GoTo tests

tests:

Bon là, le "Goto tests" ne sert pas à grand chose... (°L°)

=
La ligne :

If denoma1 0 Or denomb1 0 Or denomc1 = 0 Then PSet (200, 1000): Print " Un dénominateur ne peut être nul : recommencez ! ": Print "": GoTo frac2

me semble curieuse... Est-ce qu'un Msgbox ne serait pas mieux ?

=

Dans continuer1 :

J'ai vu ceci :

Question1:
Qfrac = MsgBox("La 1ere égalité comporte-t-elle des fractions:", vbYesNo + vbQuestion, "Systèmes à 2 inconnues")

If Qfrac = "" Then Cls: Print "": Print "Répondez oui ou non.": GoTo Question1

Bon, bien... l'utilisateur n'a pas beaucoup le choix déjà... Dans Msgbox, le VbYesNo fera apparaître la boite de dialogue avec uniquement les 2 boutons Oui ou Non, et sans autre possibilité de se débiner... Donc la dernière ligne ? et l'étiquette du coup...

=

Bon, ensuite une remarque d'ordre générales...

Tu orientes toutes la communication avec des "inputbox"... Bon, ça c'est de la veille école... je peux te le dire du haut de mes 104 ans... IL me semble préférable, d'utiliser des TextBox. Ainsi, l'utilisateur pourra rentrer dans le sens qu'il veut les coefficients... C'est beaucoup plus souple... puis il lancera la résolution en appuyant sur un bouton... DE plus, pour la programmation cela sera un peu plus simple. (Et encore mieux c'est de mettre des Textbox avec des indices... mais là c'est peut-être lorsque tu seras plus ageurrie...)

=

Amicalement,
Us.
Rejoignez-nous