La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

U2 Tipos de datos, referenciación y errores 1. Datos problema simple enteroreal carácter booleano Ingeniero = Oreja+catalejo modelo ordenador solución.

Presentaciones similares


Presentación del tema: "U2 Tipos de datos, referenciación y errores 1. Datos problema simple enteroreal carácter booleano Ingeniero = Oreja+catalejo modelo ordenador solución."— Transcripción de la presentación:

1 U2 Tipos de datos, referenciación y errores 1

2 Datos problema simple enteroreal carácter booleano Ingeniero = Oreja+catalejo modelo ordenador solución Subprogramación procedimiento asignación/ referencia barajar complejidad Llamada procedimiento Proceso while for Do while hacer if c: bloque1 [ else: bloque2] n bucles 0 o 1 alternativas 1 o n 0 o n iterativo 1 n conocido recursivo n desconocido case gestión excepciones función 2 Disponible en todos los lenguajes Frecuente en otros lenguajes y no disponible en Python Disponible en Python, no frecuente en otros lenguajes compuesto arreglo Lista/tupla Estructura tuplaNombre /record/clase fichero cadena

3 Datos problema compuesto arreglo Lista/tupla Estructura tuplaNombre /record/clase fichero cadena Ingeniero = Oreja+catalejo modelo ordenador solución Subprogramación procedimiento asignación/ referencia barajar complejidad Llamada procedimiento Proceso while for Do while hacer if c: bloque1 [ else: bloque2] n bucles 0 o 1 alternativas 1 o n 0 o n iterativo 1 n conocido recursivo n desconocido case gestión excepciones función 3 simple enteroreal carácter booleano

4 ¿Cómo almacena la información el ordenador? CU ALU RAM PI PA  bit Se almacena en: Secuencia de bits De tamaño concreto CODIGO  Dominio NO INFINITO Enteros: complementario a 2 Reales: IEEE 754 Char en Python UTF8=16 bits 0 0 0  0  0 0 1  1   1 1 0  6   1 1 1  7   1 0 1  5  1 0 0  4    0 1 0  2 0 1 1  3  Naturales 4

5 Tipo de datos simple {dominio} Objeto dato definido sobre un dominio, y sus operaciones tipoobjetodominiooperaciones mes7={1,2,3,4….12}siguiente, anterior, número_días diaSemanamartes{lunes,…domingo}siguiente, anterior, ¿laborable? sueldo1275,43salarioMinimo<=s<=80.000+,-,*,%....¿cobrado?... ComponenteColor1450<=componenteColor<=255+,-,maximizar, anular… {dominio} Tipo de datos compuesto Conjunto de objetos dato, potencialmente de distinto tipo con sus operaciones Ej: fecha, aula, color(RGB) Cada elemento conserva sus operaciones 5

6 Tipos básicos en el ordenador 6 Datos compuestosimple enteroreal carácter booleano Función type Operaciones Promoción implicita Cambio explícito de tipo int, float, string Dominio: 100/3.0; 1.e+16+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1 Operadores de comparación Concatenación de operaciones 2+3+4 ; 2<3<5 cadena

7 7 Tipos básicos: Precedencia numéricos PrecedenciaOperaciónResultado 1 -xCambio de signo 1 +xOperador identidad (no hace nada) 2 x + ySuma x e y 2 x - yResta de x y 3 x * yMultiplica x por y 3 x / yDivisión real 3 x // yDivisión entera 3 x % yResto de la división entera de x/y 4 x ** yx elevado a y3*2**3+4=28 5 (Expresión)Paréntesis: fuerza el orden ejecución(2+3)*5=25 2+3+5=10 ; 2+3*5= ? OJO! 6/2*3 != 6/2/3

8 8 Tipos básicos: Precedencia booleanos PrecedenciaOperaciónNombreResultado 1x or yDisyunciónTrue solo si alguno de los operandos es True 2x and yConjunciónTrue solo si ambos operandos son true 3not xNegaciónTrue si x era False y viceversa Evaluación perezosa: V or cualquierCosa /F and cualquierCosa

9 Acercamiento al humano: 9 Hardware Lenguaje Máquina Lenguaje Ensamblador Lenguajes procedimentales C, Fortran, COBOL Lenguajes Orientados a objetos Java,C++,Python Lenguajes declarativos Haskell, ML, Prolog Razonamiento humano ??? Ya desde ensamblador: a) nombre simbólico a las posiciones de memoria  variable+constante literal b) Nombre simbólico s las macros (secuencia de instrucciones)  subprogramación identificadores

10 Asignación versus Referenciación otros lenguajes Python 10 2 1 2 1 a b a =b 2 1 a a =2 b=1 a =2 b=1 a =b +1 2 1 2 1 a =b 1 Se ha perdido a =b +1 2 1 a b b Asignación produce una copia  son posiciones independientes Referenciación es un pseudónimo  son la misma posición Pero… parece que llegamos a lo mismo.

11 Implicaciones: a)Piensa en un “dato compuesto”, por ejemplo, y que se pueda modificar uno de sus componentes sin re- asignar/re-referenciar el “dato compuesto” b b = [1,2,3,4] 1234 b a =b a 1234 a [1]=8 b a 1834 b = [1,2,3,4] 12341234 12341234 a =b 12341234 12341234 18341834 a [1]=8 Asignación : son posiciones independientes  no afecta a b Referenciación: son 2 nombres para la misma posición  b[1]=8  efecto lateral 11 Los tipos de datos compuestos, para los que Python da servicio de modificar elementos individuales, sin re-referenciar el dato completo, les llama mutables. Los tipos que sólo pueden cambiar su valor con referenciación los llama inmutables Asignación versus Referenciación otros lenguajes Python

12 12 Implicaciones: b) intercambiar los valores de las variables 2 1 a b 2 1 b a a,b=b,a ¿algoritmo? Referenciación: muy fácil Asignación: Escribe el algoritmo, piénsalo con vasos Asignación versus Referenciación otros lenguajes Python

13 Expresión Definiciones por intensión/extensión 13


Descargar ppt "U2 Tipos de datos, referenciación y errores 1. Datos problema simple enteroreal carácter booleano Ingeniero = Oreja+catalejo modelo ordenador solución."

Presentaciones similares


Anuncios Google