Page 1 sur 1

probleme de compilation

Publié : mer. 30/juil./2014 22:22
par Backup
je suis en train de commencer un code

je veux compiler pour voir si un bug est présent , et ....

quelqu'un sait pourquoi ce morceau de code n'arrive meme pas au CallDebugger ?

Code : Tout sélectionner


calldebugger


reponse$=InputRequester("Question","************"+Chr(10)+"séparés par une virgule","")
nb=CountString(reponse$,",")
Dim Res(24)

Restore Gamme:
Index=0


While RV$<>"-1"
	Read.s RV$
	If RV$="."
		Index=Index+1
	Endif
	For i=1 to nb
		accord$=StringField(reponse$,i,",")
		if LCase(accord$)=Lcase(RV$)
			Res(Index)=Res(Index)+1
		Endif
	Next i
Wend

For i=0 to 23
	mem_a=a
	a=Res(i)
	if mem_a<a
		gamme=i
	Endif
Next i

debug "c'est dans la Gamme "+str(gamme) 







DataSection
	Gamme:
	Data.s "C","Dm","Em","F","G","Am","Bm7/5-","."
	;La_mineur:
	Data.s "Am","Bm75-","C","Dm","Em","F","G","."
	
	;Do_diese:
	Data.s "C#","D#m","Fm","F#","Ab","A#m","Cm7/5-","."
	;La_diese_mineur:
	Data.s "A#m","Cm7/5-","C#","D#m","Fm","F#","Ab","."
	
	;Re_majeur:
	Data.s "D","Em","F#m","G","A","Bm","C#m7/5-","."
	;Si_mineur:
	Data.s "Bm","C#m7/5-","D","Em","F#m","G","A","."
	
	;Re_diese:
	Data.s "D#","Fm","Gm","Ab","A#","Cm","Dm7/5-","."
	;Do_mineur:
	Data.s "Cm","Dm7/5-","D#","Fm","Gm","Ab","A#","."
	
	;Mi_majeur:
	Data.d "E","F#m","Abm","A","B","C#m","D#m7/5-","."
	;Do_diese_mineur:
	Data.s "C#m","D#m7/5-","E","F#m","Abm","A","B","."
	
	;Fa_majeur:
	Data.s "F","Gm","Am","A#","C","Dm","Em7/5-","."
	;Re_mineur:
	Data.s "Dm","Em7/5","F","Gm","Am","A#","C","."
	
	;Fa_diese_Majeur:
	Data.s "F#","G#m","A#m","B","C#","D#m","Fm7/5-","."
	;Re_diese_Mineur:
	Data.s "D#m","Fm7/5-", "F#","G#m","A#m","B","C#","."
	
	;Sol_Majeur:
	Data.s "G","Am","Bm","C","D","Em","F#m7/5-","."
	;Mi_mineur:
	Data.s "Em","F#m7/5-","G","Am","Bm","C","D","."
	
	;Sol_Diese_Majeur:
	Data.s "G#","A#m","Cm","C#","D#","Fm7","Gm7/5-","."
	;Fa_Mineur:
	Data.s "Fm7","Gm7/5-","G#","A#m","Cm","C#","D#","."
	
	;La_majeur:
	Data.s "A","Bm","C#m","D","E","F#m","G#m7/5-","."
	;Fa_diese_mineur:
	Data.s "F#m","G#m7/5-", "A","Bm","C#m","D","E","."
	
	;La_Diese_Majeur:
	Data.s "A#","Cm","Dm","D#","F","Gm","Am7/5-","."
	;Sol_mineur:
	Data.s "Gm","Am7/5-", "A#","Cm","Dm","D#","F","."
	
	;Si_Majeur:
	Data.s "B","C#m","D#m","E","F#","G#m","A#m7/5-","."
	;Sol_Diese_mineur:
	Data.s "G#m","A#m7/5-","B","C#m","D#m","E","F#","-1"
	
EndDataSection


Re: probleme de compilation

Publié : mer. 30/juil./2014 22:29
par SPH
Sans le Calldebugger, ca semble marcher :|

Re: probleme de compilation

Publié : mer. 30/juil./2014 22:50
par majikeyric
L'exécution s'arrete bien au calldebugger... ce qui est normal non ?

Re: probleme de compilation

Publié : mer. 30/juil./2014 23:26
par G-Rom
Vérifie tes datas , tu en as une en double (.d) alors qu'un string est attendu ;)

Re: probleme de compilation

Publié : jeu. 31/juil./2014 1:24
par Backup
oui !! G-rom a trouvé ... Pfff

moi je commence a ne plus rien voir :roll:

et les messages d'erreurs vachement Explicite de Purebasic , n'aide pas vraiment a trouver ce genre de bétise !! :?

bon je vais poursuivre , Merci :)

Re: probleme de compilation

Publié : jeu. 31/juil./2014 8:29
par G-Rom
il te sort quand même la valeur du data , il te dis qu'il y a un dépassement , donc type trop petit ou pas adapté. ;)

Re: probleme de compilation

Publié : jeu. 31/juil./2014 8:57
par Backup
ha oui , il affiche bien une boite d'alerte :)

mais lorsque tu n'as jamais vu ce genre de message :
Image

je suis désolé, mais c'est loin d'etre clair ...

j'ai pensé a un bug du Debugger, car il n'est pas fait allusion au Data...
on vois bien effectivement des Données se trouvant parmis les data , mais
le fait de parler d'assembleur , il y a des "0" au beau milieu de la ligne de Data
du coup, j'ai meme pas pensé au contenu, voir au format des Data ...

il y aurai peut etre moyen d'afficher un message peut etre plus clair style

"un probleme se trouve dans la ligne de Data ... (voir si le type est le bon) "

du moment que Purebasic indique la ligne ou se trouve l'erreur , on peut se débrouiller a voir ou ça deconne ...


a ce propos, un pote ingé , m'avais fait remarqué il y a fort longtemps, qu'il ne comprenait pas
pourquoi un langage etait capable de signaler une erreur, avec le numero de ligne, le type d'erreur
et ... qu'il ne la corrigeait pas lui meme :)
bien sur pas les erreurs d'origine incertaine, mais les erreurs connu et bien indiquée
comme les syntax error par exemple

ici cela aurai été facile, les données se trouvant entre guillemet , le compilo, aurai pu corriger le type ;)

Re: probleme de compilation

Publié : jeu. 31/juil./2014 9:33
par G-Rom
Si les compilo commencent à prendre des décisions de correction , les bugs vont fleurir.
Les programmeurs "qui pissent" du code à longueur de journée s'en remettrons au correcteur pour les "petites" erreurs , mais par moment , les termes peuvent être ambiguë & source d'erreur :

Code : Tout sélectionner

Procedure DOF(float.f)
 ;...
EndProcedure

Procedure DOT(float.f)
 ;... 
EndProcedure

;
;
DOP(#PI) ? erreur
là le compilo fait quoi ? il appel qui ?
Concernant les types, c'est possible de le faire, le compilateur peu déterminé tout seul le type , on appelle cela , l'inférence de type, disponible avec le c++11 et le mot clé auto par exemple.

Code : Tout sélectionner

auto a = 3.1415;
a est de type float

Code : Tout sélectionner

auto a = 15;
a est de type int

Re: probleme de compilation

Publié : jeu. 31/juil./2014 10:23
par djes
G-Rom a écrit :Concernant les types, c'est possible de le faire, le compilateur peu déterminé tout seul le type , on appelle cela , l'inférence de type, disponible avec le c++11 et le mot clé auto par exemple.

Code : Tout sélectionner

auto a = 3.1415;
a est de type float

Code : Tout sélectionner

auto a = 15;
a est de type int
:lol: Faudrait quand même qu'ils arrêtent de piquer des trucs au BASIC !

Re: probleme de compilation

Publié : jeu. 31/juil./2014 13:52
par Backup
G-Rom a écrit :Si les compilo commencent à prendre des décisions de correction , les bugs vont fleurir.
Les programmeurs "qui pissent" du code à longueur de journée s'en remettrons au correcteur pour les "petites" erreurs , mais par moment , les termes peuvent être ambiguë & source d'erreur :

Code : Tout sélectionner

Procedure DOF(float.f)
 ;...
EndProcedure

Procedure DOT(float.f)
 ;... 
EndProcedure

;
;
DOP(#PI) ? erreur
là le compilo fait quoi ? il appel qui ?
Facile !
il s’arrête en signalant l'erreur comme avant, mais te propose un Popup proposant les 2 solutions ...
comme ton editeur le fait avec la completion :)

quoiqu'il en soit l'exemple est mal choisi, car tu peux tres bien te tromper de nom de procedure
prendre une procedure pour une autre ...
je parlais surtout d'un point de vue syntaxe
ton probleme aurait été pris en charge si le nom de ta procedure etait absent du code
la c'est simple le compilo peut alors te proposer une liste de procedure ayant une syntaxe proche :)

Re: probleme de compilation

Publié : jeu. 31/juil./2014 14:25
par G-Rom
Mouai... Ayant déjà codé un vrai compilateur, la tâche est quand même hard.
L'idéal sera d'ajouté une couche IA au compilo pour qu'il puisse faire des déductions via un système de probabilité... une sorte de compilateur intelligent en somme.
Cela verra surement le jour un jour :D

Re: probleme de compilation

Publié : jeu. 31/juil./2014 18:00
par Backup
G-Rom a écrit :L'idéal sera d'ajouté une couche IA au compilo pour qu'il puisse faire des déductions via un système de probabilité... une sorte de compilateur intelligent en somme.
le jour ou les Puce IA feront parties de nos Pc comme nos cartes Graphique :)

on ne dira plus , il est puissant ton Ordi ?
mais

il est intelligent ton Ordi ? :lol: