Entre tipo booleando y tipo entero me falto por incluir las tablas de verdad:
Representación en complemento a 2
Para representar los enteros internamente, el compilador podría utilizar un bit para discriminar el signo, pero esto no funciona, ya que habría dos ceros.
La representación en complemento a dos me garantiza la existencia de un solo 0 y algunas ventajas adicionales.
Un numero en complemento a 2 se representa así:
-Si es positivo o cero, se codifica en binario en los bits destinados para ello.
-Si es negativo, se codifica su valor absoluto en binario, se hace un NOT de cada bit y se suma 1.
Ejemplo: codificación del numero -19 usando 8 bits
-19 en binario :00010011
-niego casa bit: 11101100
-sumo 1, obteniendo -19:11101101
Se puede ver que se ha desbordado la capacidad de la maquina sumando un numero negativo muy grande. Número máximo representable 2^7-1= al sumarle luego uno no vale para 8 bits.
Ventajas del complemento a 2
Funciona perfectamente la suma de bits,
Ejemplos:
- 19 en binario:00010011
- 19 :11101101
- 19-1900 00000000
- 9 en binario: 00001001
- 9 en binario :11110111
- 19-9=10:00001010
- 28/(+)00011100->(-)11100100
- 19-9=-28/11100100
Tipo entero : operadores
Operadores
- suma
- Resta
- Multiplicación
- DIV: división entera
- MOD: resto de la división entera
prioridad de las operaciones (mayor arriba)
- * DIV MOD
- + -
Ejemplos
- 5div8=0
- 15mod4=3
- 3+4*5-6/2=3+(4*5)-(6/2)=20
Tipo entero: Procedimientos y funciones de biblioteca
Los lenguajes de programación nos suelen ofrecer funciones y procedimientos ya desarrollados para que podamos usarlos.
Para el tipo entero suelen ser frecuentes los siguientes:
- sqr(expresión entera): función que calcula el cuadrado de la expresión.
- abs(exp entera); función que calcula el valor absoluto de la expresión.
- leerEntero(teclado, variableEntera): procedimiento que muestra por pantalla el resultado de evaluar la expresión.
Constantes
Un dato constante es un dato de valor inalterable
durante la ejecución del programa.
Una constante se puede expresar en un algoritmo de forma
explícita: 1000, 3.1416, verdad, ‘A’.
También se puede expresar de forma simbólica, asociándole
como nombre simbólico un identificador, así se incrementan la legibilidad del
programa y se facilitan sus posteriores modificaciones, ya que el valor de la
constante sólo hay que modificarlo en su definición:
Algoritmo ejemplo de constante:
pi=3.1416; letra_A=’A’; limite=1000
Una variable se define como un dato con valor asociado que
puede cambiar a lo largo de la ejecución del programa, siempre dentro de un
determinado tipo de dato.
Las variables se declaran en un algoritmo, al principio,
asociándoles como nombre simbólico un identificador e indicando de qué tipo de
dato son.
Una variable no es más que una posición de memoria en la que
hemos reservado cierto espacio para almacenar un valor de un tipo de dato
determinado (el espacio es el necesario para almacenar valores de ese tipo), y
le hemos puesto un nombre para referirnos a ella.
Ejemplo:
indice, contador; entero;
medida: real;
c: caracter;
Una variable en un programa tiene un valor, pero en
principio este es un valor indefinido. A veces el compilador asigna valores
iniciales por defecto.
La acción de asociar un nuevo valor a una variable, se
denomina asignación.
La instrucción de asignación utiliza el operador “:=” para
distinguirlo del operador relacional de igualdad “=”. La sintaxis es
“variable:=expresión”.
Al ejecutar la instrucción, se evalúa la expresión y se
asigna dicho valor resultante a la variable, de tal manera que en la posición
de memoria asociada, está guardado a partir de ese momento ese valor.
La implicación es que el resultado de evaluar la expresión ha de ser del mismo tipo de datos que la variable. SI no, se produce un error
por incompatibilidad entre los operandos.
Ejemplos:
edad:=33; letra:=’A’; peso:=77.50; otroPeso:=peso;
x:=x+1; c:=a*b+c/d; resultado=(b+c)*(x-10)
0 comentarios:
Publicar un comentario