[Challenge Mono-ligne] Calcul d'indice

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

[Challenge Mono-ligne] Calcul d'indice

Message par charognard » 12 févr. 2015 20:11

Bonjour tout le monde,

Problème :
les indices de plan sont codés en Alpha numérique.
de A à Z puis AA a ZZ et ainsi de suite

Challenge:
Faire un programme en BASIC sur ordinateur de poche EN UNE SEULE LIGNE contenant le INPUT et le PRINT qui prendra en entrée l'indice de départ, l'incrémentera de 1 et sortira le résultat sur l'écran
avec pour limite les 80 OCTETS de la ligne.
Pour les plus avenants on pourra même faire un BEEP avant le résultat ;)

Exemples:
ZZ --> AAA
AYZZ --> AZAA

Petit conseil faites le sur SHARP, sur CASIO ça doit être la grosse merde ;)

Bonne recherche

Avatar de l’utilisateur
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7462
Inscription : 12 févr. 2007 19:36
Localisation : Pas très loin de Lyon
Contact :

Re: [Challenge Mono-ligne] Calcul d'indice

Message par badaze » 12 févr. 2015 21:12

Faut que je retrouve un programme de conversion en base n.
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer :(
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: [Challenge Mono-ligne] Calcul d'indice

Message par charognard » 12 févr. 2015 22:51

badaze a écrit :Faut que je retrouve un programme de conversion en base n.
ça ne fonctionnera pas ;)

Avatar de l’utilisateur
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7180
Inscription : 31 janv. 2008 15:24
Localisation : Banlieue Paârisienne
Contact :

Re: [Challenge Mono-ligne] Calcul d'indice

Message par gege » 12 févr. 2015 23:10

Bonjour
Que faut-il faire ?
Incrémenter quoi ?
Des indices de quoi ?
G.E.

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: [Challenge Mono-ligne] Calcul d'indice

Message par charognard » 12 févr. 2015 23:20

Simple

prenons par exemple des plans
leur premier indice c'est A puis B puis C
à Z on passe à AA puis AB, AC ....

Il faut faire un programme EN 1 LIGNE qui incrémente de 1 la chaine entrée et affiche le résultat sur l'écran.

Exemple si on rentre

A ça donne ---> B
pour
ZZ ça va donner AAA


Comme le colonnes d'Excel en somme

Avatar de l’utilisateur
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7462
Inscription : 12 févr. 2007 19:36
Localisation : Pas très loin de Lyon
Contact :

Re: [Challenge Mono-ligne] Calcul d'indice

Message par badaze » 13 févr. 2015 01:18

Comme j'avais la flemme de sortir un Pocket; voici mon interprétation en php. Je suis loin du monoligne mais mon but est uniquement de proposer un point de départ (bon ou mauvais). C'est à peine testé donc il se peut que ça ne fonctionne pas bien.

Code : Tout sélectionner

<?php 
function charo($str) {
 $res     = "";

 $retenue = 0;

 $strlen = strlen($str)-1;

 //---- Test du dernier caractère
 $dercar = substr($str,$strlen,1);
 if ($dercar == "Z") {
  $res     = "A";
  $retenue = 1;
 } else {
  $res     = chr(ord($dercar)+1);
  $retenue = 0; 
 }

 //---- Eventuellement cascade sur les autres lettres
 $strlen--;
 for ($i=$strlen;$i>=0;$i--) {
  $dercar = substr($str,$i,1);
  if ($retenue == 1) {
	 if ($dercar == "Z") {
		 $res     = "A".$res;	 
	   $retenue = 1;	   
	 } else {
		 $res     = chr(ord($dercar)+1).$res;	 
	   $retenue = 0;
	 }
	} else {
	  $res     = $dercar.$res;	 
	}
 }

 //---- Si encore une retenue on ajoute A
 if ($retenue == 1) {
  $res = "A".$res;
 }
 return $res;
} // function charo($str)

$str = "ZZZ";
for ($i=1;$i<=100;$i++) {
 $str = charo($str);
 print "charo($str) donne ". charo($str)."<br/>";
}
 ?>

Ci-dessous 100 calculs consécutifs.

Code : Tout sélectionner

charo(AAAA) donne AAAB
charo(AAAB) donne AAAC
charo(AAAC) donne AAAD
charo(AAAD) donne AAAE
charo(AAAE) donne AAAF
charo(AAAF) donne AAAG
charo(AAAG) donne AAAH
charo(AAAH) donne AAAI
charo(AAAI) donne AAAJ
charo(AAAJ) donne AAAK
charo(AAAK) donne AAAL
charo(AAAL) donne AAAM
charo(AAAM) donne AAAN
charo(AAAN) donne AAAO
charo(AAAO) donne AAAP
charo(AAAP) donne AAAQ
charo(AAAQ) donne AAAR
charo(AAAR) donne AAAS
charo(AAAS) donne AAAT
charo(AAAT) donne AAAU
charo(AAAU) donne AAAV
charo(AAAV) donne AAAW
charo(AAAW) donne AAAX
charo(AAAX) donne AAAY
charo(AAAY) donne AAAZ
charo(AAAZ) donne AABA
charo(AABA) donne AABB
charo(AABB) donne AABC
charo(AABC) donne AABD
charo(AABD) donne AABE
charo(AABE) donne AABF
charo(AABF) donne AABG
charo(AABG) donne AABH
charo(AABH) donne AABI
charo(AABI) donne AABJ
charo(AABJ) donne AABK
charo(AABK) donne AABL
charo(AABL) donne AABM
charo(AABM) donne AABN
charo(AABN) donne AABO
charo(AABO) donne AABP
charo(AABP) donne AABQ
charo(AABQ) donne AABR
charo(AABR) donne AABS
charo(AABS) donne AABT
charo(AABT) donne AABU
charo(AABU) donne AABV
charo(AABV) donne AABW
charo(AABW) donne AABX
charo(AABX) donne AABY
charo(AABY) donne AABZ
charo(AABZ) donne AACA
charo(AACA) donne AACB
charo(AACB) donne AACC
charo(AACC) donne AACD
charo(AACD) donne AACE
charo(AACE) donne AACF
charo(AACF) donne AACG
charo(AACG) donne AACH
charo(AACH) donne AACI
charo(AACI) donne AACJ
charo(AACJ) donne AACK
charo(AACK) donne AACL
charo(AACL) donne AACM
charo(AACM) donne AACN
charo(AACN) donne AACO
charo(AACO) donne AACP
charo(AACP) donne AACQ
charo(AACQ) donne AACR
charo(AACR) donne AACS
charo(AACS) donne AACT
charo(AACT) donne AACU
charo(AACU) donne AACV
charo(AACV) donne AACW
charo(AACW) donne AACX
charo(AACX) donne AACY
charo(AACY) donne AACZ
charo(AACZ) donne AADA
charo(AADA) donne AADB
charo(AADB) donne AADC
charo(AADC) donne AADD
charo(AADD) donne AADE
charo(AADE) donne AADF
charo(AADF) donne AADG
charo(AADG) donne AADH
charo(AADH) donne AADI
charo(AADI) donne AADJ
charo(AADJ) donne AADK
charo(AADK) donne AADL
charo(AADL) donne AADM
charo(AADM) donne AADN
charo(AADN) donne AADO
charo(AADO) donne AADP
charo(AADP) donne AADQ
charo(AADQ) donne AADR
charo(AADR) donne AADS
charo(AADS) donne AADT
charo(AADT) donne AADU
charo(AADU) donne AADV
charo(AADV) donne AADW

Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer :(
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: [Challenge Mono-ligne] Calcul d'indice

Message par charognard » 13 févr. 2015 08:22

Ca fonctionne effectivement
Mais avec la tonne de IF dedans on sera plutôt à 10 lignes ici :-)

Avatar de l’utilisateur
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5600
Inscription : 26 mars 2009 14:07
Localisation : Ile de France
Contact :

Re: [Challenge Mono-ligne] Calcul d'indice

Message par ledudu » 13 févr. 2015 09:00

Salut
charognard a écrit :Petit conseil faites le sur SHARP, sur CASIO ça doit être la grosse merde ;)
Tu m'as manqué aussi ! :D
Dernière édition par ledudu le 13 févr. 2015 11:01, édité 1 fois.

casuffitdeschanel
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 626
Inscription : 21 sept. 2009 21:56
Localisation : Metz

Re: [Challenge Mono-ligne] Calcul d'indice

Message par casuffitdeschanel » 13 févr. 2015 10:58

gege a écrit :Bonjour
Que faut-il faire ?
Incrémenter quoi ?
Des indices de quoi ?
G.E.
T'as jamais eu de plan B ?

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: [Challenge Mono-ligne] Calcul d'indice

Message par charognard » 13 févr. 2015 12:33

casuffitdeschanel a écrit :
gege a écrit :Bonjour
Que faut-il faire ?
Incrémenter quoi ?
Des indices de quoi ?
G.E.
T'as jamais eu de plan B ?
Ou de plan Q !

Avatar de l’utilisateur
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2498
Inscription : 03 mai 2008 15:33
Localisation : Grenoble

Re: [Challenge Mono-ligne] Calcul d'indice

Message par zpalm » 13 févr. 2015 18:56

Sur HP Prime:

Code : Tout sélectionner

EXPORT charo(Str)
BEGIN
LOCAL c=1, i, l=ASC(Str); 
FOR i FROM SIZE(l) DOWNTO 1 DO
  l(i):=l(i)+c-65; c:=l(i)>25; l(i):=(l(i) MOD 26)+65;
END;
IF c = 1 THEN l:=CONCAT({65},l); END;
RETURN CHAR(l);
END; 
Ça marche, mais il doit y avoir moyen de faire plus court.

Image
Dernière édition par zpalm le 13 févr. 2015 19:34, édité 2 fois.

icho
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 580
Inscription : 20 juin 2012 13:47
Localisation : venelles 13770

Re: [Challenge Mono-ligne] Calcul d'indice

Message par icho » 13 févr. 2015 19:07

en une ligne c'est chaud
Collection Apple
Apple //, //e, //c, Plus, SE, SE/30, Classic I, II, Color, IIci, IIsi, IIcx, II, IIfx, Quadra 700, LC, I, II, 475, PM 6400, 6500, 7600, 9600, G3 DT, G3 MTower, Cube, G4, G5, iMac G3, G4 15", G4 20" T, 20", 24" , 27" i7, MacPro .

MacPortable, PB Duo 2300C, iBook G3, G4 12" et 14", PB G4 12" et 15" Alu, 15" Ti, MB Pro CD 15", MBP 15", MBP 17", MBP 13".

IWriter I, II, StyleWriter I, II, QuickTake 100, Newtons, etc ...

Avatar de l’utilisateur
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7462
Inscription : 12 févr. 2007 19:36
Localisation : Pas très loin de Lyon
Contact :

Re: [Challenge Mono-ligne] Calcul d'indice

Message par badaze » 13 févr. 2015 20:04

icho a écrit :en une ligne c'est chaud
C'est chaud pour icho .

Ok je :arrow:
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer :(
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: [Challenge Mono-ligne] Calcul d'indice

Message par charognard » 13 févr. 2015 20:22

icho a écrit :en une ligne c'est chaud
Mais possible !

Faites péter vos pockets des années 80.

Avatar de l’utilisateur
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7180
Inscription : 31 janv. 2008 15:24
Localisation : Banlieue Paârisienne
Contact :

Re: [Challenge Mono-ligne] Calcul d'indice

Message par gege » 13 févr. 2015 22:51

charognard a écrit :Simple

prenons par exemple des plans
leur premier indice c'est A puis B puis C
à Z on passe à AA puis AB, AC ....

Il faut faire un programme EN 1 LIGNE qui incrémente de 1 la chaine entrée et affiche le résultat sur l'écran.

Exemple si on rentre

A ça donne ---> B
pour
ZZ ça va donner AAA


Comme le colonnes d'Excel en somme
Ah OK j'ai compris !
Voici une solution :

Code : Tout sélectionner

10 A=1:E$="":INPUT B$:FOR I=LEN(B$) TO 1 STEP -1:C=A+ASC MID$(B$,I,1):D=-(C>90):C=C-26*D:A=D:E$=(CHR$ C)+E$:NEXT I:PRINT E$:END
8)
G.E.

Répondre

Revenir vers « Tous les Pockets »