UNIDAD III: Elementos del Lenguaje QuickBASIC OBJETIVO GENERAL:



Documentos relacionados
UNIDAD I. ALGORITMOS

2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS Tipos de datos Expresiones Operadores y operandos Identificadores como localidades de memoria

Expresión, Operador, Operando, Asignación, Prioridad

CAPITULO II. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

Declaración de variables (integer, single, double, boolean, etc.) en Visual Basic. Dim. Ejemplos. (CU00309A)

Tema 3 Constantes, Variables y Tipos

FUNDAMENTOS DE INFORMÁTICA

SISTEMA DE NUMERACIÓN BINARIO

UNIDAD 2: INTRODUCCIÓN AL LENGUAJE DE PROGRAMACiÓN R

Qué Tipos de Datos se Almacenan en OpenOffice.org Calc?

OPERADORES LÓGICOS JAVASCRIPT. EJEMPLOS. RELACIONALES MAYOR, MENOR, IGUAL, DISTINTO. AND, OR, NOT. CORTO- CIRCUITO (CU01117E)

Definición(2) La base (r) de un sistema de numeración especifica el número de dígitos o cardinal* de dicho conjunto ordenado. Las bases más utilizadas

k k N b Sistemas Númericos Sistemas con Notación Posicional (1) Sistemas con Notación Posicional (2) Sistemas Decimal

Está basado en el álgebra y en el cálculo relacional.

Operando1 operador de relación Operando2

Represent. Información. Caracteres Alfanuméricos

3. Tipos primitivos de dato

MANUAL BÁSICO DEL LENGUAJE SQL

El lenguaje C. if (a>3) { printf("hola"); // bloque printf("%d",a); // de getch(); //código } Partes de un programa en C.

INTRODUCCIÓN AL TURBO PASCAL.

Fundamentos de Programación

III. Generación de Código orientado a objetos

SISTEMAS DE NUMERACIÓN

FUNDAMENTOS DE INFORMÁTICA


GUIA PRACTICA PARA ELABORAR FORMULAS EN EXCEL = 4. Una fórmula en Excel debe contener siempre valores e instrucciones.

Lenguajes de programación LPSI EUI UPM CADENAS DE CARACTERES

CAPITULO 3: OPERADORES.

IDENTIDAD EN PRECISIÓN VARIABLE

Universidad Tecnológica Nacional Facultad Regional Tucumán Ingeniería Electrónica Asignatura: Informática I 1R2 Trabajo Práctico N 1 - Año 2015

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

5. INTRODUCCIÓN A LAS HOJAS DE CÁLCULO

CURSOSO. Aritmética: Númerosnaturalesyenteros. Númerosracionalesyfraciones. MATEMÁTICAS. AntonioF.CostaGonzález

GIMNASIO VIRTUAL SAN FRANCISCO JAVIER Valores y Tecnología para la Formación Integral del Ser Humano UNIDAD II EXCEL

Capítulo 5 IDENTIFICADORES, VARIABLES Y CONSTANTES. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

CURSO BÁSICO DE MATEMÁTICAS PARA ESTUDIANTES DE ECONÓMICAS Y EMPRESARIALES. Unidad didáctica 4. Números reales y números complejos

Introducción a MATLAB

TEMA 02 TIPOS, OPERADORES Y EXPRESIONES

Introducción al análisis numérico

UNIVERSIDAD SAN MARCOS

El lenguaje C. 1. Identificadores, constantes y variables

1. Algoritmo, Pseudocódigo, Diagramas de flujo.

Instituto Tecnológico de Celaya

Los números enteros. > significa "mayor que". Ejemplo: 58 > 12 < significa "menor que". Ejemplo: 3 < 12 Cualquier número positivo siempre es mayor

Informática PRÀCTICA 3 Curs Práctica Nº 3: Tipos de datos simples. Constantes y variables. Operadores aritméticos. Formato de salida.

Tipos de Datos de python (1ª parte):

Los números naturales

MICROSOFT EXCEL QUÉ ES MICROSOFT EXCEL?

Representación de la información

Funciones & Estructuras de control

POTENCIAS. MÚLTIPLOS Y DIVISORES. MÁXIMO COMÚN DIVISOR Y MÍNIMO COMÚN MÚLTIPLO.

OPERADORES Y EXPRESIONES

1. El sistema de los números reales

1. Introducción a la programación. Ej01: Diagrama de Flujo

GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS

Tema 4 Operadores y Expresiones. Fundamentos de Informática

Capítulo 2 Procesos lineales

Apuntadores en C y C++

Declaración de variables. Sentencias de entrada/salida

BASE DE DATOS ARTICULOS DE COMPUTACION.

REPRESENTACIÓN INTERNA DE LA INFORMACIÓN

ANEXO 1. Herramienta para facilitar el diseño de consultas.

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

Elementos de un programa en C

SESIÓN 1 PRE-ALGEBRA, CONCEPTOS Y OPERACIONES ARITMÉTICAS BÁSICAS

Introducción a MATLAB

3. Estructuras iterativas

PRIMITIVAS ALGORITMICAS Y METODOS DE REPRESENTACIÓN DE ALGORITMOS

Capítulo 4 Representación interna de los Datos

lasmatemáticas.eu Pedro Castro Ortega materiales de matemáticas

Excel - Fórmulas y Funciones

UNIDAD DE APRENDIZAJE II UNIDAD DE APRENDIZAJE 2 ( 12 HORAS)

Representación de los números naturales

TIPOS DE DATOS BASICOS EN LENGUAJE C

Datos Elementales y formato de un programa en Java

Tema 2. FUNCIONES, VARIABLES Y CARPETAS EN LA CALCULADORA CLASSPAD

José A. Jiménez Nieto

UNIDAD III 3.2 USO DE FUNCIONES MATEMÁTICAS LÓGICAS Y DE BUSQUEDA

SISTEMAS DE NUMERACION

Tema 1 Sistemas de numeración

CURSO BÁSICO DE MATEMÁTICAS PARA ESTUDIANTES DE ECONÓMICAS Y EMPRESARIALES. Unidad didáctica 4. Números reales y números complejos

EJERCICIOS PARTE I: 1. Cómo se llamaba anteriormente a las hojas de cálculo? 2. Qué es una hoja electrónica de cálculo?

Organización de Computadoras Apunte 2: Sistemas de Numeración: Punto Flotante

Unidad de Promoción y Desarrollo Guadiana OBJETIVO GENERAL

Tema 1. Números naturales, operaciones y divisibilidad. El trabajo en equipo y el trabajo científico.

LENGUAJE FORTRAN. ESTRUCTURAS Y SENTENCIAS

Tipos de campos en MySQL

MANUAL DE EXCEL AVANZADO

GLOSARIO DE MICROSOFT VISUAL BASIC (HAZ CLIC EN LA OPCION DEL MENU Y ACCEDERAS RAPIDAMENTE)

Capítulo 11 INTRODUCCIÓN A LA CODIFICACIÓN EN C. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

TEMA 7. ARRAYS (LISTAS Y TABLAS).

Lección 2 Introducción al lenguaje C

col Type mismatch cadena vacía fila 1 z + i 4 1 fila 2

Ing. Ramón Morales Higuera

La velocidad no lleva a ninguna parte si no se va en la dirección correcta. Proverbio Americano. Punto Flotante

COLEGIO PABLO DE TARSO IED CONSTRUCCION DE PROYECTOS DE VIDA PRODUCTIVOS VISUAL BASIC PRÁCTICAS DOC RAUL MONROY PAMPLONA

Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:

Tema 5.1: Presentación de datos en pantalla

FUNDAMENTOS DE INFORMÁTICA

Transcripción:

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

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

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 constante entera 432600 constante entera en formato largo 17.24 constante real en simple precisión 17.244283 constante real en doble precisión Unidad III Página 3

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. 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: Variables simples Variables array Variables registro Unidad III Página 4

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

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. 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

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 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. DIM a(2,3), b$(99) Unidad III Página 7

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

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 3 Unidad III Página 9

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. 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. 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

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 123456789.24 Unidad III Página 11

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. 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. 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. Unidad III Página 12

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. 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. 5 A SQR(x) A / 5 * SQR(c + d) Unidad III Página 13

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, x / y \ División entera x \ y MOD Resto división entera x MOD y + - Suma y Resta x + y, 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 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. a = 7 MOD 4 PRINT a 3 Unidad III Página 14

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. a = 7 : b = 8 PRINT a > b, a < b, (a < b) * 20 0-1 -20 Operador Operación Ejemplo = Igual x = y <> Distinto x <> y < Menor que x < y > Mayor que x > y <= Menor o igual que x <= y >= Mayor o igual que x >= 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

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. 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. 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

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 B NOT A A AND B A OR B A XOR B A EQV B A IMP B V V F V V F V V V F F F V V F F F V V F V V F V F F V F F F V V 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

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. La operación b 2 a se escribirá de la forma: b / (2 * a) Unidad III Página 18

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 +. 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

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 A$ = VIVA MEXICO 20 N = LEN(A$) 30 PRINT N 40 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

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 equivale a M = 14 d) K = LEN ( 18 DE MAYO DE 1982 ) equivale a K = 18 e) 10 A$ = MURCIE 20 B$ = LAGO 30 N = LEN (A$ + B$) N toma el valor 10 A$ + B$ = MURCIELAGO 10 A$ = 20 B$ = 30 C$ = 0123456789 40 PRINT LEN (A$) : PRINT LEN (B$) : PRINT LEN (C$) 50 PRINT LEN (A$ + B$ + C$) RUN 0 3 10 13 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

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 A$ = INSTITUTO DE ENSEÑANZA MEDIA 20 B$ = LEFT$ (A$,9) 30 PRINT B$ 40 C$ = LEFT$ (A$,22) 50 PRINT C$ 60 D$ = LEFT$ (A$,28) 70 PRINT D$ 80 END RUN INSTITUTO INSTITUTO DE ENSEÑANZA INSTITUTO DE ENSEÑANZA MEDIA Unidad III Página 22

10 INPUT INTRODUZCA LA RESPUESTA, A$ 20 IF LEFT$ (A$,1) = S THEN 100 30 IF LEFT$ (A$,1) = N THEN 200 40 PRINT INTENTE DE NUEVO 50 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

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 PRINT RIGHT$ ( MARIA,1) A 120 PRINT RIGHT$ ( MARIA,2) IA 140 PRINT RIGHT$ ( MARIA,5) MARIA 200 FOR N = 1 TO 5 220 PRINT RIGHT$ ( MARIA,N) A 240 NEXT N IA RIA ARIA MARIA 10 A$ = INSTITUTO DE ENSEÑANZA MEDIA 20 B$ = RIGHT$ (A$,5) 30 PRINT B$ 40 C$ = RIGHT$ (A$,15) 50 PRINT C$ 60 D$ = RIGHT$ (A$,20) 70 PRINT D$ 80 END Unidad III Página 24

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 Z VIVA ZA VIVA ZAP VIVA ZAPA VIVA ZAPAT VIVA ZAPATA A TA ATA PATA APATA ZAPATA ZAPATA A ZAPATA VA ZAPATA IVA ZAPATA VIVA ZAPATA Unidad III Página 25

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. Unidad III Página 26

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

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 cadena, variable de cadena Número de línea 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 El código ASCII del carácter B es 66 Unidad III Página 28

Función STR$ Esta función es la opuesta de VAL. Convierte un número en una cadena de caracteres. n STR$(X) n X Número de línea 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 123 Unidad III Página 29

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

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 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z Unidad III Página 31

Resumen de las Funciones de cadena básicas Función Utilizada en Proporciona LEN ( ) LEFT$ ( ) RIGHT$ ( ) MID$ ( ) VAL ( ) STR$ ( ) ASC ( ) CHR$ ( ) cadenas cadenas cadenas cadenas cadenas números caracteres cadenas números cadenas cadenas cadenas número cadenas número carácter 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) n X Número de línea Expresión numérica Unidad III Página 32

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$(n 1, n 2 $) n n 1 n 2 Número de línea Expresión entera que indica la longitud Expresión entera o cadena (dos formatos: ASCII, teclado) Ejemplos: A$ = STRING$ (75, A ) STRING$ con caracteres de teclado B$ = STRING$ (60, 25) STRING$ con caracteres código ASCII Unidad III Página 33

10 A$ = INFORME MENSUAL 20 B$ = STRING$ (10, 42) 30 PRINT B$; A$; B$ 40 END n 1 en la función STRING$ es 10, lo que significa que la longitud del carácter representado por n 2 $, en este caso <<42>> (<<*>>) 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