Clase Programación 13

July 25, 2017 | Author: gmullerb | Category: Bit, Computer Memory, Data Type, Central Processing Unit, Computer Data Storage
Share Embed Donate


Short Description

Descripción: Clase 13 de Programación, Prof. Gonzalo Müller [email protected], Facultad de Ingeniería, UCV...

Description

Programación

Clase 13. Tipos de Datos Prof. Gonzalo Müller [email protected]

Facultad de Ingeniería Universidad Central de Venezuela

Clase Anterior

 Computador: Procesador, Memoria, Disco Duro, Diskettes, Monitor, Teclado, Ratón.

 Sistema Computador: Unidad Central de Proceso, Memoria Principal, Unidades de Entrada, Unidades de Salida, Unidades de Almacenamiento Secundario.

 Memoria  ROM y RAM  Localidades  Tamaño: bit, byte, Dirección.

 Sistemas de Numeración: Binario y Hexadecimal Programación – Prof. Gonzalo Müller – Clase 13 – GM - 2

El Programador

 Un programador es aquel:  Tiene la capacidad para describir la solución a un problema a través de un secuencia de pasos.  Es capaz de transformar esa secuencia de pasos a un lenguaje que la computadora puede efectuar.  Conoce las características, el funcionamiento de la computadora y las tecnología asociadas.  Establece los tipos de datos y diseña las estructuras de datos requeridas a utilizar en la resolución de un problema. Programación – Prof. Gonzalo Müller – Clase 13 – GM - 3

El Programador

 Un programador es aquel:  Tiene la capacidad para describir la solución a un problema a través de un secuencia de pasos.  Es capaz de transformar esa secuencia de pasos a un lenguaje que la computadora puede efectuar.  Conoce las características, el funcionamiento de la computadora y las tecnología asociadas.  Establece los tipos de datos y diseña las estructuras de datos requeridas a utilizar en la resolución de un problema. Programación – Prof. Gonzalo Müller – Clase 13 – GM - 4

El Programador

 Un programador es aquel:  Tiene la capacidad para describir la solución a un problema a través de un secuencia de pasos.  Es capaz de transformar esa secuencia de pasos a un lenguaje que la computadora puede efectuar.  Conoce las características, el funcionamiento de la computadora y las tecnología asociadas.  Establece los tipos de datos y diseña las estructuras de datos requeridas a utilizar en la resolución de un problema. Programación – Prof. Gonzalo Müller – Clase 13 – GM - 5

El Programador

 Un programador es aquel:  Tiene la capacidad para describir la solución a un problema a través de un secuencia de pasos.  Es capaz de transformar esa secuencia de pasos a un lenguaje que la computadora puede efectuar.  Conoce las características, el funcionamiento de la computadora y las tecnología asociadas.  Establece los tipos de datos y diseña las estructuras de datos requeridas a utilizar en la resolución de un problema. Programación – Prof. Gonzalo Müller – Clase 13 – GM - 6

Diseño de Datos

Diseño de Datos

Diseño de Algoritmo

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 7

Datos

 Se almacenan:  Datos.  Programas.

CPU

Unidad AritméticoLógica

Unidad de Control

Unidades de Entrada

Memoria Principal Almacenamiento Secundario Programación – Prof. Gonzalo Müller – Clase 13 – GM - 8

Unidades de Salida

Datos

 Se almacenan:  Datos.  Programas.

CPU

Unidad AritméticoLógica

Unidad de Control

Datos Unidades de Entrada

Datos

Memoria Principal Almacenamiento Secundario Programación – Prof. Gonzalo Müller – Clase 13 – GM - 9

Unidades de Salida

Datos

 Se almacenan:  Datos.  Programas.

Se procesan Datos

CPU

Unidad AritméticoLógica

Unidad de Control

Unidades de Entrada

Memoria Principal Almacenamiento Secundario Programación – Prof. Gonzalo Müller – Clase 13 – GM - 10

Unidades de Salida

Datos

 Se almacenan:  Datos.  Programas. Se leen Datos

Datos

Programa

Datos

CPU

Unidad AritméticoLógica

Unidad de Control

Unidades de Entrada

Memoria Principal Almacenamiento Secundario Programación – Prof. Gonzalo Müller – Clase 13 – GM - 11

Unidades de Salida

Datos

 Se almacenan:  Datos.  Programas.

Datos

Programa

Datos

CPU

Unidad AritméticoLógica

Unidad de Control

Unidades de Entrada

Memoria Principal Almacenamiento Secundario Programación – Prof. Gonzalo Müller – Clase 13 – GM - 12

Se muestran Datos Unidades de Salida

Datos

 Se almacenan:  Datos.  Programas.

CPU

Unidad AritméticoLógica

Unidad de Control

Unidades de Entrada

Se transmiten Datos

Memoria Principal Almacenamiento Secundario Programación – Prof. Gonzalo Müller – Clase 13 – GM - 13

Unidades de Salida

Datos

 Un dato está formado por un conjunto de bytes: 1 Byte

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 14

Datos

 Los datos pueden ser de distinta naturaleza:  Texto  Números  Imágenes  Etc.

130Kg y 65Kg Programación – Prof. Gonzalo Müller – Clase 13 – GM - 15

Datos

 Los datos pueden ser de distinta naturaleza:  Texto  Números  Imágenes  Etc.

Todos almacenados como conjuntos de bytes 130Kg y 65Kg Programación – Prof. Gonzalo Müller – Clase 13 – GM - 16

Datos

 Existen tres tipos de datos básicos ó elementales:  Numéricos.  Carácter.  Lógicos.

 Los Numéricos se subdividen en: 

Enteros.



Reales. JavaScript es un lenguaje donde las variables no estan restringidas a un tipo de dato Programación – Prof. Gonzalo Müller – Clase 13 – GM - 17

Entero Almacenan el valor de un número entero.

123 2567894 976843600287325645  Existen dos tipos de entero: Enteros con signo.  Enteros sin signo. 

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 18

Entero

 Enteros sin signo: son capaces de almacenar solo números enteros no negativos.

0, 1, 2, …, 234, …, 679790,…  Estos se subdividen según el tamaño que ocupan en memoria: 

1 Byte.



2 Byte.



4 Byte.

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 19

Entero

 Enteros sin signo de 1 byte:  1 byte → 8 bits → 256 situaciones  Son capaces de almacenar los primeros 256 enteros no negativos:

0 … 255

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 20

Entero

 Enteros sin signo de 2 byte:  2 bytes → 16 bits → 65536 situaciones  Son capaces de almacenar los primeros 65536 enteros no negativos:

0 … 65535

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 21

Entero

 Enteros sin signo de 4 byte:  4 bytes → 32 bits → 4294967296 situaciones  Son capaces de almacenar los primeros 4294967296 enteros no negativos:

0 … 4294967295

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 22

Entero

 En general, para Enteros sin signo de n bytes: 0 … 28*n – 1

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 23

Entero

 Enteros con signo: son capaces de almacenar número enteros cualesquiera (incluyendo negativos).

…,-34428, …, -567,…,0, …, 234, …, 679790,…

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 24

Entero

 Almacenar el signo requiere de un bit:  un bit 0 establece que el número es positivo.  un bit 1 establece que el número es negativo.

0 … → número ≥ 0 1 … → número < 0 Programación – Prof. Gonzalo Müller – Clase 13 – GM - 25

Entero  El bit de signo se le llama bit más significativo (MSB), ya que es el que se encuentra más a la izquierda, por lo tanto tiene una mayor ponderación en el sistema de numeración.

Utilizar un bit para el signo reduce el número de posibles situaciones a representar con un cadena de bits.

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 26

Entero

 Enteros con signo de 1 byte:  1 byte – 1 bit (de signo) → 7 bits: → 128 negativos. → 128 no negativos.  Son capaces de almacenar:

-128 … 127

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 27

Memoria

Entero

01111111

127

01111110

126





00000001

1

00000000

0

11111111

-1





10000001

-127

10000000

-128

Entero

 Enteros con signo de 2 byte:  2 byte – 1 bit (de signo) → 15 bits: → 32768 negativos. → 32768 no negativos.  Son capaces de almacenar:

-32768 … 32767 Programación – Prof. Gonzalo Müller – Clase 13 – GM - 28

Entero

 Enteros con signo de 4 byte:  4 byte – 1 bit (de signo) → 31 bits: → 2147483648 negativos. → 2147483648 no negativos.  Son capaces de almacenar:

-2147483648 … 2147483647 Programación – Prof. Gonzalo Müller – Clase 13 – GM - 29

Entero

 En general, para Enteros con signo de n bytes: – 28*n – 1 … 28*n – 1 – 1

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 30

Entero Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenará las cantidad de donas vendidas por un vendedor informal en medio día.

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 31

Entero Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenará las cantidad de donas vendidas por un vendedor informal en medio día.  Debe ser Numérica.

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 32

Entero Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenará las cantidad de donas vendidas por un vendedor informal en medio día.  Debe ser Numérica.  Debe ser Entera, ya que se vende las donas enteras.

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 33

Entero Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenará las cantidad de donas vendidas por un vendedor informal en medio día.  Debe ser Numérica.  Debe ser Entera, ya que se vende las donas enteras.  Debe ser Entera sin signo, ya que el vendedor entrega las donas no las recibe (sin considerar productos devueltos por el comprador o hurtos).

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 34

Entero Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenará las cantidad de donas vendidas por un vendedor informal en medio día.  Debe ser Numérica.  Debe ser Entera, ya que se vende las donas enteras.  Debe ser Entera sin signo, ya que el vendedor entrega las donas no las recibe (sin considerar productos devueltos por el comprador o hurtos).  Puede ser de 1 byte, ya que es difícil que un vendedor informal venda más de 255 donas en mediodía. Programación – Prof. Gonzalo Müller – Clase 13 – GM - 35

Entero Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenará las cantidad de donas vendidas por un vendedor informal en medio día.  Debe ser Numérica.  Debe ser Entera, ya que se vende las donas enteras  Debe ser Entera sin signo, ya que el vendedor entrega las donas no las recibe (sin considerar productos devueltos por el comprador o hurtos).  Puede ser de 1 byte, ya que es difícil que un vendedor informal venda más de 255 donas en mediodía.

Entera sin signo de 1 byte Programación – Prof. Gonzalo Müller – Clase 13 – GM - 36

Real Almacena magnitudes formadas por una parte entera y una decimal.

0,00023400890003 786596,40505 -976843,006002873 456721,0  Solo es posible representar un subconjunto finito de los número reales. Programación – Prof. Gonzalo Müller – Clase 13 – GM - 37

Real  También se conoce como datos punto flotante.  Se rige según la norma IEEE 754.  La forma como es almacenado un número real estaba basado en la notación científica:

5.67x1056 5.67 → mantisa 56 → exponente

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 38

Real  Mantisa normalizada: 0.1 ≤ Mantisa normalizada < 1

0.567x1057 0.567 → mantisa normalizada 57→ exponente

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 39

Real  Solo sería necesario almacenar: 567 57

 Existe un ahorro en memoria: 0 . x 10

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 40

Real

 En general:

s

Exponente

Mantisa

n bits

m bits

 La Mantisa es un número binario.  El Exponente es un número entero sin signo.  La Base es 2, no 10:

(-1)Signo x 1.Mantisa x 2 Exponente – Bias Programación – Prof. Gonzalo Müller – Clase 13 – GM - 41

Real

 Real de 4 bytes: s

Exponente

Mantisa

8 bits

23 bits

 En el exponente se puede almacenar: 0 … 255 (1 … 254)  6 cifras significativas.  16777216 puntos en el rango.

 (-1)Signo x 1.Mantisa x 2 Exponente – 127 Programación – Prof. Gonzalo Müller – Clase 13 – GM - 42

Real  El mayor número que se puede representar:

1.11111111...12 x 2 127 3.4028234663852886 x 10 38  En número más pequeño que se puede representar:

1.17549435 x 10 -38  En epsilon entre un número y otro:

1.1920929 x 10 -7

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 43

Real

 Real de 8 bytes:

s

Exponente

Mantisa

11 bits

52 bits

 En el exponente se puede almacenar: 0 … 2047(1 … 2046)  15 cifras significativas.  9007199254740992 puntos en el rango.

 (-1)Signo x 1.Mantisa x 2 Exponente – 1023 Programación – Prof. Gonzalo Müller – Clase 13 – GM - 44

Real  El mayor número que se puede representar:

1.11111111...12 x 2 1023 1.7976931348623158 x 10 308  En número más pequeño que se puede representar:

2.2250738585072014 x 10 -308  En epsilon entre un número y otro:

2.2204460492503131 x 10 -16

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 45

Real Real de 4 Byte 1.1920929 x 10-7

1.17549435 x 10-38

-∞



-3.4028234663852886 x 10 38

0

3.4028234663852886 x 10 38 Dos número consecutivos de subconjunto finito

Real de 8 Byte 2.2204460492503131 x 10-16

2.2250738585072014 x 10-308

-∞



-1.7976931348623158 x 10 308

0

1.7976931348623158 x 10 308 Dos número consecutivos de subconjunto finito

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 46

Real Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenará las cantidad de donas vendidas promedio vendidas por un vendedor informal en medio día por una semana.

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 47

Real Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenará las cantidad de donas vendidas promedio vendidas por un vendedor informal en medio día por una semana.  Debe ser Numérica.

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 48

Real Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenará las cantidad de donas vendidas promedio vendidas por un vendedor informal en medio día por una semana.  Debe ser Numérica.  Debe ser Real, ya que el promedio es un número no necesariamente entero, es decir, puede contener decimales.

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 49

Real Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenará las cantidad de donas vendidas promedio vendidas por un vendedor informal en medio día por una semana.  Debe ser Numérica.  Debe ser Real, ya que el promedio es un número no necesariamente entero, es decir, puede contener decimales.  Puede ser de 4 bytes, ya que este tipo ofrece una precisión de 6 cifras significativas y para el vendedor es necesario a lo sumo 1 cifra. Programación – Prof. Gonzalo Müller – Clase 13 – GM - 50

Real Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenará las cantidad de donas vendidas promedio vendidas por un vendedor informal en medio día por una semana.  Debe ser Numérica.  Debe ser Real, ya que el promedio es un número no necesariamente entero, es decir, puede contener decimales.  Puede ser de 4 bytes, ya que este tipo ofrece una precisión de 6 cifras significativas y para el vendedor es necesario a lo sumo 1 cifra.

Real de 4 bytes Programación – Prof. Gonzalo Müller – Clase 13 – GM - 51

Real  Casos especiales:: Exponente Mantisa Representación Todos 0 != 0 Números subnormales Todos 0

=0

Cero (con signo)

Todos 1

=0

Infinito (con signo)

Todos 1

!= 0

NaN(Not a Number)

Subnormales: (-1)S x 0.Mantisa x 2 Exponente – Bias Not a Number : s

0: Operación No Valida 1: Indeterminado

Los números subnormales llena el vacio formado alrededor del 0 Programación – Prof. Gonzalo Müller – Clase 13 – GM - 52

Lógico Almacena Verdadero o Falso.  Normalmente ocupa el menor tamaño posible, es decir, 1 byte.  Si bien es cierto en un byte tenemos 256 posibilidades: 

00000000 → Falso.



Cualquier otro valor es Verdadero.

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 53

Lógico Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenará si un vendedor informal vendió donas de chocolate en medio día.

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 54

Lógico Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenará si un vendedor informal vendió donas de chocolate en medio día.  Debe ser Lógica, ya que se necesita almacenar dos situaciones, si vendió o no vendió, verdadero si vendió y falso de lo contrario.

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 55

Lógico Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenará si un vendedor informal vendió donas de chocolate en medio día.  Debe ser Lógica, ya que se necesita almacenar dos situaciones, si vendió o no vendió, verdadero si vendió y falso de lo contrario.

Lógica

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 56

Carácter Contiene una unidad de información de texto o alfanumérica.  Caracteres Alfabéticos: 

Mayúsculas: ‘A’, ‘B’, …



Minúsculas: ‘a’, ‘b’, …

 Caracteres Numéricos: ‘0’, ‘1’, …  Caracteres especiales:’#’, ‘,’, ‘>’, ‘{‘, …

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 57

Carácter

 Un carácter se almacena en un byte de memoria.

 En un byte → 8 bits → 28 = 256 posibilidades:

256 Caracteres Programación – Prof. Gonzalo Müller – Clase 13 – GM - 58

Carácter

 Cada carácter almacenado corresponde a un número entero establecido en una tabla de conversión definida por la ANSI (American National Standard Institute) llamada tabla ASCII (American Standard Code for Interchange of Information)

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 59

Carácter

Memoria (Binario) 00100000 00111111 01000111 01100111 10000001 10100100

Representación Entera 32 63 71 103 129 164 Programación – Prof. Gonzalo Müller – Clase 13 – GM - 60

Carácter

? G g ü ñ

Carácter

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 61

Carácter

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 62

Carácter

 Los primeros 32 caracteres son caracteres no imprimibles, los cuales son fundamentalmente para ejecutar funciones especiales.

 Los restantes si representan caracteres de texto: Entero 48 65 97 129 171

Hexadecimal 30 41 61 81 AB

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 63

Carácter 0 A a ü ½

Tipo de datos

 Reflexión:  Tipo de dato a seleccionar.  Operaciones en diferentes tipos.  Errores en truncamiento o redondeo. 

Se tiene un subconjunto finito de los número reales.

 Igualdades con Reales. 

Acumulación redondeo.

de

errores

de

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 64

truncamiento

o

Tipo de datos

 Reflexión:  Errores en truncamiento o redondeo.  Igualdades con Reales. Ejemplo: c = 0.5 – 0.1 – 0.1 - 0.1 – 0.1 – 0.1

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 65

Tipo de datos

 Reflexión:  Errores en truncamiento o redondeo.  Igualdades con Reales. Ejemplo: c = 0.5 – 0.1 – 0.1 - 0.1 – 0.1 – 0.1

Debería ser 0! ? Programación – Prof. Gonzalo Müller – Clase 13 – GM - 66

Variables

 Lista de Variables: Una vez desarrollado el algoritmo, se debe establecer los tipos de las variables a utilizar. Es útil para la posterior implementación en el lenguaje construir una lista con todas las variables utilizadas en el algoritmo y sus respectivos tipos. Variable variable1:tipo1 … variableN:tipoN Programación – Prof. Gonzalo Müller – Clase 13 – GM - 67

Variables Ejemplo: Construir un algoritmo para promediar 2 números. Fase 1: Diseño y Análisis: DES, DRE ó DF y LV.

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 68

Ejercicio Dados los siguientes problemas, construir el DES y LV (al menos entrada y salida) y justificar: a) Contar cantidad de números pares en un conjunto de 260 números. b) Contar el número de votos. c) Promediar 25 notas enteras de un curso. Presentar en la salida: d) La opción seleccionada entre ‘1’, ‘2’ y ‘3’. e) Si una persona es alta o baja. f) La nacionalidad de una persona. g) El número de hijos de una persona.

Programación – Prof. Gonzalo Müller – Clase 13 – GM - 69

Resumen



Tipos de Datos:  Numéricos: 



Entero: 

Sin Signo: 1, 2, 4 y 8 bytes.



Con Signo: 1, 2, 4 y 8 bytes.

Real: 

4 bytes.



8 bytes.

 Lógicos.  Carácter. Programación – Prof. Gonzalo Müller – Clase 13 – GM - 70

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF