AMSTRAD sinclair ZX Spectrum +3 Manual Del Usario página 93

Tabla de contenido
El
principio
y el
fin
no deben ser negativos;
si
lo son se produce el error 'B ENTERO EX­
CEDE MARGEN'. El siguiente programa ilustra algunas de estas reglas:
10 LET a$="abcdef"
20 FOR n=1 TO 6
30 PRINT a$(n TO
6)
40
NEXT
n
Escriba NEW cuando haya probado este programa y luego transcriba el
siguiente:
10 LET a$="1234567890"
20 FOR n=1 TO 10
30 PRINT a$(n TO 10).a$((11-n) TO 10)
40
NEXT n
Si la cadena no es constante, sino variable, también podemos asignar valores a sus subca­
denas
.
Por ejemplo, escriba:
LET a$=
"Me
gusta mi Sinclair"
y después
~
LET a$(13 TO 20)="Amstrad***u"
Ahora dé la orden
PRINT a$
Observe que la subcadena a$(13 TO 20) sólo tiene ocho caracteres y que por eso en la
segunda sentencia de
asignación
sólo se utiliza los ocho primeros caracteres de Ams­
trad*****. Los cuatro restantes, ****, son ignorados. Ésta es una
característica
de la
asignación
de valores a subcadenas: la subcadena debe tener exactamente la misma longi­
tud antes que después de la asignación. Para ello, si la cadena
asignada
es
demasiado
lar­
ga. BASIC la recorta por la derecha; si es demasiado corta, la completa con espacios por
la derecha. Esto es algo parecido a lo que hacía Procrustes, un posadero que siempre
adaptaba los huéspedes al tamaño de la cama: o los estiraba en
el
potro o les cortaba los
pies.
Las
expresiones literales
complicadas tienen que estar entre paréntesis para poder extraer
subcadenas de ellas. Por ejemplo
.
"abc"+"def"(1 TO 2)
es igual a "abcde"
("abc"+"def")(1
TO 2)
es
igual a "ab"
Ejercicio
1.
Diseñe un programa que escriba el día de la semana recurriendo a la extracción de sub­
cadenas.
(Sugerencia.
Forme la cadena con LunMarMieJueVieSabDom.)
Sección 8. Cadenas literales
83
Tabla de contenido
loading

Tabla de contenido