Story Transcript
UNIDAD III: Elementos del Lenguaje QuickBASIC OBJETIVO GENERAL: Aprender los tipos de datos que soporta este lenguaje de programación.
Elementos del QuickBASIC
3.1 Números en QuickBASIC QuickBASIC soporta cuatro tipos de números: Enteros Enteros en formato largo Reales en simple precisión Reales en doble precisión Un entero es para QuickBASIC un número sin punto decimal, comprendido en el rango de -32768 a 32768 (-2E15 a 2E15-1). Este rango limita bastante el uso de números enteros. No obstante, en cada programa siempre aparecen unas pocas variables como la variable de control de un FOR/NEXT) que normalmente funcionan dentro de estos límites. El uso de enteros produce un código compacto y rápido y cada número requiere solamente 2 bytes de memoria. Los números enteros en formato largo, soportados por QuickBASIC, son idóneos para aplicaciones de gestión. Al igual que los enteros, son números sin punto decimal comprendidos en el rango de -2147483648 a 2147483648 (-2E31 a 2E31-1) y cada número requiere 4 bytes de memoria. Los números reales en simple precisión son los más recurridos en un lenguaje de programación. Un real en simple precisión es un número que puede tener un punto decimal y puede estar comprendido en el rango de: -3.404823E+38 a -1.40129E-45 para números negativos 1.40129E-45 a 3.402823E+38 para números positivos. Cada número ocupa 4 bytes. Un número real en simple precisión no tiene más de 7 dígitos significativos.
Unidad III
Página 2
Elementos del QuickBASIC
Un número en real doble precisión no tiene más de 16 dígitos significativos y ocupa 8 bytes. Esto da lugar a cálculos más precisos. Están comprendidos en el rango: -1.797693134862316E+308 a -4.94065E-324 para números negativos 4.94065E-324 a 1.797693134862316E+308 para números positivos
3.2 Constantes Una constante es un valor que, una vez fijado por el compilador, no cambia durante la ejecución del programa. QuickBASIC soporta tres tipos de constantes:
Constante de caracteres
Constantes numéricas
Constantes identificadas por un nombre
Una constante de caracteres es una cadena de caracteres encerrados entre comillas dobles. Ejemplos: “Esto es una cadena de caracteres” “3.1415926” “Paseo Pereda 10, Santander” Una constante numérica representa un valor numérico entero o real. Si la constante es positiva, el signo + es opcional y si es negativa, lleva el signo -. El tipo de una constante viene determinado por su valor, en el caso de los enteros y por el número de dígitos, en el caso de los reales. Ejemplos: 4326 432600 17.24 17.244283 Unidad III
constante constante constante constante
entera entera en formato largo real en simple precisión real en doble precisión Página 3
Elementos del QuickBASIC
QuickBASIC permite referirse a una constante por un nombre, el cual no puede ser asignado a otra constante a lo largo del programa. Pueden especificarse de este modo constantes enteras (%), enteras formato largo (&), reales simple precisión (!), reales doble precisión (#) y de caracteres ($). Los caracteres %, &, !, # y $ no forman parte del nombre de una constante. Esto indica que los nombres C% y C# no pueden utilizarse conjuntamente por ser el mismo nombre. Para formar el nombre de una constante se siguen las mismas reglas que para nombrar las variables. Ejemplo: CONST pi = 3.141593 CONST dia% = 8 CONST C$ = “continuar”
constante real simple precisión constante entera constante de caracteres
El tipo de una constante queda determinado por el símbolo correspondiente o en su defecto por el tipo de la expresión.
3.3 Variables Una variable es un identificador que representa un valor numérico o alfanumérico (cadena de caracteres). A diferencia de una constante, el valor de una variable puede cambiar a lo largo de la ejecución del programa. El nombre de una variable tiene que comenzar por una letra y puede tener hasta 40 caracteres que pueden ser: letras, dígitos, el punto decimal y los caracteres de definición del tipo (%, &, !, # y $). El nombre de una variable no puede ser una palabra reservada. Tipos de variables:
Unidad III
Variables simples
Variables array
Variables registro
Página 4
Elementos del QuickBASIC
QuickBASIC soporta los siguientes tipos de variables simples:
Variables de caracteres
Variables enteras
Variables enteras formato largo
Variables reales de simple precisión
Variables reales de doble precisión
Variables registro
El tipo de una variable se puede especificar de las siguientes formas: 1. Añadiendo al nombre uno de los siguientes caracteres: $
declara una variable de caracteres
%
declara una variable entera
&
declara una variable entera formato largo
!
declara una variable real de simple precisión
#
declara una variable real de doble precisión
En ausencia del carácter declarativo, se asume el tipo de variable real de simple precisión. Ejemplos: A$ = “QuickBASIC” A% = 225 A& = 8500 A! = 27.31 A# = 3.40 A = 27.31 Las variables A$, A%, A&, A! y A# son variables diferentes. En cambio A y A! son la misma variable.
Unidad III
Página 5
Elementos del QuickBASIC
2. Declarando la variable de la forma: Sentencia Var AS Tipo
sentencia
Puede ser cualquiera de las sentencias DIM, COMMON, REDIM, SHARED o STATIC.
var
Indica el nombre de la variable.
tipo
Puede ser INTEGER, LONG, SINGLE, DOUBLE, STRING o un tipo definido.
Ejemplo: DIM a AS LONG DIM str1 AS STRING DIM str2 AS STRING * 8
Estas sentencias declaran la variable a como una variable entera formato largo, la variable str1 como una variable de caracteres de longitud variable y la variable str2 como una variable de caracteres de longitud 8. El último ejemplo indica la forma de asignar una longitud determinada a una variable de caracteres. 3. Utilizando la sentencia DEFtype.
Unidad III
Página 6
Elementos del QuickBASIC
4. Declaración de variables registro. Veamos un ejemplo: TYPE articulo codigo AS STRING * 10 denominacion AS STRING * 30 cantidad AS INTEGER END TYPE Para referirse a un campo individual de un registro, se utiliza el formato: nombre-de-la-variable-registro.nombre-del-campo Ejemplo: PRINT articulo.codigo Esta sentencia hace referencia al campo código, de la variable registro artículo. Un array es un grupo de datos numéricos o alfanuméricos referenciados por un mismo nombre. Cada valor individual del array se denomina elemento y puede ser utilizando exactamente igual que una variable. Al declarar un array queda especificado el nombre, tipo, número de elementos y organización de los mismos. Esto se hace mediante la sentencia DIM. Al comienzo de la ejecución del programa, cada elemento de un array numérico es puesto a cero y cada elemento de un array alfanumérico es puesto a nulo. Ejemplo: DIM a(2,3), b$(99)
Unidad III
Página 7
Elementos del QuickBASIC
En los ejemplos anteriores, la primera sentencia crea un array a de dos dimensiones con 12 elementos (a(0,0)…a(2,3)), todos numéricos y de simple precisión y la sentencia b$ de 100 elementos (b$(0)…b$(99)), todos alfanuméricos. Cada elemento individual de un array se referencia mediante el nombre del array, seguido de un índice entre paréntesis, que especifica la posición del elemento dentro del array. Estos elementos se denominan también variables suscritas. El máximo número de dimensiones para un array es de 60 y el máximo número de elementos por dimensión es de 32768. Se pueden definir arrays de registros. Para ello primero se define la variable registro, y después el array. Por ejemplo, la siguiente sentencia define un array de 100 elementos,
donde
cada
elemento
es
un
registro
de
tipo
artículo
definido
anteriormente. DIM almacen(1 TO 100) AS articulo Para referenciar un campo de uno de los elementos del array escribiremos por ejemplo: PRINT almacen(k).codigo Esta sentencia referencia el campo código, del elemento k, del array almacén.
Unidad III
Página 8
Elementos del QuickBASIC
3.4 Asignación de Datos a Variables Enteras y Reales Cuando se asigna un valor a una variable, hay que tener presente el rango de valores que ésta acepta y hasta qué número de dígitos es exacto el valor que contiene. Variables Enteras Las variables enteras y variables enteras formato largo solamente pueden almacenar números enteros. Una variable entera puede almacenar un número entero comprendido en el rango -32768 a 32767, mientras que una variable entera formato largo puede almacenar un número comprendido en el rango -2147483648 a 2147483647. Cuando se asigna un número que no es entero a una variable entera o variable entera formato largo, QuickBASIC redondea el número al entero más próximo. Ejemplos: a% = -27.54 b% = 27.54 PRINT a%, b% -28
28
a& = 2.54 b& = 3.495 PRINT a&, b& 3
Unidad III
3
Página 9
Elementos del QuickBASIC
Un valor es convertido a binario, para ser almacenado, y vuelto a convertir a decimal para ser visualizado o escrito. Esta conversión a y desde base 2, altera levenmente algunos números, obteniéndose en estos casos resultados no esperados. Ejemplo: A% = 2.5 B% = 3.5 PRINT A%, B% 2
4
Se produce un error, cuando se asigna un valor fuera de los límites establecidos a una variable entera en general. Ejemplo: A% = 46660 PRINT A% Error: Overflow
Variables Reales Una
variable
real
de
simple
precisión
puede
almacenar
números
aproximadamente en el rango -3.4E+38 a 3.4E+38, mientras que una variable real de doble precisión puede almacenar números en el rango de -1.7E+308 a 1.7E+308 aproximadamente. QuickBASIC convierte los valores decimales a formato binario en coma flotante, para ser almacenados en las variables correspondientes y estos valores son vueltos a convertir a decimal, para ser visualizados
o
escritos.
Estas
conversiones
alteran
levemente
algunos
números.
Unidad III
Página 10
Elementos del QuickBASIC
Los valores de las variables reales de simple precisión son exactos hasta 7 dígitos significativos. Ejemplos: a = 2.364 b = 123456789.24 PRINT a, b 2.364
1.234568E+08
Los valores de las variables reales de doble precisión son exactos hasta 16 dígitos significativos. Ejemplos: a# = 2.364 b# = 123456789.24 PRINT a, b 2.364000082015991
Unidad III
123456789.24
Página 11
Elementos del QuickBASIC
3.5 Tipos de Conversión Durante la ejecución de un programa, algunas veces QuickBASIC debe convertir números de una representación interna a otra. En tales casos, lo hace de acuerdo con las siguientes reglas: 1. Si se asigna un valor numérico de una precisión a una variable numérica de precisión diferente, el número será almacenado con la precisión declarada en el nombre de la variable destino. Ejemplo: a = 22 b% = a PRINT b% 2 2. Si se asigna un valor numérico de una precisión más alta a una variable de precisión más baja se redondea. Ejemplo: a% = 17.56 b = 123.456789# PRINT a%, b 18
123.4568
3. Si se cambia un número de precisión más baja a una precisión más alta, el número de precisión más alta resultante no podrá ser más exacto que el número de precisión más baja. Ejemplo:
Unidad III
Página 12
Elementos del QuickBASIC
a = 123.456 b# = a PRINT b 123.4560012817383 4. Durante la evaluación de una expresión, todos los operandos en una operación aritmética o de relación se cambian al mismo grado de precisión, es decir, al del operando más preciso. Ejemplo: a = 2.2 : b# = 123.456789 c = a * b# PRINT a * b#, c 271.6049416868784
271.6049
5. Los operadores lógicos AND y NOT convierten sus operandos a números enteros y devuelven un resultado entero. El operando debe estar en el rango de -2147483648 a +2147483647.
3.6 Expresiones y Operadores Numéricos Una expresión numérica puede ser una constante, una variable, una función o un conjunto de estas unidades por operadores numéricos. Una expresión numérica siempre se reduce a un valor de uno de los cuatro tipos expuestos. Ejemplo: 5 A SQR(x) A / 5 * SQR(c + d)
Unidad III
Página 13
Elementos del QuickBASIC
Los operadores numéricos se clasifican en: aritméticos, de relación y lógicos. Operadores aritméticos Operador
Operación
Ejemplo
^
Potenciación
x^y
-
Cambio de signo
-x
Multiplicación y División reales
x * y,
División entera
x\y
Resto división entera
x MOD y
Suma y Resta
x + y, x - y
*/ \ MOD +-
x/y
En la división entera los operandos se redondea a números enteros y se obtiene un cociente también entero. Los operandos deben estar en el rango de -2147483648.5 a +2147483647.5 Ejemplo: a = 10 \ 4 b = 25.68 \ 6.99 PRINT a; b 2
3
La operación MOD (módulo) da como resultado el resto de una división entera. Ejemplo: a = 7 MOD 4 PRINT a 3
Unidad III
Página 14
Elementos del QuickBASIC
Operadores de relación Los operadores de relación se utilizan para comparar dos valores numéricos o dos valores alfanuméricos. El resultado puede ser verdadero (True) o falso (False). El resultado verdadero tiene asociado el valor numérico -1 y el resultado falso el valor numérico 0. Una expresión de relación puede formar parte de una expresión numérica. Ejemplo: a=7:b=8 PRINT a > b, a < b, (a < b) * 20 0 Operador
-1
-20
Operación
Ejemplo
Igual
x=y
Distinto
x y
<
Menor que
x
Mayor que
x>y
= y
=
Cuando se combinan operadores aritméticos y de relación en una expresión siempre se realiza primero el aritmético. QuickBASIC permite comparar cadenas de caracteres. Una cadena de caracteres es menor que otra si la primera está antes que la otra alfanuméricamente. Las letras minúsculas son mayores que las letras mayúsculas. Los dígitos 0 a 9 son menores que las letras. Esto se deduce por el lugar que ocupa el carácter dentro del código ASCII. Un carácter es mayor cuanto más al final esté en la tabla a que da lugar el código ASCII.
Unidad III
Página 15
Elementos del QuickBASIC
Ejemplo: “JOSE” < “JUAN” “X133CDA” < “X233CDA” El resultado de la evaluación de estas expresiones es “cierto” en ambos casos. Los espacios en blanco en una cadena de caracteres son significativos. Ejemplo: A$ = “ JUAN” : B$ = “JOSE” IF A$ > B$ THEN GOSUB ordenar El resultado de la evaluación de esta condición es “falso”, ya que el carácter blanco está antes que los números y las letras en el código ASCII. Cuando se comparan valores reales, hay que tomar precauciones, en el sentido de que es difícil obtener la igualdad. Ejemplo:
IF A = 0.0 THEN PRINT “A es igual a 0”
Es posible que esta condición no se llegue a dar nunca, ya que “A” puede tomar valores muy próximos a cero, por ejemplo 1.0E-23, pero no exactamente cero. Para corregir este defecto podríamos escribir: IF ABS(A) < 1.0E-23 THEN PRINT “A es igual a 0”
Unidad III
Página 16
Elementos del QuickBASIC
Operadores lógicos Realizan operaciones lógicas sobre enteros. Se utilizan junto con los operadores de relación para formar expresiones lógicas (expresiones de Boole) que darán como resultado un valor verdadero (no cero) o falso (cero). Los operadores colocados en orden de prioridad son los siguientes: NOT, AND, OR, XOR, EQV, IMP V = verdad, F = falso A V V F F
B V F V F
NOT A F F V V
A AND B V F F F
A OR B V V V F
A XOR B F V V F
A EQV B V F F V
A IMP B V F V V
Ejemplo: IF A > B AND B > C THEN PRINT A IF A = B AND B = 0 THEN … IF NOT (K = 0) THEN … C = 4 OR 2 La expresión 4 OR 2 da lugar a C = 6, puesto que 4 es 00100 binario y 2 es 00010 binario, 4 OR 2 es 00110 binario, que es igual a 6. A = 15 AND 14 Aquí “A” es 14 ya que 15 en binario es 01111 y 14 en binario es 01110, 15 AND 14 es 01110 en binario, que es igual a 14.
Unidad III
Página 17
Elementos del QuickBASIC
3.7 ORDEN DE EJECUCIÓN Al evaluar una expresión, la prioridad de las operaciones en función de los operandos que intervienen en la siguiente: Operadores aritméticos, de relación y lógicos. 1. ^ 2. Cambio de signo 3. *, / 4. \ 5. MOD 6. +, 7. , 8. NOT 9. AND 10. OR 11. XOR 12. EQV 13. IMP Las operaciones del mismo nivel se realizan de izquierda a derecha. Para cambiar el orden de realización de estas operaciones, hay que utilizar paréntesis, ya que las operaciones entre paréntesis se realizan en primer lugar. Ejemplo:
La operación
Unidad III
𝑏 2∗𝑎
se escribirá de la forma: b / (2 * a)
Página 18
Elementos del QuickBASIC
3.8 Expresiones de Caracteres y Operadores Una expresión de caracteres es un conjunto de constantes y variables, unidades mediante operadores, para producir un solo valor de caracteres. Una variable o constante de caracteres puede tener entre 0 y 32767 caracteres. Las dos categorías de operadores de caracteres son: 1. Concatenación 2. Funciones 1. Concatenación La unión de dos cadenas de caracteres se denomina concatenación. Las cadenas de caracteres se concatenan utilizando el signo +. Ejemplo: a$ = “Esto” b$ = “es un” c$ = “ejemplo” n$ = a$ + b$ + c$ PRINT n$ Esto es un ejemplo
2. Funciones Ya hemos visto que QuickBASIC tiene un conjunto de funciones numéricas. Pues bien, también incorpora funciones de caracteres tales como MID$, CHR$, etc. Que dan un resultado de caracteres. Se pueden utilizar igualmente funciones definidas por el usuario.
Unidad III
Página 19
Elementos del QuickBASIC
3.9 Funciones de Caracteres Función LEN La función LEN cuenta el número de caracteres de una cadena. La palabra LEN es la abreviatura de LENGHT (longitud) Se cuentan los caracteres no imprimibles y los espacios en blanco. n LEN(A$) n
Número de línea
A$
Es una variable de cadena
La variable de cadena, cuya longitud se requiere, es el argumento de la función. Ejemplos: 10 20 30 40
A$ = “VIVA MEXICO” N = LEN(A$) PRINT N END
RUN 11
Longitud de la cadena A$
a$ = “Francisco” b$ = “25/06/2011” c$ = ““ a = LEN(a$) b = LEN(b$) c = LEN(a$ + b$ + c$) PRINT a, b, c END 9
10
19
El valor de c es 19, ya que la longitud de c$ es 0. Unidad III
Página 20
Elementos del QuickBASIC
APLICACIONES A$ = “MARIA” N = LEN (A$)
equivale a N = 5
a) PRINT LEN (A$) b) IF LEN (A$) = 8 THEN 100
c) M = 3 * LEN (A$) -1 d) K = LEN (“18 DE MAYO DE 1982”) e) 10 A$ = “MURCIE” 20 B$ = “LAGO” 30 N = LEN (A$ + B$) A$ + B$ = “MURCIELAGO”
equivale a M = 14 equivale a K = 18
N toma el valor 10
Ejemplo: 10 20 30 40 50
A$ = “” B$ = “ “ C$ = “0123456789” PRINT LEN (A$) : PRINT LEN (B$) : PRINT LEN (C$) PRINT LEN (A$ + B$ + C$)
RUN 0 3 13
10
El resultado es evidente, ya que: A$
Es la cadena nula o vacía y contiene 0 caracteres
B$
Tiene 3 caracteres
C$
Tiene 10 caracteres
A$+B$+C$
Tiene 0+3+10=13 caracteres
Unidad III
Página 21
Elementos del QuickBASIC
Función LEFT$ La función LEFT$ es una función de cadena que permite extraer de una cadena un cierto número de caracteres comenzando por la izquierda. Dicho de otra forma, LEFT$ devuelve una cadena compuesta de los N caracteres más a la izquierda que figura como argumento. n LEFT$(A$,N) n
Número de línea
A$
Es una variable de cadena
N
Número de caracteres a extraer a partir de la izquierda
Si la longitud a tomar es mayor (>) que la longitud de la cadena, se toma la cadena completa. Si la longitud a tomar es 0, se devuelve una cadena vacía o nula. Ejemplos: 10 20 30 40 50 60 70 80
A$ = “INSTITUTO DE ENSEÑANZA MEDIA” B$ = LEFT$ (A$,9) PRINT B$ C$ = LEFT$ (A$,22) PRINT C$ D$ = LEFT$ (A$,28) PRINT D$ END
RUN INSTITUTO INSTITUTO DE ENSEÑANZA INSTITUTO DE ENSEÑANZA MEDIA
Unidad III
Página 22
Elementos del QuickBASIC
10 20 30 40 50
INPUT “INTRODUZCA LA RESPUESTA”, A$ IF LEFT$ (A$,1) = “S” THEN 100 IF LEFT$ (A$,1) = “N” THEN 200 PRINT “INTENTE DE NUEVO” GOTO 10
Mediante esta subrutina, si las respuestas no comienzan por S o N, la línea 50 retorna a la línea 10 hasta que el usuario introduce una de las dos respuestas correctas S o N.
Unidad III
Página 23
Elementos del QuickBASIC
Función RIGHT$ Esta función es muy similar a LEFT$. Permite extraer de una cadena un cierto número de caracteres a la derecha, o lo que es lo mismo devuelve los N caracteres de la derecha de una cadena. La diferencia entre LEFT$ y RIGHT$ es evidente. Con LEFT$ se puede seleccionar una parte de una cadena comenzando por la izquierda, mientras que con RIGHT$ se puede seleccionar una parte de una cadena comenzando por la derecha. n RIGHT$(A$,N) n
Número de línea
A$
Es una variable de cadena
N
Número de caracteres a extraer a partir de la derecha
Ejemplos: 100 120 140 200 220 240
10 20 30 40 50 60 70 80
PRINT RIGHT$ (“MARIA”,1) PRINT RIGHT$ (“MARIA”,2) PRINT RIGHT$ (“MARIA”,5) FOR N = 1 TO 5 PRINT RIGHT$ (“MARIA”,N) NEXT N
A IA MARIA A IA RIA ARIA MARIA
A$ = “INSTITUTO DE ENSEÑANZA MEDIA” B$ = RIGHT$ (A$,5) PRINT B$ C$ = RIGHT$ (A$,15) PRINT C$ D$ = RIGHT$ (A$,20) PRINT D$ END
Unidad III
Página 24
Elementos del QuickBASIC RUN MEDIA ENSEÑANZA MEDIA INSTITUTO DE ENSEÑANZA MEDIA El siguiente programa ilustra la diferencia esencial entre la función LEFT$ y RIGHT$. 100 A$ = “VIVA ZAPATA” 120 FOR N = 1 TO LEN (A$) 140
PRINT LEFT$ (A$,N), RIGHT$ (A$,N)
160 NEXT N RUN V VI VIV VIVA VIVA VIVA VIVA VIVA VIVA VIVA VIVA
Z ZA ZAP ZAPA ZAPAT ZAPATA
Unidad III
A TA ATA PATA APATA ZAPATA ZAPATA A ZAPATA VA ZAPATA IVA ZAPATA VIVA ZAPATA
Página 25
Elementos del QuickBASIC
Función MID$ Esta es probablemente la más útil de las funciones de formateado de cadena y es incluso la más sofisticada. n MID$(A$,I,J) n
Número de línea
A$
Es una variable o expresión de cadena
I
Principio de la posición
J
Longitud a considerar o tomar
Tanto I como J deben estar comprendidos entre 0 y 244, obteniendo error en caso contrario. Si no hay longitud a tomar o existen menos caracteres a la derecha del principio de la posición que los pedidos por la longitud a tomar, esta función restituye todos los caracteres a la derecha de la posición inicial. Si el principio de la posición es mayor que la longitud de la cadena, la función devuelve una cadena nula o vacía. Sentencia
Impresión
10 PRINT MID$ (“MORGAN”, 3, 2)
RG
20 PRINT MID$ (“MORGAN”, 3, 4)
RGAN
30 PRINT MID$ (“MORGAN”, 4)
GAN
En las sentencias anteriores se observa que si J no existe, se presentan todos los caracteres a partir del carácter I. Ejemplo:
Unidad III
Página 26
Elementos del QuickBASIC
El siguiente programa acepta una entrada de un número del 1 al 7, el cual representa los días de la semana, es decir, el lunes es 1, el martes es 2, etc. Al ejecutarse el programa se convierte dicho número en las tres primeras letras del día correspondiente. 100 INPUT “Introducir número del día: “, D 120 D$ = “..LUNMARMIEJUEVIESABDOM” 140 A$ = MID$ (D$, 3*D, 3) 160 PRINT A$
RUN Introducir número del día: 2 MAR
En la línea 140, la función MID$ se utiliza para seleccionar las tres letras correspondientes de la cadena A$. Así nuestro ejemplo como D=2 A$= MID$ (D$, 6, 3), por consiguiente se extraen tres caracteres a partir del sexto carácter.
Unidad III
Página 27
Elementos del QuickBASIC
Función ASC(cadena) Esta función convierte la primera letra o carácter de una cadena en su valor numérico correspondiente en código ASCII. n ASC(cadena o variable de cadena) n
Número de línea
cadena, variable de cadena
Válida
10 A$ = “TEST” 20 PRINT ASC (A$) 30 END RUN 84
El código del carácter T es 84
Si cambia la línea 10 por: 10 A$ = “BUENOS DIAS” Al ejecutar el programa: RUN 66
Unidad III
El código ASCII del carácter B es 66
Página 28
Elementos del QuickBASIC
Función STR$ Esta función es la opuesta de VAL. Convierte un número en una cadena de caracteres. n STR$(X) n
Número de línea
X
Número a convertir
El primer carácter de la cadena se reserva para el signo, que será un espacio para los números positivos y un signo para los números negativos. 10 A = 123 20 A$ = STR$ (A) 20 PRINT A, A$ 30 END RUN 123
Unidad III
123
Página 29
Elementos del QuickBASIC
Función CHR$ Es
la
función
inversa
de
ASC.
Permite
generar
caracteres
alfanuméricos
correspondientes a un código dado (valor entre 0 y 255) que depende del valor del argumento. n CHR$(X) n
Número de línea
X
Valor comprendido entre 0 y 255
Así, PRINT CHR$(66) visualiza B, ya que el código ASCII de la letra B es 66. PRINT CHR$(72) visualiza H (código ASCII de H, 72). 10 PRINT CHR$(7)
Activa un timbre interno de la computadora
20 PRINT CHR$(10)
Se produce un salto de línea o avance de línea
30 PRINT CHR$(13)
Provoca un retorno de carro
40 PRINT CHR$(42)
Imprime un asterisco (*)
PROGRAMAS DE APLICACIÓN 1. La siguiente subrutina imprimirá el código completo. Al ejecutar la subrutina en la primera columna se visualiza el número decimal entre 0 y 255 y en la segunda columna sus caracteres equivalentes. 10 FOR I = 1 TO 255 20
PRINT I, CHR$(I)
30 NEXT I 40 END
Unidad III
Página 30
Elementos del QuickBASIC
2. Listado parcial del código ASCII. 100 INPUT “Número Inicial y Final”; A, B 120 FOR I = A TO B 140
PRINT I, CHR$ (I)
160 NEXT I 180 END Ejecutamos este programa: Número Inicial y Final? 65, 90 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
Unidad III
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Página 31
Elementos del QuickBASIC
Resumen de las Funciones de cadena básicas
Función
Utilizada en
Proporciona
LEN (…)
cadenas
números
LEFT$ (…)
cadenas
cadenas
RIGHT$ (…)
cadenas
cadenas
MID$ (…)
cadenas
cadenas
VAL (…)
cadenas
número
STR$ (…)
números
cadenas
caracteres
número
cadenas
carácter
ASC (…) CHR$ (…)
FUNCIONES DE CADENA ESPECIALES Función SPACE$ (X) Esta función permite generar una cadena de caracteres o espacios en blanco cuya longitud es X. La expresión X se redondea a un entero y debe tener un valor comprendido entre 0 y 255. n SPACE$(X)
Unidad III
n
Número de línea
X
Expresión numérica
Página 32
Elementos del QuickBASIC
10 I = 1 20 L$ = SPACE$ (I) 30 PRINT L$; I 30 I = I + 1 50 IF I =< 8 THEN GOTO 20 60 END RUN 1
2 3 4 5 6 7 8
Función STRING$ Esta función permite generar una cadena de caracteres o espacios en blanco cuya longitud es X. La expresión X se redondea a un entero y debe tener un valor comprendido entre 0 y 255. n STRING$(n1, n2 $) n
Número de línea
n1
Expresión entera que indica la longitud
n2
Expresión entera o cadena (dos formatos: ASCII, teclado)
Ejemplos:
Unidad III
A$ = STRING$ (75, “A”)
STRING$ con caracteres de teclado
B$ = STRING$ (60, 25)
STRING$ con caracteres código ASCII
Página 33
Elementos del QuickBASIC 10 A$ = “INFORME MENSUAL” 20 B$ = STRING$ (10, 42) 30 PRINT B$; A$; B$ 40 END
n1 en la función STRING$ es 10, lo que significa que la longitud del carácter representado por n2 $, en este caso () en código ASCII), será de 10. En consecuencia, al ejecutarse el programa se tiene: RUN **********INFORME MENSUAL**********
PRINT STRING$ (10, “-“) RUN ----------
PRINT STRING$ (25, “X”) RUN XXXXXXXXXXXXXXXXXXXXXXXXX
Unidad III
Página 34