Diseño de algoritmos paralelos
|
|
|
- Enrique Molina Martin
- hace 9 años
- Vistas:
Transcripción
1 PROGRAMACIÓN CONCURRENTE TEMA 7 Diseño de algoritmos paralelos ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN
2 DISEÑO DE ALGORITMOS PARALELOS - TEMA 7.2 Algoritmos sobre arrays ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN
3 DISEÑO DE ALGORITMOS PARALELOS Algoritmos sobre arrays Introducción Suma Ordenación Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 3
4 ALGORITMOS SOBRE ARRAYS Introducción Los algoritmos más usados en la programación son aquellos que procesan arrays (o listas) de elementos En este tema se paralelizarán los algoritmos básicos sobre arrays: Suma Ordenación Búsqueda Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 4
5 DISEÑO DE ALGORITMOS PARALELOS Algoritmos sobre arrays Introducción Suma Ordenación Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 5
6 SUMA Algoritmo secuencial Se pretende sumar un array de números enteros de forma paralela El algoritmo secuencial es muy sencillo int[] valores = new int[1000]; int suma = 0; for(int i=0; i<valores.length; i++){ suma += valores[i]; System.out.println("Suma = "+suma); Al paralelizarse se pueden estudiar las bases para la paralelización de otros tipos de algoritmos más complejos Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 6
7 SUMA Algoritmo secuencial La operación de suma tiene las propiedades: Asociativa: Se pueden sumar dos operandos y el resultado sumarle a otro operando en cualquier orden Conmutativa: El orden de los operandos no afecta al resultado Cualquier operación con estas propiedades puede paralelizarse con el mismo esquema Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 7
8 SUMA Diseño del algoritmo paralelo La suma se puede paralelizar como un problema de descomposición de datos El conjunto de datos se puede dividir en chunks iguales y la computación es similar por cada elemento Esto permite hacer una asignación estática: Asignar a cada hilo una parte del array Cada hilo suma en una variable local y al terminar hace accesible el valor al hilo main El hilo main suma las sumas parciales de cada hilo Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 8
9 SUMA Implementación del algoritmo paralelo private double[] valores; private double[] sumacompar = new double[num_threads]; private void suma(int numthread) { int sumalocal = 0; for (int i = start; i < end; i++) { sumalocal += valores[i]; sumacompar[numthread] = sumalocal; private void inicializaarrayvalores() { valores = new double[num_vals]; for (int i = 0; i < NUM_VALS; i++) { valores[i] = i; Suma de los valores del chunk asignado a cada hilo Generación un array de ejemplo para probar la suma Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 9
10 SUMA Introducción inicializaarrayvalores(); Thread[] threads = new Thread[NUM_THREADS]; for (int i = 0; i < NUM_THREADS; i++) { final int numthread = i; Thread t = new Thread(()-> suma(numthread)); threads[i] = t; t.start(); Creación de hilos para que ejecuten el método suma( ) int suma = 0; for (int i = 0; i < NUM_THREADS; i++) { threads[i].join(); suma += sumacompar[i]; Espera por cada hilo y suma del valor que ha calculado para obtener la suma completa System.out.println("Suma de los elementos del array:"+suma); Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 10
11 SUMA Evaluación Eficiencia El cálculo de los límites del chunk es sobrecarga (código de coordinación incorporado al algoritmo secuencial) Esta paralelización tiene sentido si los chunks son lo suficientemente grandes para que ese tiempo sea despreciable Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 11
12 SUMA Evaluación Simplicidad Conceptualmente la paralelización es muy sencilla Hay mucho código nuevo porque: La librería Java es muy explícita en muchas operaciones (creación de hilo, espera para la terminación de varios, etc ) El código secuencial es muy sencillo Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 12
13 SUMA Evaluación Portabilidad Las ideas aplicadas se pueden usar en un modelo de paso de mensajes por el array compartido para las sumas de cada chunk se puede sustituir por el envío de la suma al proceso principal Escalabilidad El código escala bien con un mayor número de cores Si el chunk es demasiado pequeño, la sobrecarga de coordinar los hilos puede ser importante Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 13
14 DISEÑO DE ALGORITMOS PARALELOS Algoritmos sobre arrays Introducción Suma Ordenación Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 14
15 ALGORITMOS SOBRE ARRAYS Ordenación Existen muchos algoritmos para ordenar arrays de elementos Estudiaremos cómo paralelizar los dos más famosos: Burbuja: El más sencillo (aunque ineficiente) QuickSort: El más eficiente (aunque complejo) Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 15
16 ORDENACIÓN BURBUJA Algoritmo secuencial Se pretende ordenar un array de números enteros con el método de la burbuja Con este método se recorre el array verificando si cada par de elementos consecutivos están ordenados correctamente y si no es así, se intercambian entre sí Se realizan pasadas hasta que cada par de elementos consecutivos está ordenado Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 16
17 ORDENACIÓN BURBUJA Algoritmo secuencial for (int i = NUM_VALS - 1; i > 0; i--) { boolean intercambio = false; for (int j = 0; j < i; j++) { if (valores[j] > valores[j + 1]) { int temp = valores[j]; valores[j] = valores[j + 1]; valores[j + 1] = temp; intercambio = true; Se hacen tantas pasadas como elementos en el array. En cada pasada se omite un elemento porque se ordenó en la pasada anterior Si dos elementos adyacentes no están bien ordenados, se intercambian entre sí if(!intercambio){ break; Si en una pasada no se hace ningún intercambio, el array está ordenado Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 17
18 ORDENACIÓN BURBUJA Algoritmo secuencial int i = NUM_VALS; while (true) { i--; if (i <= 0) { break; Otra forma de escribir el algoritmo con un while(true) en vez de un for boolean intercambio = false; for (int j = 0; j < i; j++) { if (valores[j] > valores[j + 1]) { int temp = valores[j]; valores[j] = valores[j + 1]; valores[j + 1] = temp; intercambio = true; if (!intercambio) { break; Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 18
19 ORDENACIÓN BURBUJA Diseño del algoritmo paralelo Para paralelizar el algoritmo de la burbuja se pretende que varios hilos puedan realizar las pasadas sobre el array concurrentemente Sincronización entre hilos Si no hay sincronización, los hilos se pueden adelantar entre sí (provocando condiciones de carrera) Si se sincroniza cada par de elementos puede haber demasiada sobrecarga por esa sincronización Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 19
20 ORDENACIÓN BURBUJA Diseño del algoritmo paralelo Hay que sincronizar los hilos, pero no sincronizarlos en cada elemento Solución: Dividir el array en varias zonas iguales En cada zona sólo puede trabajar un hilo (poner las zonas bajo exclusión mutua) Para aprovechar los recursos y que todos los hilos puedan trabajar: crear más zonas que hilos Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 20
21 ORDENACIÓN BURBUJA Implementación del algoritmo paralelo int tamannozona = (NUM_VALS / NUM_ZONAS) + 1; while (!fin) { //Inicializado a false int numzona = 0; boolean intercambio = false; Cada zona está bajo EM. En la zona 0 se determina el último elemento a evaluar locks[numzona].lock(); int i = icompartido--;//inicializado a NUM_VALS-1 if (i <= 0) { fin = true; locks[numzona].unlock(); break; int finzona = tamannozona; for (int j = 0; j < i; j++) { if (valores[j] > valores[j + 1]) { int temp = valores[j]; valores[j] = valores[j + 1]; valores[j + 1] = temp; intercambio = true; if (j == finzona) { locks[numzona].unlock(); numzona++; locks[numzona].lock(); finzona += tamannozona; locks[numzona].unlock(); if (!intercambio) { fin = true; Variable global que cuenta las pasadas y guarda el último elemento que hay que evaluar El algoritmo finaliza cuando el último elemento a evaluar es 0 Al llegar al final de cada zona, se libera la EM y se pasa a la siguiente EM (que habrá liberado el hilo anterior) Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 21
22 ORDENACIÓN BURBUJA Evaluación Eficiencia El algoritmo original no es muy eficiente, y la versión paralela tampoco lo es porque comparte la misma esencia La paralelización impone bastante sobrecarga porque cada hilo, en cada pasada, debe entrar en la sección crítica de cada zona (y puede haber muchas pasadas) Simplicidad El código de separación en zonas dificulta la comprensión del algoritmo original Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 22
23 ORDENACIÓN BURBUJA Evaluación Portabilidad El algoritmo paralelo propuesto para memoria compartida no se puede usar en un modelo de paso de mensajes porque habría mucha información que enviar y recibir Escalabilidad Mayor número de hilos implica mas zonas y más sobrecarga en el acceso a cada una de ellas. Cuando el algoritmo avanza, las pasadas son más cortas (y tienen menos zonas) y muchos hilos no conseguiran una zona libre Tema 7.2 Diseño de algoritmos paralelos - Algoritmos sobre arrays 23
Introducción a las sentencias de control
INSTRUCCIONES DE CONTROL CONTENIDOS 1. Introducción a las sentencias de control. 2. Instrucciones o sentencias condicionales: IF, IF-ELSE, SWITCH. 3. Instrucciones o sentencias repetitivas o iterativas:
Clase adicional 2. Estructuras básicas de control. Temas
Clase adicional 2 Temas Estructuras de control Sentencia condicional Iteración Clases Definir una clase Crear una instancia de una clase Campos estáticos Problemas de la clase adicional Problema de diseño
Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas
Tema 9 Algoritmos sobre listas Programación 2015-2016 Programación - Tema 9: Algoritmos sobre listas 1 Tema 9. Algoritmos sobre listas Algoritmos sobre Arrays. Búsqueda. Inserción. Ordenación. Programación
Prof. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 4 Fundamentos de Programación Informática II Prof. Dr. Paul Bustamante Practica Nº 4 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Números Perfectos....
Práctica 1: Una primera aproximación a la programación de sistemas concurrentes y distribuidos en C++
Práctica 1: Una primera aproximación a la programación de sistemas concurrentes y distribuidos en C++ Programación de Sistemas Concurrentes y Distribuidos Dpto. de Informática e Ingeniería de Sistemas,
Natalia Partera Jaime Alumna colaboradora de la asignatura
Programación Concurrente y de Tiempo Real Guión de prácticas 6: Programación en Java de algoritmos de control de la Exclusión Mutua con variables comunes Natalia Partera Jaime Alumna colaboradora de la
Expresión, Operador, Operando, Asignación, Prioridad
4. EXPRESIONES Y OPERADORES Conceptos: Resumen: Expresión, Operador, Operando, Asignación, Prioridad En este tema se presentan los siguientes elementos de la programación: las expresiones y los operadores.
El lenguaje C. 1. Estructuras. Principios de Programación. 1.1. Definicion de estructuras
Principios de Programación El lenguaje C 1. Estructuras Las estructuras son colecciones de variables relacionadas bajo un nombre. Las estructuras pueden contener variables de muchos tipos diferentes de
Problemas de Recursividad
Problemas de Recursividad Problema 1. El factorial de un número entero n 0, denotado como n!, se define! como!!! i = 1 2 n cuando n > 0, y 0! = 1. Por ejemplo 6! = 1 2 3 4 5 6 = 720 Diseñad una método
Los números enteros. > significa "mayor que". Ejemplo: 58 > 12 < significa "menor que". Ejemplo: 3 < 12 Cualquier número positivo siempre es mayor
Los números enteros Los números enteros Los números enteros son aquellos que permiten contar tanto los objetos que se tienen, como los objetos que se deben. Enteros positivos: precedidos por el signo +
Declaración de variables (integer, single, double, boolean, etc.) en Visual Basic. Dim. Ejemplos. (CU00309A)
aprenderaprogramar.com Declaración de variables (integer, single, double, boolean, etc.) en Visual Basic. Dim. Ejemplos. (CU00309A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión:
CAPÍTULO 10 ALGORITMOS DE ORDENACIÓN Y BÚSQUEDA. 10.7. Búsqueda en listas 10.8. Resumen 10.9. Ejercicios 10.10. Problemas
CAPÍTULO 10 ALGORITMOS DE ORDENACIÓN Y BÚSQUEDA C O N T E N I D O 10.1. Ordenación 10.2. Ordenación por burbuja 10.3. Ordenación por selección 10.4. Ordenación por inserción 10.5. Ordenación Shell 10.6.
Representación de los números naturales
Números naturales El conjunto de los números naturales se representa por la letra, y está formado por: N = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,...} Los números naturales sirven para contar los elementos de un
Algoritmos de Ordenación
Algoritmos de Ordenación Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria [email protected] Algoritmos comunes - Ordenación Ordenación o clasificación es
Números enteros. 1. En una recta horizontal, se toma un punto cualquiera que se señala como cero.
Números enteros Son el conjunto de números naturales, sus opuestos (negativos) y el cero. Se dividen en tres partes: enteros positivos o números naturales (+1, +2, +3,...), enteros negativos (-1, -2, -3,.)
UNIDAD 2: INTRODUCCIÓN AL LENGUAJE DE PROGRAMACiÓN R
UNIDAD 2: INTRODUCCIÓN AL LENGUAJE DE PROGRAMACiÓN R Técnicas Inteligentes en Bioinformática Máster en Lógica, Computación e Inteligencia Artificial Dpto. Ciencias de la Computación e Inteligencia Artificial
CAPÍTULO 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
CONTENIDO PRÓLOGO XIX CAPÍTULO 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS 1.1 Introducción 2 1.2 Resolución de problemas mediante la computadora 3 1.3 Conceptos de programación orientada a objetos
Modulo 11. Clases y Objetos en Java
El siguiente texto es una traducción no oficial del documento publicado por el grupo JEDI, Introduction to Programming 1, no pretende en ningún momento reemplazar los contenidos generados por este grupo.
Complejidad de Algoritmos
Complejidad de Algoritmos Tema 5 Introducción Un algoritmo es una secuencia de instrucciones que resuelve un problema Puede tener diferentes implementaciones Para comparar las diferentes formas (algoritmos)
INSTITUTO TECNOLOGICO DE LAS AMERICAS CARRERA DE TECNOLOGO EN REDES DE LA INFORMACION SISTEMAS OPERATIVOS I
INSTITUTO TECNOLOGICO DE LAS AMERICAS CARRERA DE TECNOLOGO EN REDES DE LA INFORMACION SISTEMAS OPERATIVOS I Nombre de la asignatura: Nomenclatura del Curso: Prerrequisitos: Nomenclatura prerrequisito Número
Arreglos Unidimensionales En este tipo de arreglo se hace uso de un índice solamente para hacer referencia a una posición particular del arreglo.
Arreglos (Arrays) en Java Definición: Un arreglo es un objeto contenedor que consiste de una cantidad fija de posiciones o celdas para almacenar valores del mismo tipo en ellas. Cada posición o celda del
Sistemas Operativos Tema 5. Procesos. 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana
Sistemas Operativos Tema 5. Procesos 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana 1 Contenidos Concepto de proceso Estructuras de datos: BCP y colas de procesos Niveles de planificación
Tema 3. Programación orientada a objetos en Java (Parte 1)
Programación en Java Tema 3. Programación orientada a objetos en Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Clases y objetos (I) Clase Cojunto de datos (atributos) y funciones (métodos)
Multiplicación de enteros Algoritmo clásico 1234*5678 = 1234* (5*1000 + 6*100+7*10+8) = 1234*5*1000 + 1234*6*100 + 1234*7*10 + 1234*8 Operaciones bási
Algoritmos Divide y Vencerás Análisis y Diseño de Algoritmos Algoritmos Divide y Vencerás Ejemplo: Multiplicación de enteros grandes La técnica divide y vencerás Características Método general divide y
Tema 7: Polimorfismo. Índice
Tema 7: Polimorfismo Antonio J. Sierra Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos. Recursividad. Control de acceso. Static. Final. Argumento
CLAVE ASIGNATURA REQUISITOS HORA/SEMANA CREDITOS TI-8 PROGRAMACION II 80% DE ASISTENCIA 4 6
PRESENTACIÓN: La programación orientada a objetos es una evolución de la programación procedural basada en funciones. La POO permite agrupar secciones de código con funcionalidades comunes, pretende agrupar
Curso de Computación Científica en Clusters
Pilar González, Juan Piernas, Luis P. García, Javier Cuenca, Juan Fernández, Domingo Giménez UniversidaddeMurcia Introducción Avances en distintas áreas científicas e ingenieriles uso intensivo y extensivo
DISEÑO CURRICULAR ALGORITMOS, ESTRUCTURAS Y PROGRAMACIÓN I
DISEÑO CURRICULAR ALGORITMOS, ESTRUCTURAS Y PROGRAMACIÓN I FACULTAD (ES) CARRERA (S) Ingeniería Computación y Sistemas CÓDIGO HORAS TEÓRICAS HORAS PRÁCTICAS UNIDAS CRÉDITO SEMESTRE 122643 02 02 03 II PRE-REQUISITO
UNIDAD 1. NÚMEROS NATURALES Y OPERACIONES
UNIDAD 1. NÚMEROS NATURALES Y OPERACIONES 1. SISTEMA DE NUMERACIÓN DECIMAL. 2. LECTURA, ESCRITURA, DESCOMPOSICIÓN Y ORDENACIÓN DE NÚMEROS NATURALES. 3. SUMA DE NÚMEROS NATURALES. PROPIEDADES. 4. RESTA
MINI ENSAYO DE MATEMÁTICA Nº 1
MINI ENSAYO DE MATEMÁTICA Nº 1 1. Si 25 = k, entonces 2k = A) 5 B) 10 C) 50 D) 625 E) 1.250 2. El número 3, puede obtenerse operando solamente el dígito 3. La opción correcta es A) (3 3) : 3 3 : 3 B) (3
en coma flotante Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2006
Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2006 4. Representación n de números n en coma flotante Para La números representar fraccionarios números
En este capitulo se estudiarán los conceptos relacionados a métodos, como lo son sobrecarga, métodos estáticos.
Lección 3: Creando clases 1. Definición de métodos 2. Sobrecarga de métodos 3. Definición de constructores 4. Creando miembros estáticos 5. Construcción e inicialización de objetos Objetivos En este capitulo
REPASO ARRAYS MULTIDIMENSIONALES EN JAVA. DECLARACIÓN Y USO. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00905C)
APRENDERAPROGRAMAR.COM REPASO ARRAYS MULTIDIMENSIONALES EN JAVA. DECLARACIÓN Y USO. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00905C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I
Algoritmos. Diseño de algoritmos por inducción. Alberto Valderruten. [email protected]. Dept. de Computación, Universidade da Coruña
Divide y Vencerás Diseño de algoritmos por inducción Dept. de Computación, Universidade da Coruña [email protected] Contenido Divide y Vencerás 1 Divide y Vencerás 2 Índice Divide y Vencerás 1
CURSOSO. Aritmética: Númerosnaturalesyenteros. Númerosracionalesyfraciones. MATEMÁTICAS. AntonioF.CostaGonzález
CURSOSO CURSOSO MATEMÁTICAS Aritmética: Númerosnaturalesyenteros. Númerosracionalesyfraciones. AntonioF.CostaGonzález DepartamentodeMatemáticasFundamentales FacultaddeCiencias Índice 1 Introducción y objetivos
Unidad 1. Las fracciones.
Unidad 1. Las fracciones. Ubicación Curricular en España: 4º, 5º y 6º Primaria, 1º, 2º y 3º ESO. Objetos de aprendizaje. 1.1. Concepto de fracción. Identificar los términos de una fracción. Escribir y
INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00921C)
APRENDERAPROGRAMAR.COM INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00921C) Sección: Cursos Categoría: Lenguaje de programación Java nivel
Tema 05: Tablas hash. M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom
Tema 05: Tablas hash M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Tablas hash o de dispersión Función
Indice del curso básico programación desde cero Visual Basic Nivel I (CU00302A)
aprenderaprogramar.com Indice del curso básico programación desde cero Visual Basic Nivel I (CU00302A) Sección: Cursos Categoría: Curso Visual Basic nivel I Fecha revisión: 2029 Autor: Mario R. Rancel
Polinomios. 1.- Funciones cuadráticas
Polinomios 1.- Funciones cuadráticas Definición 1 (Función polinomial) Sea n un entero no negativo y sean a n, a n 1,..., a, a 1, a 0 número s reales con a n 0. La función se denomina función polinomial
8. Vectores (arrays)
8. Vectores (arrays) Fundamentos de Informática Especialidad de Electrónica 2009-2010 Ismael Etxeberria Agiriano 16/12/2009 Índice 8. Vectores (arrays) 1. Números aleatorios 2. Serie ordenada 3. Números
Prof. Dr. Paul Bustamante
Nombre: Carné: Examen C++ - Junio Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Examen Grupo B Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción.... 1 1.1 Ejercicio 1:
FUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 3 Estructuras de datos Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería de Sistemas y Automática.
MODELO DE CASCADA PURA. Son métodos que indican cómo hacer más eficiente el desarrollo de sistemas de
ESCUELA DE INGENIERÍA DE SISTEMAS Y SEGURIDAD INFORMÁTICA CLASE 05 Ing. William J. León Velásquez CIP. 72861 [email protected] Son métodos que indican cómo hacer más eficiente el desarrollo de sistemas
TEMA 2: Algoritmos y Programas. Fundamentos de Informática (Grados en Ingenierías Industriales)
TEMA 2: Algoritmos y Programas Fundamentos de Informática (Grados en Ingenierías Industriales) Índice de contenidos 1. Introducción. Conceptos básicos 2. Representación de algoritmos. 3. Metodología de
CLASE DATE DEL API JAVA. MÉTODOS BEFORE, AFTER, TOLOCALESTRING, TOGMTSTRING Y GETTIME. EJEMPLOS. (CU00924C)
APRENDERAPROGRAMAR.COM CLASE DATE DEL API JAVA. MÉTODOS BEFORE, AFTER, TOLOCALESTRING, TOGMTSTRING Y GETTIME. EJEMPLOS. (CU00924C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Tema: Clases y Objetos en C++. Parte II.
Programación II. Guía 4 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C++. Parte II. Objetivos Específico Implementar clases, objetos, propiedades, métodos
MANUAL DE EXCEL AVANZADO
MANUAL DE EXCEL AVANZADO 1. CONSOLIDACIÓN DE CONCEPTOS... 1 1.1. FÓRMULAS (BUENAS PRÁCTICAS)... 1 1.1.1. Tipos de operandos... 1 1.1.2. Tipos de operadores... 2 1.1.3. PRECEDENCIA DE OPERADORES ARITMÉTICOS...
Introducción Programación Modular y a Métodos: Consideremos el siguiente ejercicio:
Introducción Programación Modular y a Métodos: Consideremos el siguiente ejercicio: Ejercicio: Escriba una aplicación que requiera un número real como entrada y que muestre el producto del número y tres.
GENERAR NÚMEROS ALEATORIOS EN JAVA. CLASE RANDOM Y MÉTODO NEXTINT. EJERCICIO EJEMPLO RESUELTO. (CU00672B)
APRENDERAPROGRAMAR.COM GENERAR NÚMEROS ALEATORIOS EN JAVA. CLASE RANDOM Y MÉTODO NEXTINT. EJERCICIO EJEMPLO RESUELTO. (CU00672B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha
SESIÓN 1 PRE-ALGEBRA, CONCEPTOS Y OPERACIONES ARITMÉTICAS BÁSICAS
SESIÓN 1 PRE-ALGEBRA, CONCEPTOS Y OPERACIONES ARITMÉTICAS BÁSICAS I. CONTENIDOS: 1. Introducción: de la aritmética al álgebra. 2. Números reales y recta numérica. 3. Operaciones aritméticas básicas con
Sistemas Operativos. (Procesos)
Sistemas Operativos (Procesos) 2.1 Procesos Def: Un proceso es un programa en ejecución. 2.2 Estados de procesos El estado de un proceso define su actividad actual. Durante su existencia, un proceso pasa
Forma Básica Clase Java
Programación Orientada a Objetos Conceptos Básicos de Objetos en Java Ing. Julio Ernesto Carreño Vargas MsC. Forma básica de una clase en Java Especifica que la clase forma parte del paquete conceptos
Grado en Química Bloque 1 Funciones de una variable
Grado en Química Bloque Funciones de una variable Sección.5: Aplicaciones de la derivada. Máximos y mínimos (absolutos) de una función. Sea f una función definida en un conjunto I que contiene un punto
Modelo de Cómputo. Programación concurrente
Programa concurrente Programa concurrente: conjunto finito de procesos (secuenciales). Un proceso secuencial está escrito con un conjunto finito de acciones atómicas. Ejecución: una secuencia de acciones
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,
PLANEACIÓN ESTRATÉGICA
PLANEACIÓN ESTRATÉGICA CÓDIGO: EST1-P-004 PROCEDIMIENTO VERSIÓN: 1 PLANEACIÓN DE LA GESTIÓN Y CONTROL POR PROCESOS FECHA DE VIGENCIA 09/May/2014 1. OBJETIVO Determinar los lineamientos metodológicos para
Introducción al Testing de Estructural
Introducción al Testing de Estructural Maximiliano Cristiá Ingeniería de Software Facultad de Ciencias Exactas, Ingeniería y Agrimensura Universidad Nacional de Rosario Noviembre de 2009 Resumen En este
Representación de decimales.
Representación de decimales. 1.- Debes representar en una recta los pares de números decimales con una cifra decimal que a continuación se indican. Para ello debes dividir la recta en las divisiones necesarias
descripción del argumento identificador tipo longitud condición restricción
Recuerde que estos son apuntes muy simplificados que deberá completar con la bibliografía PROGRAMACIÓN 0 Prof. Dolores Cuiñas H. recomendada APUNTES Nº. METODOLOGÍA PARA LA CONSTRUCCIÓN DE PROGRAMAS. Presentaremos
UNIDAD 1: NÚMEROS NATURALES
UNIDAD 1: NÚMEROS NATURALES 1. Calcula: Ya conoces las cuatro operaciones básicas, la suma, la resta, multiplicación y división. Cuando te aparezcan varias operaciones para realizar debes saber la siguiente
TEMA 10. EL CONJUNTO DE LOS NÚMEROS ENTEROS
TEMA 10. EL CONJUNTO DE LOS NÚMEROS ENTEROS 1. LOS NÚMEROS ENTEROS Hasta ahora sólo has conocido el conjunto de los números naturales (N), que está formado por todos los números positivos desde el cero
INGENIERIA DE SISTEMAS 1 ESTRUCTURAS DE DATOS (Listas simples) INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS
INGENIERIA DE SISTEMAS 1 ESTRUCTURAS DE DATOS (Listas simples) 1. INTRODUCCIÓN INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS Las computadoras fueron diseñadas o ideadas como una herramienta mediante la cual
Tema 4 Genericidad en Java. Programación Orientada a Objetos Curso 2013/2014
Tema 4 Genericidad en Java Programación Orientada a Objetos Curso 2013/2014 Contenido Antecedentes. Genericidad en Java 5 y posterior. Características avanzadas: Genericidad restringida. Tipo puro. Limitaciones
Sistemas Operativos. Clase 2: Administración de procesos.
Sistemas Operativos Clase 2: Administración de procesos. Administración de procesos Un concepto muy importante en el ambiente de diseño de todo sistema operativo, es el de proceso o tarea. De manera general,
PROGRAMACIÓN ALGORITMOS y DIAGRAMAS
PROGRAMACIÓN ALGORITMOS y DIAGRAMAS ALGORITMO DEFINICIÓN: CONSISTE EN LA DESCRIPCIÓN CLARA Y DETALLADA DEL PROCEDIMIENTO A SEGUIR PARA ALCANZAR LA SOLUCIÓN A UN PROBLEMA ESTABLECIENDOSE UNA SECUENCIA DE
ESCUELA DE INGENIERIA Informática Y Sistemas
ESCUELA DE INGENIERIA Informática Y Sistemas ASIGNATURA PROGRAMACIÓN DE COMPUTADORES CODIGO ST0240 SEMESTRE 2013-2 INTENSIDAD HORARIA 48 horas semestral CARACTERÍSTICAS Suficientable CRÉDITOS 3 1. JUSTIFICACIÓN
Introducción. Reglas para dibujar un diagramas de flujo.
Introducción. Los diagramas de flujo son una manera de representar visualmente el flujo de datos a travéz de sistemas de tratamiento de información. Los diagramas de flujo describen que operaciónes y en
Introducción a MATLAB
Introducción a MATLAB Sistemas Conexionistas - Curso 07/08 MATLAB es un sistema interactivo basado en matrices para cálculos científicos y de ingeniería. Se pueden resolver problemas numéricos relativamente
Apuntes de Programación y estructuras de datos. Tipos de datos
Apuntes de Programación y estructuras de datos. Tipos de datos Nikos Mylonakis, Fernando Orejas y Ana Cristina Zoltan [email protected] Dept. Llenguatges i Sistemes Informátics Universitat Politécnica
3. Estructuras iterativas
3. Estructuras iterativas Fundamentos de Informática Dpto. Lenguajes y Sistemas Informáticos Curso 2012 / 2013 Índice Estructura iterativas 1. Análisis de algoritmos iterativos 2. Ej11: While 3. Ej12:
SISTEMA DE NUMERACIÓN BINARIO
SISTEMA DE NUMERACIÓN BINARIO Cuando se trabaja en una computadora, los datos son convertidos en números dígitos que, a su vez, son representados como pulsaciones o pulsos electrónicos. En la actualidad
TEMA 1 FUNDAMENTOS DE PROGRAMACIÓN
TEMA 1 FUNDAMENTOS DE PROGRAMACIÓN 1.1 Introducción 1.2 Evolución de los lenguajes de programación 1.3 Paradigmas de programación 1.4 Métodos de implementación 1.5 Lecturas recomendadas 1.6 Ejercicios
EJERCICIOS DE PROGRAMACION EN LENGUAJE JAVA
EJERCICIOS DE PROGRAMACION EN LENGUAJE JAVA EJERCICIOS DE PROGRAMACION EN LENGUAJE JAVA... 3 1.1. Imprimir por pantalla:...3 1. Ejercicio:...3 2. Ejercicio:...3 3. Ejercicio:...3 1.2. Operaciones básicas
TEMA 2: CICLO DE VIDA DEL SOFTWARE. Profesora: Elisa Herrmann
TEMA 2: CICLO DE VIDA DEL SOFTWARE Profesora: Elisa Herrmann Índice 2.1. Qué es el ciclo de vida del Software?. 2.2. La norma 12207-2008. 2.3. Modelos de desarrollo. Ingeniería del Software - 2010/2011
La ayuda y referencia de Visual Basic y otros recursos como herramientas para los programadores. (CU00306A)
aprenderaprogramar.com La ayuda y referencia de Visual Basic y otros recursos como herramientas para los programadores. (CU00306A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión:
Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo
Tema 4 Control de flujo Programación 2015-2016 Programación - Tema 4: Control de Flujo 1 Tema 4. Control de flujo Introducción. Estructuras condicionales. Estructuras de repetición. Programación - Tema
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 III La Sintaxis de Java II... 6 Estructuras de Control... 7 Estructuras de Selección... 8 Sentencia
Programación I. Práctica parcial: el juego de los barquitos (ENTREGA OBLIGATORIA)
Programación I Práctica parcial: el juego de los barquitos (ENTREGA OBLIGATORIA) El objetivo de esta práctica es implementar una variedad del juego de los barquitos o hundir la flota. Como sabréis el juego
Introducción a Extreme Programming
Introducción a Extreme Programming Ingeniería del Software II Gerardo Fernández Escribano 9-12-2002 Índice 1. Qué es extreme Programming (XP)? 2. Introducción a la metodología XP 3. Fases de la metodología
1.2. Es Java un lenguaje ideal para aprender a programar? 1.4. Cuáles son las versiones y distribuciones Java y cuál usar?
1 1. Introducción 1.1. Qué es Java? 1.2. Es Java un lenguaje ideal para aprender a programar? 1.3. Es Java software libre? 1.4. Cuáles son las versiones y distribuciones Java y cuál usar? 1.5. Qué sistema
TEORIA DE NUMEROS (I) REGLAS DE DIVISIBILIDAD
Un número es divisible por: TEORIA DE NUMEROS (I) REGLAS DE DIVISIBILIDAD - 2 Si es PAR. - 3 Si la suma de sus cifras es divisible por 3. - 4 Si el número formado por sus dos últimas cifras es divisible
Introducción al análisis numérico
Introducción al análisis numérico Javier Segura Universidad de Cantabria Cálculo Numérico I. Tema 1 Javier Segura (Universidad de Cantabria) Introducción al análisis numérico CNI 1 / 26 Contenidos: 1 Sistemas
Un string nulo es aquél que no contiene caracteres, pero es un objeto de la clase String. Sin embargo,
La clase String Cómo se obtiene información acerca del string Comparación de strings Extraer un substring de un string Convertir un número a string Convertir un string en número Métodos Principales La
2. Indica cuál de las siguientes afirmaciones es cierta:
Nombre:. Indica cuál de las siguientes afirmaciones es cierta: El diseño de un programa procedural está guiado por la división en tareas a realizar, mientras que el diseño orientado a objetos está dirigido
+18 = 00010010-18 = 10010010
Capítulo 8. Aritmética del Procesador Las dos preocupaciones principales de la aritmética de una computadora son la manera en que se representan los números (el formato binario) y los algoritmos utilizados
CARTA DESCRIPTIVA (FORMATO MODELO EDUCATIVO UACJ VISIÓN 2020)
CARTA DESCRIPTIVA (FORMATO MODELO EDUCATIVO UACJ VISIÓN 2020) I. Identificadores de la asignatura Instituto: Ingeniería y Tecnología Modalidad: Presencial Departamento: Materia: Eléctrica y Computación
Introducción a C# y la plataforma.net
Introducción a y la plataforma.net Matías Malbergier 2013 Plataforma.NET.NET provee un set de herramientas (Framework) el cual permite desarrollar programas apuntando a múltiples plataformas y utilizando
ÁREA DE INGENIERÍA QUÍMICA Prof. Isidoro García García. Operaciones Básicas de Transferencia de Materia. Tema 1
ÁREA DE INGENIERÍA QUÍMICA Operaciones Básicas de Transferencia de Materia Los procesos químicos modifican las condiciones de una determinada cantidad de materia: modificando su masa o composición modificando
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
CAPÍTULO II LA CADENA DE SUMINISTRO
CAPÍTULO II LA CADENA DE SUMINISTRO 2.1 Conceptos Cadena de suministro (en inglés, Supply Chain) es una expresión figurada para designar en la compleja serie de procesos de intercambio o flujos de materiales
Computación distribuida
Computación distribuida Grupo ARCOS Desarrollo de Aplicaciones Distribuidas Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Qué es computación distribuida 2. Principales paradigmas
Encapsulación: clases y objetos
Encapsulación: clases y objetos Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) [email protected] Contenidos Clases
