Contenedores asociativos de la STL

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Contenedores asociativos de la STL"

Transcripción

1 Contenedores asociativos Contenedores asociativos de la STL Programación Orientada a Objeto Ing. Civil en Telecomunicaciones Contenedores vistos hasta ahora son secuenciales Orden de los elementos en el contenedor definido e inmutable A menos que se ordene mediante sort() Contenedores asociativos Mantienen sus elementos en el orden que les sea más eficiente No necesariamente el orden en que se añadieron los elementos! Contenedores asociativos Buscar al alumno de apellido dado en un vector de estructuras InfoAlumno Revisar todo el vector en forma secuencial Proceso lento si hay muchos alumnos Mantener la lista de alumnos ordenada por apellido Mantención del vector es más complicada Solución: contenedor que permita encontrar un alumno por una clave (apellido) Contenedor map Implementado como un árbol de búsqueda binario balanceado Árbol rojo-negro También llamado diccionario (Python) ó arreglo asociativo (PHP) Contenedor mantiene los elementos en un orden estricto Elementos son insertados de manera de mantener el orden Contenedor map Contenedor map Clave 6 Clave Valor Clave Valor Clave Valor Valor Clave Valor map almacena pares clave-datos Permite acceso eficiente a los datos a través de la clave Clave es única No puede haber dos datos con la misma clave Similar a vector e índice Índice no está limitado a un valor numérico Clave Valor 2015 Mario Medina C. 1

2 Acceso a elementos del map Pares y tuplas Acceso a los elementos del contenedor asociativo mediante índices[] y método at() Método at() agregado en C++11 Acceso retorna objeto pair<const K, V> Primer elemento K es la clave de búsqueda La clave es const Elementos del par <const string, int> se acceden mediante it->first y it->second La clase pair fue introducida en C++98 para manejar pares de valores de diferentes tipos Usada en funciones estándares (minmax()) Usada en clases map y multimap C++11 extiende pair y agrega la clase tuple para representar una colección heterogénea de datos Clase pair Operaciones con clase pair Definida como una estructura de datos en <utility> Permite acceso directo a sus miembros pair<t1, T2> p; T1 p1 = p.first; p1 = get<0> p; // C++11 T2 p2 = p.second; p2 = get<1> p; // C++11 pair<t1, T2> p1; // Constructor pair<t1, T2> p2(val1, val2); pair<t1, T2> p3 = make_pair(val1, val2); p2 = p1; // Asignación swap(p1, p3); // C++11 p3.swap(p2); // C++11 Recorriendo el contenedor map Contenedor mantiene datos en orden Orden no accesible al programador y sólo es manipulado a través de funciones miembros Contenedor accesible mediante iteradores begin(), end() rbegin(), rend() cbegin(), cend() crbegin(), crend() Manipulando el contenedor map Métodos de manipulación estándar empty(), size(), clear(), erase(), swap() Método erase() elimina un elemento del contenedor Argumento puede ser clave, iterador o rango de iteradores Tamaño del contenedor disminuye en Mario Medina C. 2

3 Manipulando el contenedor map Manipulando el contenedor map find() busca una clave en el map Si la clave existe, retorna un iterador al elemento encontrado Si no existe, retorna un iterador al elemento encontrado map::end count() retorna el número de elementos con la clave dada en el map Resultado puede ser sólo 0 ó 1 insert() agrega un elemento al map Argumento debe ser un objeto pair map admite sólo un elemento por clave Si clave a insertar no existe, se agrega el nuevo elemento al mapa y retorna un objeto pair cuyo primer miembro es un iterador al nuevo elemento y el segundo miembro es true Si clave ya existe, retorna iterador al par que ya contiene la clave, y el segundo miembro es false Manipulando el contenedor map lower_bound() y upper_bound() retornan iteradores al primer elemento cuya clave no está antes (o no está después) a la clave dada como argumento Argumento debe ser un objeto pair equal_range() retorna un par de iteradores a un rango que incluye todos los elementos iguales a la clave dada Para map, el rango contiene sólo un elemento Método at() y el contenedor map Búsqueda asociativa: búsqueda por contenido en vez de por posición Elementos en un contenedor map pueden ser recuperados usando el método at() con la clave a buscar Si existe un elemento con la clave dada, método retorna una referencia al elemento Si no existe un elemento con la clave dada, se genera una excepción out_of_range Operador índice y el contenedor map Contenedor map y multimap Elementos en un contenedor map pueden también ser recuperados usando el operador índice [] con la clave a buscar Si existe un elemento con la clave dada, método retorna una referencia al elemento Si no existe un elemento con la clave dada, se agrega un nuevo elemento al map Valor del dato es inicializado por omisión Contenedor asociativo map asocia una clave con un contenido Clave debe ser única Contenedor multimap permite existencia de claves duplicadas En ambos casos, las claves se almacenan ordenadas internamente en árboles binarios de búsqueda 2015 Mario Medina C. 3

4 Contenedor set y multiset Contenedor asociativo set similar a map, pero sólo almacena la clave Una vez en el contenedor, elementos no pueden ser modificados Clave debe ser única No admite operador índice [] ni método at() Contenedor multiset permite existencia de claves duplicadas Contenedor unordered_map STL también provee otros contenedores asociativos, implementados como tablas de dispersión (hash tables) Contenedores unordered_map y unordered_set implementan funcionalidades similares a map y set No mantienen los elementos en orden Búsqueda, inserción y eliminación son más rápidas Ejemplo: contar palabras Definición del contenedor int main() { string s; map <string, int> contador; while (cin >> s) ++contador[s]; for (map<string, int>::const_iterator it = contador.begin(); it!= contador.end(); ++it) { cout << it->first << \t << it->second << endl; return 0; Contenedor map<string, int> contador define contador como un mapa de string a int Para cada string visto en la entrada, habrá un int correspondiente Entero para el string s se incrementa mediante ++contador[s] Acceso al entero mediante notación de índice Creación de un elemento Ejemplo: referencias cruzadas Cada vez que se encuentra una nueva palabra, se agrega ésta al mapa Se crea también el entero asociado a la palabra El valor inicial del entero es 0 Tipos primitivos (int, float, double, etc.) tienen inicialización implícita a 0 Tipos de datos complejos deben poseer función de inicialización Una lista de referencias cruzadas de una lista de palabras indica todas las líneas del texto donde aparece la palabra Similar a un índice general Fácil de construir utilizando un objeto map Pero, ahora será un map de string a vector<int> Vector almacena números de todas las líneas donde aparece la palabra 2015 Mario Medina C. 4

5 Ejemplo: referencias cruzadas Función xref() map<string, vector<int> > xref(istream& in, vector<string> buscapalabras(const string&)) { string linea; int numlinea = 0; map<string, vector<int> > ref; while(getline(in, linea)) { ++numlinea; vector<string> palabras = buscapalabras(linea); for (vector<string>::const_iterator it = palabras.begin(); it!= palabras.end(); ++it) ref[*it].push_back(numlinea); return ref; Recibe como argumentos Un flujo de entrada de tipo istream Una función buscapalabras() que busca palabras en una línea de texto y las retorna en un vector de palabras Usaremos función divide() a describir Retorna un objeto map desde string a vector<int> Nótese que se escribió > >, no >> para no confundir al compilador! Función divide() Función divide() vector<string> divide(const string& s) { typedef string::const_iterator iter; vector<string> ret; iter i = s.begin(); while (i!= s.end()) { i = find_if(i, s.end(), no_espacio); iter j = find_if(i, s.end(), espacio); if (i!= s.end()) ret.push_back(string(i, j)); i = j; return ret; Función que recibe como argumento un string y retorna un vector de string conteniendo las palabras del string original Utiliza función genérica find_if() Iterador i apunta al comienzo de una palabra Iterador j apunta al final de la palabra Utiliza como condición las funciones auxiliares no_espacio() y espacio() Función find_if() Funciones espacio() y no_espacio() Definida en <algorithm> Función de búsqueda condicional Recibe dos iteradores y una condición que se evalúa a true o false Revisa todos los elementos de contenedor entre los iteradores Retorna true para cada elemento que cumple con el predicado Función retorna verdadero si argumento es espacio en blanco bool espacio(char c) { return isspace(c); Función retorna verdadero si argumento es no es espacio en blanco bool no_espacio(char c) { return!isspace(c); Función isspace(c) declarada en <cctype> Análoga a funcion de lenguaje C definida en <ctype.h> 2015 Mario Medina C. 5

6 Funciones de clasificación Declaradas en <cctype> Retornan 0 ó 1 isalnum(int c): caracter alfanumérico isalpha(int c): caracter alfabético isblank(int c): espacio en blanco o tabulador iscntrl(int c): caracter de control isdigit(int c): dígito entre 0 y 9 isgraph(int c): caracter con representación gráfica ( alfanuméricos + puntuación) Funciones de clasificación Declaradas en <cctype> islower(int c): caracter es minúsculas isprint(int c): caracter es imprimible (representación gráfica + espacio) isspace(int c): caracter es espacio en blanco, tabulador vertical ó horizontal, nueva línea, retorno de carro isupper(int c): caracter es mayúsculas isxdigit(int c): caracter es dígito hexadecimal Funciones de transformación Funciones de transformación de caracteres int tolower(int c): convierte caracter a minúsculas int toupper(int c): convierte caracter a mayúsculas 2015 Mario Medina C. 6

Tema 11: Manejo de cadenas en C

Tema 11: Manejo de cadenas en C Tema 11: Manejo de cadenas en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido

Más detalles

Iteradores y contenedores en C++

Iteradores y contenedores en C++ Iteradores y es en C++ Programación Orientada a Objeto Ing. Civil en Telecomunicaciones Se desea saber qué alumnos el curso Escribir función que identifique si un alumno tiene nota menor a 3.95 bool notarep(const

Más detalles

Guía resumida de referencia para exámenes

Guía resumida de referencia para exámenes Guía resumida de referencia para exámenes Tabla de referencia de operadores La siguiente tabla contiene algunos operadores que pueden ser sobrecargados (el símbolo # representa a la ubicación del operador

Más detalles

Creación de clases en C++ (I)

Creación de clases en C++ (I) Clases en C Creación de clases en C++ (I) Programación Orientada a Objeto Ing. Civil en Telecomunicaciones Convertir estructura InfoAlumno en una clase Escribir una clase simple en C++, con constructores

Más detalles

1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos

1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos 1.1 Tipos de Datos Primitivos 1.2 Tipos de datos estructurados 1.2.1 Arreglos unidimensionales, bidimensionales y cadenas de caracteres 1.2.2 Registros o Estructuras (unión y estructura) 1.3 Definición

Más detalles

REPRESENTACIÓN DE DATOS

REPRESENTACIÓN DE DATOS REPRESENTACIÓN DE DATOS Tipos de datos primitivos Tipos de Datos Estructurados TIPOS DE DATOS SIMPLES O PRIMITIVOS Dato Longitud Rango 2 TIPOS DE DATOS SIMPLES O PRIMITIVOS Surgen de la necesidad de tener

Más detalles

17. Manejo de cadenas <string.h>

17. Manejo de cadenas <string.h> 17. Manejo de cadenas Recordando la presentación de arreglos hecha (capítulo 5) en donde las cadenas están definidas como un arreglo de caracteres o un apuntador a una porción de memoria conteniendo

Más detalles

Tema 8. Listas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz

Tema 8. Listas.  José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz Tema 8. Listas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información Universitat

Más detalles

CONTENEDORES DE LA BIBLIOTECA

CONTENEDORES DE LA BIBLIOTECA UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y CC. Computación E.T.S.I. Telecomunicación CONTENEDORES DE LA BIBLIOTECA ESTÁNDAR Tema 5 Programación II Programación II 0 Tema 5: CONTENEDORES DE LA BIBLIOTECA ESTÁNDAR

Más detalles

Asignación Dinámica de Memoria. Agustín J. González Versión original de Kip Irvine ELO 326: Seminario II 2do. Sem. 2001

Asignación Dinámica de Memoria. Agustín J. González Versión original de Kip Irvine ELO 326: Seminario II 2do. Sem. 2001 Asignación Dinámica de Memoria Agustín J. González Versión original de Kip Irvine ELO 326: Seminario II 2do. Sem. 2001 1 Asignación Dinámica Asignación Dinámica es la creación de un objeto mientras el

Más detalles

STL: Standard Template Library

STL: Standard Template Library SEMINARIO C++ STL: Standard Template Library v. 20100915 Programación orientada a objetos Curso 10-11 ÍNDICE 1. Objetivo 2. El contenedor vector 3. Iteradores 4. Operaciones 5. Operadores 2 OBJETIVO La

Más detalles

Plantillas (Templates) Agustín J. González ELO-329

Plantillas (Templates) Agustín J. González ELO-329 Plantillas (Templates) Agustín J. González ELO-329 Definición Una plantilla (template) es un patrón para crear funciones o clases usando tipos de datos como parámetros. Hay dos tipos de templates: Funciones

Más detalles

Creación de clases en C++ (II)

Creación de clases en C++ (II) Clases en C Creación de clases en C++ (II) Programación Orientada a Objeto Ing. Civil en Telecomunicaciones Escribir nuestra propia clase para vectores Vec basada en std::vector Escribir nuestra propia

Más detalles

en C++ Expresiones regulares Gramáticas para expresiones regulares Sintaxis ECMAScript Comodín. y alternancia Anclas ^ y $

en C++ Expresiones regulares Gramáticas para expresiones regulares Sintaxis ECMAScript Comodín. y alternancia Anclas ^ y $ Expresiones regulares Expresiones regulares en C++ Programación Orientada a Objeto Ing. Civil en Telecomunicaciones Lenguaje especial para procesar texto Usado para determinar Si un string cumple con un

Más detalles

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Programación 1 Tema 3. Información, datos, operaciones y expresiones Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información

Más detalles

CAPITULO 2: VARIABLES Y CONSTANTES

CAPITULO 2: VARIABLES Y CONSTANTES CAPITULO 2: VARIABLES Y CONSTANTES 1. TIPOS DE DATOS. Existen cinco tipos de datos atómicos en C; char: carácter, int: entero, float: real coma flotante, double: real de doble precisión y void: sin valor.

Más detalles

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 Lenguaje C Elementos de un Programa Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 Objetivos Conocer los elementos que conforman un programa en C 1. Elementos léxicos de un Programa Cuando el programa

Más detalles

Lección 2 Introducción al lenguaje C

Lección 2 Introducción al lenguaje C Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)

Más detalles

STL: Standard Template Library

STL: Standard Template Library STL: Standard Template Library Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Consideraciones de diseño Programas = Algoritmos + Datos (ecuación

Más detalles

Tema 1. Programación modular. Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas

Tema 1. Programación modular. Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas Tema 1. Programación modular Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas 1.1. Objetivos Repasar brevemente mediante ejemplos los elementos principales del lenguaje

Más detalles

Procesadores de lenguaje Tema 6 La tabla de símbolos

Procesadores de lenguaje Tema 6 La tabla de símbolos Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de

Más detalles

Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329

Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329 Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329 Asignación Dinámica Asignación Dinámica es la creación de un objeto mientras el programa está en ejecución. Para ello

Más detalles

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples Desarrollo de aplicaciones en Java Generación de código fuente Compilación Ejecución Elementos de aplicaciones simples EII147-01-02 Introducción a las tecnologías de información Escuela de Ingeniería Industrial

Más detalles

Procesadores de lenguaje Tema 6 La tabla de símbolos

Procesadores de lenguaje Tema 6 La tabla de símbolos Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de

Más detalles

Datos Elementales y formato de un programa en Java

Datos Elementales y formato de un programa en Java Datos Elementales y formato de un programa en Java PROGRAMACION I Grado en Matematicas Informática Programación I - 2015/2016 Datos, variables y mi primer programa 1 Introducción a la programación o Programa:

Más detalles

Programación Orientada o Objetos

Programación Orientada o Objetos Programación Orientada o Objetos Programación digital II Escuela de Sistemas Facultad de Ingeniería Profesor: Gilberto Diaz Programación Orientada a Objetos En 1970 Dennis Ritchie y Brian Kernigan crearon

Más detalles

Prefacio 25. Organización de la Unidad Didáctica Cómo utilizar el libro Objetivos docentes Fundamentos de programación 29

Prefacio 25. Organización de la Unidad Didáctica Cómo utilizar el libro Objetivos docentes Fundamentos de programación 29 ÍNDICE Prefacio 25 Organización de la Unidad Didáctica.................... 25 Cómo utilizar el libro............................. 26 Objetivos docentes.............................. 27 1 Fundamentos de

Más detalles

Árboles. Árboles. Árboles binarios de búsqueda. Árboles. Inserción en un árbol. Árbol binario de búsqueda

Árboles. Árboles. Árboles binarios de búsqueda. Árboles. Inserción en un árbol. Árbol binario de búsqueda Árboles Árboles Mario Medina C. mariomedina@udec.cl Árboles Estructura recursiva Árbol vacío 0 o más árboles hijos Altura ilimitada Árbol binario A lo más dos hijos: izquierdo y derecho Árboles Árboles

Más detalles

Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329

Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329 Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329 Asignación Dinámica de Memoria Asignación Dinámica de memoria es la creación de un objeto mientras el programa está en

Más detalles

Prefacio 25 Organización de la Unidad Didáctica Cómo utilizar el libro Objetivos docentes... 27

Prefacio 25 Organización de la Unidad Didáctica Cómo utilizar el libro Objetivos docentes... 27 ÍNDICE Prefacio 25 Organización de la Unidad Didáctica.................... 25 Cómo utilizar el libro............................. 26 Objetivos docentes.............................. 27 1 Fundamentos de

Más detalles

Librerías estándar en C++ STL: Standard Template Library. Álvaro Sánchez Miralles José Porras (Fidel Fernández)

Librerías estándar en C++ STL: Standard Template Library. Álvaro Sánchez Miralles José Porras (Fidel Fernández) Librerías estándar en C++ STL: Standard Template Library Álvaro Sánchez Miralles José Porras (Fidel Fernández) Cadenas de caracteres Es una clase que se encuentra en librería estandar Consta,

Más detalles

Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1.

Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1. Ejercicios Resueltos del Práctico 4 Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1. 1 2 struct NodoLista { 3 int elem ; 4 NodoLista * sig ;

Más detalles

Objetivo N 2. Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez

Objetivo N 2. Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez Objetivo N 2 Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez * Un programa en C++ está definido por funciones (grupo de instrucciones que pueden o no hacer

Más detalles

Variables y tipos de datos

Variables y tipos de datos Programación científica Variables y tipos de datos Dra. Elisa Schaeffer elisa.schaeffer@gmail.com PISIS / FIME / UANL Variables y tipos de datos p. 1 Variable Una variable es efectivamente un espacio en

Más detalles

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

Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java Profesor: Jorge Escalona / Tobías Bolívar Email: escaljorge@gmail.com / tobiasbolivar@gmail.com Web: http://estructuradatos.tripod.com 1 Qué

Más detalles

PHP: Lenguaje de programación

PHP: Lenguaje de programación Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054

Más detalles

Vectores y Matrices. Dept. Ciencias de la Computación e I.A. Universidad de Granada

Vectores y Matrices. Dept. Ciencias de la Computación e I.A. Universidad de Granada TEMA Vectores y Matrices Dept. Ciencias de la Computación e I.A. Universidad de Granada 1 VECTORES Y MATRICES Motivación. Operaciones Básicas. Ejemplos Paso de vectores como parámetros. Matrices Ejemplos

Más detalles

Árboles RN Montículos

Árboles RN Montículos Árboles RN Montículos Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Árbol AVL Árbol AVL Balanceo cuatro posibilidades que requieren rotación

Más detalles

Tema 2. Tipos predefinidos

Tema 2. Tipos predefinidos Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 2. Tipos predefinidos 2.1 Tipos simples predefinidos El tipo Bool El tipo Int El tipo Integer

Más detalles

Tema 2. El lenguaje JAVA

Tema 2. El lenguaje JAVA Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias

Más detalles

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;) Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,

Más detalles

Introducción rápida a la programación (estructurada ) con C++

Introducción rápida a la programación (estructurada ) con C++ Introducción rápida a la programación (estructurada ) con C++ A B No A? Si B A Los Bloques pueden ser una línea de código o un modulo (función o subrutina) que pueden estar contenido en otro archivo de

Más detalles

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28 Componentes Básicos InCo InCo Componentes Básicos 1 / 28 Modelo de Computación Vemos al computador como un procesador de datos. +------------+ Entrada ===> Computador ===> Salida +------------+ InCo Componentes

Más detalles

Estructuras de Datos Declaraciones Tipos de Datos

Estructuras de Datos Declaraciones Tipos de Datos Departamento de Informática Universidad Técnica Federico Santa María Estructuras de Datos Declaraciones Tipos de Datos Temas: 2-3-4 IWI-131, paralelo 01 Profesor: Teddy Alfaro O. Lenguaje de Programación

Más detalles

Estructura de datos y Programación

Estructura de datos y Programación Estructura de datos y Programación Tema: Conceptos Básicos- Estructuras de control - Arreglos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 ELEMENTOS DE UN PROGRAMA EN JAVA El programa Java consta de

Más detalles

Programación 1 Tema 5. Instrucciones simples y estructuradas

Programación 1 Tema 5. Instrucciones simples y estructuradas Programación 1 Tema 5 Instrucciones simples y estructuradas Índice Instrucciones simples Instrucciones estructuradas Instrucción ::= Instrucciones.

Más detalles

Listas, pilas, colas

Listas, pilas, colas Listas, pilas, colas Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas TAD Tipo Abstracto de Dato Qué es un TAD? TAD: Tipo Abstracto de Dato. Nuevo

Más detalles

Ingeniería Electrónica, Telecomunicaciones y Ambiental. Anexo Teórico Informática para el Práctico 2

Ingeniería Electrónica, Telecomunicaciones y Ambiental. Anexo Teórico Informática para el Práctico 2 Anexo Teórico para el Práctico 2 Repaso de expresiones y formatos de printf/scanf Expresiones aritméticas Operador Nombre Ejemplo + Suma a = b + 4 - Resta a = 3 4 * Multiplicación a = b * c / División

Más detalles

Clases y Objetos en C++

Clases y Objetos en C++ Informática II Clases y Objetos en C++ Introducción Las variables de los tipos fundamentales de datos no son suficientes para modelar adecuadamente objetos del mundo real. alto, ancho y longitud para representar

Más detalles

Introducción a Python Qué es Python?

Introducción a Python Qué es Python? Introducción a Python Qué es Python? Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. Se trata de un lenguaje de programación

Más detalles

Segundo parcial de Programación 2

Segundo parcial de Programación 2 Generalidades: Segundo parcial de Programación 2 a. La prueba es individual y sin material. b. La duración es 3hs. c. Sólo se contestan dudas acerca de la letra. 8 de Julio de 2016 d. Escriba las hojas

Más detalles

Introducción a C++ Índice

Introducción a C++ Índice Introducción a C++ 1. 2. 3. 4. 5. 6. Índice 1. Diferencias entre C y C++. 2. Diferencias entre C++ y Java. 3. Ejemplos. 4. Funciones. 5. Memoria dinámica 6. Librería de funciones. 1 1. Diferencias entre

Más detalles

Programación I Teoría III.

Programación I Teoría III. Programación I Teoría III http://proguno.unsl.edu.ar proguno@unsl.edu.ar DATOS ESTRUCTURADOS Estructuras de Datos Hasta ahora hemos trabajado con Datos simples enteros reales Caracteres punteros Sin embargo,

Más detalles

LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++

LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++ LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++ C++ es un lenguaje de programación diseñado por Bjarne Stroustrup a partir de 1979. La intención de su creación fue ampliar al exitoso lenguaje

Más detalles

Contenido. Prefacio Orígenes de la programación orientada a objetos... 1

Contenido. Prefacio Orígenes de la programación orientada a objetos... 1 Prefacio... xv 1. Orígenes de la programación orientada a objetos... 1 1.1 La crisis del software... 1 1.2 Evolución del software... 3 1.3 Introducción a la programación orientada a procedimientos... 4

Más detalles

DEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS

DEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS DEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS En programación, una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación Un dato

Más detalles

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Programación 1 Tema 3. Información, datos, operaciones y expresiones Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información

Más detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

Una lista de operadores que pueden o no sobrecargarse es la siguiente: Operadores que pueden sobrecargarse

Una lista de operadores que pueden o no sobrecargarse es la siguiente: Operadores que pueden sobrecargarse La sobrecarga de operadores, aunque puede ser una capacidad exótica, la mayoría de personas las usa implícita y regularmente se valen de los operadores sobrecargados. Por ejemplo, el operador de suma (+)

Más detalles

de plantillas (STL) La librería estándar Contenedores Juan Hernando Vieites

de plantillas (STL) La librería estándar Contenedores Juan Hernando Vieites La librería estándar Librería estándar de plantillas (STL) Juan Hernando Vieites La librería estándar de plantillas de C++ (Standard Template Library, STL) es un conjunto de clases y funciones genéricas.

Más detalles

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:

Más detalles

Resolviendo problemas del TP. C++ STL - Estructuras de datos C++ STL. C++ STL C++ STL - Pilas y Colas C++ STL - Conjuntos y Diccionarios Trucos y Tips

Resolviendo problemas del TP. C++ STL - Estructuras de datos C++ STL. C++ STL C++ STL - Pilas y Colas C++ STL - Conjuntos y Diccionarios Trucos y Tips Menú del día Resolviendo problemas del TP Laboratorio de Algoritmos y Estructuras de Datos III Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires 27 de Agosto

Más detalles

Introducción al lenguaje C

Introducción al lenguaje C Introducción al lenguaje C Programación 2 Instituto de Computación, Facultad de Ingeniería, Universidad de la República, Uruguay 2 de marzo de 2016 Programación 2 Introducción al lenguaje C 2 de marzo

Más detalles

LENGUAJES DE PROGRAMACIÓN. Solución al Ejercicio de Autocomprobación 1

LENGUAJES DE PROGRAMACIÓN. Solución al Ejercicio de Autocomprobación 1 Solución al Ejercicio de Autocomprobación 1 PREGUNTA 1 (1 punto) Señale razonadamente la veracidad o falsedad de las afirmaciones siguientes: A. La diferencia fundamental entre los lenguajes ensamblador

Más detalles

Instituto Tecnológico de Celaya

Instituto Tecnológico de Celaya ELEMENTOS BÁSICOS DE C++: DECLARACIÓN DE VARIABLES A través de operaciones aritméticas (suma, resta, etc.) y lógicas (por ejemplo, comparaciones) los programas manipulan datos tales como números y caracteres.

Más detalles

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main. LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan

Más detalles

Apuntadores en C/C++ INTRODUCTION TO PROGRAMMING

Apuntadores en C/C++ INTRODUCTION TO PROGRAMMING Apuntadores en C/C++ JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING Memoria de la Computadora La memoria de una máquina esta ordenada en forma de celdas numeradas consecutivamente y que se pueden

Más detalles

26 de Octubre del 2013

26 de Octubre del 2013 Hernánz Hernánz OMIJAL 26 Octubre l 2013 Contenidos Hernánz 1 2 3 4 ++ 5 6 7 Hernánz Concepto Un concepto es una ia, algo abstracto. No existe en la naturaleza. Palabras Herramientas que utilizamos para

Más detalles

Cursos Propedéuticos 2015

Cursos Propedéuticos 2015 Listas Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores http://ccc.inaoep.mx/~rcumplido/ Contenido de la sección Listas Principales operaciones Listas secuenciales vs Listas ligadas

Más detalles

Introducción a Java. Introducción a Java. Programación I

Introducción a Java. Introducción a Java. Programación I Introducción a Java Introducción a Java Programación I Como Funciona Tipos de Datos TIPO TAMAÑO RANGO byte 8 bits Valores numéricos de 128 a 127 short 16 bits Valores numéricos de 32.768 a 32.767 int 32

Más detalles

Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas

Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas Análisis semático v1.2 c 2005 José Fortes Gálvez p.1 Análisis?... semántico? La semántica corresponde al significado asociado

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Contenidos: 1. Definición de clases 2. Implementación de los métodos 3. Constructores y destructores 4. Objetos

Más detalles

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. Indíce Algoritmo Elementos de un algoritmo: Variables, Constantes, Expresiones Datos: Definición y

Más detalles

CAPÍTULO IV: 4.1 Introducción a la. Programación Funcional

CAPÍTULO IV: 4.1 Introducción a la. Programación Funcional CAPÍTULO IV: Programación Funcional 4.1 Introducción a la Programación Funcional 1 Programación Funcional Paradigma diferente a los imperativos, que se aleja de la máquina de von Neumann Basado en funciones

Más detalles

Informática Aplicada I

Informática Aplicada I Cadenas y caracteres Alonso Ramírez Alejandro Guerrero CIMAT October 1, 2014 Antes de empezar Dudas? Dudas de if,else,for, while? Dudas de funciones? Dudas de arreglos? Dudas de apuntadores? Dudas de debuggeo?

Más detalles

Introducción al lenguaje C

Introducción al lenguaje C Introducción al lenguaje C Programación 2 Profesorado de Informática CeRP del Suroeste, Colonia, Uruguay 15 de marzo de 2016 Programación 2 Introducción al lenguaje C 15 de marzo de 2016 1 / 34 Objetivos

Más detalles

PILAS. Prof. Ing. M.Sc. Fulbia Torres

PILAS. Prof. Ing. M.Sc. Fulbia Torres S ESTRUCTURAS DE DATOS 2006 Prof. UNIDAD II ESTRUCTURAS DE DATOS PILAS Definición. Operaciones. Implementación secuencial. Aplicaciones. Ejemplos. Ejercicios. DEFINICIÓN Una PILA (o stack) es una estructura

Más detalles

Tipos de datos y Operadores Básicos

Tipos de datos y Operadores Básicos Módulo I: Conceptos Básicos Tema 1. Qué es un ordenador? Tema 2. Cómo se representan los datos en un ordenador? Tema 3. Qué es un lenguaje de programación? Tema 4. Cómo se hace un programa informático?

Más detalles

STL: Standard Templates Library

STL: Standard Templates Library : Standard Templates Library Biblioteca estándar de plantillas Prof. Dr. Nicolás Luis Fernández García Departamento de Informática y Análisis Numérico Escuela Politécnica Superior de Córdoba Universidad

Más detalles

Estructuras de Datos Lineales y Arborescentes

Estructuras de Datos Lineales y Arborescentes 1/46 Estructuras de Datos Lineales y Arborescentes Josefina Sierra Santibáñez 14 de abril de 2018 2/46 Estructuras de Datos Lineales y Arborescentes En este tema se utilizan estructuras de datos genéricas

Más detalles

Definición y Conversión de datos. Agustín J. González ELO-329

Definición y Conversión de datos. Agustín J. González ELO-329 Definición y Conversión de datos Agustín J. González ELO-329 1 Calificador Const El calificador const previene que un objeto sea modificado con posterioridad a su definición. El objeto calificado como

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión X Colecciones... 6 Interfaz List... 15 ArrayList... 17 Recorrido Colecciones... 22 Iteradores en

Más detalles

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

Razón de ser Computadora Programa Programador Análisis y solución de problemas (Metodología) Algoritmo Diagrama de flujo ARREGLOS I Razón de ser Computadora Programa Programador Análisis y solución de problemas (Metodología) Algoritmo Diagrama de flujo Investigaron y estudiaron ( comprendieron!) Clasificación de las computadoras

Más detalles

Paradigma Funcional Caso de estudio: ML. Lenguajes de Programación 2018

Paradigma Funcional Caso de estudio: ML. Lenguajes de Programación 2018 Paradigma Funcional Caso de estudio: ML Lenguajes de Programación 2018 FUNCIÓN: Mapeo de un dominio en un rango El mapeo se puede describir por medio de una EXPRESIÓN f(1) = 2 f(2) = 3 Enumeración f(x)

Más detalles

Tema 04: TAD Lista. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Tema 04: TAD Lista. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom Tema 04: TAD Lista M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido TAD Lista Descripción del TAD Lista

Más detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN - Introducción - Sintaxis - Semántica básica - Tipos de datos - Expresiones y enunciados - Procedimientos y ambientes - Tipos abstractos de datos y módulos

Más detalles

Índice general 7. Presentación 15

Índice general 7. Presentación 15 ÍNDICE GENERAL Índice general 7 Presentación 15 1. Introducción 19 1.1. Antecedentes históricos de la computación................... 19 1.2. Definiciones previas............................... 24 1.3.

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión IX Colecciones... 6 Interfaz List... 15 ArrayList... 18 tostring( )... 23 Recorrido Colecciones...

Más detalles

Tema 2. Tipos y Estructuras Básicas

Tema 2. Tipos y Estructuras Básicas Tema 2. Tipos y Estructuras Básicas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de

Más detalles

Herencia y polimorfismo

Herencia y polimorfismo Herencia y polimorfismo Programación Orientada a Objeto Ing. Civil en Telecomunicaciones Herencia Hemos visto cómo crear nuestras propias clases Clase InfoAlumno para calcular las notas Supongamos ahora

Más detalles

Paradigma Funcional Caso de estudio: ML. Lenguajes de Programación 2017

Paradigma Funcional Caso de estudio: ML. Lenguajes de Programación 2017 Paradigma Funcional Caso de estudio: ML Lenguajes de Programación 2017 Paradigma Funcional FUNCIÓN: Mapeo de un dominio en un rango El mapeo se puede describir por medio de una EXPRESIÓN f(1) = 2 f(2)

Más detalles

Caracteres y Cadenas. Funcionamiento y algunas funciones para su manipulación

Caracteres y Cadenas. Funcionamiento y algunas funciones para su manipulación Caracteres y Cadenas Funcionamiento y algunas funciones para su manipulación SESIÓN 6 Caracteres Declaración Sintaxis tipo_de_dato nombre; Ejemplo: char carac; 1 Caracteres Recordar que un carácter es

Más detalles

Examen escrito de Programación 1. Viernes 22 de enero de Problema 1 o (3.0 puntos) Problema 2 o (3.0 puntos)

Examen escrito de Programación 1. Viernes 22 de enero de Problema 1 o (3.0 puntos) Problema 2 o (3.0 puntos) Examen escrito de Programación 1. Viernes 22 de enero de 2016 Se debe disponer de un documento de identificación con fotografía sobre la mesa. Se debe comenzar a resolver cada uno de los problemas del

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS Biblioteca estándar de plantillas (STL: Standard Templates Library) Prof. Dr. Nicolás Luis Fernández García Departamento de Informática y Análisis Numérico Escuela Politécnica

Más detalles

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE) Repaso Lenguaje C OBJETOS Variables Constantes Variable: objeto del ambiente cuyo contenido puede cambiar. Constante: objeto cuyo contenido no puede cambiar. Variables: - un nombre que la identifica. Deben

Más detalles

GESTIÓN DE MEMORIA DINÁMICA

GESTIÓN DE MEMORIA DINÁMICA UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y CC. Computación E.T.S.I. Telecomunicación GESTIÓN DE MEMORIA DINÁMICA Tema 3 Programación II Programación II 0 Tema 3: GESTIÓN DE MEMORIA DINÁMICA Tema 3: GESTIÓN

Más detalles