CNM-130 - Instituto de Matemáticas

Anuncio
Sistemas numéricos
Tipos de datos
Operadores y variables
Introducción a los Computadores (CNM-130)
Elementos de programación
Alejandro Piedrahita H.
Instituto de Matemáticas
Facultad de Ciencias Exactas y Naturales
Universidad de Antioquia
Copyleft «2012. Reproducción permitida bajo los
términos de la licencia de documentación libre GNU.
Referencias
Sistemas numéricos
Tipos de datos
Contenido
1
Sistemas numéricos
2
Tipos de datos
3
Operadores y variables
4
Referencias
Operadores y variables
Referencias
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Sistema de numeración
Conjunto de sı́mbolos y reglas que permiten construir todos los
números válidos en el sistema.
Los sistemas de numeración pueden clasificarse en dos grandes grupos:
posicionales: el valor de un dı́gito depende tanto del sı́mbolo utilizado,
como de la posición que dicho sı́mbolo ocupa en el número (sistema
decimal, binario, etc.)
no-posicionales: los dı́gitos tienen el valor del sı́mbolo utilizado y no
dependen de la posición (columna) que ocupan en el número (sistema
egipcio, romano).
El número de sı́mbolos permitidos en un sistema de numeración
posicional se conoce como base del sistema de numeración.
Un sistema de base b cuenta con b sı́mbolos diferentes para escribir los
números y b unidades forman una unidad de orden superior.
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Sistema de numeración
Sistema decimal
Sistema en base 10 (b = 10).
Sı́mbolos disponibles: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Ejemplos:
5697 = 5000 + 600 + 90 + 7 = 5 · 103 + 6 · 102 + 9 · 101 + 7 · 100
0,314 = 0,3000 + 0,010 + 0,004 = 3 · 10−1 + 1 · 10−2 + 4 · 10−3
82,34 = 80 + 2 + 0,30 + 0,04 = 8 · 10 + 2 · 100 + 3 · 10−1 + 4 · 10−2
Sistema binario
Sistema en base 2 (b = 2).
Sı́mbolos disponibles: 0, 1
Ejemplos:
1011 = 1 · 23 + 0 · 22 + 1 · 21 + 1 · 20
0,1101 = 1 · 2−1 + 1 · 2−2 + 0 · 2−3 + 1 · 2−4
Sistemas numéricos
Tipos de datos
Operadores y variables
Sistema de numeración
Todo número número N en un sistema de numeración posicional de
base b se puede escribir como:
N = dn . . . d1 d0 , d−1 . . . d−k
= dn · bn + · · · + d1 · b1 + d0 · b0 + d−1 · b−1 + · · · + d−k · b−k
=
n
X
d i · bi
i=−k
Sistema Octal
Sistema en base 8 (b = 8).
Sı́mbolos disponibles: 0, 1, 2, 3, 4, 5, 6, 7
Ejemplo:
3452,32 = 3 · 83 + 4 · 82 + 5 · 81 + 2 · 80 + 3 · 8−1 + 2 · 8−2
Referencias
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Sistema de numeración
Sistema Hexadecimal
Sistema en base 16 (b = 16).
Sı́mbolos disponibles: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Ejemplo:
3E0, A = 3 · 162 + E · 161 + 0 · 160 + A · 16−1
Para distinguir números de diferentes bases, los dı́gitos se encierran
entre paréntesis y la base se escribe como subı́ndice:
(101101)2 = 1 · 25 + 0 · 24 + 1 · 23 + 1 · 22 + 0 · 21 + 1 · 20 = (45)10
(736,4)8 = 7 · 82 + 3 · 81 + 6 · 80 + 4 · 8−1 = (478,5)10
(F 3)16 = F · 161 + 3 · 160 = 15 · 16 + 3 = (243)10
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Sistema de numeración
Conversión de entero decimal a binario: se divide el número por
2, el cociente obtenido se divide de nuevo por 2 y ası́ sucesivamente
hasta que el cociente sea 1.
y obtenemos
(100)10 = (1100100)2
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Sistema de numeración
Conversión de decimal a binario: se realizan multiplicaciones
sucesivas por la base 2 y se acumulan los dı́gitos enteros obtenidos en
el orden de aparición.
Ejemplo: para convertir (0,6875)10 a binario:
0,6875 × 2 = 1,3750
0,3750 × 2 = 0,7500
0,7500 × 2 = 1,5000
0,5000 × 2 = 1,0000
y obtenemos
(0,6875)10 = (0,1011)2
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Conversión de binario a octal
Debido a que 23 = 8, cada dı́gito octal corresponde a tres dı́gitos
binarios.
Se agrupan los dı́gitos binarios en grupos de 3 en 3 iniciando por el lado
derecho y a cada grupo se le asigna el valor correspondiente:
La cantidad correspondiente en octal se agrupa de izquierda a derecha.
Ejemplos: para convertir a octal . . .
(110111)2 = |{z}
110 |{z}
111 = (67)8
6
7
(11001111)2 = |{z}
011 |{z}
001 |{z}
111 = (317)8
1
3
7
Para convertir de octal a binario . . .
(247)8 = |{z}
010 |{z}
100 |{z}
111 = (010100111)2
2
4
7
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Conversión de binario a hexadecimal:
Debido a que 24 = 16, cada dı́gito hexadecimal corresponde a cuatro
dı́gitos binarios.
Se agrupan los dı́gitos binarios en grupos de 4 en 4 iniciando por el lado
derecho y a cada grupo se le asigna el valor correspondiente:
La cantidad correspondiente en hexadecimal se agrupa de izquierda a
derecha.
Ejemplos: para convertir a hexadecimal . . .
(110111010)2 = 0001
| {z } 1011
| {z } 1010
| {z } = (1BA)16
1
B
A
(11011110101)2 = 0110
| {z } 1111
| {z } 0101
| {z } = (6F 5)16
6
F
5
Para convertir de hexadecimal a binario . . .
(6AC)16 = 0110
| {z } 1010
| {z } 1100
| {z } = (011010101100)2
6
A
C
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Conceptos básicos
Dato
Sı́mbolo fı́sico que se utiliza para representar información
Representa un atributo o una caracterı́stica de una entidad
Describe entidades sobre las cuales opera un algoritmo o programa
Proceden de hechos, abstracciones reales:
Nombre de una persona
Producto interno bruto de un paı́s
Número de horas trabajadas
Altura de una montaña
Información
Conjunto organizado de datos procesados, que constituyen un mensaje sobre
un determinado ente o fenómeno
Los datos generan la información necesaria para producir conocimiento
Tipos de datos
Numéricos: enteros, reales
Lógicos (booleanos): verdadero, falso
Alfanuméricos: caracteres alfabéticos, numéricos y especiales
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Tipo de dato entero
Enteros
Datos cuyos valores pertenecen al conjunto de los números enteros (Z)
Por limitaciones de hardware no todo número entero puede ser un tipo
de dato entero
Representación interna de tipos de datos enteros:
Binario puro
Modulo y signo
Complemento a 1
Complemento a 2
Sistemas numéricos
Tipos de datos
Operadores y variables
Tipos de dato entero (binario puro)
Palabra de n bits (1 ó 0):
2 · 2 · 2 · · · 2 · 2 = 2n posibilidades
|
{z
}
n veces
Rango de representación:
0 ≤ valor ≤ 2n − 1
Palabra de 8 bits (n = 8):
0 ≤ valor ≤ 28 − 1 = 255
Palabra de 16 bits (n = 16):
0 ≤ valor ≤ 216 − 1 = 65535
Referencias
Sistemas numéricos
Tipos de datos
Operadores y variables
Tipos de dato entero (binario puro)
Palabra de 16 bits (n = 16):
[0, 65535]
El menor número: 0
0 · 20 + 0 · 21 + 0 · 22 + · · · + 0 · 215 = 0
El mayor número: 65535
1 · 20 + 1 · 21 + 1 · 22 + · · · + 1 · 215 = 65535
Referencias
Sistemas numéricos
Tipos de datos
Operadores y variables
Tipos de dato entero (módulo y signo)
Método de representación que incluye enteros negativos:
Bit de signo:
0 para positivos
1 para negativos
Bits de módulo: módulo del
entero en binario
Enteros positivos (palabra de n bits):
0 ≤ valor ≤ 2n−1 − 1
Enteros negativos (palabra de n bits):
−(2n−1 − 1) ≤ valor ≤ 0
Rango de representación (simétrico):
Referencias
Sistemas numéricos
Tipos de datos
Operadores y variables
Tipos de dato entero (módulo y signo)
El número 0 tiene dos representaciones:
Palabra de 8 bits (n = 8):
−2n−1 + 1
≤
valor
≤
2n−1 − 1
−27
≤
≤
valor
valor
≤
≤
27 − 1
127
−2n−1 + 1
≤
valor
≤
2n−1 − 1
−215 + 1
−32767
≤
≤
valor
valor
≤
≤
215 − 1
32767
≤
valor
≤
2n−1 − 1
≤
≤
valor
valor
≤
≤
231 − 1
2147483647
+1
−127
Palabra de 16 bits (n = 16):
Palabra de 32 bits (n = 32):
−2n−1 + 1
−231
+1
−2147483647
Referencias
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Tipos de dato entero (complemento a 1)
Método de representación que incluye enteros negativos:
Bit de signo:
0 para positivos
1 para negativos
Bits de módulo: módulo del
entero en binario
Rango de representación (simétrico):
−2n−1 + 1 ≤ valor ≤ 2n−1 − 1
Representación de enteros negativos:
Se obtiene “complementando” los bits del modulo, i.e., cambiando ceros por unos
y viceversa
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Tipos de dato entero (complemento a 2)
Método de representación que incluye enteros negativos:
Bit de signo:
0 para positivos
1 para negativos
Bits de módulo: módulo del
entero en binario
Representación de enteros negativos:
1
Se realiza el complemento a 1 del número positivo (incluyendo el bit de signo)
2
Al resultado obtenido en el paso (1) se suma 1 en binario y se desprecia el acarreo
Rango de representación (asimétrico):
n−1
, 2n−1 − 1
−2
=⇒
+0 = −0 = 0 0 0 0 · · · 0 0 0
(ver tablero)
Ejemplo: −42 en complemento 2 en una palabra de n = 8 bits
1
2
1 1010101
Sumar 1 a lo obtenido en (1)
+
1
0
1010101
0000001
1
1010110
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Tipo de dato real
Reales
Datos cuyos valores pertenecen al conjunto de los números reales (R)
¿Cómo representar un número real arbitrario con una cantidad limitada de
espacio de memoria?
Desbordamiento (overflow)
Desbordamiento negativo
(underflow)
Truncamiento (truncation)
Representación de datos reales (notación cientı́fica):
número = mantisa × baseexponente
Infinitas representaciones de un mismo número:
12906.403
12906.403
12906.403
=
=
=
12906.403 × 100
12906403 ×
12906.403
=
0.0012906403 × 10+7
10−3
12906.403
=
0.12906403 × 10+5
10+2
12906.403
=
129064030 × 10−4
129.06403 ×
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Tipo de dato real (representación en punto flotante)
Representación en punto flotante (normalizada):
r = (−1)s · m · be
s (signo): representa el signo del número (s = 0 positivo y s = 1 negativo)
m (mantisa): no incluye la parte entera de r y la primera cifra a la derecha del
punto debe ser distinta de cero (cifra significativa)
e (exponente): orden de magnitud del significando. El mı́nimo y máximo valor
del exponente determinan el rango de valores representables.
b (base): base del sistema (10 en sistema decimal, 2 en binario, etc)
Ejemplos:
376.730313461
=
0.376730313461 × 10+3
299792458
=
0.299792458 × 10+9
0.014387752
=
0.14387752 × 10−2
0.665245873
=
0.665245873 × 100
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
El estándar IEEE 754
Formatos definidos por el Instituto de Ingenieros Eléctricos y Electrónicos
(IEEE) para la representación de números reales
Establece dos formatos básicos para representar tipos de datos reales en
computadores: precisión simple y precisión doble
Precisión simple: se almacena en una palabra de 32 bits
Precisión doble: se almacena en una palabra de 64 bits
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Precisión simple 32-bits
Un número en punto flotante de precisión simple se almacena en una palabra
de 32 bits:
El exponente sesgado está dado por es = 27 − 1 = 127 y el exponente real se
encuentra en el rango de −126 a 127.
Un exponente de −127 es desplazado a 0 y un exponente de 128 es desplazado a
“infinito” o a NaN.
El número normalizado tiene el valor de
(−1)signo × (1 + fracción) × 2e−es
donde
s = +1 (números positivos y +0) cuando el bit del signo es 0.
s = −1 (números negativos y -0) cuando el bit del signo es 1.
e = exponente − 127 (exponente “sesgado con 127”).
m = 1.fracción
Sistemas numéricos
Tipos de datos
Operadores y variables
Precisión simple 32-bits
En el ejemplo anterior:
signo = 0 y para el exponente tenemos
(01111100)2 = 1 · 26 + 1 · 25 + 1 · 24 + 1 · 23 + 1 · 22 = (124)10
y por tanto
e − es = 124 − 127 = −3 .
Para la mantisa tenemos
1 + fracción = 1 + 0,010000000000000000000000
= (1,01)2
= 1 · 20 + 1 · 2−2 = (1.25)10 .
Por tanto el número representado en la figura es
(−1)signo × 2e−es × (1 + fracción) = 1.25 × 2−3 = +0.15625
Referencias
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Precisión simple 32-bits
En este ejemplo vamos a almacenar el número decimal −118.6254 en una
estructura de 32 bits utilizando el sistema IEEE 754.
El signo es 1 (el número es negativo).
El número sin signo es convertido a binario:
(118.6254)10 = (1110110.101)2
(1)
El número (1) se normaliza:
1110110.101 = 1.110110101 × 26
De (2) extraemos los bits que llenarán los 23 campos de la mantisa:
110110101 = 11011010100000000000000
Finalmente el exponente es 6, lo convertimos a binario y le aplicamos el
desplazamiento a 127 para corregir el “sesgo”:
6 + 127 = (133)10 = (10000101)2
(2)
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Doble precisión 64-bits
Un número en punto flotante de doble precisión se almacena en una palabra
de 64 bits:
El exponente sesgado está dado por es = 211−1 − 1 = 1023 y el exponente real
se encuentra en el rango de −1022 a 1023.
El número normalizado tiene el valor de
(−1)signo × 2e−es × (1 + fracción)
donde
s = +1 (números positivos y +0) cuando el bit del signo es 0.
s = −1 (números negativos y -0) cuando el bit del signo es 1.
e = exponente − 1023 (exponente “sesgado en 1023”).
m = 1.fracción
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Doble precisión 64-bits
Por ejemplo, para
0 10000000011 101110010001000000000000000000000000000000000000000
s = 0 (positivo),
10
e=1·2
9
2
1
0
+ 0 · 2 + · · · + 0 · 2 + 1 · 2 + 1 · 2 = 1024 + 2 + 1 = 1027 ,
f =1·2
−1
+1·2
−3
+1·2
−4
−5
+1·2
−8
+1·2
−12
+1·2
1
1
1
1
1
1
= + +
+
+
+
2
8
16
32
256
4096
y por tanto
signo
(−1)
e−1023
2
0
1027−1023
(1 + fracción) = (−1) 2
= 27.56640625
1
1
1
1
1
1
+ +
+
+
+
2
8
16
32
256
4096
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Tipos de datos lógicos (booleanos)
Tipo de dato que sólo puede tomar dos valores: verdadero o falso
Representa los “valores de verdad” de la lógica y del álgebra booleana
Resultan apartir de operaciones lógica y relacionales (de comparación)
La representación interna de este tipo de dato depende del lenguaje de
programación
Pascal: tipo de dato Boolean
C: no cuenta con un tipo de dato lógico, en su lugar se utiliza un tipo de dato
entero (0 es falso y distinto de 0 es verdadero)
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Tipos de datos alfanuméricos
Datos que almacenan caracteres alfanuméricos
Caracteres alfabéticos:
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,
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
Caracteres numéricos:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Caracteres especiales:
!
@
# %
∧
&
*
(
)
Clases de datos alfanuméricos:
Carácter:
’a’,
’x’,
’M’,
’3’
Cadena:
"hola",
"nombre cliente",
"ResultadoOperacion 2",
"
"
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Representación de datos alfanuméricos
Digitalización: los datos alfanuméricos se transforman en secuencias de ceros y
unos para poder ser almacenados y procesados
Código binario: tabla que asigna a cada caracter un número
EBCDIC (Extended Binary Coded
Decimal Interchange Code): código
estándar de 8 bits usado por
computadoras mainframe IBM
ASCII (American Standard Code for
Information Interchange): código de →
caracteres basado en el alfabeto latino
(8 bits)
Unicode: código de caracteres de 8, 12
y 32 bits. Abarca caracteres de alfabetos
no latinos (griegos, eslavos, asiáticos)
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Identificadores
Identificadores: nombres utilizados para referenciar los distintos elementos
utilizados en un algoritmo o programa
Los identificadores están formados por una serie de dı́gitos alfanuméricos
El primer carácter debe ser una letra
No deben contener espacios en blanco
No deben contener caracteres acentuados
El lı́mite de caracteres a usar depende del lenguaje de programación
Los identificadores deben ser declarados antes de ser utilizados
Los nombres elegidos deben dar una idea de su uso:
nombre paciente,
edad,
salario2009,
PorcentajeGastos
Caracteres especiales: identificadores restringidos para uso especı́fico de
cada lenguaje de programación
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Operadores aritméticos
Operandos: números, constantes o variables
Operadores aritméticos: realizan operaciones aritméticas entre operandos
para obtener números.
Operador
∧
∗
/
+
−
mod
div
Operación
Potencia
Multiplicación
División
Suma
Resta
Módulo (residuo)
División entera
Ejemplo
2∧3
7∗3
10/4
3−4
7−4
10 mod 3
16 div 5
Resultado
8
21
2,5
−1
3
1
3
Jerarquı́a de los operadores: al evaluar expresiones que contienen
operadores aritméticos se debe respetar cierto orden (“jerarquı́a”).
Operador
∧
∗, /, mod, div
+, −
Jerarquı́a
(mayor)
(menor)
Operación
Potencia
Multiplicación, división, módulo, división entera
Suma, resta
Expresiones entre paréntesis se evalúan primero.
Si dos o más operadores consecutivos tienen la misma jerarquı́a, las
operaciones se ejecutan de izquierda a derecha.
Sistemas numéricos
Tipos de datos
Operadores y variables
Ejemplos
8+6−5
20/5/4
9 + 7 ∗ 8 − 24/3
9 ∗ 4 ∧ 3/3 div 5
=
8+6−5
=
14 − 5
=
9
=
20/5/4
=
4/4
=
1
=
9 + 7 ∗ 8 − 24/5
=
9 + 56 − 24/5
=
9 + 56 − 4,8
=
65 − 4,8
=
60,2
=
9 ∗ 4 ∧ 3/3 div 5
=
9 ∗ 64/3 div 5
=
576/3 div 5
=
192 div 5
=
38
Referencias
Sistemas numéricos
Tipos de datos
Operadores y variables
Ejemplos
7 ∗ 8 ∗ (160 mod 3 ∧ 3) div 5 ∗ 13 − 28
=
7 ∗ 8 ∗ (160 mod 3 ∧ 3) div 5 ∗ 13 − 28
=
7 ∗ 8 ∗ (160 mod 27) div 5 ∗ 13 − 28
=
7 ∗ 8 ∗ 25 div 5 ∗ 13 − 28
=
56 ∗ 25 div 5 ∗ 13 − 28
=
1400 div 5 ∗ 13 − 28
=
280 ∗ 13 − 28
=
3640 − 28
=
3612
Referencias
Sistemas numéricos
Tipos de datos
Operadores y variables
Ejemplos
15/2 ∗ (7 + (68 − 15 ∗ 33 + (45 ∧ 2/16)/3)/15) + 19
=
15/2 ∗ (7 + (68 − 15 ∗ 33 + (45 ∧ 2/16)/3)/15) + 19
=
15/2 ∗ (7 + (68 − 15 ∗ 33 + (45 ∧ 2/16)/3)/15) + 19
=
15/2 ∗ (7 + (68 − 15 ∗ 33 + (2025/16)/3)/15) + 19
=
15/2 ∗ (7 + (68 − 15 ∗ 33 + 126, 5625/3)/15) + 19
=
15/2 ∗ (7 + (68 − 495 + 126, 5625/3)/15) + 19
=
15/2 ∗ (7 + (68 − 495 + 42,1875)/15) + 19
=
15/2 ∗ (7 + (−427 + 42,1875)/15) + 19
=
15/2 ∗ (7 + (−384,8125)/15) + 19
=
15/2 ∗ (7 + (−25,6541)) + 19
=
15/2 ∗ (−18,6541) + 19
=
7,5 ∗ (−18,6541) + 19
=
−139,9062 + 19
=
−120,9262
Referencias
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Operadores relacionales
Las expresiones lógicas o booleanas están formadas por números,
constantes o variables y operadores relacionales o lógicos.
El valor que pueden tomar las expresiones booleanas es el de
verdadero o falso.
El valor de estas expresiones se utiliza en las estructuras selectivas y en
las estructuras repetitivas.
Los operadores relacionales son operadores que permiten comparar
dos operandos.
Operador
=
<>
<
>
<=
>=
Operación
Igual
Diferente de
Menor que
Mayor que
Menor o igual que
Mayor o igual que
Ejemplo
’hola’ = ’ola’
’a’ <> ’b’
10 < 4
3 > −4
7 <= 7
10 >= 3
Resultado
FALSO
VERDADERO
FALSO
VERDADERO
VERDADERO
VERDADERO
Cuando se combinan operadores relacionales con operadores lógicos,
FALSO es menor que VERDADERO.
Sistemas numéricos
Tipos de datos
Operadores y variables
Ejemplos
A = 5 y B = 16
A ∧ 2 > (B ∗ 2)
A ∧ 2 > (B ∗ 2)
25 > (B ∗ 2)
25 > 32
FALSO
x = 6 y B = 7,8
(x ∗ 5 + B ∗ 3/4) <= (x ∧ 3 div B)
(x ∗ 5 + B ∗ 3/4) <= (x ∧ 3 div B)
(x ∗ 5 + 474,552/4) <= (x ∧ 3 div B)
(30 + 474,552/4) <= (x ∧ 3 div B)
(30 + 118,638) <= (x ∧ 3 div B)
148,638 <= (x ∧ 3 div B)
148,638 <= (216 div B)
148,638 <= 27
FALSO
Referencias
Sistemas numéricos
Tipos de datos
Operadores y variables
Ejemplos
((1580 mod 6 ∗ 2 ∧ 7) > (7 + 8 ∗ 3 ∧ 4)) > ((15 ∗ 2) = (60 ∗ 2/4))
((1580 mod 6 ∗ 2 ∧ 7) > (7 + 8 ∗ 3 ∧ 4)) > ((15 ∗ 2) = (60 ∗ 2/4))
((1580 mod 6 ∗ 128) > (7 + 8 ∗ 3 ∧ 4)) > ((15 ∗ 2) = (60 ∗ 2/4))
((2 ∗ 128) > (7 + 8 ∗ 3 ∧ 4)) > ((15 ∗ 2) = (60 ∗ 2/4))
(256 > (7 + 8 ∗ 3 ∧ 4)) > ((15 ∗ 2) = (60 ∗ 2/4))
(256 > (7 + 8 ∗ 81)) > ((15 ∗ 2) = (60 ∗ 2/4))
(256 > (7 + 648)) > ((15 ∗ 2) = (60 ∗ 2/4))
(256 > 655) > ((15 ∗ 2) = (60 ∗ 2/4))
FALSO > ((15 ∗ 2) = (60 ∗ 2/4))
FALSO > (30 = (60 ∗ 2/4))
FALSO > (30 = (120/4))
FALSO > ((30 = 30))
FALSO > VERDADERO
FALSO
Referencias
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Operadores lógicos
Operan sobre expresiones lógicas (verdadero/falso) produciendo
nuevas expresiones lógicas.
Las expresiones lógicas obtenidas determinan el flujo de control de un
algoritmo o programa.
Operador lógico
NO
Y
O
Jerarquı́a
(mayor)
(menor)
Expresión lógica
No P
PYQ
P O Q
Signficado
No es cierto que P
PyQ
o P o Q o ambas
El comportamiento de un operador lógico suele definirse mediante su
correspondiente “tabla de verdad”.
P
Q
∼P
∼Q
P y Q
P o Q
V
V
F
F
V
F
V
F
F
F
V
V
F
V
F
V
V
F
F
F
V
V
V
F
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Jerarquı́a de los operadores lógicos
El operador () es un operador asociativo que en la mayorı́a de
lenguajes tiene la prioridad más alta (jerarquı́a).
En lenguaje C el operador con mayor prioridad es la negación NO (∼).
La jerarquı́a de todos los operadores (aritméticos, relacionales y
lógicos) se muestra a continuación.
Operador
()
∧
∗, /, div, mod
=, <>, <, >, <=, >=
NO
Y
O
Jerarquı́a
(mayor)
(menor)
Sistemas numéricos
Tipos de datos
Operadores y variables
Ejemplos
NO (15 >= 7 ∧ 2) O (43 − 8 ∗ 2 div 4 <> 3 ∗ 2 div 2)
NO (15 >= 7 ∧ 2) O (43 − 8 ∗ 2 div 4 <> 3 ∗ 2 div 2)
NO (15 >= 49) O (43 − 8 ∗ 2 div 4 <> 3 ∗ 2 div 2)
NO FALSO O (43 − 8 ∗ 2 div 4 <> 3 ∗ 2 div 2)
NO FALSO O (43 − 16 div 4 <> 3 ∗ 2 div 2)
NO FALSO O (43 − 4 <> 3 ∗ 2 div 2)
NO FALSO O (43 − 4 <> 6 div 2)
NO FALSO O (43 − 4 <> 3)
NO FALSO O (39 <> 3)
NO FALSO O VERDADERO
VERDADERO O VERDADERO
VERDADERO
Referencias
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Ejemplos
(15 >= 7 ∗ 3 ∧ 2 Y 8 > 3 Y 15 > 6) O NO (7 ∗ 3 < 5 + 12 ∗ 2 div 3 ∧ 2)
(15 >= 7 ∗ 3 ∧ 2 Y 8 > 3 Y 15 > 6) O NO (7 ∗ 3 < 5 + 12 ∗ 2 div 3 ∧ 2)
(15 >= 7 ∗ 9 Y 8 > 3 Y 15 > 6) O NO (7 ∗ 3 < 5 + 12 ∗ 2 div 3 ∧ 2)
(15 >= 63 Y 8 > 3 Y 15 > 6) O NO (7 ∗ 3 < 5 + 12 ∗ 2 div 3 ∧ 2)
(FALSO Y VERDADERO Y VERDADERO) O NO (7∗3 < 5+12∗2 div 3∧2)
(FALSO Y VERDADERO) O NO (7 ∗ 3 < 5 + 12 ∗ 2 div 3 ∧ 2)
FALSO O NO (7 ∗ 3 < 5 + 12 ∗ 2 div 3 ∧ 2)
FALSO O NO 21 < 5 + 24 div 9)
FALSO O NO 21 < 5 + 2)
FALSO O NO (21 < 7)
FALSO O NO FALSO
FALSO O VERDADERO
VERDADERO
Sistemas numéricos
Tipos de datos
Operadores y variables
Ejemplos
NO ((7 ∗ 3 div 2 ∗ 4) > (15/2 ∗ 6 >= 15 ∗ 2/17 = 15))
NO ((21 div 2 ∗ 4) > (15/2 ∗ 6 >= 15 ∗ 2/17 = 15))
NO ((10 ∗ 4) > (15/2 ∗ 6 >= 15 ∗ 2/17 = 15))
NO (40 > (15/2 ∗ 6 >= 15 ∗ 2/17 = 15))
NO (40 > (7,5 ∗ 6 >= 15 ∗ 2/17 = 15))
NO (40 > (7,5 ∗ 6 >= 30/17 = 15))
NO (40 > (45 >= 1,75 = 15))
NO (40 > (VERDADERO = 15))
ERROR
Referencias
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Variables
Definición 3.1 (Variable)
Una variable es una posición de memoria que se referencia mediante un
identificador (nombre de la variable) y que permite almacenar el valor de un
dato que puede cambiar durante la ejecución del programa
Observaciones:
Una variable no es un dato, es una zona de memoria que contiene un dato
que puede variar
Los datos se almacenan en posiciones de memoria que se pueden
referenciar con identificadores en lugar de secuencias de 0 y 1
Definición 3.2 (Declaración e inicialización)
Una declaración es una sentencia que asocia un identificador a un objeto o a
un proceso para poder referirse a ese objeto o proceso por un nombre particular.
Inicializar una variable significa asignarle un valor inicial.
Formato de declaración e inicialización de variables:
tipo Nombre Variable
Nombre Variable = valor
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Variables
Se utilizan para asignar valores o expresionas a una variable.
La asignación es una operación “destructiva”: si la variable tenı́a
asignado un valor previo, éste se sustituye por el nuevo valor asignado.
La sintaxis que utilizaremos para la asignación es la siguiente:
variable
←−
expresión o valor
Por ejemplo, si contador es una variable de tipo entero,
contador
←−
3
el valor almacenado en contador es el número entero 3.
En el siguiente ejemplo considere las variables
I de tipo entero
ACUM de tipo entero
J de tipo entero
REA y SUM de tipo real
CAR de tipo caracter
BAND de tipo booleano
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Variables (ejemplo)
1
I←0
8
BAND ← (8 > 5) Y (15 < 2 ∧ 3)
2
I ← I +1
9
SUM ← ACUM∗5/J∧2
3
4
ACUM ← 0
10
I ← I∗3
J ← 5 ∧ 2 div 3
11
REA ← REA/5
5
CAR ← ’a’
12
BAND ← BAND o (I=J)
6
ACUM ← J div I
13
I ← REA
7
REA ← ACUM/3
14
CAR ← J
#
I
1
2
3
4
5
6
7
8
9
10
11
12
13
14
X0X
X1
X
J
8
ACUM
REA
SUM
CAR
X0X
Xa
X
8
H
2.66
H
X
FALSO
X
X
0.625
X3
X
BAND
0.532
FALSO
ERROR
ERROR
Sistemas numéricos
Tipos de datos
Operadores y variables
Bibliografı́a I
J.W. Brown, D.J. Murdoch
A First Course in Statistical Programming With R
Cambridge University Press, 1th edition , 2008
D. Burton
Elementary Number Theory
McGraw Hill Higher Education, 5th edition, 2002
O. Cairó
Metodologı́a de la programación
Segunda edición. Alfaomega Grupo Editor, S.A., 2005
M.A. Criado
Programación en lenguajes estructurados
Alfaomega Grupo Editor, S.A. de C.V. Primera Edición, 2006
H.P. Langtangen
A Primer on Scientific Programming with Python
Springer, 2011
Referencias
Sistemas numéricos
Tipos de datos
Operadores y variables
Bibliografı́a II
O. Jones, R. Maillardet, A. Robinson
Introduction to Scientific Programming and Simulation Using R
Chapman and Hall/CRC; 1 edition, 2009
D.E. Knuth
The Art of Computer Programming
Volume 1, Fundamental Algorithms
Addison Wesley Longman, 1997
S. Lipschutz
Schaum’s Outline of Essential Computer Mathematics
McGraw-Hill, 1th edition, 1982
Ch.F. Van Loan
Introduction to Scientific Computing
Prentice-Hall, Inc., 1997
C.B. Moler
Numerical Computing with Matlab
SIAM, 2004
Referencias
Sistemas numéricos
Tipos de datos
Operadores y variables
Bibliografı́a III
H.M. Mora Escobar
Introducción a C y a métodos numéricos
Universidad Nacional de Colombia (Sede Bogotá), 2004
A. Quarteroni, F. Salieri
Cálculo cientı́fico con MATLAB y Octave
Springer-Verlag Italia, 2006
S.M. Ross
Simulation
Elsevier Inc., 2006
R. Séroul
Programming for Mathematicians
Springer, 2000
E. Scheinerman
C ++ for Mathematicians: An Introduction for Students and
Professionals
Taylor & Francis Group, LLC, 2006
Referencias
Sistemas numéricos
Tipos de datos
Operadores y variables
Referencias
Bibliografı́a IV
A. Shen
Algorithms and Programming
Springer Undergraduate Texts in Mathematics and Technology, 2010
P. Tymann
Schaum’s Outline of Principles of Computer Science
McGraw-Hill, 1th edition, 2008
Descargar