PureBasic

Forums PureBasic
Nous sommes le Mar 18/Juin/2013 7:52

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 29 messages ]  Aller à la page Précédente  1, 2
Auteur Message
 Sujet du message:
MessagePosté: Sam 11/Sep/2004 15:08 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 13075
ben tu peut pas reserver les lettres "ABCDEF" pour l'exa et pas les utiliser pour des variables ?? 8O
ou bien forcer a ce que les variable soit en 2 lettres minimum !?

mais bon je cause sans savoir j'ai mem pas encore essaye la calculette :oops:

_________________
Image


Haut
 Profil  
 
 Sujet du message:
MessagePosté: Sam 11/Sep/2004 16:02 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 30/Jan/2004 15:06
Messages: 842
Encore un bon prog... par contre comment gère tu les skins ?


Haut
 Profil  
 
 Sujet du message:
MessagePosté: Sam 11/Sep/2004 18:55 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 21/Jan/2004 18:39
Messages: 2117
ahhh enfin :D . Pour les valeurs HEXA<>DECIMAL<>BINAIRE c'est possible : il y a un post là dessus dans la section trucs et astuces, par contre pour les variables je ne sais pas.


Haut
 Profil  
 
 Sujet du message:
MessagePosté: Sam 11/Sep/2004 20:10 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 28/Jan/2004 20:58
Messages: 4311
Localisation: Clermont ferrand OU Olsztyn
si dans les calculs, il faut les écrires sous la forme Hex(154121) et Bin(0111001), tu en penses quoi ?

La gestion des skins, c'est pas tellement compliqué, au lieu de faire une fenêtre avec des dimensions basées sur des constantes, les dimension sont variables en fonction de la taille de l'image du skin.

_________________
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]


Haut
 Profil  
 
 Sujet du message:
MessagePosté: Sam 11/Sep/2004 20:18 
Hors ligne

Inscription: Jeu 29/Jan/2004 0:26
Messages: 2309
j'en pense que ca me derange pas et il est vrai qu'il doit etre plus facile pour toi de le programmer comme une fonction que comme 0x ou $ etc...


Haut
 Profil  
 
 Sujet du message:
MessagePosté: Sam 11/Sep/2004 22:02 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 28/Jan/2004 20:58
Messages: 4311
Localisation: Clermont ferrand OU Olsztyn
ceux qui sont intéressés par le code, au fait, il suffit de m'envoyer un mail ;)

_________________
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]


Haut
 Profil  
 
 Sujet du message:
MessagePosté: Mar 14/Sep/2004 18:59 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 13075
moi je voudrai juste comprendre un truc ! 8O

ta fenetre est juste un openwindowscreen ?
dans lequel tu installerai un decors peut etre sous forme de sprite ?

mais comment recupere tu les event souris pour savoir ce qui est cliqué ??

moi ça m'interresse pour adapter ce principe sur un clavier comm le piano
de Jacobus ...
:)

bref c'est pas tant le code de ta calculette qui me branche, mais le principe d'affichage et gestion de l'interaction avec l'utilisateur ! :?

_________________
Image


Haut
 Profil  
 
 Sujet du message:
MessagePosté: Mer 15/Sep/2004 17:55 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 28/Jan/2004 20:58
Messages: 4311
Localisation: Clermont ferrand OU Olsztyn
seul l'écran est un openwindowedscreen, les boutons, c'est ma lib ToolBarXP

et après, pour repérer les clics, des tests sur la position de la souris (la croix pour fermer et le déplacement du curseur dans le texte)

_________________
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]


Haut
 Profil  
 
 Sujet du message:
MessagePosté: Mer 15/Sep/2004 18:22 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 13075
Merci !!

ça me donne envie de telecharger ta lib :D

_________________
Image


Haut
 Profil  
 
 Sujet du message:
MessagePosté: Mer 15/Sep/2004 20:18 
Hors ligne

Inscription: Ven 23/Avr/2004 18:08
Messages: 282
Localisation: Ardèche St Montan
Bonjour à tous !

Alors là je suis grillé 8O . J'avais posté une petite calculatrice et j'étais en pleine programmation d'un éditeur de formule suite à une demande de Nico ce qui fait que je ne suivais pas le forum.
Le soldat, il est trop fort :( ...
J'aurais même pas le temps de le finaliser et de le débuguer que la sienne sera déja sur le forum. Bon je vais retourner jouer aux billes. :lol:
je ne suis pas de taille.

voilà quand même le code de mon éditeur si ça peu aider :!: Mais c'est même pas finalisé et je ne suis pas sur que ça fonctionne dans tous les cas... :(

Code:
Dim operateur$(8)
Dim fonction$(17)
Global nboperateur.b, nbfonction.b,nom_fonc$,nomb_fonc$,calcul$,replace_fonction$,deg.b,nomb_fonc.f,res.f,ope.b,nomb_gauche$,nomb_droite$
nboperateur=8
nbfonction=13
#Pi=3.1415926
deg=1
; tableau des opérateurs

operateur$(1)="^"
operateur$(2)="/"
operateur$(3)="*"
operateur$(4)="<="
operateur$(5)=">="
operateur$(6)="="
operateur$(7)=">"
operateur$(8)="<"

;tableau des fonction

fonction$(1)="cos"
fonction$(2)="sin"
fonction$(3)="tan"
fonction$(4)="sqr"
fonction$(5)="exp"
fonction$(6)="ln"
fonction$(7)="log"
fonction$(8)="abs"
fonction$(9)="atn"
fonction$(10)="int"
fonction$(11)="mod"
fonction$(12)="asin"
fonction$(13)="acos"

Procedure Calcul(nb1$,nb2$,oper$)
  nb1.f=ValF(nb1$)
  nb2.f=ValF(nb2$)
  Select oper$
    Case"*"
      res=nb1*nb2
      ProcedureReturn res
    Case"/"
      res=nb1/nb2
      ProcedureReturn res
  EndSelect
EndProcedure

Procedure cherche_operateur(operation$)
  Repeat
    nomb_gauche$="":nomb_droite$="":nbi$=""
    pos_op=FindString(operation$,operateur$(1+ope),1)
    If pos_op=0 And ope<nboperateur-1
      ope+1
    EndIf
    If pos_op<>0
      For n=pos_op-1 To 1 Step -1;reconstitue le chiffre à gauche de l'opérateur
        gauche$=Mid(operation$,n,1)
        If Asc(gauche$)>=48 And Asc(gauche$)<=57 
          nomb_gauche$=nomb_gauche$+gauche$
        ElseIf Asc(gauche$)=46
          nomb_gauche$=nomb_gauche$+gauche$
        Else
          Break
        EndIf
      Next n
      If Len(nomb_gauche$)>1
        For n=Len(nomb_gauche$) To 1 Step-1
          a$=Mid(nomb_gauche$,n,1)
          nbi$=nbi$+a$
        Next n
        nomb_gauche$=nbi$
      EndIf
      For n=pos_op+1 To Len(operation$);reconstitue le chiffre à droite de l'opérateur
        droite$=Mid(operation$,n,1)
        If Asc(droite$)>=48 And Asc(droite$)<=57
          nomb_droite$=nomb_droite$+droite$
        Else
          Break
        EndIf
        Debug nomb_droite$
      Next n
      If nomb_gauche$<>"" And nomb_droite$<>""
        oper_replas$=nomb_gauche$+operateur$(1+ope)+nomb_droite$
        Calcul(nomb_gauche$,nomb_droite$,operateur$(1+ope))
        operation$=ReplaceString(operation$,oper_replas$,StrF(res),1)
      Else
        ope+1
      EndIf
      ;Debug operation$
    EndIf
  Until ope=nboperateur-1
  calcul$=operation$
EndProcedure

Procedure extraction_fonction(eval$,posf)
  pasl=0:a$="":replace_fonction$="":nom_fonc$="":nomb_fonc$=""
  Repeat
    a$=Mid(eval$,posf+pasl,1)
    If Asc(a$)>=97 And Asc(a$)<=122
      nom_fonc$=nom_fonc$+a$
    EndIf
    If Asc(a$)>=48 And Asc(a$)<=57
      nomb_fonc$=nomb_fonc$+a$
    EndIf
    If Asc(a$)=46
      nomb_fonc$=nomb_fonc$+a$
    EndIf
    pasl+1
    replace_fonction$=replace_fonction$+a$
  Until a$=")"
  nomb_fonc=ValF(nomb_fonc$)
  Debug nomb_fonc
EndProcedure

Procedure.f deg_rad(valeur.f)
  nomb_fonc=(valeur*#Pi)/180
  ProcedureReturn nomb_fonc
EndProcedure


Procedure recherche_fonction()
  Repeat
    posfonc=FindString(calcul$,fonction$(1+nfonc.b),1)
    If posfonc=0 And nfonc<nbfonction-1
      nfonc+1
    EndIf
    If posfonc<>0
      extraction_fonction(calcul$,posfonc)
      Select fonction$(1+nfonc)
        Case "sin"
          If deg=1
            nomb_fonc=deg_rad(nomb_fonc)
          EndIf
          nomb_fonc=Sin(nomb_fonc)
          replas$=StrF(nomb_fonc)
          calcul$=ReplaceString(calcul$,replace_fonction$,replas$,1)
          Debug calcul$
        Case "cos"
          If deg=1
            nomb_fonc=deg_rad(nomb_fonc)
          EndIf
          nomb_fonc=Cos(nomb_fonc)
          replas$=StrF(nomb_fonc)
          calcul$=ReplaceString(calcul$,replace_fonction$,replas$,1)
        Case "tan"
          If deg=1
            nomb_fonc=deg_rad(nomb_fonc)
          EndIf
          nomb_fonc=Tan(nomb_fonc)
          replas$=StrF(nomb_fonc)
          calcul$=ReplaceString(calcul$,replace_fonction$,replas$,1)
        Case "atn"
          If deg=1
            nomb_fonc=deg_rad(nomb_fonc)
          EndIf
          nomb_fonc=ATan(nomb_fonc)
          replas$=StrF(nomb_fonc)
          calcul$=ReplaceString(calcul$,replace_fonction$,replas$,1)
        Case "asin"
          If deg=1
            nomb_fonc=deg_rad(nomb_fonc)
          EndIf
          nomb_fonc=ASin(nomb_fonc)
          replas$=StrF(nomb_fonc)
          calcul$=ReplaceString(calcul$,replace_fonction$,replas$,1)
        Case "acos"
          If deg=1
            nomb_fonc=deg_rad(nomb_fonc)
          EndIf
          nomb_fonc=ACos(nomb_fonc)
          replas$=StrF(nomb_fonc)
          calcul$=ReplaceString(calcul$,replace_fonction$,replas$,1)
        Case "int"
          nomb_fonc.f=ValF(nomb_fonc$)
          nomb_fonc=Int(nomb_fonc)
          replas$=StrF(nomb_fonc)
          calcul$=ReplaceString(calcul$,replace_fonction$,replas$,1)
        Case "sqr"
          nomb_fonc.f=ValF(nomb_fonc$)
          nomb_fonc=Sqr(nomb_fonc)
          replas$=StrF(nomb_fonc)
          calcul$=ReplaceString(calcul$,replace_fonction$,replas$,1)
      EndSelect
    EndIf
  Until nfonc=nbfonction-1
EndProcedure
   
Procedure verifie_Parenthese(soper$)
  For nboucle=1 To Len(soper$)
    If Mid(soper$,nboucle,1)="("
      nopen+1
    ElseIf Mid(soper$,nboucle,1)=")"
      nclose+1
    EndIf
  Next nboucle
  If nclose=nopen
    ProcedureReturn
  ElseIf nopen<>nclose
    MessageRequester("Alerte","Attention vous avez une erreur dans les parenthèses",#PB_MessageRequester_Ok)
  EndIf
EndProcedure

Procedure filtrer_signes(eval$)
  termine.b=#False
  Repeat
    If FindString(eval$,"++",1)
      eval$=ReplaceString(eval$,"++","+",1)
    ElseIf FindString(eval$,"--",1)
      eval$=ReplaceString(eval$,"--","+",1)
    ElseIf FindString(eval$,"+-",1)
      eval$=ReplaceString(eval$,"+-","-",1)
    ElseIf FindString(eval$,"-+",1)
      eval$=ReplaceString(eval$,"-+","-",1)
    ElseIf FindString(eval$,"()",1)
      MessageRequester("Alerte","Erreur parenthèses !",#PB_MessageRequester_Ok)
      eval$="1"
    Else
      termine=#True
    EndIf
  Until termine
EndProcedure

calcul$="12*45-(sin(45)+int(10/3))/sqr(4)"; chaine à calculer
verifie_Parenthese(calcul$)
filtrer_signes(calcul$)
cherche_operateur(calcul$)
recherche_fonction()
Debug calcul$


par contre je suis intéressé par le code de cette magnifique calculatrice :wink:

Bon je change de programme je reprend le programme d'astrologie si personne ne m'en pond un avant :lol:

A+


Haut
 Profil  
 
 Sujet du message:
MessagePosté: Mer 15/Sep/2004 20:51 
Hors ligne

Inscription: Ven 23/Avr/2004 18:08
Messages: 282
Localisation: Ardèche St Montan
Bonsoir !

Je viens de me servir de cette superbe calculatrice et rien à dire du beau travail comme d'habitude :lol:

Par contre j'ai trouvé une erreur dans les calculs :lol: :lol:

3+((87-196)+entier(10/3))*2--4 devrai donner comme résultat -205 et non -209 8O

Mais c'est quand même super !

A+


Haut
 Profil  
 
 Sujet du message:
MessagePosté: Sam 18/Sep/2004 23:03 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 28/Jan/2004 20:58
Messages: 4311
Localisation: Clermont ferrand OU Olsztyn
exact, je vais corriger ceci, ce sera vite fais, il suffit de remplacer les -- dans le calcul par un + et gueuler sur l'utilisateur si il tape --4 comme formule car ça plante le programme

au fait, j'ai encore modifié pour les skin, on peut mettre les boutons dans l'ordre que l'on veut

pour faire par exemple
789
456
123
qu'est-ce qu'on dis Guimauve, fait un poutou :roll: beurk, pas avec la langue :jesors:

_________________
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]


Haut
 Profil  
 
 Sujet du message:
MessagePosté: Dim 19/Sep/2004 3:19 
Hors ligne

Inscription: Mer 11/Fév/2004 0:32
Messages: 1015
Localisation: Québec, Canada
Super !!

Pas de bizou, juste un merci ! Si tu étais une fille ça serait très différent. :roll:

Et à propos des skins que je t'ai envoyé ?

+A

Guimauve


Haut
 Profil  
 
 Sujet du message:
MessagePosté: Dim 19/Sep/2004 20:20 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 28/Jan/2004 20:58
Messages: 4311
Localisation: Clermont ferrand OU Olsztyn
oui, tu aurais pu modifier les couleurs, tu n'as absoluments pas touché au fichier ini qui pourtant paramètre beaucoup de chose :D

A toi de voir si tu veux les modifier.

De toute façon, je les ajouterai sur mon site dès que la biblio de skin sera en place :wink:
Après, on pourra mettre à jour si tu fais évoluer tes skins

_________________
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 29 messages ]  Aller à la page Précédente  1, 2

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye