presentación de powerpoint - fcfm.buap.mx · dato • es el conjunto de representaciones...

21
4. DATOS Programación I

Upload: phamdan

Post on 08-Dec-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

4. DATOSProgramación I

Page 2: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

Los datos manejados por una computadora pueden ser entendidos de dos maneras distintas:

• Desde el punto de vista físico

• tiene que ver con el consumo de áreas de almacenamiento que ocupan (bytes que ocupan en memoria)

• Desde el punto de vista de relevancia

• lo que importa es el significado y el valor que el usuario les otorga

Fuente: Ramírez (2007)

Page 3: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

Dato

• Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado más allá del que tienen los símbolos que componen a dicho dato.

Información

• Es el conjunto de datos que en determinada cantidad y forma aumenta el conocimiento o reduce la incertidumbre respecto a un sujeto, evento o circunstancia. La información sólo podrá ser considerada como tal si se tiene la capacidad de reconocerla.

Conocimiento

• Es la información cuando se tiene la capacidad para usarla en actividades del plano real y limitado. Tiene naturaleza práctica.

Fuente: Ramírez (2007)

Entendidos desde el punto de vista de relevancia…

Page 4: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

Acciones que es posible realizar con los datos:

• Recopilación

• Procesamiento

• Generación

• Divulgación

Fuente: Ramírez (2007)

Entendidos desde el punto de vista de relevancia…

Page 5: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

En términos computacionales, los valores que pueden ser manejados tienen la siguiente:

Nat

ura

leza

Numéricos

Enteros

Reales

ComplejosAlfanuméricos

Fechas

Nulos

Booleanos

Entendidos desde el punto de vista de relevancia…

Fuente: Ramírez (2007)

Page 6: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

Propiedades de los datos

• DominioEs el conjunto de valores válidos para un dato. A la cantidad de valores permitidos en un dominio se le llama amplitud de dominio.

• TipoEs un dominio nominado de datos que permite el almacenamiento de una determinada naturaleza de dato, atendiendo un grado de exactitud específico, causando un consumo determinado de almacenamiento.

• ValorEs la expresión almacenada como dato en un momento determinado.

Fuente: Ramírez (2007)

Entendidos desde el punto de vista de relevancia…

Page 7: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

Datos en el lenguaje C

Tip

os

de

dat

os

sim

ple

sNuméricos

Enteros

(punto o coma fija)

Con signo

Sin signo

Reales (punto o coma flotante)

Precisión simple

Precisión doble

Caracter

Nulos

Entendidos desde el punto de vista de relevancia…

Page 8: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

Datos en el lenguaje C

Tip

os

de

dat

os

estr

uct

ura

do

s o

der

ivad

os

de

los

fun

dam

enta

les Arreglos

Cadenas

Uniones

Registros o estructuras

Punteros

Funciones

Entendidos desde el punto de vista de relevancia…

Fuente: Ceballos Sierra (1995)

Page 9: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

Tipos de datos simples en el lenguaje CPalabras reservadas para declarar variables de tipo entero con variantes

Cómo se representan en memoria(depende del compilador usado y el sistema operativo)

Dominio o rango del tipo de dato

Formatoprintf y scanf

shortshort intsigned shortsigned short int

2 bytes = 16 bitsEl dominio se calcula usandocomplemento a 2:[-2n-1, 2n-1 - 1], n número de bits

[-32 768, 32 767] %hd%hi

unsigned shortunsigned short int

2 bytes = 16 bitsEl dominio se calcula usandobinario puro o sin signo: [0, 2n - 1]

[0, 65 535] %hu

int, signed, signed int 4 bytes = 32 bits [-2 147 483 648, 2 147 483 647]

%i%d

unsigned, unsigned int 4 bytes = 32 bits [0, 4 294 967 295] %u

longlong intsigned longsigned long int

4 bytes = 32 bits8 bytes = 64 bits (GNU/Linux)

[-2 147 483 648, 2 147 483 647][-9223372036854775808,9223372036854775807]

%ld

unsigned longunsigned long int

4 bytes = 32 bits8 bytes = 64 bits (GNU/Linux)

[0, 4 294 967 295][0, 18446744073709551615]

%lu

Entendidos desde el punto de vista físico…

Page 10: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

Continuación…

Palabras reservadas para declarar variables de tipo entero con variantes

Cómo se representan en memoria(si se usa el compilador C99)

Dominio o rango del tipo de dato Formatoprintf y scanf

long longlong long intsigned long longsigned long long int

8 bytes = 64 bits [-9 223 372 036 854 775 808,9 223 372 036 854 775 807]

%lld%I64d%I64u(últimos 2solo para windows)

unsigned long longunsigned long long int

8 bytes = 64 bits [0,18 446 744 073 709 551 615]

%llu

En general se tiene el tipo de dato int pero se forman distintos dominios con los modificadores:

short, signed, unsigned y long

Entendidos desde el punto de vista físico…

Page 11: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

Continuación…Palabras reservadas para declarar variables de tipo real

Cómo se representan en memoria(depende del compilador usado y el sistema operativo)

Dominio o rango del tipo de dato Formatoprintf y scanf

float 4 bytes = 32 bits

El dominio se calcula usandonotación normalizada (conceptos de mantisa, fracción, exponente)

6 a 7 dígitos significativos

[-3.402823e+38, -1.175494e-38] U 0 U [1.175494e-38, 3.402823e+38]

%f%e%E

double 8 bytes = 64 bits

15 a 16 dígitos significativos

[-1.79793e+308, -2.225074e-308] U 0 U [2.225074e-308, 1.797693e+308]

