[Challenge mono-ligne] Traitement chaine II

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

Avatar du membre
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4412
Enregistré le : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

[Challenge mono-ligne] Traitement chaine II

Message par charognard »

On a tous, dans notre jeunesse, utilisé ou réalisé un programme décalant l'alphabet d'une lettre.

Pour ce nouveau challenge, et toujours en BASIC sur Pocket 80's.
Je vous propose de faire un programme qui se comporte de la sorte

RUN [ENTER]
Saisie
[A]
Affichage
B
Saisie
[ B]
Affichage
BC
Saisie
[C]
Affichage
BCD
Etc....

Bref tout ce que l'on frappe est affiché sur l'écran avec un décalage de ASC+1.

Règles à respecter
- Pour la frappe de "Z" on affiche A à la place
- La touche [ESPACE] reste ESPACE
- On sort du programme par la touche [/]
- Pas de limitation a X caractères traités
- Le challenge est toujours en 1 ligne

De plus il ne faut pas, si on reste appuyé longtemps sur une touche, que celle-ci soit affichée plusieurs fois.
Le programme doit fonctionner sur un maximum de machines (donc fonction genre INP$ à bannir).


Bonne recherche
Modifié en dernier par charognard le 18 févr. 2015 12:21, modifié 4 fois.
Avatar du membre
rogeroge
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4253
Enregistré le : 14 mai 2010 21:41
Localisation : Entre Nancy et Bercy : à Torcy

Re: [Challenge mono-ligne] Traitement chaine II

Message par rogeroge »

Cpokpvs,
Qsphsbnnf joufsfttbou ! Nfsdj !
Il faut être fou pour venir sur ce site mais encore plus fou pour ne pas y revenir !
Avatar du membre
Rom1500
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 701
Enregistré le : 29 nov. 2013 16:24
Localisation : Pas très loin de Lyon
Contact :

Re: [Challenge mono-ligne] Traitement chaine II

Message par Rom1500 »

mpm !
Toutes les infos : http://www.pc-1500.info
PC-1500+CE-150 : EU PC1500, PC1500A / JP PC1500, PC1500D, PC1501 / HU PTA4000, PTA4000+16 / US TRS80 PC2 / BR PC-1500RP, PC-1500RP2 / CN PC-1500, PC-1500A, Nanfeng PC-1500A
PC-1600 : PC-1600K V2, CE-1600M, CE-1604L, CE-515P, module 32Ko, module 512Ko
Extensions en boite : CE-150/151/152/153/154/155/156/157/158/159/160/161/162E/163 sans boite
Avatar du membre
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4412
Enregistré le : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: [Challenge mono-ligne] Traitement chaine II

Message par charognard »

rogeroge a écrit :Cpokpvs,
Qsphsbnnf joufsfttbou ! Nfsdj !
SJFO DPNQSJT ;)
Avatar du membre
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2936
Enregistré le : 03 mai 2008 15:33
Localisation : Grenoble

Re: [Challenge mono-ligne] Traitement chaine II

Message par zpalm »

Prévoir aussi la version qui décale de ASC-1 !
Avatar du membre
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4412
Enregistré le : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: [Challenge mono-ligne] Traitement chaine II

Message par charognard »

zpalm a écrit :Prévoir aussi la version qui décale de ASC-1 !
Et donc on va ajouter : trouver un système ingénieux, même incomplet (Gestion ESPACE, Z ou /), pour faire du ASC-1 en plus du ASC+1 (Complet lui)
et SANS modifier la ligne NI de variable alphanumérique pour la bascule d'un mode à l'autre.
Toujours sur la même ligne !

FALLAIT PAS LA RAMENER !!! ;)
GBMMBJU QBT MB SBNFOFS !!!
Avatar du membre
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7958
Enregistré le : 24 mai 2002 09:57
Localisation : France 69
Contact :

Re: [Challenge mono-ligne] Traitement chaine II

Message par jvernet »

Rg cbhedhbv cnf qh EBG13, cyhgbg ?
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3422
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: [Challenge mono-ligne] Traitement chaine II

Message par C.Ret »

Version Commodore C128 et autre Microsoft BASIC 7.0:

Code : Tout sélectionner

list

10 do:getkey k$:k%=asc(k$):i%=sgn(i%+(k%=45)-(k%=43)):print chr$(k%-i%*(k%<>32));:loop until k%=27

ready.
La touche [ + ] débute le cryptage en ASC+1 ou arrête le cryptage style ASC-1
La touche [ - ] débute le cryptage en ASC-1 ou arrête le cryptage style ASC+1
LA touche [ Esc ] sort du programme.

Version Commodore C64, PET et VIC 20:

Code : Tout sélectionner

list

1 get k$:k%=asc(k$+chr$(14)):i%=sgn(i%+(k%=45)-(k%=43)):print chr$(k%-i%*(k%>32));:if  k%<>27 then 1

ready.
Le CHR$(14) permet de mettre l'affichage en mode Minuscule/majuscule et évite l'erreur d'exécution de ASC en cas de chaine k$ vide.


Et pour suivre la proposition de jvernet, un ROT13 du même style :

Code : Tout sélectionner

list

10 do:getkey k$:k%=asc(k$):i%=13*sgn(72.5-(k%and91)):print chr$(k%-i%*(k%>64));:loop until k%=27

ready.
run
Et pourquoi pas du ROT13, plutot ?  

ready.

SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4412
Enregistré le : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: [Challenge mono-ligne] Traitement chaine II

Message par charognard »

Tu as du mal lire ;)
- Pas de fonction genre INP$ (et GETKEY est en plein dedans)
- Sur Pocket
- Z devient A

Disons que le C64 est un gros Pocket.
Tu dois utiliser GET ou INKEY$ et inclure la gestion de Z
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3422
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: [Challenge mono-ligne] Traitement chaine II

Message par C.Ret »

Ah! Oui! Pardon, juste un peu H.S. du coup !

Code : Tout sélectionner

1 INPUT A$:FOR I=1 TO LEN A$:K=ASC MID$(A$,I,1):S=SGN (S+(K=43)-(K=45)):PRINT CHR$(K+S*(K>32));:NEXT I:PRINT :GOTO 1
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4412
Enregistré le : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: [Challenge mono-ligne] Traitement chaine II

Message par charognard »

Oui mais non

La traduction DOIT ETRE FAITE à la volée sans pression de la touche [ENTER]
sinon il n'y a aucune difficulté en fait ;)

Bref tu appuie sur la touche [A] ça t'affiche B

Genre avec INKEY$
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3422
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: [Challenge mono-ligne] Traitement chaine II

Message par C.Ret »

Ah! Oui;

Bon j'édite une nouvelle version:

Code : Tout sélectionner

1 A$=INKEY$ : K=ASC A$:S=SGN (S+(K=43)-(K=45)):PRINT CHR$ (K+S*(K>32));:IF K<>13 GOTO 1
La touche [RETURN] sort du programme.
La touche [ + ] débute l'encryptage ASC+1 ou sort de l'encodage induit par la touche [ - ]
Et réciproquement, la touche [ - ] débute l'encryptage ASC-1 ou sort de l'encodage induit par [ + ].


Bon c'est mieux mais c'est pas encore ça:
charognard a écrit :Tu as du mal lire ;)
OK - Pas de fonction genre INP$ (et GETKEY est en plein dedans)
-OK Sur Pocket
NOK - Z devient A

Disons que le C64 est un gros Pocket.
Tu dois utiliser GET ou INKEY$ et inclure la gestion de Z
Faut que je me concentre, mon code transforme Z en [ ! :(
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4412
Enregistré le : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: [Challenge mono-ligne] Traitement chaine II

Message par charognard »

Ce n'est pas tout, si tu reste en appuie sur la touche tu en a plusieurs qui arrivent.
Et ça pas le droit : il faut liberer la touche et à nouveau appuyer dessus pour qu'elle soit prise en compte

Bref l'équivalent de

Code : Tout sélectionner

10 A$= INKEY$: IF A$="" GOTO10
Traitement
100 IF INKEY$ <>"" GOTO 100
110 GOTO 10
Mais en 1 ligne
Avatar du membre
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7958
Enregistré le : 24 mai 2002 09:57
Localisation : France 69
Contact :

Re: [Challenge mono-ligne] Traitement chaine II

Message par jvernet »

sans ELSE ça risque d'être chô ;).
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."
Avatar du membre
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4412
Enregistré le : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: [Challenge mono-ligne] Traitement chaine II

Message par charognard »

jvernet a écrit :sans ELSE ça risque d'être chô ;).
Mais possible
Répondre

Retourner vers « Tous les Pockets »