π
<-

Problème de retour à la ligne en affichage de programme

:32tins: :32tinsktpb: :32tinsktpn: :32tinscas: :32tinstpkc: :32tinstpktpb: :32tinstp: :32tinscastp: :32tinscmc: :32tinscx: :32tinscxcas:

Re: Problème de retour à la ligne en affichage de programme

Unread postby thomas425 » 05 Nov 2013, 19:55

Bon voilà mon compteur en binaire marche très bien, j'aimerais maintenant l'étendre en convertisseur toutes bases (ou du moins jusque base hexadécimale, après je n'en vois plus trop l'utilité)
J'ai donc changer mon code en celui ci :

Code: Select all
Define base(n,b)=
Prgm
:Local r,s
:s:=""
:While n>0
:r:=n-b*int(((n)/(b)))
:s:=string(r)&s
:n:=int(((n)/(b)))
:EndWhile
:Disp s
:EndPrgm


Cela marche très bien pour toutes les bases <10 sauf qu'après avec la nécessité de nouveaux signe cela se complique.. J'ai donc fait quelques essais :

Code: Select all
Define base(n,b)=
Prgm
:Local r,s
:s:=""
:While n>0
:r:=n-b*int(((n)/(b)))
:If r=10 Then
:r:=A
:Endif
:s:=string(r)&s
:n:=int(((n)/(b)))
:EndWhile
:Disp s
:EndPrgm


ça marche, j'arrive à afficher a à la place de 10 mais le "problème est qu'à l'enregistrement du programme A se change en a (exemple 8a2 au lieu de 8A2) et donc c'est pas ce que je cherche..
J'ai donc essayé d'écrire ça :

Code: Select all
:r:="A"


Le soucis maintenant c'est que affiche 8"A"2 ..

Donc j'aimerais déjà régler ce problème, puis ensuite, savoir comment établir un logique pour que si r=11 alors r:=B puis sir r:=12 alors r:=C et ainsi de suite..

Merci
User avatar
thomas425
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 44%
 
Posts: 7
Joined: 30 Sep 2013, 20:28
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Teminale S (SI)

Re: Problème de retour à la ligne en affichage de programme

Unread postby critor » 05 Nov 2013, 20:01

thomas425 wrote:ça marche, j'arrive à afficher a à la place de 10 mais le "problème est qu'à l'enregistrement du programme A se change en a (exemple 8a2 au lieu de 8A2) et donc c'est pas ce que je cherche..
J'ai donc essayé d'écrire ça :

:r:="A"

Le soucis maintenant c'est que affiche 8"A"2 ..


En effet, 'r' est donc parfois une chaîne de caractères et parfois un nombre, ce qui cause problème.
Modifions le code pour que r soit toujours une chaîne de caractère en déplaçant la fonction string et ça devrait aller :)

Code: Select all
Define base(n,b)=
Prgm
:Local r,s
:s:=""
:While n>0
:r:=string(n-b*int(((n)/(b))))
:If r="10" Then
:r:="A"
:Endif
:s:=r&s
:n:=int(((n)/(b)))
:EndWhile
:Disp s
:EndPrgm
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 53.6%
 
Posts: 42403
Images: 17124
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Problème de retour à la ligne en affichage de programme

Unread postby critor » 05 Nov 2013, 20:17

Corrigé le code ci-dessus, puisque r a changé de type.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 53.6%
 
Posts: 42403
Images: 17124
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Problème de retour à la ligne en affichage de programme

Unread postby Bisam » 06 Nov 2013, 11:41

Tu peux aussi utiliser des listes à la place des chaînes de caractères.
C'est plus facile pour faire la manipulation inverse, c'est-à-dire revenir à la base 10 à partir de la base n.
En plus, dans une liste, si ton "chiffre" est plus grand que 10, ce n'est pas grave, tu n'es pas obligé de le convertir en lettre...
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Problème de retour à la ligne en affichage de programme

Unread postby thomas425 » 06 Nov 2013, 19:45

Et c'est quoi la commande à rentrer pour une liste ?
Je comprends pas pq je ss pas obligé de le convertir en lettre ? C'est fait automatiquement ?
User avatar
thomas425
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 44%
 
Posts: 7
Joined: 30 Sep 2013, 20:28
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Teminale S (SI)

Re: Problème de retour à la ligne en affichage de programme

Unread postby critor » 06 Nov 2013, 19:50

Laisse tomber les listes.
Puisque tu veux des lettres majuscules, pas le choix: on utilise des chaînes.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 53.6%
 
Posts: 42403
Images: 17124
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Problème de retour à la ligne en affichage de programme

Unread postby thomas425 » 08 Nov 2013, 21:16

Mais ton code ne marche pas critor :s
ce serait pas lié au fait que tu attribues à r une chaîne de caractères, du coup r ne vaut plus "10" comme initalement, enfin je ne comprends pas trop la modification que tu as faite.
User avatar
thomas425
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 44%
 
Posts: 7
Joined: 30 Sep 2013, 20:28
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Teminale S (SI)

Re: Problème de retour à la ligne en affichage de programme

Unread postby Extra44 » 08 Nov 2013, 21:26

EDIT : code de critor : effectivement : il faut corriger le code pour prendre en compte correctement le type de r
Proposition de correction :
Code: Select all
Define base(n,b)=
Prgm
:  Local r,s,sr
:  s:=""
:  sr:=""
:  While n>0
:     r:=n-b*int(((n)/(b)))
:     sr:=string(r)
:     If r=10 Then
:          sr:="A"
:     EndIf
:     s:=sr&s
:     n:=int(((n)/(b)))
:    EndWhile
:    Disp s
:EndPrgm


EDIT : la version avec liste (de Bisam) : c'est de faire une liste des chiffres de 0.. à ..F :
chiffre={'0','1','2','3','4','5','6','7','8','9','A','B','C',''D','E','F'}
Ensuite tu as le chiffre en caractère par chiffre[n°de chiffre+1] : il y a le '+1' car le premier chiffre commence à l'indice 1 et non à 0
ainsi chiffre[0+1] = chiffre[1]='0'
et chiffre[0+15] = chiffre[16]='F'
User avatar
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 58.4%
 
Posts: 591
Images: 1
Joined: 20 Jan 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: S.I.

Re: Problème de retour à la ligne en affichage de programme

Unread postby Bisam » 08 Nov 2013, 23:47

Euh, non, en fait, je voulais juste faire une liste enregistrant les restes successifs des divisions euclidiennes.
On peut faire ainsi par exemple :
Code: Select all
Define chgbase(nn,base)
Func
Local i,rep
i:=1
while nn > 0
   rep[i]:=mod(nn,base)
   nn:=intdiv(nn,base)
   i:=i+1
endwhile
return rep
EndFunc
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Problème de retour à la ligne en affichage de programme

Unread postby critor » 08 Nov 2013, 23:55

thomas425 wrote:Mais ton code ne marche pas critor :s


Sois plus précis en précisant ce que ça fait stp: mauvais résultat ou message d'erreur obtenu.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 53.6%
 
Posts: 42403
Images: 17124
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Previous

Return to Problèmes divers / Aide débutants

Who is online

Users browsing this forum: ClaudeBot [spider] and 16 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1146 utilisateurs:
>1085 invités
>54 membres
>7 robots
Record simultané (sur 6 mois):
7582 utilisateurs (le 25/06/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)