%f, %e%E%lf (scanf)

long double 12 bytes = 96 bits16 bytes = 128 bits (GNU/Linux)

[-1.189731e+4932, -3.362103e-4932] U 0 U [3.362103e-4932,1.89731e+4932]

%Lf%Le%Lg

Entendidos desde el punto de vista físico…

Page 12: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

Continuación…

Palabras reservadas para declarar variables de tipo caracter

Cómo se representan en memoria(depende del compilador usado y el sistema operativo)

Dominio o rango del tipo de dato Formatoprintf y scanf

charsigned char

1 bytes = 8 bits

El dominio se calcula usandocomplemento a 2:[-2n-1, 2n-1 - 1], n número de bits

[-128 , 127]Cada número entero representa o codifica a un único caracter

%c

unsigned char 1 bytes = 8 bits

El dominio se calcula usandobinario puro o sin signo: [0, 2n - 1]

[0, 255]

Cada número entero representa o codifica a un único caracter

%c

Entendidos desde el punto de vista físico…

Fuente: Ceballos Sierra(1995)

Page 13: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

De acuerdo a lo anterior, los errores que pueden ocurrir con losvalores y los tipos de datos son:

• De dominio, cuando el valor está fuera del dominio del tipo

• Overflow o desbordamiento, el valor es demasiado grande para ser representado

• Underflow, el valor es demasiado pequeño para serrepresentado

• Sign, el valor no está permitido para el tipo de dato

Fuente: Ceballos Sierra(1995)

Page 14: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

Conversión implícita de tipos

Cuando los operandos que intervienen en una operación son de tipos diferentes, antes de realizar la operación especificada, automáticamente el compilador convierte o promueve los tipos de los valores a un tipo en común (conversión estándar) de acuerdo a las siguientes reglas, las cuales se aplican en el orden expuesto para cada operación binaria perteneciente a una expresión, siguiendo el orden de evaluación (orden de prioridad):

Fuente: Ceballos Sierra (1995)

Page 15: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

1. Si un operando es de tipo long double, el otro operando es convertido a tipo long double.

2. Si un operando es de tipo double, el otro operando es convertido a tipo double.

3. Si un operando es de tipo float, el otro operando es convertido a tipo float.

4. Un char o un short, con o sin signo, se convertirán a un int, si el tipo int puede representar todos los valores del tipo original, o a unsignedint en caso contrario. Generalmente los caracteres se convierten a enteros con extesión de signo.

5. Si un operando es de tipo unsigned long, el otro operando es convertido a unsigned long.

6. Si un operando es de tipo long, el otro operando es convertido a tipo long.

7. Si un operando es de tipo unsigned int, el otro operando es convertido a tipo unsigned int.

Page 16: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

En resumen:

• Los operandos que intervienen en una determinada operación son convertidos al tipo del operando de precisión más alta.

• Las constantes reales son de tipo double por defecto.

• Una expresión booleana da como resultado un 1 si es verdadera o un 0 si es falsa.

• En una asignación, el valor de la parte derecha es convertido al tipo de la variable de la izquierda , según las siguientes reglas:

• Los reales se convierten a enteros truncando la parte fraccionaria

• Un double pasa a float redondeando y perdiendo precisión si el valor double no puede ser representado exactamente como float

Fuente: Ceballos Sierra (1995)

Page 17: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

Conversión explícita de tipos

Se puede realizar una conversión explícita mediante cast o casting

Sintáxis:

(nombre del tipo) expresión

Ejemplo:

sqrt( (double) n+2 )

La expresión es convertida al tipo especificado si esa conversión estápermitida, en caso contrario se obtendrá un error.

En lo posible es mejor no utilizarla porque puede producir resultadosinesperados

Fuente: Ceballos Sierra (1995)

Page 18: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

Ejemplos

long a;

unsigned char b;

int c, f;

float d;

f = a + b * c / d;

• 1. Orden de prioridad: *, /, +

• El valor de b se convierte al tipo int, a esto se le conoce como conversion ensanchante (menos a más precisión)

• El resultado tipo int de la multiplicaciónse convierte a float y el resultado de la división es tipo float

• El valor de a se convierte a float

• El resultado tipo float de la suma se convierte al tipo int para asignar, a estose le conoce como conversiónestrechante (de más a menos precisión)

Page 19: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

float f;

f = 3.0 / 7.0;

if ( f == 3.0/7.0) printf (“Iguales”);

else printf (“Diferentes”);

• 3.0 y 7.0 son constantes literales y pordefecto son de tipo double

• El resultado de la división es del tipodouble pero se convierte a float (conversión estrechante)

• EL mismo valor double es comparadocon con el de float y no son iguales

• Solución: double num;

• Solución: if (f==3.0f/3.0f)

Fuente: Jiménez Millán (2013)

Page 20: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

Tener en cuenta que, en las conversiones pueden ocurrir uno de dos errores:

PLOSS, pérdida parcial de significaciónTLOSS, pérdida total de significación

Page 21: Presentación de PowerPoint - fcfm.buap.mx · Dato • Es el conjunto de representaciones simbólicas no significativas, dado que no se tiene la capacidad de reconocerles un significado

Referencias

• Ceballos Sierra, F. J. (1995). Curso de programación C/C++. Madrid: RA-MA.• Jiménez Millán, A. (2013). Curso de C++ (2.2.5 Conversiones estándar). Recuperado

de www.zator.com/Cpp• Ramírez, F. (2007). Introducción a la programación. Algoritmos y su implementación

en Visual Basic. NET, C#, y C++ (2a. ed.). México: Alfaomega.