FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Une petite calculette en Hexa Emptypar jjn4 Aujourd'hui à 15:06

» PANORAMIC V 1
Une petite calculette en Hexa Emptypar papydall Aujourd'hui à 3:22

» select intégrés [résolu]
Une petite calculette en Hexa Emptypar jjn4 Hier à 17:00

» number_mouse_up
Une petite calculette en Hexa Emptypar jjn4 Hier à 11:59

» Aide de PANORAMIC
Une petite calculette en Hexa Emptypar jjn4 Hier à 11:16

» trop de fichiers en cours
Une petite calculette en Hexa Emptypar lepetitmarocain Hier à 10:43

» Je teste PANORAMIC V 1 beta 1
Une petite calculette en Hexa Emptypar papydall Hier à 4:17

» bouton dans autre form que 0
Une petite calculette en Hexa Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Une petite calculette en Hexa Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Une petite calculette en Hexa Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Une petite calculette en Hexa Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Une petite calculette en Hexa Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Une petite calculette en Hexa Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Une petite calculette en Hexa Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Une petite calculette en Hexa Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-21%
Le deal à ne pas rater :
LEGO® Icons 10329 Les Plantes Miniatures, Collection Botanique
39.59 € 49.99 €
Voir le deal

 

 Une petite calculette en Hexa

Aller en bas 
2 participants
AuteurMessage
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Une petite calculette en Hexa Empty
MessageSujet: Une petite calculette en Hexa   Une petite calculette en Hexa EmptyJeu 8 Avr 2010 - 0:01

Pour ceux qui voudraient bricoler avec le binaire et en particulier avec l'hexadécimal (n'est-ce pas ygeronimi) une petite calculette qui fait les calculs et les conversions décimal/hexa.
Elle ne gère que les nombres entiers, donc pas de virgule.
Code:
' Calcul.bas calculette décimal/hexadécimal
DIM i%, j%, k%, d, vh$, lh%, ope$
DIM lb, hb, e, xb, yb, nb, nb1, nb2, nba, a$, ybc, lbc, yl, la, va, vm, v$, Mode$
DIM xbr, hl, nbh
LABEL Touche, Affich, Ret, DecHex, HexDec

DATA "0", "1", "2", "3"
DATA "4", "5", "6", "7"
DATA "8", "9", "A", "B"
DATA "C", "D", "E", "F"
DATA "+", "-", "x", "/", "="

lb = 30: hb = 20: e = 5: xb = 10: yl = 10: hl = hb+5
yb = yl + hl + 10: la = 10
Mode$ = "D": ' mode décimal
WIDTH 0, 5*(lb+e)+30: HEIGHT 0, yb+5*(hb+e)+40
COLOR 0, 128, 64, 0
CAPTION 0, " CALCULETTE"

nba = 30: nbh = nba + 1
LIST nba: TOP nba, yl: LEFT nba, xb: WIDTH nba, 4*lb+3*e: HEIGHT nba, hl
FONT_NAME nba, "Courier New": FONT_SIZE nba, 15: FONT_BOLD nba
COLOR nba, 220, 255, 255

LIST nbh: TOP nbh, yl: LEFT nbh, xb+4*(lb+e)+e: WIDTH nbh, lb-2*e: HEIGHT nbh, hl
COLOR nbh, 255, 200, 200: FONT_BOLD nbh
FONT_SIZE nbh, 12: ITEM_ADD nbh, Mode$

nb1 = 1: ' 16 touches chiffres de 1 à 16
FOR j% = 4 TO 1 STEP -1
    FOR i% = 0 TO 3
        READ a$: vh$ = a$: GOSUB HexDec: nb = d + 1
        BUTTON nb: TOP nb, yb + j%*(hb+e): LEFT nb, xb + i%*(lb+e)
        WIDTH nb, lb: HEIGHT nb, hb
        FONT_SIZE nb, 14: CAPTION nb, a$
    NEXT i%
NEXT j%
nb = 17
xbr =xb + 4*(lb+e): ' 5 touches opérations de 17 à 21
FOR j% = 4 TO 0 STEP -1
    BUTTON nb: TOP nb, yb + j%*(hb+e): LEFT nb, xbr
    WIDTH nb, lb: HEIGHT nb, hb
    READ a$: FONT_SIZE nb, 14: CAPTION nb, a$
    nb = nb + 1
NEXT j%

lbc = 3*lb/2+3
BUTTON nb: TOP nb, yb: LEFT nb, xb: WIDTH nb, lbc: HEIGHT nb, hb
FONT_SIZE nb, 11: CAPTION nb, "DEC": ' touche 22
nb = nb + 1
BUTTON nb: TOP nb, yb: LEFT nb, xb+lbc+e: WIDTH nb,lbc: HEIGHT nb, hb
FONT_SIZE nb, 11: CAPTION nb, "HEX": ' touche 23
nb = nb + 1
BUTTON nb: TOP nb, yb: LEFT nb, xb + 3*(lb+e): WIDTH nb, lb: HEIGHT nb, hb
FONT_SIZE nb, 14: CAPTION nb, "Clr": ' touche 24
nb2 = nb
FOR i% = nb1 TO nb2: ON_CLICK i%, Touche: NEXT i%

