|
|
Capítulo 6Constantes, variables, expresiones y operadoresDespués de que usted haya aprendido los fundamentales de la programación en GW-BASIC, usted encontrará que usted deseará escribir programas más complejos. La información en este capítulo le ayudará a aprender más sobre el uso de constantes, de variables, de expresiones, y de operadores en GW-BASIC, y cómo pueden ser utilizadas para desarrollar programas más sofisticados. 6.1 ConstantesLas constantes son valores de los parásitos atmosféricos que el intérprete de GW-BASIC utiliza durante la ejecución de su programa. Hay dos tipos de constantes: secuencia y numérico. Una constante de la secuencia es una secuencia de 0 a 255 caracteres alfanuméricos incluidos en marcas dobles de la cita. Los siguientes son constantes de la secuencia de la muestra: HOLA $25.000.00 Número de empleados Las constantes numéricas pueden ser positivas o negativas. Al incorporar una constante numérica a GW-BASIC, usted no debe mecanografiar las comas. Por ejemplo, si se entrara el número 10.000 como constante, sería mecanografiado como 10000. Hay cinco tipos de constantes numéricas: número entero, de punto fijo, floating-point, hexadecimal, y octal.
6.1.1 Forma escoja y de la Doble-Precisio'n para las constantes numéricasLas constantes numéricas pueden ser números enteros, solo-precisio'n, o números de precisión doble. Las constantes enteras se almacenan como números enteros solamente. las constantes numéricas de la Solo-precisio'n se almacenan con 7 dígitos (aunque solamente 6 pueden ser exactos). Las constantes numéricas de precisión doble se almacenan con 17 dígitos de precisión, y se imprimen con tanto como 16 dígitos. Una constante de la solo-precisio'n es cualquier constante numérica con cualquiera
Una constante de precisión doble es cualquier constante numérica con cualquiera
Los siguientes son ejemplos de constantes numéricas solas y de precisión doble:
6.2 VariablesLas variables son los nombres que usted ha elegido representar los valores usados en un programa de GW-BASIC. El valor de una variable se puede asignar específicamente, o puede ser el resultado de cálculos en su programa. Si una variable no se asigna ningún valor, GW-BASIC asume el valor de la variable para ser cero. 6.2.1 Nombres y declaraciones variablesLos nombres variables de GW-BASIC pueden ser cualquier longitud; hasta 40 caracteres son significativos. Los caracteres permitidos en un nombre variable son letras, números, y la coma. El primer carácter en el nombre variable debe ser una letra. El tipo especial caracteres de declaración también se permite. Las palabras reservadas (todas las palabras usadas como comandos, declaraciones, funciones, y operadores de GW-BASIC) no se pueden utilizar como nombres variables. Sin embargo, si la palabra reservada se encaja dentro del nombre variable, será permitido. Las variables pueden representar valores numéricos o secuencias. 6.2.2 Tipo Caracteres De DeclaraciónEl tipo caracteres de declaración indica lo que representa una variable. Se reconoce el tipo siguiente caracteres de declaración:
Los siguientes son nombres variables de la muestra para cada tipo:
El tipo del defecto para un nombre variable numérico es solo-precisio'n. De precisión doble, mientras que muy es exacto, aplicaciones más memoria y más tiempo del cálculo. la Solo-precisio'n es suficientemente exacta para la mayoría de los usos. Sin embargo, el séptimo dígito significativo (si está impreso) no será siempre exacto. Usted debe tener muy cuidado al hacer conversiones entre el número entero, la solo-precisio'n, y las variables de precisión doble. La variable siguiente es un valor de la solo-precisio'n por defecto: ABC Las variables que comienzan con FN se asumen para ser llamadas a una función definida por el usario. Las declaraciones DEFINT ,DEFSTR ,DEFSNG ,y DEFDBL de GW-BASIC se pueden incluir en un programa para declarar los tipos de valores para ciertos nombres variables. 6.2.3 Variables De ArsenalUn array es un grupo o una tabla de los valores referidos por el mismo nombre variable. Cada elemento en un arsenal es referido por una variable de array que sea a subscripted número entero o una expresión del número entero. El subíndice es incluido dentro de paréntesis. Un nombre de la variable de arsenal tiene tantos subíndices pues hay dimensiones en el array. Por ejemplo, V(10) se refiere a un valor a un arsenal unidimensional, mientras que T(1,4) se refiere a un valor a un arsenal de dos dimensiones. El número máximo de las dimensiones para un arsenal en GW-BASIC es 255. El número máximo de elementos por la dimensión es 32767. Nota Si usted está utilizando un arsenal con un valor suscrito mayor de 10, usted debe utilizar la instruccion DIM. Refiera a la referencia del usuario de GW-BASIC para más información. Si un mayor suscrito que el máximo especificado se utiliza, usted recibirá el mensaje de error "Subscript out of range." Los órdenes multidimensionales (más de un subíndice separado por comas) son útiles para almacenar datos tabulares. Por ejemplo, A(1,4) se podía utilizar para representar una dos-fila, arsenal de la cinco-columna tal como el siguiente: Column 0 1 2 3 4 Row 0 10 20 30 40 50 Row 1 60 70 80 90 100 En este ejemplo, elemento A(1,2)=80 y A(0,3)=40. Las filas y las columnas comienzan con 0, no 1, a menos que estén declaradas de otra manera. Para más información, vea la declaración BAJA de la OPCIÓN en la referencia del usuario de GW-BASIC. 6.2.4 Requisitos de la memoria para el almacenaje variableLos diversos tipos de variables requieren diversas cantidades de almacenaje. Dependiendo de la capacidad del almacenaje y de memoria de su computadora y del tamaño del programa que usted está desarrollando, éstas pueden ser consideraciones importantes.
Cadenas:Tres octetos de de arriba, más el actual contenido de la secuencia como un octeto para cada carácter en la secuencia. Las marcas de la cita que marcan el principio y el extremo de cada secuencia no se cuentan. 6.3 Conversion de MecanografiaCuando es necesario, GW-BASIC convierte una constante numérica a partir de un tipo de variable a otro, según las reglas siguientes:
10 D# = 6#/7 20 PRINT D# RUN .8571428571428571 La aritmética se realiza en de precisión doble, y el resultado se vuelve en D # como valor de precisión doble. 10 D = 6#/7 20 PRINT D RUN .8571429 La aritmética se realiza en de precisión doble, y el resultado se vuelve a D (variable de la solo-precisio'n) redondeada e impresa como valor de la solo-precisio'n.
10 C# = 55.88 20 PRINT C# RUN 56
6.4 Expresiones y operadoresUna expresión puede ser simplemente una secuencia o la constante numérica, una variable, o ella pueden combinar constantes y variables con los operadores para producir un solo valor. Los operadores realizan operaciones matemáticas o lógicas en valores. Los operadores proporcionaron por GW-BASIC se dividen en cuatro categorías:
6.4.1 Operadores AritméticosLos siguientes son los operadores aritméticos reconocidos por GW-BASIC. Aparecen en la orden de la precedencia.
Las operaciones dentro de paréntesis se realizan primero. Dentro de paréntesis, la orden generalmente de la precedencia se mantiene. Los siguientes son expresiones algebraicas de la muestra y sus contrapartes de GW-BASIC:
Dos operadores consecutivos deben ser separados por paréntesis. 6.4.1.1 División del número entero y aritmética del móduloDos operadores aritméticos adicionales están disponibles: división del número entero y aritmética del módulo. La división del número entero es denotada por el backslash (\). Los operandos se redondean a los números enteros (debe estar dentro de la gama de -32768 a 32767) antes de que se realice la división, y el cociente se trunca a un número entero. Los siguientes son ejemplos de la división del número entero: 10\4 = 2 25.68\6.99 = 3 En la orden de la ocurrencia dentro de GW-BASIC, la división del número entero será realizada enseguida después de la división floating-point. La aritmética del módulo es denotada por la MOD del operador. Da el valor del número entero que es el resto de una división del número entero. Los siguientes son ejemplos de la aritmética del módulo: 10.4 MOD 4 = 2 (10/4=2 with a remainder 2) 25.68 MOD 6.99 = 5 (26/7=3 with a remainder 5) En la orden de la ocurrencia dentro de GW-BASIC, la aritmética del módulo sigue la división del número entero. El INTERNOS y FIJAN las funciones, descritas en la referencia del usuario de GW-BASIC, son también útiles en aritmética del módulo. 6.4.1.2 Desbordamiento y división por ceroSi, durante la evaluación de una expresión, una división por cero se encuentra, la "división por "el mensaje de error cero aparece, el infinito de la máquina con la muestra del numerador se provee como resultado la división, y la ejecución continúa. Si la evaluación de un exponentiation da lugar a cero que es levantada a una energía negativa, la "división por "el mensaje de error cero aparece, el infinito positivo de la máquina se provee como resultado el exponentiation, y la ejecución continúa. Si ocurre el desbordamiento, el mensaje de error "overflow" aparece, el infinito de la máquina con la muestra algebraico correcta se provee como el resultado, y la ejecución continúa. Los errores que ocurren en desbordamiento y la división por cero no serán atrapados por la función de la interceptación del error. 6.4.2 Operadores EmparentadosLos operadores emparentados le dejaron comparar dos valores. El resultado de la comparación es o verdad (-1) o falso (0). Este resultado se puede entonces utilizar para tomar una decisión con respecto a flujo de programa. La tabla 6.1 exhibe a operadores emparentados. Tabla 6.1Operadores Emparentados
El igual también se utiliza de asignar un valor a una variable. Vea DEJE la declaración en la referencia del usuario de GW-BASIC. Cuando combinan a los operadores aritméticos y emparentados en una expresión, la aritmética se realiza siempre primero: X+Y < (T-1)/Z Esta expresión es verdad si el valor de X más Y es lessthan el valor del T-1 dividido por Z. 6.4.3 Operadores LógicosLos operadores lógicos realizan pruebas en relaciones múltiples, la manipulación de pedacito, u operaciones boleanas. El operador lógico vuelve bit-wise un resultado que sea o verdad (no cero) o falso (cero). En una expresión, las operaciones lógicas se realizan después de operaciones aritméticas y emparentadas. El resultado de una operación lógica se determina según lo demostrado en la tabla siguiente. Enumeran a los operadores en la orden de la precedencia. Tabla 6.2Los resultados volvieron por operaciones lógicas
Apenas mientras que los operadores emparentados pueden ser utilizados para tomar decisiones con respecto a flujo de programa, los operadores lógicos pueden conectar dos o más relaciones y volver un valor verdadero o falso que se utilizará en una decisión. Por ejemplo: IF D<200 AND F<4 THEN 80 IF I>10 OR K<0 THEN 50 IF NOT P THEN 100 Los operadores lógicos convierten sus operandos a 16-bit, firmado, dos números enteros del complemento dentro de la gama de -32768 a +32767 (si los operandos no están dentro de esta gama, de los resultados de un error). Si ambos operandos se proveen como 0 o -1, los operadores lógicos vuelven 0 o -1. La operación dada se realiza en estos números enteros en pedacitos; es decir, cada pedacito del resultado es determinado por los pedacitos correspondientes en los dos operandos. Así, es posible utilizar a operadores lógicos para probar los octetos para una configuración de bits particular. Por ejemplo, Y el operador puede ser utilizado para enmascarar todos sino uno de los pedacitos de un octeto de estado en un puerto de la máquina I/O. U operador puede ser utilizado combinar dos octetos para crear un valor binario particular. Los ejemplos siguientes demuestran cómo los operadores lógicos trabajan:
6.4.4 Operadores FuncionalesUna función se utiliza en una expresión para llamar una operación predeterminada que deba ser realizada en un operando. GW-BASIC tiene funciones intrínsecas que residan en el sistema, tal como SQR (raíz cuadrada) o PECADO (seno). GW-BASIC también permite las funciones definidas por el usario escritas por el programador. Vea la declaración de DEF FN en la referencia del usuario de GW-BASIC. 6.4.5 Encadene A OperadoresPara comparar secuencias, utilice a mismos operadores emparentados usados con números:
El intérprete de GW-BASIC compara secuencias tomando un carácter a la vez de cada secuencia y comparando sus códigos del ASCII. Si los códigos del ASCII en cada secuencia son iguales, las secuencias son iguales. Si diferencian los códigos del ASCII, el número de código más bajo precederá el código más alto. Si el intérprete alcanza el extremo de una secuencia durante la comparación de la secuencia, la secuencia más corta se dice para ser más pequeña, proporcionando que ambas secuencias son iguales hasta ese punto. Los espacios a la derecha que conducen y son significativos. Por ejemplo: "AA" < "AB" "FILENAME" = "FILENAME" "X&" > "X#" "CL " > "CL" "kg" > "KG" "SMYTH" < "SMYTHE" B$ < "9/12/78" where B$ = "8/12/78" Las comparaciones de la secuencia se pueden también utilizar para probar valores de la secuencia o para alfabetizar secuencias. Todas las constantes de la secuencia usadas en expresiones de la comparación se deben incluir en marcas de la cita. Las secuencias pueden ser concatenadas usando (+)la muestra más. Por ejemplo: 10 A$="FILE":B$="NAME" 20 PRINT A$+B$ 30 PRINT "NEW " + A$+B$ RUN FILENAME NEW FILENAME |