[Challenge mono-ligne] Traitement chaine II
Modérateur : Politburo
- charognard
- Fonctionne à 9600 bauds
- Messages : 4412
- Enregistré le : 06 juin 2007 19:28
- Localisation : Indre et loire
- Contact :
[Challenge mono-ligne] Traitement chaine II
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
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.
- rogeroge
- 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
Cpokpvs,
Qsphsbnnf joufsfttbou ! Nfsdj !
Qsphsbnnf joufsfttbou ! Nfsdj !
Il faut être fou pour venir sur ce site mais encore plus fou pour ne pas y revenir !
- Rom1500
- 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
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
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
- charognard
- Fonctionne à 9600 bauds
- Messages : 4412
- Enregistré le : 06 juin 2007 19:28
- Localisation : Indre et loire
- Contact :
Re: [Challenge mono-ligne] Traitement chaine II
SJFO DPNQSJTrogeroge a écrit :Cpokpvs,
Qsphsbnnf joufsfttbou ! Nfsdj !
- zpalm
- Fonctionne à 9600 bauds
- Messages : 2936
- Enregistré le : 03 mai 2008 15:33
- Localisation : Grenoble
Re: [Challenge mono-ligne] Traitement chaine II
Prévoir aussi la version qui décale de ASC-1 !
- charognard
- Fonctionne à 9600 bauds
- Messages : 4412
- Enregistré le : 06 juin 2007 19:28
- Localisation : Indre et loire
- Contact :
Re: [Challenge mono-ligne] Traitement chaine II
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)zpalm a écrit :Prévoir aussi la version qui décale de ASC-1 !
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 !!!
- jvernet
- Fonctionne à 14400 bauds
- Messages : 7958
- Enregistré le : 24 mai 2002 09:57
- Localisation : France 69
- Contact :
Re: [Challenge mono-ligne] Traitement chaine II
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."
- C.Ret
- 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
Version Commodore C128 et autre Microsoft BASIC 7.0:
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:
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%=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 [ 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.
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.
- charognard
- Fonctionne à 9600 bauds
- Messages : 4412
- Enregistré le : 06 juin 2007 19:28
- Localisation : Indre et loire
- Contact :
Re: [Challenge mono-ligne] Traitement chaine II
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
- 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
- C.Ret
- 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
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.
- charognard
- Fonctionne à 9600 bauds
- Messages : 4412
- Enregistré le : 06 juin 2007 19:28
- Localisation : Indre et loire
- Contact :
Re: [Challenge mono-ligne] Traitement chaine II
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$
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$
- C.Ret
- 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
Ah! Oui;
Bon j'édite une nouvelle version:
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:
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 [ + ] 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:
Faut que je me concentre, mon code transforme Z en [ !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
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.
- charognard
- Fonctionne à 9600 bauds
- Messages : 4412
- Enregistré le : 06 juin 2007 19:28
- Localisation : Indre et loire
- Contact :
Re: [Challenge mono-ligne] Traitement chaine II
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
Mais en 1 ligne
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
- jvernet
- Fonctionne à 14400 bauds
- Messages : 7958
- Enregistré le : 24 mai 2002 09:57
- Localisation : France 69
- Contact :
Re: [Challenge mono-ligne] Traitement chaine II
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."
- charognard
- Fonctionne à 9600 bauds
- Messages : 4412
- Enregistré le : 06 juin 2007 19:28
- Localisation : Indre et loire
- Contact :
Re: [Challenge mono-ligne] Traitement chaine II
Mais possiblejvernet a écrit :sans ELSE ça risque d'être chô .