va = 0: vm = 0: GOSUB Affich

END

Touche:
FOR i% = nb1 TO nb2
    IF CLICKED(i%) = 1 THEN EXIT_FOR
NEXT i%
IF i% < 17: ' touche chiffre (0 à 9 ou F)
    IF Mode$ = "H"
        va = va * 16
    ELSE
        IF i% > 10 THEN GOTO Ret
        va = va * 10
    END_IF
    va = va + i% - 1
    ' GOTO Ret
END_IF
SELECT i%
CASE 17: ope$ = "+": vm = va: va = 0
CASE 18: ope$ = "-": vm = va: va = 0
CASE 19: ope$ = "x": vm = va: va = 0
CASE 20: ope$ = "/": vm = va: va = 0
CASE 21: ' = calcul opération
    IF ope$ = "+"
        va = vm + va
    ELSE
        IF ope$ = "-"
            va = vm - va
        ELSE
            IF ope$ = "x"
                va = vm * va
            ELSE
                va = INT(vm/va)
            END_IF
        END_IF
    END_IF
    vm = 0
CASE 22: ' IF Mode$ = "D" THEN GOTO Ret
    Mode$ = "D": CLEAR nbh: ITEM_ADD nbh, "D"
CASE 23: ' IF Mode$ = "H" THEN GOTO Ret
    Mode$ = "H": CLEAR nbh: ITEM_ADD nbh, "H"
CASE 24: va = 0: vm = 0
END_SELECT
GOSUB Affich
Ret:
RETURN

Affich:
IF Mode$ = "D"
    v$ = STR$(va)
ELSE
    d = va: GOSUB DecHex: v$ = vh$
END_IF
v$ = RIGHT$(STRING$(la, " ") + v$, la)
CLEAR nba: ITEM_ADD nba, v$
RETURN

DecHex:
' conversion décimal/hexa de d, résultat vh$ (complété si utile à lh% caractères)
vh$="": IF lh% < 1 THEN lh% = 1
REPEAT
    vh$ = MID$("0123456789ABCDEF", 16*(d/16-INT(d/16))+1, 1) + vh$: d = INT(d/16)
UNTIL d <= 0
IF LEN(vh$) < lh% THEN vh$ = STRING$(lh% - LEN(vh$), "0") + vh$
RETURN

HexDec:
' conversion hexadécimal/décimal de vh$, résultat dans d
d = 0
FOR k% = 1 TO LEN(vh$)
    d = d*16 + INSTR("0123456789ABCDEF", MID$(vh$, k%, 1))-1
NEXT k%
RETURN
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2704
Date d'inscription : 13/09/2009

Une petite calculette en Hexa Empty
MessageSujet: +++   Une petite calculette en Hexa EmptyJeu 8 Avr 2010 - 0:48

Bien, cette petite calculette, avec tes vérifications
d'hier, justement je me disais que j'avais besoin d'un truc comme ça
Mais dans la foulée, tu aurais pu y mettre aussi le binaire,
et pourquoi pas l'octal
et pendant qu'on y est, tous les systèmes numériques...
Laughing
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Une petite calculette en Hexa Empty
MessageSujet: Re: Une petite calculette en Hexa   Une petite calculette en Hexa EmptyJeu 8 Avr 2010 - 10:14

Le binaire et l'octal, aucun intérêt !
Le binaire ça se fait le crayon à la main. et l'octal c'était il y a 40 ans, quand les bits étaient regroupés par 2x3 (et non par 2x4 comme maintenant).
Revenir en haut Aller en bas
Invité
Invité




Une petite calculette en Hexa Empty
MessageSujet: Re: Une petite calculette en Hexa   Une petite calculette en Hexa EmptyJeu 8 Avr 2010 - 23:42

Dommage que j'aie écrasé le programme parce que moi aussi j'avais un calculatrice (pas en hexa)

Tiens j'ai quand même un exécutable :
http://dl.free.fr/uCtyRLA3B/Calculatrice.exe


P.S :
- J'ai pus mon code alors il y a quelques bugs
- Quand on fait 1 + 1 + 1, ça donne 3 et pas 2 contrairement à l'exemple de Jack.
Revenir en haut Aller en bas
Contenu sponsorisé





Une petite calculette en Hexa Empty
MessageSujet: Re: Une petite calculette en Hexa   Une petite calculette en Hexa Empty

Revenir en haut Aller en bas
 
Une petite calculette en Hexa
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Calculette Décimal/Hexa sous forme de Sub
» Une calculette basique pour les enfants
» conversion hexa
» Pour découper une image en petits rectangles SANS DLL
» Une petite règle

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: