Algorítmica y Lenguajes de Programación. Ordenación (i)

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Algorítmica y Lenguajes de Programación. Ordenación (i)"

Transcripción

1 Algorítmica y Lenguajes de Programación Ordenación (i) Ordenación. Introducción A lo largo del curso hemos visto distintas formas de almacenar datos: Vectores. Matrices. Ficheros Listas (pilas y colas) Aunque no se han estudiado, existen más estructuras de datos como árboles y grafos. Todas estas estructuras sirven para almacenar información de un modo adecuado que permita su recuperación (búsqueda) de la forma más eficiente posible. Por ello, los algoritmos de ordenación son fundamentales y, como ejemplos típicos (y sencillos), estudiaremos algunos de los algoritmos de ordenación de vectores más comunes. 2 1

2 Ordenación. Características de los vectores Las dos características principales de los vectores son las siguientes: 1. Se accede a sus componentes de forma directa; por ejemplo: a(3) permite acceder (para leer o escribir) la tercera componente de un vector denominado a. 2. Los vectores tienen un tamaño fijo que queda determinado en el momento de su declaración; por ejemplo, la declaración coordenadas vector (3) de real limita el tamaño del vector coordenadas a 3 componentes. 3 Ordenación. Algoritmos de tratamiento de vectores Los algoritmos de tratamiento de vectores responden a tres esquemas básicos: 1. Recorrido: procesar todos los elementos del vector. 2. Búsqueda: recorrer el vector hasta encontrar una componente que cumple una propiedad determinada. 3. Ordenación: recolocar los elementos del vector para que mantengan una determinada relación de orden. El primer esquema es muy sencillo, en esta lección nos centraremos en la ordenación dejando para su posterior estudio los algoritmos de búsqueda. 4 2

3 Ordenación. Algoritmos de ordenación Los algoritmos de ordenación (ya sean de vectores o de otro tipo de estructura de datos) deben obtener una permutación ordenada de los elementos presentes en la estructura. La mayoría de algoritmos de ordenación de vectores se basan en realizar intercambios entre las componentes del mismo. Existen múltiples algoritmos de ordenación de vectores diferenciándose por su eficiencia; nosotros estudiaremos los siguientes: Método de la burbuja. Método de la burbuja con señal. Ordenación por sacudida. Ordenación rápida (quicksort). 5 Ordenación. Método de la burbuja (i) La idea básica de este algoritmo consiste en considerar todos los intercambios posibles hasta deshacer todas las inversiones existentes en el vector. En todos los ejemplos que se presenten se utilizará un tipo ficticio elemento para el que se supone que existe una relación de orden. subrutina burbuja (v vector(max) de elemento) variables i,j entero temp elemento inicio desde i 1 hasta MAX-1 hacer desde j MAX hasta i+1 con paso 1 hacer si v(j)<v(j-1) entonces temp v(j) v(j) v(j-1) v(j-1) temp fin si fin 6 3

4 Ordenación. Método de la burbuja (ii) v(j)<v(j-1)? v(3)<v(2)? 1<2? verdadero v(j)<v(j-1)? v(3)<v(2)? 1<2? verdadero v(j)<v(j-1)? v(3)<v(2)? 1<2? verdadero v(j)<v(j-1)? v(2)<v(1)? 1<3? verdadero v(j)<v(j-1)? v(2)<v(1)? 1<3? verdadero v(j)<v(j-1)? v(3)<v(2)? 2<3? verdadero temp: v(j)<v(j-1)? v(3)<v(2)? 2<3? verdadero temp: v(j)<v(j-1)? v(3)<v(2)? 2<3? verdadero temp: v(j)<v(j-1)? v(2)<v(1)? 1<3? verdadero 7 Ordenación. Método de la burbuja (iii) Eficiencia del método de la burbuja desde i 1 hasta MAX-1 hacer desde j MAX hasta i+1 con paso 1 hacer si v(j)<v(j-1) entonces temp v(j) v(j) v(j-1) v(j-1) temp fin si Tiempo máximo de ejecución Asíntota para el tiempo de ejecución Tamaño del problema La parte más interna del algoritmo tiene una complejidad O(1). La complejidad de la estructura alternativa también es O(1) puesto que la expresión lógica a evaluar tiene un coste unitario. El bucle j se ejecuta entre 1 y MAX-1 veces así que tomaremos un valor máximo y supondremos que se ejecutará MAX-1 veces; así la complejidad del mismo sería O((MAX-1) 1) o lo que es lo mismo O(MAX). El bucle i se ejecuta MAX-1 veces por lo que la complejidad final del algoritmo sería O((MAX-1) MAX) o lo que es lo mismo O(MAX 2 ), puesto que MAX es el tamaño máximo del vector, es decir, el tamaño del problema la complejidad del método de la burbuja es O(n 2 ). El problema de este algoritmo radica en que ejecuta siempre el mismo número de pasos independientemente de si el vector está ordenado o no. 8 4

5 Ordenación. Método de la burbuja (iv) subroutine burbuja (vector) implicit none integer vector(max) integer i,j do i=1,max-1 do j=max,i+1,-1 if (vector(j)<vector(j-1)) then temp=vector(j) vector(j)=vector(j-1) vector(j-1)=temp end if end subroutine 9 Ordenación. Burbuja con señal (i) Se modifica el algoritmo de la burbuja para disponer de un indicador que señale si se ha producido algún intercambio. En el momento en que no hay ningún intercambio el vector ya está totalmente ordenado y se puede parar. Este algoritmo también tiene una complejidad O(n 2 ) salvo para el caso de un vector ordenado, en esa situación la complejidad es O(n) frente a la burbuja tradicional que también sería O(n 2 ) en ese caso. subrutina burbuja (v vector(max) de elemento) variables i,j entero temp elemento bandera logico inicio i 1 bandera falso mientras i<max y no bandera hacer j MAX bandera verdadero mientras j>i hacer si v(j)<v(j-1) entonces temp v(j) v(j) v(j-1) v(j-1) temp bandera falso fin si j j-1 fin mientras i i+1 fin mientras fin 10 5

6 Ordenación. Burbuja con señal (ii) bandera:falso v(j)<v(j-1)? v(3)<v(2)? 3<2? falso temp:? bandera:verdadero v(j)<v(j-1)? v(2)<v(1)? 2<1? falso temp:? bandera:verdadero FIN DE LA EJECUCIÓN Como se puede apreciar, en caso de que el vector esté inicialmente ordenado, el método de la burbuja con señal ejecuta el bucle más interno de forma completa una sola vez; de ahí que la complejidad de este algoritmo para el caso mejor sea O(n). Pasos ejecutados Pasos ejecutados para ordenar un vector ya ordenado Tamaño del vector Burbuja Burbuja señal 11 Ordenación. Burbuja con señal (iii) subroutine burbujasenal (vector) implicit none integer vector(max) integer i,j logical bandera i=1 bandera=.false. do while ((i<max).and.(.not.(bandera))) j=max bandera=.true. do while (j>i) if (vector(j)<vector(j-1)) then temp=vector(j) vector(j)=vector(j-1) vector(j-1)=temp bandera=.false. end if j=j-1 i=i+1 end subroutine 12 6

7 Ordenación. Resumen Los algoritmos de ordenación son fundamentales, un ejemplo típico y muy sencillo de los mismos son los algoritmos de ordenación de vectores. Las dos características principales de los vectores son las siguientes: 1. Se accede a sus componentes de forma directa. 2. Los vectores tienen un tamaño fijo determinado en el momento de su declaración. Los algoritmos de tratamiento de vectores responden a tres esquemas básicos: recorrido, búsqueda y ordenación. Los algoritmos de ordenación deben obtener una permutación ordenada de los elementos presentes en la estructura. La mayoría de algoritmos de ordenación de vectores se basan en realizar intercambios entre las componentes del mismo. En la lección de hoy se han estudiado los métodos de la burbuja y la burbuja con señal; ambos tienen una complejidad O(n 2 ) salvo para el caso mejor (un vector ya ordenado), en esa situación la burbuja con señal tiene complejidad O(n). 13 7

Algorítmica y Lenguajes de Programación. Ordenación (ii) En la lección anterior se vieron dos métodos de ordenación:

Algorítmica y Lenguajes de Programación. Ordenación (ii) En la lección anterior se vieron dos métodos de ordenación: Algorítmica y Lenguajes de Programación Ordenación (ii) Ordenación. Introducción En la lección anterior se vieron dos métodos de ordenación: Método de la burbuja. Método de la burbuja con señal. El primero

Más detalles

Ejemplo de la implementación del llenado de un arreglo de forma aleatoria

Ejemplo de la implementación del llenado de un arreglo de forma aleatoria OBJETIVO 6.3. MANEJO DE ARREGLOS LLENADO DE UN VECTOR Un arreglo se puede llenar de dos formas una de manera aleatoria en donde el compilador llena el arreglo y otra forma es darle la oportunidad al usuario

Más detalles

Una Solución (*) del Problema F Where Are My Genes

Una Solución (*) del Problema F Where Are My Genes Una Solución (*) del Problema F Where Are My Genes Viktor Khlebnikov (vkhlebn@pucp.edu.pe) Enero de 2006 (*) Esta solución fue desarrollada sin conocimiento de la solución del autor del problema. Comencemos

Más detalles

Fundamentos de la Programación

Fundamentos de la Programación Fundamentos de la Programación El Software Las operaciones que debe realizar el hardware son especificadas con una lista de instrucciones, llamadas programas o software. Dos grandes grupos de software

Más detalles

ESTRUCTURA DE DATOS: ARREGLOS

ESTRUCTURA DE DATOS: ARREGLOS ESTRUCTURA DE DATOS: ARREGLOS 1. Introduccion 2. Arreglos - Concepto - Caracteristicas 3. Arreglos Unidimensionales 4. Arreglos Bidimensionales 5. Ventajas del uso de arreglos 6. Ejemplo 1. Introducción

Más detalles

Estructura de datos (arreglos) Vectores y Matrices

Estructura de datos (arreglos) Vectores y Matrices Apunte del curso PROGRAMACIÓN (FI-UBA,, J. T. P. Ing. Z. CATALDI; A.T.P. Srta. A Pauluzzi, Sr. C Corradino, Sr. F Gómez Estructura de datos (arreglos) Hasta aquí se han visto distintos tipos de estructuras

Más detalles

Cómo nombrar variables ( 2&

Cómo nombrar variables ( 2& &'()*+,, *)-.&'*/0+!" #$ # http://www.escet.urjc.es/~aiiq/ Introducción a Visual Studio.NET Aprendiendo el IDE de Visual Basic.NET Elementos del lenguaje. Variables y estructuras de datos Introducción

Más detalles

Introducción. Visual Basic para Aplicaciones (VBA) en Excel: aspectos elementales

Introducción. Visual Basic para Aplicaciones (VBA) en Excel: aspectos elementales Introducción Visual Basic para Aplicaciones (VBA) en Excel: aspectos elementales Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl

Más detalles

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Fundamentos de la informática 2. Algoritmos, diagramas de flujo y pseudocódigo Contenido Algoritmos Diagramas de flujo

Más detalles

TEMA 8. Arrays. Array. Contenidos. 8.1 El concepto de array. Los datos pueden ser:

TEMA 8. Arrays. Array. Contenidos. 8.1 El concepto de array. Los datos pueden ser: TEMA 8 Arrays 81 El concepto de array Los datos pueden ser: Simples: cada identificador representa una dirección de memoria donde guardar un valor escalar, pe un único valor de una variable: Datos de los

Más detalles

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas Capítulo 4 Vectores y matrices En FORTRAN se puede utilizar un tipo especial de variable que sirve, en particular, para almacenar vectores y matrices. De esta forma, se utiliza un sólo nombre para referirse

Más detalles

Estructura de Datos y de la Información. Pilas y expresiones aritméticas

Estructura de Datos y de la Información. Pilas y expresiones aritméticas Estructura de Datos y de la Información Pilas y expresiones aritméticas LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles

Estructura de datos Tema 3: El TAD Lista lineal. Universidad de Valladolid. Departamento de informática. Campus de Segovia

Estructura de datos Tema 3: El TAD Lista lineal. Universidad de Valladolid. Departamento de informática. Campus de Segovia Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 3: El TAD Lista lineal Prof. Montserrat Serrano Montero ÍNDICE El TAD lista lineal Implementación con estructuras

Más detalles

Resolución de Problemas

Resolución de Problemas Resolución de Problemas con algoritmos Colaboratorio de Computación Avanzada (CNCA) 2015 1 / 27 Contenidos 1 Introducción 2 Elementos de algoritmos Elementos Variables Estructuras de Control Condicionales

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

Arreglos. // Incluir E/S y Librerías Standard #include #include

Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h> Arreglos Introducción. En los temas anteriores se han estudiado los diferentes tipos de datos simples de C++, usados para representar valores simples como enteros, reales o caracteres. Sin embargo, en

Más detalles

6. Estructuras básicas de control 1. Pseudocódigo

6. Estructuras básicas de control 1. Pseudocódigo 6. Estructuras básicas de control 1 Acciones Estructuras de control Secuencia Selección Pseudocódigo simple (si... entonces... ) doble (si... entonces... si no... ) múltiple (según el caso... ) Iteración

Más detalles

Funciones y subrutinas

Funciones y subrutinas Funciones y subrutinas Introducción En lecciones anteriores se ha descrito el concepto de diseño descente; esta técnica permite desarrollar algoritmos que resuelvan un problema mediante un proceso de reamiento

Más detalles

Academia técnica de computación A.T.C.

Academia técnica de computación A.T.C. Academia técnica de computación A.T.C. Free Pascal (FPC) El Free Pascal es un compilador Pascal portable, libre y de código abierto, que representa una alternativa a los productos comerciales Turbo Pascal

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

promedio = nint((notas(1) + notas(2) + notas(3) + & notas(4) + notas(5) + notas(6)) / 6.0) print *, 'Su promedio es', promedio

promedio = nint((notas(1) + notas(2) + notas(3) + & notas(4) + notas(5) + notas(6)) / 6.0) print *, 'Su promedio es', promedio Arreglos Un arreglo es un tipo de datos que contiene varios elementos de un mismo tipo. Cada elemento tiene asociado un índice, y puede ser tratado como si fuera una variable. La cantidad de elementos

Más detalles

10. Algoritmos de ordenación

10. Algoritmos de ordenación 10. Algoritmos de ordenación Se describen aquí algunos algoritmos de ordenación. Los comentarios relativos a su eficacia se deben tomar en términos relativos, pues esa eficiencia va a depender del tipo

Más detalles

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009 Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier

Más detalles

MASTER EN INGENIERÍA DEL HORMIGÓN

MASTER EN INGENIERÍA DEL HORMIGÓN MASTER EN INGENIERÍA DEL HORMIGÓN MODELOS PREDICTIVOS Y DE OPTIMIZACIÓN DE ESTRUCTURAS DE HORMIGÓN Profesores: Víctor Yepes Piqueras, Julián Alcalá González PROGRAMACIÓN DE UN GENERADOR DE LISTAS DE NÚMEROS

Más detalles

Estructuras de Control

Estructuras de Control Algorítmica y Lenguajes de Programación Estructuras de Control Estructuras de Control. Introducción Hasta ahora algoritmos han consistido en simples secuencias de instrucciones Existen tareas más complejas

Más detalles

Tema 7: Programación con Matlab

Tema 7: Programación con Matlab Tema 7: Programación con Matlab 1. Introducción Matlab puede utilizarse como un lenguaje de programación que incluye todos los elementos necesarios. Añade la gran ventaja de poder incorporar a los programas

Más detalles

Tema 2. Software. Informática (1º Ingeniería Civil) jcarmur@unex.es

Tema 2. Software. Informática (1º Ingeniería Civil) jcarmur@unex.es Tema 2. Software Informática (1º Ingeniería Civil) Curso 2011/2012 Javier Carmona Murillo jcarmur@unex.es Índice Introducción. Programas e instrucciones. Tipos y estructuras de datos. Algoritmos. Proceso

Más detalles

Estructuras de Repetición Repita Mientras

Estructuras de Repetición Repita Mientras Estructuras de Repetición Repita Mientras Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Estructuras de Repetición Las estructuras de repetición son sentencias que permiten

Más detalles

PARTE II: Programación en ensamblador

PARTE II: Programación en ensamblador Cuaderno de Prácticas Laboratorio de Fundamentos de Computadores PARTE II: Programación en ensamblador Autor: Rafael Moreno Vozmediano Facultad de Informática La Máquina Rudimentaria: Arquitectura del

Más detalles

Elementos de programación Fortran.

Elementos de programación Fortran. Elementos de programación Fortran. Hay dos formas de escribir programas sin errores. Sólo la tercera funciona. Pablo Santamaría v0.1 (Abril/Mayo 2008) Índice 1. Primeros pasos en programación. 2 2. Estructura

Más detalles

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado Facultad de Ingeniería. Escuela de computación. 2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 3 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas

Más detalles

Práctica 2: El problema de la sección crítica

Práctica 2: El problema de la sección crítica Práctica 2: El problema de la sección crítica Programación de Sistemas Concurrentes y Distribuidos Grado de Ingeniería Informática Dpto. de Informática e Ingeniería de Sistemas, Escuela de Ingeniería y

Más detalles

Compiladores: Sesión 20. Análisis semántico, verificación e inferencia de tipos

Compiladores: Sesión 20. Análisis semántico, verificación e inferencia de tipos Compiladores: Sesión 20. Análisis semántico, verificación e inferencia de tipos Prof. Gloria Inés Alvarez V. Departamento de Ciencias e Ingeniería de la Computación Pontificia Universidad Javeriana Cali

Más detalles

Programación: QBASIC

Programación: QBASIC 1. QBASIC Programación: QBASIC Guía del alumno Qbasic es una versión moderna del lenguaje BASIC. Se trata de un lenguaje de alto nivel. En un lenguaje de alto nivel las instrucciones tienen un formato

Más detalles

Tutorial de Pseudocódigo

Tutorial de Pseudocódigo Tutorial de Pseudocódigo Esta sección se ha diseñado con un sentido totalmente didáctico, para servir de apoyo a las clases de pseudocódigo o algoritmia que forman parte de los cursos de programación.

Más detalles

COLAS. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny

COLAS. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny COLAS 2002 GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ESTRUCTURA DE DATOS TEMA 4 Estructura de datos Cola ÍNDICE 4.1. Definición y ejemplos...3 4.2. El TAD

Más detalles

LENGUAJES DE PROGRAMACIÓN

LENGUAJES DE PROGRAMACIÓN 7 LENGUAJES DE PROGRAMACIÓN 7.1. Lenguajes de programación. Evolución. El soporte lógico, o software, de una computadora es el conjunto de programas asociados a dicha computadora. Hemos visto en el tema

Más detalles

3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES

3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES 3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES 3.1 Estructuras de repetición Una estructura de repetición, también llamada lazo o bucle, hace posible la ejecución repetida de secciones específicas de código.

Más detalles

PRACTICA 6. VECTORES Y MATRICES.

PRACTICA 6. VECTORES Y MATRICES. PRACTICA 6. VECTORES Y MATRICES. 1. Introducción. Los vectores y matrices son uno de los medios principales para el almacenamiento de los datos en un programa. En esta práctica veremos todos los conceptos

Más detalles

Operaciones con vectores

Operaciones con vectores Fundamentos de Informática 2012-2013 Laboratorio 12: Vectores (2) Objetivos: Practicar con algoritmos típicos con vectores (arrays de una dimensión) Operaciones con vectores Interfaz Figura 12.1. Interfaz

Más detalles

Analisis de algoritmos

Analisis de algoritmos Analisis de algoritmos Eficiencia Es la capacidad de disponer de un recurso. En el caso de los algoritmos, la eficiencia se logra haciendo el mejor uso posible de los recursos del sistema. Recursos Qué

Más detalles

Como se declara un vector en Visual Basic 6.0

Como se declara un vector en Visual Basic 6.0 Vectores o Arrays(Arreglos) Qué es un Array?: En programación, una matriz o vector (llamados en inglés arrays) es una zona de almacenamiento continuo, que contiene una serie de elementos del mismo tipo,

Más detalles

Curso 0 de Informática

Curso 0 de Informática Curso 0 de Informática 2015-2016 Tema 1: Introducción a la Informática y Conceptos básicos 1 Motivación (I): En los procesos industriales, cada vez es mayor el uso de sistemas informáticos para: Monitorización,

Más detalles

6 CARACTERES Y CADENAS. 6.1 Caracteres y cadenas

6 CARACTERES Y CADENAS. 6.1 Caracteres y cadenas 6 CARACTERES Y CADENAS 6.1 Caracteres y cadenas En el capítulo 1 se indicó cómo tratar con variables y constantes carácter en Fortran 90/95. Recordar que la declaración de este tipo de variables, como

Más detalles

UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS.

UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS. UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS. 5.1.- SECUENCIA En este caso, las instrucciones se ejecutan una después de la otra sin omitir ninguna de ellas. La sintaxis para

Más detalles

Solución Examen Febrero 2006

Solución Examen Febrero 2006 Solución Examen Febrero 2006 Lea detenidamente las siguientes instrucciones. No cumplir los requerimientos puede implicar la pérdida del examen. Formato Indique su nombre completo y número de cédula en

Más detalles

Salvador Macías Hernández Rodolfo Gómez Vega Factorización LU. Programa 7/9/2003 Tarea No.4

Salvador Macías Hernández Rodolfo Gómez Vega Factorización LU. Programa 7/9/2003 Tarea No.4 E.99102.1 MÉTODOS COMPUTACIONALES EN INGENIERÍA Salvador Macías Hernández Rodolfo Gómez Vega Factorización LU. Programa 7/9/2003 Tarea No.4 INTRODUCCIÓN. Supongamos que A se puede factorizar como el producto

Más detalles

Algoritmos. Autor: José Ángel Acosta Rodríguez

Algoritmos. Autor: José Ángel Acosta Rodríguez Autor: 2006 ÍNDICE Página Índice 1 Problema 1. Movimiento de figuras geométricas.2 Problema 2. Conversión decimal a binario....3 Problema 3. Secuencias binarias..4 Problema 4. Conversión a binario a octal...

Más detalles

Práctica 3: Programación con subrutinas

Práctica 3: Programación con subrutinas Práctica 3: Programación con subrutinas 3.1 Objetivos El objetivo de esta práctica es estudiar el soporte del ensamblador del ARM para la gestión de subrutinas, para lo que resulta necesario familiarizarse

Más detalles

Fortran tiene dos tipos diferentes de subprogramas, las funciones y las subrutinas.

Fortran tiene dos tipos diferentes de subprogramas, las funciones y las subrutinas. PROGRAMACION MODULAR: La programación modular es un método de diseño que permite resolver un problema mediante su descomposición en problemas más simples o módulos que se pueden analizar, programar y poner

Más detalles

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora

Más detalles

Refactorizar (v) Reestructurar el software aplicando una secuencia de refactorizaciones.

Refactorizar (v) Reestructurar el software aplicando una secuencia de refactorizaciones. Refactorización Definición Refactorización (n) Cambio realizado a la estructura interna del software para hacerlo más fácil de comprender y más fácil de modificar sin cambiar su comportamiento observable.

Más detalles

Esteganografía En Imágenes Basado En Mascaras de Convolución Espacial. Universidad Nacional de Trujillo

Esteganografía En Imágenes Basado En Mascaras de Convolución Espacial. Universidad Nacional de Trujillo Esteganografía En Imágenes Basado En Mascaras de Convolución Espacial Universidad Nacional de Trujillo Resumen La Esteganografía toma su mayor auge a partir de la aparición de los ordenadores. En el caso

Más detalles

Convirtiendo números del sistema decimal al sistema binario.

Convirtiendo números del sistema decimal al sistema binario. Convirtiendo números del sistema decimal al sistema binario. Pablo Santamaría v0.1b (Septiembre 2009) Veamos como puede convertirse la representación decimal de un número al sistema binario. El procedimiento

Más detalles

Tema 2. Recursividad. Fundamentos de Programación II. Luís Rodríguez Baena (luis.rodriguez@upsam.net)

Tema 2. Recursividad. Fundamentos de Programación II. Luís Rodríguez Baena (luis.rodriguez@upsam.net) Fundamentos de Programación II Tema 2. Recursividad Luís Rodríguez Baena (luis.rodriguez@upsam.net) Universidad Pontificia de Salamanca (campus Madrid) Escuela Superior de Ingeniería y Arquitectura Naturaleza

Más detalles

Señal de petición de Interrupción

Señal de petición de Interrupción Consideren una tarea que require tomar caracteres desde un teclado y mostrarlos en la pantalla de un monitor. La tasa de transferencia desde un teclado a un computador está limitado por la velocidad del

Más detalles

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas Departamento de Informática PROGRAMACIÓN DIDÁCTICA Curso 11-12 1 CONSEJERÍA DE EDUCACIÓN I.E.S. NERVIÓN Departamento de Informática CICLO FORMATIVO: TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA.

Más detalles

CONTENIDO CURSO JAVA BASICO NIVEL 1

CONTENIDO CURSO JAVA BASICO NIVEL 1 CONTENIDO CURSO JAVA BASICO NIVEL 1 VIDEO 1 Ubicación de la zona de descargas de www.programandofacil.com para obtener el jdk7 y el netbeans 7.3 en español. Instalación del compilador jdk7 y de netbeans

Más detalles

Introducción a la Programación Ingenieria en Informática Junio 2008

Introducción a la Programación Ingenieria en Informática Junio 2008 Introducción a la Programación Ingenieria en Informática Junio 2008 Ejercicio 1 [2 puntos] Escribe un programa que reciba el fichero binario.dat, fichero binario de enteros positivos y devuelva un fichero

Más detalles

Sobre la lectura y escritura de datos en FORTRAN.

Sobre la lectura y escritura de datos en FORTRAN. Sobre la lectura y escritura de datos en FORTRAN. 1. Las sentencias READ /WRITE Uno de los elementos básicos de la programación e cualquier lenguaje es la lectura y/o escritura de datos. En el lenguaje

Más detalles

Distinguir las diferentes estructuras de repetición utilizadas en problemas con ciclos: mientras, haga-mientras, repita-hasta, para.

Distinguir las diferentes estructuras de repetición utilizadas en problemas con ciclos: mientras, haga-mientras, repita-hasta, para. ESTRUCTURAS DE REPETICIÓN OBJETIVOS Aprender a construir grandes y complejos problemas a través de la ejecución repetida de una secuencia de proposiciones llamados ciclos o estructuras repetitivas. Distinguir

Más detalles

ÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny

ÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ÁRBOLES BINRIOS 2002 GRUPO # 22 lumnos: guilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ESTRUCTURS DE DTOS TEM 6 Estructuras de datos no lineales. Árboles binarios ÍNDICE 6.1. Introducción.

Más detalles

Seminario de Actualización - Excel Avanzado y Macros. Visual Basic. Conceptos Básicos de Visual Basic para Aplicaciones

Seminario de Actualización - Excel Avanzado y Macros. Visual Basic. Conceptos Básicos de Visual Basic para Aplicaciones Conceptos Básicos de para Aplicaciones 1 Qué es la programación? Es la acción de escribir programas de computación con el fin de resolver un determinado problema. Datos Constantes π = 3.1416 (real) Variables

Más detalles

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control 1er curso de Ingeniería Industrial: Ingeniería de Control Práctica 1ª: Introducción a Matlab Departamento de Ingeniería electrónica, Telecomunicación y Automática. Área de Ingeniería de Sistemas y Automática

Más detalles

Tutorial Básico de vbscript

Tutorial Básico de vbscript Tutorial Básico de vbscript Bueno, primero aclarar que este tutorial, pretende explicar de manera básica las distintas instrucciones aplicadas en visual basic script (vbs de aquí en más), para que así

Más detalles

Tipos de datos. Lección 1. Programación. Curso 2006-2007. J. A. Bañares, Pedro J. Álvarez, S. Velilla

Tipos de datos. Lección 1. Programación. Curso 2006-2007. J. A. Bañares, Pedro J. Álvarez, S. Velilla Lección 1. Programación. Curso 2006-2007 Tipos de datos J. A. Bañares, Pedro J. Álvarez, S. Velilla http://diis.unizar.es/ Departamento de Informática e Ingeniería de Sistemas 2 Tipos de datos, constantes

Más detalles

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Fundamentos de la informática 5. Gestión de ficheros de texto en Java Contenido Introducción La clase PrintWriter La clase

Más detalles

Capítulo 3 Ordenación(Clasificación) y Búsqueda

Capítulo 3 Ordenación(Clasificación) y Búsqueda Capítulo 3 Ordenación(Clasificación) y Búsqueda 3.1 Ordenamiento Interno Los computadores emplean gran parte de su tiempo en operaciones de búsqueda y ordenamiento. Existen 2 métodos de ordenación: ordenación

Más detalles

Introducción a Matlab.

Introducción a Matlab. Introducción a Matlab. Ejercicios básicos de manipulación de imágenes. Departamento de Ingeniería electrónica, Telecomunicación y Automática. Área de Ingeniería de Sistemas y Automática OBJETIVOS: Iniciación

Más detalles

Unidad 3 Generación de números aleatorios.

Unidad 3 Generación de números aleatorios. Unidad 3 Generación de números aleatorios. Ejercicio 1. Generadores de números aleatorios. La implementación de un buen generador de números aleatorios uniformemente distribuidos sobre el intervalo (0,

Más detalles

Introducción a FORTRAN

Introducción a FORTRAN Introducción a FORTRAN Miguel Alcubierre Instituto de Ciencias Nucleares, UNAM Abril 2005 Índice 1. Introducción 3 2. Compilar y correr programas en FORTRAN 4 3. Elementos básicos de un programa en FORTRAN

Más detalles

Curso de Visual Basic 6.0 - Lección 1 Area Interactiva - www.areaint.com

Curso de Visual Basic 6.0 - Lección 1 Area Interactiva - www.areaint.com LECCIÓN 6 En esta lección vamos a familiarizarnos con las estructuras de repetición, las cuales nos sirven para realizar una misma instrucción un número determinado de veces o indeterminado dependiendo

Más detalles

Resolver triángulos en Visual Basic. Parte 3/3

Resolver triángulos en Visual Basic. Parte 3/3 Artículo Revista digital Matemática, Educación e Internet (www.cidse.itcr.ac.cr/revistamate/). Vol. 3, N o 1. Agosto Diciembre 2002. Resolver triángulos en Visual Basic. Parte 3/3 Introducción Luis Acuña

Más detalles

Ejemplo de programa básico en Visual Basic. Option Explicit, Form, Dim, String, etc. (CU00310A)

Ejemplo de programa básico en Visual Basic. Option Explicit, Form, Dim, String, etc. (CU00310A) aprenderaprogramar.com Ejemplo de programa básico en Visual Basic. Option Explicit, Form, Dim, String, etc. (CU00310A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión: 2029 Autor:

Más detalles

Arreglos y Registros

Arreglos y Registros Arreglos y Registros 1. Introducción a las estructuras de datos Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen en ella.

Más detalles

Introducción al tipo de dato ARRAY

Introducción al tipo de dato ARRAY CONTENIDOS. Introducción al tipo de dato ARRAY. Definición, Características, Declaración, Acceso e Inicialización.. Arrays multidimensionales Definición, Declaración, Acceso e Inicialización. Introducción

Más detalles

Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11

Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11 índice Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11 Capítulo 1: Introducción a c/e++ Introducción a C/C++ 13 Introducción 14 Primeros Pasos en C/C++ 15 Mi Primer Programa 15 Bibliotecas 17 Archivos

Más detalles

MATLAB: Introducción al procesamiento de imágenes

MATLAB: Introducción al procesamiento de imágenes MATLAB: Introducción al procesamiento de imágenes Visión por Computador Esther de Ves Cuenca Representación de imágenes en MATLAB Matlab almacena las imágenes como vectores bidimensionales (matrices),

Más detalles

Universidad Metropolitana Castro Carazo Prof. Ing. Patricia Vargas. Material de apoyo Semana #2 PROGRAMACIÓN II

Universidad Metropolitana Castro Carazo Prof. Ing. Patricia Vargas. Material de apoyo Semana #2 PROGRAMACIÓN II Prof. Ing. Patricia Vargas 1 Universidad Metropolitana Castro Carazo Prof. Ing. Patricia Vargas Material de apoyo Semana #2 PROGRAMACIÓN II Agenda 1. Definición de variables locales y públicas. 2. Declaraciones

Más detalles

UTN FRR Ingeniería en Sistemas de Información Algoritmos y Estructuras de Datos Archivos Directos GUIA DE ESTUDIO: ARCHIVOS DIRECTOS

UTN FRR Ingeniería en Sistemas de Información Algoritmos y Estructuras de Datos Archivos Directos GUIA DE ESTUDIO: ARCHIVOS DIRECTOS GUIA DE ESTUDIO: ARCHIVOS DIRECTOS Introducción: Una característica común de los tipos de datos que hemos visto hasta ahora es que la información que cargamos se mantiene vigente solamente mientras está

Más detalles

Capítulo 4 Procesos con estructuras de repetición

Capítulo 4 Procesos con estructuras de repetición Estructura de contador Capítulo 4 Procesos con estructuras de repetición Esta es una operación que incrementa en una unidad el valor almacenado en la variable c, cada vez que el flujo del diagrama pasa

Más detalles

MÉTODOS DE BÚSQUEDA. Pedro Guevara Salgado Luís Olascoaga

MÉTODOS DE BÚSQUEDA. Pedro Guevara Salgado Luís Olascoaga MÉTODOS DE BÚSQUEDA Pedro Guea Salgado Luís Olascoaga Universidad de Córdoba Facultad de Ciencias Básicas e Ingenierías Departamento de Ingeniería de Sistemas y Telecomunicaciones MÉTODOS DE BÚSQUEDA Los

Más detalles

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS CONTENIDOS 1. Introducción a las cadenas 2. Definición 3. Declaración de cadenas 4. Inicialización de cadenas 5. Escritura y Lectura de datos tipo cadena 6. Funciones de manipulación de cadenas 7. Arrays

Más detalles

PHP y MySQL. Indice: Switch Bucles For While do...while

PHP y MySQL. Indice: Switch Bucles For While do...while PHP y MySQL Indice: Switch Bucles For While do...while Switch switch...case es otra opción para trabajar con condiciones. Y suplanta al if, cuando lo único que se quiere hacer es comparar si son iguales

Más detalles

Universidad de Buenos Aires Facultad De Ingeniería. Operaciones Lógicas. [75.40] Algoritmos y Programación I. 2do Cuatrimestre 2010

Universidad de Buenos Aires Facultad De Ingeniería. Operaciones Lógicas. [75.40] Algoritmos y Programación I. 2do Cuatrimestre 2010 Universidad de Buenos Aires Facultad De Ingeniería Operaciones Lógicas [75.40] Algoritmos y Programación I 2do Cuatrimestre 2010 Cátedra: Ing. Pablo Guarna Autor: Bernardo Ortega Moncada Índice 1. Introducción

Más detalles

Programa de Formación Profesional en Curso de programación en JAVA Básico 2015

Programa de Formación Profesional en Curso de programación en JAVA Básico 2015 Programa de Formación Profesional en Curso de programación en JAVA Básico 2015 PRESENTACIÓN Es un curso presencial donde la idea es dar los primeros pasos en el mundo de Programación con el Lenguaje más

Más detalles

Visual Basic for Applications

Visual Basic for Applications Visual Basic for Applications en MS Excel 1 Las Macros en MS Excel. Para qué sirve una macro en Excel? Una macro nos ayuda a automatizar aquellas tareas que hacemos repetidamente. Una macro es una serie

Más detalles

Estructuras de control

Estructuras de control Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando

Más detalles

ARREGLOS DEFINICION GENERAL DE ARREGLO

ARREGLOS DEFINICION GENERAL DE ARREGLO ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un

Más detalles

Receta general para resolver problemas de sincronización con semáforos

Receta general para resolver problemas de sincronización con semáforos Receta general para resolver problemas de sincronización con semáforos La primera vez que te enfrentas a la tarea de implementar una solución a un problema de sincronización entre procesos, es normal que

Más detalles

Semántica Denotacional

Semántica Denotacional Semántica Denotacional Idea: El significado de un programa es la función denotada por el programa Componentes del metalenguaje para la definición semántica denotacional de un L.P.: Dominios sintácticos

Más detalles

Curso: Métodos de Monte Carlo Unidad 2, Sesión 6: Integración por Monte Carlo

Curso: Métodos de Monte Carlo Unidad 2, Sesión 6: Integración por Monte Carlo Curso: Métodos de Monte Carlo Unidad 2, Sesión 6: Integración por Monte Carlo Departamento de Investigación Operativa Instituto de Computación, Facultad de Ingeniería Universidad de la República, Montevideo,

Más detalles

UTN FRLP Ing. en Sistemas de Información Algoritmos y Estructura de Datos Trabajos Prácticos Curso 2010

UTN FRLP Ing. en Sistemas de Información Algoritmos y Estructura de Datos Trabajos Prácticos Curso 2010 Práctico de Pascal Nº 2 Ejercicios para la ejercitación del Lenguaje Pascal Objetivo: Es que los alumnos conozcan un lenguaje de programación, donde puedan ejercitar los conocimiento adquiridos hasta ahora

Más detalles

Ingeniería de Software Avanzada

Ingeniería de Software Avanzada Universidad Técnica Federico Santa María Departamento de Informática Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Métricas Clásicas de Software Métricas de tamaño: LOC, tokens, funciones Métricas

Más detalles

Unidad III El lenguaje de programación C 1. 2. 3. 4. 5. 6. 7. 8.

Unidad III El lenguaje de programación C 1. 2. 3. 4. 5. 6. 7. 8. Unidad III 1. Introducción. 2. Breve historia del C. 3. Lenguajes de programación de alto nivel, bajo nivel y nivel medio. 4. Compiladores e intérpretes. 5. Compilación, enlace y generación de un programa

Más detalles

INTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL. Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones

INTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL. Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones INTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL BLACKJACK Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones 1. Explicación del juego de cartas del Blackjack El Blackjack

Más detalles

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES CÁRDENAS ESPINOSA CÉSAR OCTAVIO racsec_05@hotmail.com Boleta: 2009350122 CASTILLO GUTIÉRREZ

Más detalles

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la

Más detalles

Soporte lógico de computadoras

Soporte lógico de computadoras Soporte lógico de computadoras Software: Sistemas Operativos Lenguajes de programación Lenguajes de Programación. Clasificación Proximidad del lenguaje al que entiende el ordenador: Bajo nivel: específico

Más detalles

Práctica 4 El algoritmo QuickSort, comparación de algoritmos de ordenación

Práctica 4 El algoritmo QuickSort, comparación de algoritmos de ordenación Práctica 4 El algoritmo QuickSort, comparación de algoritmos de ordenación Estructuras de datos y algoritmos Facultad de Informática curso 2008-2009 Introducción El objetivo de esta práctica consiste en

Más detalles