Hasta ahora: los tipos de datos Enteros (int). Punto flotante (float). Cadenas (str). Booleanos (verdadero o falso)

Documentos relacionados
Cadenas. Listas. Matrices.

Secuencias en Python. Introducción a la Computación Clase 11 Patricia Borensztejn

Un calculadora avanzada... y algo más!

Parte de Algoritmos, de la asignatura de Programación Máster de Bioinformática Cadenas y expresiones regulares

Ficha de Aprendizaje N 13

La función CONCATENAR

Arreglos, colecciones

Programación Web Tema 3.2 Java Script Estructura del Lenguaje. Ramón Alcarria ETSI en Topografía, Geodesia y Cartografía - UPM

06 SESIÓN ARRAYS UNIDIMENSIONALES (VECTORES) ARRAYS BIDIMENSIONALES (MATRICES) MARTES 15 Y JUEVES 10 DE DICIEMBRE DE 2009 SESIÓN

III. Generación de Código orientado a objetos

UNIVERSIDAD DE ALCALÁ

Datos Elementales y formato de un programa en Java

Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

Arreglos. Juan Pablo Cobá Juárez Pegueros Algoritmos y Programación Básica Bioingeniería Médica Facultad de Medicina 2015

TEMA 7. ARRAYS (LISTAS Y TABLAS).

UNIVERSIDAD MODULAR ABIERTA FACULTAD DE CIENCIAS ECONOMICAS

2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIFICADORES COMO LOCALIDADES DE MEMORIA

Informática Ingeniería en Electrónica y Automática Industrial

INTRODUCIR FORMULAS EN EXCEL

Tipos de Datos de python (2ª parte):

Cadenas y Caracteres. Universidad Católica de Honduras Nuestra Señora Reina de la Paz. Asignatura. Programación Científica. Tema de Exposición

Programación. Test Autoevaluación Tema 3

Algebra de Matrices 1

FORMULAS Y FUNCIONES CON EXCEL

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

Gráficos con Funciones y Matrices

Retículos y Álgebras de Boole

FUNCIONES EN EXCEL III

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Representación de la información

Estructuras de control: Las variables: Fuertemente tipado: Tipado dinámico: Variables booleanas: Qué son las estructuras de control?

NOCIONES BASICAS DE Miguel Iván Bobadilla

Ejercicio 1 Funciones de SQL

4. Operadores Operador asignación

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Autoestudio 2: Variables y Operadores

Introducción a Big Data con Python. Programación en Python. Tipos básicos y colecciones

Variables, expresiones y sentencias

M a tl a b. Oriol Roca ARREGLOS EN MATLAB.

FUNDAMENTOS MATEMÁTICOS (Grado en Ingeniería Informática) Práctica 8. MATRICES

Fundamentos de programación C++

Informática Lección 5. Arreglos (vectores) Curso Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas.

Tipos de Datos de python (1ª parte):

MANUAL DE RUBY (PARTE II) Luis José Sánchez González

Es un lenguaje multiplataforma, ya que no solo se usa en Windows, sino que también se puede usar en Linux, MAC, etc.

Estructuras y clases. Dept. Ciencias de la Computación e I.A. Universidad de Granada

Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java

Matrices. Observación: Es usual designar una matriz por letras mayúsculas: A, B, C,... 3 B =

Introducción a la programación. Proyecto de Robótica Educativa

Tipos paramétricos y recursivos

Informática General Cátedra: Valeria Drelichman Pedro Paleo Leonardo Nadel Norma Morales

Tema 18. Vectores o Tablas. Diego Gutiérrez

Fundamentos de programación JAVA

Estructura de datos y Programación

Tema: CREACIÓN DE FORMULAS Y FUNCIONES EN MICROSOFT EXCEL 2013.

Un identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). No puede contener operadores como + - * /

Informática I para Bachillerato

Datos y tipos de datos

Estructuras Básicas de Algoritmos y de Datos III. Vectores

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

Consulta Avanzado. Objetivo. Contenido. Consulta avanzado. Sesión 1. Aprender a usar las funciones consultav, consulta H, Si y es Error.

JAVASCRIPT Mª ISABEL TORRES CARAZO

Guía básica de programación en C++ estructurado. Manejo básico de la parte estructurada de C++

Estructuras de datos: vectores en C. Clase 7 y 8 Introducción a la Computación Patricia Borensztejn

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Introducción a Python. Cecilia Manzino

Objetivos del curso sobre fundamentos de Java - Examen Java Foundations

Programación Funcional Haskell Clase 21

Conocimientos previos

Objetivos del curso sobre fundamentos de Java

INFOTECH MÓDULO 3 CURSO. Sintaxis del lenguaje de programación JAVA. Lógica y Lenguaje de Programación

CAPITULO 2: LENGUAJES

Programación en java. Estructuras algorítmicas

Maribel Martínez y Ginés Ciudad-Real Fichas para mejorar la atención MATRIZ DE LETRAS

Tipos De Datos. Numéricos. Alfanuméricos (string) Arreglos (Vectores, Matrices) Estructurados Registros (Def. Por el Archivos Usuario) Apuntadores

Programación Tema 3: Tipos y expresiones simples. Programación DIT-UPM

FUNCIONES DE TIPO TEXTO EXCEL Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

Es toda la información que utiliza el computador. Según sea la información que guardemos en los datos, se clasifican en los siguientes tipos:

PROGRAMACIÓN ESTRUCTURADA

Razón de ser Computadora Programa Programador Análisis y solución de problemas (Metodología) Algoritmo Diagrama de flujo

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

GUIA BÁSICA DEL PROCEDIMIENTO MATRIX END MATRIX

LIBRO BASICO DE MICROSOFT EXCEL ) Usted puede crear la URL (una carpeta para guardar el libro).

JavaScript: Operadores

Algoritmos y estructuras de datos

Introducción a c++ Introducción a la programación EIS Informática III

Operadores. Además se pueden emplear en sentencias SET.

EJERCICIOS PARA EMPEZAR CON PHP

Informática General 2018 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

PROGRAMACIÓN EN PYTHON 3. Clara Higuera Laboratorio Integrado de Biofísica y Bioinformática Nov-2015

Introducción a Python Qué es Python?

Programación en Python

Informática. ETSIGCT curso 2017/2018 Boletín 3 de prácticas J. Javier Ibáñez González

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

UNIDAD IV ESTRUCTURA DE DATOS ESTÁTICAS MATRICES

Los tipos de datos que con mayor frecuencia se utilizan en Informática son:

Algoritmos y Programación I

Transcripción:

Datos Estructurados

Hasta ahora: los tipos de datos Enteros (int). Punto flotante (float). Cadenas (str). Booleanos (verdadero o falso) Ahora agregamos: Sucesión de caracteres. Sucesión de elementos. En el libro: Capítulo 5 (Pags. 145 a 209)

Ejemplos: Hola Juan Pérez 45.55 Operadores: Concatenación (+): >>> Juan + + Pérez Juan Pérez >>> nombre= Juan >>> apellido= Pérez >>> nombre_completo=nombre+ +apellido Autoincremento (+=): >>> nombre_completo= Juan >>> nombre_completo+= Pérez >>> nombre_completo Juan Pérez Repetición (*): >>> SI *5 SISISISISI Formateado (%): >>> print Perímetro %2.4f % 55.124512 55.1245 U1 Datos Estructurados Informática III - ISM -

Funciones: Conversión a entero: >>>int( 5 ) 5 Conversión a flotante: >>>float( 5.5 ) 5.5 Conversión a cadena: >>> str(44) 44 Convertir a Código ASCII >>> ord( a ) 97 Convertir de ASCII a carácter: >>> chr(97) a Métodos: Convertir a mayúsculas: >>> juan.upper() JUAN Convertir a minúscula: >>> JUAN.lower() juan Convertir a título: >>> juan m. pérez.title() Juan M. Pérez

Caracteres especiales: Carácter de escape o «contrabarra» (\) (alt+92): >>> a= una linea\notra linea >>> print a una linea otra linea

Caracteres especiales: Ejemplos: >>> print uno\tdos\ttres uno dos tres >>> print a\\b a\b >>> print Francia \ 98 Francia 98

Las cadenas no son una variable común y corriente, sino que esta formada por una sucesión de elementos individuales: los caracteres (ya sean letras, números, símbolos, espacios, etc.). Estos caracteres tienen una posición determinada por un índice (o sea un número entero) que sirve para ordenarlos e identificarlos individualmente. Los índices comienzan con el número 0 para el primer carácter y continúan con el 1 para el segundo, el 2 para el tercero y así sucesivamente. También se puede indexar una cadena de atrás para adelante, comenzando con el índice -1 para el último carácter, -2 para el anteúltimo, y así sucesivamente U1 Datos Estructurados Informática III - ISM -

Para poder individualizar un carácter dentro de una cadena, se usa el identificador de la cadena, acompañado por el operador [] y dentro de [], se ingresa el valor entero que identifica el índice del carácter buscado: U1 Datos Estructurados Informática III - ISM -

Longitud de cadena Se puede obtener el largo de una cadena utilizando la función len(cadena), que devuelve un número entero con la longitud de la cadena. Aclaración: «len» es el apócope de «length» que en inglés significa «longitud» U1 Datos Estructurados Informática III - ISM -

Cadena vacía En muchos casos es útil tener un objeto cadena vacío, o sea, sin caracteres. >>> cadena = >>> len(cadena) 0 Una cadena vacía tiene 0 cantidad de caracteres Este objeto no ocupa lugar en memoria, pero queda definido para uso posterior. Tiene el sentido análogo de una variable contador, que se inicializa en 0, y luego se usa para contar la cantidad de pasos realizados en un bucle. U1 Datos Estructurados Informática III - ISM -

Recorrer una cadena Por carácter Por índice

Extraer subcadena: El operador corchete [] también permite extraer parte de la cadena. Para ello utiliza el «operador de corte» o sea, los dos puntos «:». La sintaxis para obtener una subcadena es la siguiente: >>> cadena[i:j] Donde i es el número de la posición del primer carácter que queremos extraer y j es la posición +1 del último carácter que deseamos extraer.

Extraer subcadena U1 Datos Estructurados Informática III - ISM -

En Python las cadenas son inmutables, es decir, no se puede modificar un elemento de la misma >>> cadena= Hola, mundo >>> cadena[2] = L ERROR! Si deseamos modificar un objeto de tipo cadena debemos, en realidad, crear un nuevo objeto cadena a partir de la cadena a modificar >>> cadena=cadena[:1]+ L +cadena[3:]

Cómo se representa una cadena en memoria En el caso de las variables flotantes o enteras, las mismas apuntan a un valor en una dirección en memoria, por ejemplo: >>> a = 2 >>> b = 3.25 Decimos que a apunta a 2 y que b apunta a 3.25 Para los objetos cadena, la referencia es distinta: >>> c = Una cadena En cada celda de memoria se pueden almacenar un escalar (por ejemplo, los identificadores a y b pueden representarse directamente en memoria), pero las cadenas poseen N cantidad de escalares.

Cómo se representa una cadena en memoria Para subsanar esto, Python referencia el nombre del identificador con una posición en memoria, donde empiezan a guardarse los caracteres que forman la cadena: Decimos que a apunta a la posición en memoria 2100 Como la dirección en memoria (2100) es un escalar, lo podemos almacenar como referencia del identificador cadena. Entonces la variable a del tipo cadena, apunta a la posición en memoria donde empiezan los datos de la cadena.

Cómo se representa una cadena en memoria Este tipo de referencia es útil porque nos permite ahorrar memoria, por ejemplo: >>> a= Hola >>> b= a Tenemos que a apunta a una posición en memoria y que b apunta a la misma posición, por lo tanto no tenemos que almacenar nuevos datos en memoria para b, sino referenciar la posición de a: Decimos que a y b apuntan a la posición en memoria 2100

Secuencias de todo tipo de variables Valores entre corchetes [] y separados por coma. Ejemplos: >>> numeros = [1,2,3] >>> nombres = [ Mario, Jorge, María ] >>> expresiones = [1/6, 5+5, 1] >>> lista_vacia = [] Acceso: >>> numeros[0] 1 >>> nombres [-2] Jorge >>> expresiones [len(expresiones)-1] 1 >>> lista_vacia []

Operadores (muy similar a Cadenas) Concatenación (+) Repetición (*) Sublista ([i:j]) Concatenación Repetición Sublista

Operadores de comparación Igualdad (==) Desigualdad (!=)

Recorrer una lista Por elemento Por índice

Agregar elementos a listas >>> append(elemento) ventaja, es mejor que concatenar con (+ o +=)

Editar elementos de una lista Eliminar elemento de una lista

De Cadena a Lista función split De Lista a Cadena función join

Pertenencia de un elemento a una lista Se necesita buscar un elemento dentro de una lista, para ello se ingresa el mismo y se recorre la lista hasta encontrarlo por comparación:

Pertenencia de un elemento a una lista Por qué este código no funciona? U1 Datos Estructurados Informática III - ISM -

Listas como vectores matemáticos Si los elementos de una lista son números reales, podemos imitar el comportamiento y las operaciones de los vectores matemáticos en el espacio R N. Por ejemplo, para R 3: Ԧv = v x v y vz, para v x. v x y v x R v = [vx,vy,vz] U1 Datos Estructurados Informática III - ISM -

Listas como vectores matemáticos Suma de vectores. Ԧv + w = v x v y vz + w x w y w z = v x + w x v y + w y v z + w z v = [vx,vy,vz] w = [wx,wy,wz] suma = [vx+wx,vy+wy, vz+wz] U1 Datos Estructurados Informática III - ISM -

Listas como vectores matemáticos Suma de vectores en RN: Ԧv + w = v 1 v 2 v 3 + w 1 w 2 w 3 = v 1 + w 1 v 2 + w 2 v 3 + w 3 Necesitaremos usar bucles para completar y sumar los vectores: N = int(raw_input( Ingrese cantidad de componentes )) v = [] #vectores vacíos, se completan dentro del bucle w = [] for i in range(n): #Completo vector v: valor = float(raw_input( Ingrese %dº valor para vector v %i+1)) v.append(valor) for i in range(n): #Completo vector w: valor = float(raw_input( Ingrese %dº valor para vector w %i+1)) w.append(valor) for i in range(n): #sumo entre elementos correspondientes valor = v[i] + w[i] #o sea v[0]+w[0], v[1]+w[1],, v[n-1]+w[n-1] suma.append(valor) U1 Datos Estructurados Informática III - ISM -

Listas como vectores matemáticos + Producto interno: esta operación entre dos vectores genera un número escalar (R N R) v 1 w 1 Ԧv w = v 2 v 3 w 2 w 3 = v 1 w 1 + v 2 w 2 + + v n w n N = int(raw_input( Ingrese cantidad de componentes )) v = [] #vectores vacíos, se completan dentro del bucle w = [] for i in range(n): #Completo vector v: valor = float(raw_input( Ingrese %dº valor para vector v %i+1)) v.append(valor) for i in range(n): #Completo vector w: valor = float(raw_input( Ingrese %dº valor para vector w %i+1)) w.append(valor) suma = 0.0 #ya que es una sumatoria, necesitamos inicializar el acumulador for i in range(n): #sumo entre elementos correspondientes valor = v[i] * w[i] #o sea v[0]*w[0], v[1]*w[1],, v[n-1]*w[n-1] suma+=valor #agregamos el valor a la suma total U1 Datos Estructurados Informática III - ISM - print Producto interno de los vectores: %2.2f %suma

Disposición de valores en filas y columnas. Las matrices son básicamente listas cuyos elementos son listas. >>> M =[[1,2,3],[2,12,6],[1,0,-3],[0,-1,0]] >>> M[1] [2, 12, 6] #acceso a fila >>> M[1][0] 2 #acceso a elemento

Definición: Ejemplo: matríz de 2x2 con valores nulos >>> M=[[0,0],[0,0]] Cuando necesitamos mayor cantidad de valores: >>> M=[0]*3 [0,0,0] >>> M=[M]*3 [ [0,0,0], [0,0,0], [0,0,0] ] >>> M[0][0]=1 [[1,0,0],[1,0,0],[1,0,0] CUIDADO! Definición correcta: U1 Datos Estructurados Informática III - ISM -

Dimensiones de una matriz. Mediante la función len() se puede obtener la cantidad de elementos de una matriz, o sea, el número de filas. Como cada elemento de la matriz es una lista, para obtener el número de columnas se obtiene la longitud de un elemento de la matriz (o sea, una lista). Cantidad de filas Cantidad de columnas

Suma (y resta) de matrices:

Producto de matrices: