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
» Logiciel de planétarium.
conversion - CONVERSION DE BASES Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
conversion - CONVERSION DE BASES Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
conversion - CONVERSION DE BASES Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
conversion - CONVERSION DE BASES Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
conversion - CONVERSION DE BASES Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
conversion - CONVERSION DE BASES Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
conversion - CONVERSION DE BASES Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
conversion - CONVERSION DE BASES Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
conversion - CONVERSION DE BASES Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
conversion - CONVERSION DE BASES Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
conversion - CONVERSION DE BASES Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
conversion - CONVERSION DE BASES Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
conversion - CONVERSION DE BASES Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
conversion - CONVERSION DE BASES Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
conversion - CONVERSION DE BASES Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-20%
Le deal à ne pas rater :
Drone Dji DJI Mini 4K (EU)
239 € 299 €
Voir le deal

 

 CONVERSION DE BASES

Aller en bas 
2 participants
AuteurMessage
papydall

papydall


Nombre de messages : 7017
Age : 74
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 : 52
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 : 7017
Age : 74
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 : 7017
Age : 74
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
» bases de données SQL
» Bases mathématiques du graphisme à 2 dimensions
» [resolu] en panne avec les bases du basic
» Conversion txt en rtf

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: