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
» Gestion d'un système client-serveur.
CONVERSION DE BASES Emptypar Klaus Hier à 23:59

» PANORAMIC V 1
CONVERSION DE BASES Emptypar Marc Hier à 23:21

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
CONVERSION DE BASES Emptypar Marc Hier à 12:14

» @Jack
CONVERSION DE BASES Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
CONVERSION DE BASES Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
CONVERSION DE BASES Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
CONVERSION DE BASES Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
CONVERSION DE BASES Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
CONVERSION DE BASES Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
CONVERSION DE BASES Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
CONVERSION DE BASES Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
CONVERSION DE BASES Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
CONVERSION DE BASES Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
CONVERSION DE BASES Emptypar leclode Sam 20 Avr 2024 - 8:32

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

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-45%
Le deal à ne pas rater :
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre 14 couverts – ...
339 € 622 €
Voir le deal

 

 CONVERSION DE BASES

Aller en bas 
2 participants
AuteurMessage
papydall

papydall


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

CONVERSION DE BASES Empty
MessageSujet: CONVERSION DE BASES   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 DE BASES Empty
MessageSujet: Re: CONVERSION DE BASES   CONVERSION DE BASES EmptyDim 2 Sep 2012 - 23:26

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

papydall


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

CONVERSION DE BASES Empty
MessageSujet: Re: CONVERSION DE BASES   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 DE BASES Empty
MessageSujet: Re: CONVERSION DE BASES   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 : 6997
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

CONVERSION DE BASES Empty
MessageSujet: Re: CONVERSION DE BASES   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 DE BASES Empty
MessageSujet: Re: CONVERSION DE BASES   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 DE BASES Empty
MessageSujet: Re: CONVERSION DE BASES   CONVERSION DE BASES Empty

Revenir en haut Aller en bas
 
CONVERSION DE BASES
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Conversion des bases : binaire, octal, decimal, héxadécimal
» Bases mathématiques du graphisme à 3 dimensions
» Bases mathématiques du graphisme à 2 dimensions
» Conversion d'unités
» 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: