Mon code ne marche pas et le message d'erreur ne m'aide pas

Gloomy84 Messages postés 10 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009 - 21 déc. 2009 à 18:39
Gloomy84 Messages postés 10 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009 - 22 déc. 2009 à 11:06
Bonjour
c'est très basique mais ca ne marche pas
le but du programme est de sélectionner un individu de manière aléatoire dans une population et de changer son type si il n'est pas déjà de ce type (0 ou 1)
j'ai cree 2 liste avec toute la pop ,une avec le numero de la personne qui me sert d'identifiant et l'autre avec un bolleen
merci de votre aide
c'est sous realbasic (d'ailleurs si quelqu'un connait l'équivalent de la fonction INT sous realbasic je suis preneur aussi)
le débugger me dit qu'il attend un bouleen et non un string a la ligne en gras
[u]
While oui< Population-10
For j= 0 to Population
for k= 0 to Nbpers*oui
lst_A.addrow(str(Population*RNd))
next k
for i = 0 to oui
if val(lst_A.list(i))=val(lst_Oui.list(j)) then


lst_Ouii.List(i)=Str(1) and a =a+1

end if
Val
next i
oui=oui+a
lst_I.addrow(str(j))
lst_resultat.addrow(str(oui))
next j/u

17 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 déc. 2009 à 21:55
Bonsoir,

Je n'y connais absolument rien à VB.Net
Il reste qu'il n'est pas difficile de comprendre que :
lst_Ouii.List(i)=Str(1) and a=a+1
fait que lst_Ouii.List(i) ne peut en effet être qu'une booléenne (True ou False)


____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 déc. 2009 à 22:17
Peux tu par ailleurs (en outre) nous exposer dans quelles circonstances "très particulières" a pourrait être égal à a + 1 ?


____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
Gloomy84 Messages postés 10 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009
21 déc. 2009 à 22:54
a = a +1 c'est une incrementation sur la boucle
et j'ai un peu avancer de mon cote et en faisant 2 if separer pour le
lst_Ouii.List(i)=Str(1) and a=a+1
on apprend que l'erreur viendrai en faite de la ligne au dessus
if val(lst_A.list(i))=val(lst_Oui.list(j)) then

voila j'espere que ca fera avancer plus le pb
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 déc. 2009 à 23:03
Je ne vouis pas en quoi et pourquoi cette seule ligne :


if val(lst_A.list(i))=val(lst_Oui.list(j)) then 

pourrait provoquer une erreur, sauf si elle n'est pas suivie d'instructions et d'un End If !

Quant au reste, à savoir :

a = a +1 c'est une incrementation sur la boucle
et j'ai un peu avancer de mon cote et en faisant 2 if separer pour le
lst_Ouii.List(i)=Str(1) and a=a+1


Désolé, mais ce n'est carrément pas compréhensible ! de quelle décomposition en quels 2 ifs parles-tu là dedans puisqu'il ne s'agit pas d'une expression conditionnelle et que je ne vois pas comment on pourrait séparer en 2 expressions conditionnelles séparées une expression qui n'est pas elle-même une expression conditionnelle !!!?
Bonne nuit.
___________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gloomy84 Messages postés 10 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009
21 déc. 2009 à 23:09
lie le code dans le premier message il repond a toute tes questions :)
c'est le milieu d'une expression IF et il y a bien le END IF :)
0
Gloomy84 Messages postés 10 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009
21 déc. 2009 à 23:13
je pense que le problème vient d'une subtilité dans l'utilisation des liste
j'aurai été sur VB normale j'aurai pas eu de problème j'aurai fait un tableau mais ca marche pas sur Realbasic
c'est plus un problème de langage que de construction a mon avis
Oui = Nbdepart
Non=Population - Oui

for i=1 to Non
lst_Oui.addrow(str(i))
lst_Ouii.addrow(str(0))
Next i
For i=Non+1 to Population
lst_Oui.addrow(Str(i))
lst_Ouii.addrow(str(1))
next i
a=0
While oui< Population-10
For j= 0 to lst_oui.Listcount
for k= 0 to Nbpers*oui
lst_A.addrow(str(Population*RNd))
next k
for i = 0 to lst_A.listcount
if val(lst_Oui.list(j))=val(lst_A.list(i)) then

lst_Ouii.list(j)=str(1)

end if
if val(lst_Oui.list(j))=val(lst_A.list(i)) then

a=a+1

end if
next i
oui=oui+a
lst_I.addrow(str(j))
lst_resultat.addrow(str(oui))
next j

wend
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 déc. 2009 à 23:18
Il ne répond hélàs pas ! Il ne fait que confirmer les raisons de mes étonnements !

La relecture de ce premier message montre par contre (c'est ce qu'il y a de plus net) que tu ne développes pas sous VB.Net du tout ! (Et tu es ici sous le thème VB.Net).

Mais cela ne change absolument rien aux raisons de l'étonnement que suscite à divers titres la lecture du code montré et qui , surtout assorti de ce que tu dis ensuite, est tout sauf de la cohérence.
Désolé, donc...

____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 déc. 2009 à 23:22
En ce qui concerne ton dernier code, enfin composé d'expressions conditionnelles,
cette ligne :
if val(lst_Oui.list(j))=val(lst_A.list(i)) then 

ne peut déclencher une erreur qu'en cas d'indice en dehors des limites .


____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
Gloomy84 Messages postés 10 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009
21 déc. 2009 à 23:24
ce n'est pas possible tu lis pas mes messages -_-
c'est du realbasic et mon problème viens justement que c'est pas du VB.net
pour la cohérence de mon code j'ai toujours pas compris ce qui t'echappe
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 déc. 2009 à 23:28
Voilà opù tu es (regarde par toi-même) :

Accueil > Forum > VB.NET et VB 2005
> Algorithme > Divers

Ton code n'a commencé à revêtir un aspect cohérent qu'apès ta toute dernière "modif"
Je t'ai enfin parlé d'indice en dehors des limites, maintenant ...
Bon...
____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
Gloomy84 Messages postés 10 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009
21 déc. 2009 à 23:34
RealBasic est la version de VB pour Mac..c'est le même langage ...
mais c'est manifestement pas ta spécialité, et je pense que mon pb est sur un détail je vais donc attendre l'avis suivant. Merci quand meme pour ton aide
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 déc. 2009 à 08:45
RealBasic est la version de VB pour Mac

Ah ? ===>> on en apprend tous mes jours, alors !
C'est tout au plus un "substitut", loin (très) de VB6 et encore plus de VB.Net
Seul le langage de base (basic) est à peu près le même, ce qui m'a permis de faire les observations que j'ai faites.
Mon dernier (mes deux derniers, en fait) message te parle d'indices en dehors des limites et cela aurait du déclencher chez toi un déclic (mais apparemment, non ...)
Je me suis donc "fendu" d'une petite recherche (puisque j'ai VB et non RealBasic) sur ce que sont les listboxes de RealBasic et de quelles propriétés elles sont dotées. ===>> pile poiol ===>> c'est exactement ce que j'avais deviné
Mais à toi, cela ne semble pas te parler non plus... alors ? ===>> ouvre ton aide en ligne de RealBasic ===>> regarde ce qu'est une Listbox , ce qu'est la propriété listcount, quels sont son premier indice et son dernier indice ==>> regarde ensuite ce que tu as écrit ...

Tout cela, bien évidemment, sans préjudice sdu reste de ton code, dont j'ignore les tenants et aboutissants et je ne souhaite pas, comme tel a été le cas ici, passer d'une faute de syntaxe (incohérence) en un point de ton code, puis à d'autres erreurs ailleurs, dans un code entre-temps modifié...
Voilà ... je pense t'en avoir dit suffisamment pour que tu puisses t'y mettre sérieusement et pas au hasard.
____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
Gloomy84 Messages postés 10 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009
22 déc. 2009 à 10:01
non ce n'est pas ca je connais deja la limite du list count et je l'ai rajouter que tres recament a mon code avant j'utilisais un chiffre et j'avais le meme probleme :S
On avance :)
0
Gloomy84 Messages postés 10 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009
22 déc. 2009 à 10:11
enfin n'hésites pas a être plus précis peu être que je suis aussi passer a cote d'un truc a ce niveau :)
mais ici mon listcount est juste un nombre qui correspond au nb de paramètre dans la liste non?
il faut savoir que le programme m'annonce un bug avant que je compile donc je pense vraiment que c'est une faute de syntaxe :S
0
Gloomy84 Messages postés 10 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009
22 déc. 2009 à 10:22
Toutes mes excuses je viens de trouver mon erreur
en faite il semble qu'il boucle de maniere infini
Encore Merci de ton aide :)
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 déc. 2009 à 11:00
Euh..... Euh...... Re-EUH ....
Je ne sais pas si tu réalises seulement ce que tu affirmes (te je vois mal comment :
le programme m'annonce un bug avant que je compile


peut se lier à :
en faite il semble qu'il boucle de maniere infini

!
Et c'est ainsi depuis le tout début de cette discussion, tantôt ici et tantôt là ...
C'est du sans queue ni tête (tout au moins sans queue et tête compréhensibles.
Je crois que tu as tout simplement besoin de commencer l'étude de ton outil par son commencement (mais c'est ton affaire).
Et j'insioste en ce qui concerne la propriété ListCount et les indices minimum et maximum d'une listbox ! Tu ne me parais pas avoir ouvert ton aide el ligne, comme je te le demandais.
Tu m'excuseras donc, mais j'arrête là en ce qui me concerne (ma bronchite ne me permet pas de me lancer dans des dialogues de sourds et je n'ai plus d'aspirine à portée de mains).
Voilà... Etudie bien...

_____ _______________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
Gloomy84 Messages postés 10 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009
22 déc. 2009 à 11:06
désolé comme j'avance dessus en même temps (je n'ai pas arrêter depuis hier) j'avance d'un pb a l'autre et j'oublie de poster mes avancer du coups mes réponses sont décousu
Toujours est il que j'ai résolu maintenant a peu près tout mes problèmes
merci de ton aide
0
Rejoignez-nous