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
» 2D_fill_color
conversion - CONVERSION DE BASES Emptypar leclode Aujourd'hui à 10:34

» Consommation gaz électricité
conversion - CONVERSION DE BASES Emptypar leclode Mer 17 Avr 2024 - 11:07

» trop de fichiers en cours
conversion - CONVERSION DE BASES Emptypar lepetitmarocain Mer 17 Avr 2024 - 10:19

» on_key_down (résolu)
conversion - CONVERSION DE BASES Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
conversion - CONVERSION DE BASES Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

» Bataille-navale
conversion - CONVERSION DE BASES Emptypar jjn4 Mer 3 Avr 2024 - 14:08

» Minimiser une fenêtre Panoramic.
conversion - CONVERSION DE BASES Emptypar Pedro Mar 2 Avr 2024 - 13:50

» Récapitulatif ludothèque panoramic jjn4
conversion - CONVERSION DE BASES Emptypar jjn4 Lun 1 Avr 2024 - 18:04

» demande explication KGF pour imprimer en mm
conversion - CONVERSION DE BASES Emptypar JL35 Jeu 28 Mar 2024 - 17:28

» Petit passage furtif
conversion - CONVERSION DE BASES Emptypar Froggy One Mer 27 Mar 2024 - 14:26

» SPIN et aide langage (résolu)
conversion - CONVERSION DE BASES Emptypar leclode Sam 23 Mar 2024 - 15:20

» Aide-mémoire des mots-clés Panoramic
conversion - CONVERSION DE BASES Emptypar papydall Mer 20 Mar 2024 - 21:23

» Je ne comprend pas pourquoi la largeur de la scene 3d change
conversion - CONVERSION DE BASES Emptypar Marc Mar 12 Mar 2024 - 20:06

» Comment télécharger panoramic?
conversion - CONVERSION DE BASES Emptypar lepetitmarocain Sam 9 Mar 2024 - 13:31

» @lepetitmarocain <==> KGFGrid
conversion - CONVERSION DE BASES Emptypar Klaus Dim 3 Mar 2024 - 9:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le deal à ne pas rater :
Funko POP! Jumbo One Piece Kaido Dragon Form : où l’acheter ?
Voir le deal

 

 CONVERSION DE BASES

Aller en bas 
2 participants
AuteurMessage
papydall

papydall


Nombre de messages : 6989
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

conversion - CONVERSION DE BASES Empty
MessageSujet: CONVERSION DE BASES   conversion - CONVERSION DE BASES EmptyDim 2 Sep 2012 - 22:56

Salut tout le monde.

Je vous propose un petit utilitaire BASE1_TO_BASE2.BAS qui a pour but de traduire un nombre exprimé dans une base quelconque en une autre base.
Les bases de départ et d’arrivée doivent être supérieures ou égales à 2 sinon mathématiquement elles n’ont pas de sens !
Une base b quelconque nécessite b symboles pour être représentée.
Toutefois, les notations dans les bases supérieures à 10 utilisent les premières lettres de l’alphabet :
A représente la valeur suivant 9 (donc le « 10 » décimal),
B celle qui suit A (soit le « 11 » décimal), et ainsi de suite.
Il sera donc difficile (seulement en pratique et non mathématiquement parlé !) de dépasser la base 36.
Cette dernière nécessite en effet les 10 chiffres de 0 à 9 et les 26 lettres de A à Z.
Vous pouvez taper les lettres indifféremment en minuscules ou en majuscules.


Je pense avoir testé suffisamment le programme : il fonctionne dans tous les cas de figures et il détecte toutes sortes d’erreurs.
Mais il se peut que je n’aie pas tout prévu et c’est à vous de le coincer !


Code:

' Base1_to_Base2.bas

dim base1 : ' base de départ
dim base2 : ' base d'arrivée
dim Nb_convert$ : ' nombre à convertir
dim Nb10 : ' nombre traduit en base 10
dim puiss1,puiss2 : ' puissances successives de base1 et de base2
dim l    : ' nombre de chiffres de Nb_convert$
dim flag : ' drapeau indiquant la validité des chiffres
dim r$  : ' chiffre à traduire en base 10
dim nt$  : ' traduction en base d'arrivée
dim d    : ' indice des diviseurs
dim i    : ' indice de boucle de calcul
dim r    : ' valeur en base 10 du chiffre r$
dim bidon$
label go,demarrer,quitter,asc2chr, chr2asc

gosub go

end
' ******************************************************************************
go:
application_title "CONVERSION DES BASES"
caption 0,"CONVERSION DE BASES PAR PAPYDALL"
width 0, 800 : color 0,0,0,0 : font_color 0,255,255,0 : font_size 0,12 : font_bold 0
scene3d 1 : color 1, 0,0,0 : 3d_text 1,"PAPYDALL " : full_space 1 : 3d_color 1,0,0,255
3d_position 1,-2,-.5,1
for i = 0 to 360 : 3d_x_rotate 1,i :  wait 1 : next i
for i = 1 to .01 step -.001 : 3d_scale 1,i,i,i : display : next i
3d_text 2,"VOUS PROPOSE " : 3d_color 2,255,0,0
3d_position 2,-3.5,-.5,1
for i = 0 to 360 : 3d_x_rotate 2,i : wait 1 : next i
for i = 1 to .01 step -.001 : 3d_scale 2,i,i,i : display : next i
3d_text 3,"BASE1_TO_BASE2" : 3d_color 3,0,255,0
3d_position 3,-1.5,-.5,1
for i = 0 to 500 : 3d_y_rotate 3,i : 3d_z_rotate 3,i : wait 1 : next i
for i = 1 to .01 step -.001 : 3d_scale 3,i,i,i : display : next i
hide 1
print_target_is 0 : font_color 0,255,255,0 : font_size 0, 12 :  print_locate 50,50
print "CET UTILITAIRE VOUS PERMET DE TRADUIRE UN NOMBRE >= 0"  : print_locate 50,80
print "EXPRIME DANS UNE BASE QUELCONQUE COMPRISE ENTRE 2 ET 36" : print_locate 50,110
print "EN UNE AUTRE BASE  EGALEMENT COMPRISE ENTRE 2 ET 36"
button 10 : top 10,200 : left 10,200 : width 10,150 : caption 10,"DEMARRER"
button 20 : top 20,200 : left 20,400 : width 20,150 : caption 20,"QUITTER"
on_click 10,demarrer : on_click 20, quitter
return
demarrer:
' ******************************************************************************
repeat
  if message_input("CONVERSION DE BASES","BASE DE DEPART (2...36) ","10") = 1
      bidon$  = message_text$
      if numeric(bidon$) = 1 then  base1 = val(message_text$)
  end_if
until base1 > 1 and base1 < 37

repeat
  if message_input("CONVERSION DE BASES","BASE D'ARRIVEE (2...36)","2") = 1
      bidon$  = message_text$
      if numeric(bidon$) = 1 then  base2 = val(message_text$)
  end_if
until base2 > 1 and base2 < 37

repeat
    if message_input("CONVERSION DE BASE","NOMBRE A CONVERTIR","1") = 1
      bidon$  = message_text$
      Nb_convert$ = upper$(message_text$)
    end_if
 
  Nb10 = 0 : puiss1 = 1 : l = len(Nb_convert$) : flag = 0
  for puiss2 = l to 1 step -1
      r$ = mid$(Nb_convert$,puiss2,1)
      gosub chr2asc
      if r >= base1 or r < 0 then flag = 1
      Nb10 = Nb10 + puiss1 * r : puiss1 = puiss1 * base1
  next puiss2
until  flag = 0
if base1 <> 10
  message "TRADUCTION EN BASE 10 DE " + Nb_convert$ + " (BASE "+str$(base1) +") : "+ str$(Nb10)
end_if
puiss2 = 1 : d = 1
repeat
  puiss2 = puiss2 * base2 : d = d + 1
until puiss2 * base2 > Nb10

dim v(d)
puiss2 = 1  : nt$ = ""
for i = 1 to d : v(i) = puiss2 : puiss2 = puiss2 * base2 : next i
for i = d to 1 step -1
    r = int(Nb10 / v(i))
    gosub asc2chr
    nt$ = nt$ + r$ : Nb10 = Nb10 - r * v(i)
next i

message "TRADUCTION EN BASE " + str$(base2) +" DE " + Nb_convert$ + " (BASE " + str$(base1)+") : " + nt$
free v(d)
return
' *****************************************************************************
' Transforme un CHR en ASCII
chr2asc:
r = asc(r$) - 48 : if r > 9 then r = asc(r$) - 55
return
' ******************************************************************************
' Transforme un ASCII en CHR
asc2chr:
r$ = chr$(r + 48) : if r > 9 then r$ = chr$(r + 55)
return
' *****************************************************************************

quitter:
 if message_confirmation_yes_no("VOUS VOULEZ VRAIMENT QUITTER ?") = 1 then terminate
return

Remarque :
Le programme donne la valeur du nombre dans la base de départ, dans la base décimale et dans la base d’arrivée.

Pour vous amuser : Laughing Laughing
Essayez de traduire un nombre de la base 36 à la bas 2.
Donnez comme nombre à convertir TOUTES LES LETTRES et TOUS LES CHIFFRES.

Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven


Dernière édition par papydall le Lun 3 Sep 2012 - 0:21, édité 2 fois (Raison : POUR UN GROS BUG PLUS GROS QUE MA TETE)
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

conversion - CONVERSION DE BASES Empty
MessageSujet: Re: CONVERSION DE BASES   conversion - CONVERSION DE BASES EmptyDim 2 Sep 2012 - 23:26

Très bien Wink
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6989
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

conversion - CONVERSION DE BASES Empty
MessageSujet: Re: CONVERSION DE BASES   conversion - CONVERSION DE BASES EmptyDim 2 Sep 2012 - 23:59

J’ai édité mon programme : Raison : un gros bug, plus gros que ma tête !!! affraid affraid affraid
Cherchez, cherchez, il y en a peut-être d’autre !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Invité
Invité




conversion - CONVERSION DE BASES Empty
MessageSujet: Re: CONVERSION DE BASES   conversion - CONVERSION DE BASES EmptyLun 3 Sep 2012 - 0:09

Oh: puta...! ca me rappel une vieille histoire quand dans les années 65 au CET, j'essayais de comprendre à titre personnel ce genre de réflexion. Comme cela ne plaisait pas au prof de math, pour quoi le cours qu'il faisait ne m'apportait rien, j'ai eu droit à une punition, et collé le week-end (je rentrais tous les 15 jours. J'essayais de mettre une formule pour passer d'une base dix, à une base douze.
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6989
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

conversion - CONVERSION DE BASES Empty
MessageSujet: Re: CONVERSION DE BASES   conversion - CONVERSION DE BASES EmptyLun 3 Sep 2012 - 0:27

Maintenant tu peux multiplier ta base par trois et passer de la base 12 à la base 36 ! Laughing
Et tu ne seras pas collé le week-end. No
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Invité
Invité




conversion - CONVERSION DE BASES Empty
MessageSujet: Re: CONVERSION DE BASES   conversion - CONVERSION DE BASES EmptyVen 8 Mar 2013 - 18:58

Bonsoir,
Papydall, en parlant de conversion de base, comme ton lien indique. J'ai fait un programme que l'on trouve ici:,il était dit que c'était un addition en base 11. Ors je ne suis pas sur que ce soit la base 11. La méthode est bizarre pour cela.
Si tu fais l'essai, j'ai vu un problème sur mon ordi. Il faut mettre en ligne 8 ou 9, font_size 10 ou 11, sinon on ne voit que les ascenseur. Je ne sais pas pourquoi, ce n'était pas le cas à l'époque.
Ensuite avec Panoramic de l'époque, il y avait un bug qui a été corrigé, et mon résultat était différent de celui de Panoramic, d'où le message final.

EDIT: je me suis trompé de sujet, je voulais mettre à la suite de 'binaire et inverse'. Je pensais que le sujet était bloqué. C'est peut-être mieux ici.
Revenir en haut Aller en bas
Contenu sponsorisé





conversion - CONVERSION DE BASES Empty
MessageSujet: Re: CONVERSION DE BASES   conversion - CONVERSION DE BASES Empty

Revenir en haut Aller en bas
 
CONVERSION DE BASES
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Bases mathématiques du graphisme à 3 dimensions
» Conversion RGB/HSV
» Bases mathématiques du graphisme à 2 dimensions
» [resolu] en panne avec les bases du basic
» Conversion TSL/RVB

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: