UNIDAD III: Elementos del Lenguaje QuickBASIC OBJETIVO GENERAL:

UNIDAD III: Elementos del Lenguaje QuickBASIC OBJETIVO GENERAL: Aprender los tipos de datos que soporta este lenguaje de programación. Elementos del

0 downloads 117 Views 695KB Size

Recommend Stories


Unidad 0. Lenguaje musical: Cualidades del sonido y elementos musicales
Unidad 0. Lenguaje musical: Cualidades del sonido y elementos musicales. CUALIDADES Y ELEMENTOS MUSICALES. CUALIDADES DEL SONIDO ELEMENTOS MUSICALES

UNIDAD 3 LOGARITMOS EJERCICIOS RESUELTOS. Objetivo general
3. 1 UNIDAD 3 LOGARITMOS EJERCICIOS RESUELTOS Objetivo general. Al terminar esta Unidad comprenderás la importancia histórica de los logaritmos y re

OBJETIVO GENERAL DEL CURSO:
ACTIVIDAD ACADÉMICA: RESPONSABILIDADES EMPRESARIALES. CLAVE: MODALIDAD: CURSO. CARÁCTER: OPTATIVO. TIPO: TEÓRICO. NIVEL: MAESTRÍA. CRÉDITOS

OBJETIVO GENERAL DEL CURSO:
ACTIVIDAD ACADÉMICA: TEORÍA DEL PROCESO LABORAL. CLAVE: MODALIDAD: CURSO. CARÁCTER: OPTATIVO. TIPO: TEÓRICO. NIVEL: MAESTRÍA. CRÉDITOS: 6

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

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.