Programación (PRG) PRÁCTICA 10. Algoritmos de búsqueda
|
|
- María Carmen Ortega Cruz
- hace 6 años
- Vistas:
Transcripción
1 Programación (PRG) Facultad de Informática Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia 1. Introducción El objetivo de esta práctica es estudiar el comportamiento de dos algoritmos de búsqueda de elementos dentro de vectores. Los algoritmos a estudiar son ya conocidos por el alumno, siendo uno la búsqueda secuencial y otro la binaria. Esta práctica trata de medir el trabajo realizado por cada uno de los algoritmos utilizando una medida a posteriori, es decir, midiendo el trabajo que ha realizado el ordenador una vez resuelto el problema. El alumno deberá relacionar los resultados obtenidos con los resultados esperados, derivados del estudio a priori (es decir, a partir del código fuente) del algoritmo visto en clase. 2. Búsqueda secuencial Este es el algoritmo básico de búsqueda de elementos dentro de un vector. Empieza a buscar el elemento en la primera posición y, si no lo encuentra, continúa en la siguiente posición, y así hasta encontrarlo. Los algoritmos de búsqueda pueden terminar de dos maneras distintas: con éxito, si encuentran el elemento, o sin éxito, si el elemento no estaba en el vector. A continuación se muestra el algoritmo básico de búsqueda secuencial en vectores de enteros: int bs(int x, int V[], int i, int j) { while (i <= j && x!=v[i]) i++; /* i<j */ if (i<=j) return i; /* Encontrado */ else return -1; /* No encontrado */ } 1
2 Los parámetros de la función anterior son: x: El elemento a buscar. V: El vector de enteros donde se realizará la búsqueda. i: Posición inicial de la búsqueda. j: Posición final de la búsqueda. La función devuelve la posición del vector donde se ha encontrado el elemento, o bien -1 si no lo ha encontrado. El algoritmo anterior se puede mejorar de varias formas [1]: Mediante un centinela. Se sitúa el valor que se está buscando al final del vector, de manera que se asegura el éxito de la búsqueda. Así, la comprobación de llegada al final del vector dentro del bucle se puede eliminar. El bucle anterior quedaría: while (x!=v[i]) i++; Si el vector está ordenado. Entonces, cuando se encuentra un valor mayor que el buscado, el algoritmo puede terminar, ya que el elemento buscado no está en el vector. Esta modificación mejora la velocidad del algoritmo en el caso de que el elemento no esté en el vector. Si se sabe a priori la frecuencia de acceso a los elementos. Entonces se podrían colocar los elementos más frecuentemente buscados al principio del vector. Este orden aumenta la velocidad de búsqueda en caso de éxito. Estas aceleraciones necesitan que el vector se pueda modificar. Cuando el vector está implementado de tal forma que no se pueda modificar y no se tiene ninguna información adicional sobre la disposición de sus elementos (por ejemplo, que estén ordenados), habrá que utilizar el algoritmo básico. 3. Búsqueda binaria Este algoritmo necesita que el vector esté ordenado. El método de búsqueda utilizado por este algoritmo consiste en estudiar el elemento central del vector. En función de que sea mayor o menor que el elemento buscado, se puede restringir la búsqueda a una mitad del vector. Después, se repite el mismo proceso con la mitad seleccionada. De esta forma, o bien se encuentra el elemento buscado en una de las posiciones medias que se han estudiado (salida con éxito), o bien el vector a estudiar se queda sin elementos (salida sin éxito). Página 2 de 6
3 A continuación se muestra una implementación en C de dicho algoritmo vista en clase: int bb(int x, int V[], int i, int j) { int k; while (i < j) { k = (i+j)/2; /* i<=k<j */ if (x<v[k]) j = k-1; /* x<v[k] */ else if (x>v[k]) i = k+1; /* x>v[k] */ else return k; /* x==v[k] */ } /*i==j*/ if (x!=v[i]) return -1; /* caso- */ else return i; /* -base */ } Los argumentos y la salida de la función de búsqueda binaria son los mismos que los de la búsqueda secuencial. 4. Estudio del coste temporal de un algoritmo En la Práctica 6 ya se estudió la forma de calcular experimentalmente el coste de los algoritmos. En este apartado se recordará cómo medir el coste temporal de un segmento de un programa, es decir, calcular el tiempo que ha tardado en ejecutarse dicho segmento. Para medir tiempos, se puede utilizar la función clock del lenguaje C, que se encuentra definida en el fichero de cabecera time.h. La cabecera de la función es: clock_t clock(void); La función clock devuelve una aproximación del tiempo de procesador consumido por el programa en ejecución. El valor que devuelve es de tipo entero, e indica la cantidad de clocks que ha pasado desde el inicio del programa. Para convertir este valor en segundos, hay que dividirlo por la constante CLOCKS_PER_SEC. Por ello, si se desea medir la cantidad de segundos que ha consumido un conjunto de instrucciones del programa, se debería utilizar una construcción como la que sigue: int t0,t1; double total_secs; [...] t0=clock(); /* Segmento de código a medir */ t1=clock(); total_secs=((double)(t1-t0))/clocks_per_sec; El segmento de código a medir puede ser un conjunto de instrucciones, Página 3 de 6
4 una llamada a función o, en general, un segmento contiguo del programa que es el que realiza el trabajo cuyo coste se desea medir. Cuidado!. Asegúrate de medir únicamente lo que te interesa medir. Es un error común incluir dentro de la medida de tiempo líneas de código que no pertenecen al algoritmo que se debe medir. Por ejemplo, si se desea medir el coste de ordenar un vector dado, el siguiente ejemplo muestra cómo no se debe realizar la medida: t0=clock(); printf("el tiempo total es: "); ordena_vector(v,0,tam); t1=clock(); printf("%12.8lf segs\n",((double)(t1-t0))/clocks_per_sec); Tiempos 0. Si, en algún experimento de medida de tiempos obtienes como resultado 0 segundos, el experimento no será válido. No hay ningún ordenador que pueda hacer un trabajo, por pequeño que sea, en tiempo cero. El problema es la precisión del reloj, es decir, las unidades de la función clock son demasiado grandes para medir el tiempo de ejecución del algoritmo. En este caso, lo que hay que hacer es ejecutar un número de veces (n) el algoritmo cuyo coste se desea medir, hasta que la suma de los tiempos totales sea medible con cierta precisión por la función clock. Posteriormente, para calcular el tiempo que ha tardado una ejecución del algoritmo, tan sólo habrá que dividir el tiempo total de ejecución por n. 5. Ejercicios propuestos 1. Estudia el caso peor de los algoritmos de búsqueda secuencial y binaria. En ambos algoritmos, el caso peor aparece cuando el elemento buscado no está en el vector. Para realizar el estudio temporal, se deberá medir el tiempo que tarda cada algoritmo en buscar un elemento que no está en el vector para tallas 2000, 4000, Para ello, define e inicializa un vector del tamaño máximo, y para cada talla n utiliza únicamente los primeros n elementos. Puedes utilizar la plantilla que se encuentra en el fichero: /misc/practicas/asignaturas/prgfi/p10/midebusq.c La salida del programa deberá ser tres columnas, parecidas a las siguientes, en las que se indica la talla del vector, el tiempo en segun- Página 4 de 6
5 dos que se ha tardado en buscar un elemento en un vector mediante búsqueda secuencial y búsqueda binaria, respectivamente. # Talla Tiempo bs Tiempo bb Posteriormente, utiliza el programa gnuplot para mostrar (comando plot) las dos gráficas correspondientes a los puntos obtenidos (X=talla, Y=tiempo), y ajusta (comando fit) los puntos anteriores mediante las funciones que definen el coste teórico de los algoritmos. 2. Modifica el programa anterior para que, además de contar tiempo, cuente comparaciones. El resultado del programa tendría 5 columnas (talla, tiempo bs, comparaciones bs, tiempo bb, comparaciones bb). Existe alguna relación entre los resultados obtenidos para el tiempo de búsqueda y los obtenidos para las comparaciones efectuadas por cada algoritmo?. 3. Dadas las funciones obtenidas por el ajuste por mínimos cuadrados sobre los puntos experimentales, predecir el comportamiento temporal de cada algoritmo de búsqueda en el caso peor, para las tallas mostradas en la siguiente tabla: Talla del vector Tiempo bs Tiempo bb Implementa alguna de las aceleraciones del algoritmo de búsqueda secuencial mostradas en el Apartado 2 y estudia la aceleración obtenida, comparando el algoritmo original con el modificado, siguiendo los pasos del Ejercicio 1. Página 5 de 6
6 Referencias [1] D.E. Knuth El arte de programar ordenadores. Vol. 3. Clasificación y búsqueda. Ed. Reverté Página 6 de 6
Tema 3. Análisis de costes
Tema 3. Análisis de costes 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
Más detallesLa eficiencia de los programas
La eficiencia de los programas Jordi Linares Pellicer EPSA-DSIC Índice General 1 Introducción... 2 2 El coste temporal y espacial de los programas... 2 2.1 El coste temporal medido en función de tiempos
Más detallesNotación Asintótica 2
Notación Asintótica 2 mat-151 1 Éxamen Rápido (6 minutos) Cada operación fundamental usa c milisegundos, cuánto tiempo toma contar hasta 1,000,000? Cuál es el valor de N? Cuál es el órden de complejidad
Más detallesTAD CONJUNTOS Y MULTICONJUNTOS
TAD CONJUNTOS Y MULTICONJUNTOS INTRODUCCIÓN Qué es un conjunto? Un conjunto en matemática es una colección de objetos. Los objetos no mantienen ninguna relación aparente entre ellos y tampoco están obligados
Más detallesEstructura de datos y de la información Boletín de problemas - Tema 9
Estructura de datos y de la información Boletín de problemas - Tema 9 1. Dada la siguiente función recursiva: void F(char c) { if (( A
Más detallesCAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS
CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS Capítulo 3 Estructuras de datos estáticas 1/37 1. INTRODUCCIÓN Las estructuras de datos se utilizan, generalmente, para procesar una colección de valores que están
Más detallesCómo implementar tus propias funciones en Lenguaje C?
Cómo implementar tus propias funciones en Lenguaje C? por Iván Cruz Cuando se realiza un programa, es importante siempre manejar una buena organización del código fuente, debido a que se puede desear incrementar
Más detallesIntroducción al Análisis del Coste de Algoritmos
1/11 Introducción al Análisis del Coste de Algoritmos Josefina Sierra Santibáñez 7 de noviembre de 2017 2/11 Eficiencia de un Algoritmo Analizar un algoritmo significa, en el contexto de este curso, predecir
Más detallesTema 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
Más detallesORDENAMIENTO Y BÚSQUEDA EN ARREGLOS
1 ORDENAMIENTO Y BÚSQUEDA EN ARREGLOS Corina Flores Villarroel ORDENAMIENTO EN ARREGLOS Y COLECCIONES Una de las tareas más comunes a la hora de procesar datos es la clasificación u ordenación de los datos.
Más detallesIntroducción. Algoritmos y Complejidad. Algoritmos y Algoritmia. Introducción. Problemas e instancias. Pablo R. Fillottrani
Introducción Introducción Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Algoritmos y Algoritmia Problemas e instancias Primer Cuatrimestre 2014 Algoritmos
Más detallesRendimiento. Introducción a la Computación Clase 18 Patricia Borensztejn
Rendimiento Introducción a la Computación Clase 18 Patricia Borensztejn Un programa ejemplo from random import randrange def rellena (talla, rango): valores = [0] * talla for i in range(talla): valores[i]
Más detallesPorque usar Arreglos?
Arreglos Porque usar Arreglos? Se tienen las calificaciones de 100 alumnos, como sacar cuantos alumnos tienen una calificación superior al promedio? Doble lectura: Un ciclo para leer y acumular las calificaciones,
Más detallesDobles: Es el caso de la instrucción if-else (punto 1.2).
1 1.Introducción Las estructuras de control son instrucciones que nos permiten controlar el flujo de ejecución del programa. Las instrucciones de control se pueden agrupar en instrucciones condicionales
Más detallesFUNCIONES EN C QUÉ SIGNIFICA VOID? QUÉ ES EL TIPO DE RETORNO? PARA QUÉ SIRVE RETURN? MÓDULOS (CU00547F)
APRENDERAPROGRAMAR.COM FUNCIONES EN C QUÉ SIGNIFICA VOID? QUÉ ES EL TIPO DE RETORNO? PARA QUÉ SIRVE RETURN? MÓDULOS (CU00547F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde
Más detallesOperadores de comparación
Operadores de comparación Los operadores de comparación en C son: Igual (==) Distinto (!=) Mayor (>) y Mayor o igual (>=) Menor (
Más detallesEjercicios del Tema 3. Fundamentos de la programación en ensamblador
Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Dada la siguiente expresión de un lenguaje de alto nivel int a = 6; int b = 7; int c = 3; int d; d = (a+b) * (a+b); Indique
Más detallesla solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.
ALGORITMOS SECUENCIALES: La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente
Más detallesExamen de Programación II (Ingeniería Informática)
Examen de Programación II (Ingeniería Informática) Septiembre 2010 1) Lenguaje C (2 puntos) Escribir el módulo "elimina_substring" (ficheros elimina_substring.h y elimina_substring.c) que defina una única
Más detallesESTIMACIÓN DE TIEMPO Y COSTO DE PRODUCTOS SOFTWARE
Análisis y costo de algoritmos Algoritmos Un algoritmo es un conjunto de pasos claramente definidos que a partir de un cierta entrada (input) produce una determinada salida (output) Algoritmos y programas
Más detallesCapítulo 13 INSTRUCCIONES DE CONTROL REPETITIVAS. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"
Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor: Carlos Javier Pes Rivas (correo@carlospes.com) Capítulo 13 INSTRUCCIONES DE CONTROL REPETITIVAS 1 OBJETIVOS Conocer las
Más detallesTEMA 5. PROGRAMACIÓN BÁSICA EN MATLAB /OCTAVE
BLOQUE TEMÁTICO II TEMA 5 TEMA 5. PROGRAMACIÓN BÁSICA EN MATLAB /OCTAVE 5.1. Introducción a Matlab y Octave 5.2. Entrada y salida con formato 5.3. Programas: script y funciones 5.4. Estructuras alternativas
Más detallesTema: Funciones, Procedimientos y Recursividad en C#.
Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Programación I, Guía 6 1 Utilizar la sintaxis de las funciones definidas por el usuario (programador) para resolver problemas. Identificar
Más detallesESTRUCTURAS DE CONTROL
ESTRUCTURAS DE CONTROL En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las estructuras de control se puede: De
Más detallesWHILE Y DO WHILE BREAK EN LENGUAJE C. BUCLES MIENTRAS. FORZAR SALIDA O TERMINACIÓN. EJEMPLO (CU00534F)
Bucles en lenguaje C Bucle while y forzar detención con break APRENDERAPROGRAMARCOM WHILE Y DO WHILE BREAK EN LENGUAJE C BUCLES MIENTRAS FORZAR SALIDA O TERMINACIÓN EJEMPLO (CU00534F) Sección: Cursos Categoría:
Más detallesTema: Funciones, Procedimientos y Recursividad en C#.
Programación I, Guía 6 1 Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Utilizar la sintaxis de las funciones definidas por el usuario (programador) para resolver problemas. Identificar
Más detalles<tipo> Tipo de dato de los elementos del vector
Vectores y matrices Declaración Vector (array unidimiensional): []; Tipo de dato de los elementos del vector Identificador de la variable.
Más detallesCátedra I Informática Autor I Carlos Bartó
FCEFyN Departamento de Computación Informática Examen - 07-07-2008 Apellido y Nombres: Matrícula: Carrera: PROBLEMAS: 1) Especifique en el lenguaje C++ una función denominada calc_fecha() que tenga como
Más detallesProgramación 1 Grado de Ingeniería Robótica
Programación 1 Grado de Ingeniería Robótica Índice (sesión 7/10/2016): Estructuras de iteración while do...while for Sentencias de entrada Scanf Traza de un programa 2 Estructuras de iteración Permiten
Más detallesEjercicios del Tema 3. Fundamentos de la programación en ensamblador
Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Escriba un programa en ensamblador del MIPS 32 para calcular la suma de los 100 primeros números naturales. El programa
Más detallesBusqueda y Ordenamiento. CC1001 Computación I
Auxiliar 10: Busqueda y Ordenamiento 1 Algoritmos de Busqueda Los algoritmos de busqueda son muy importantes para la computación, en la mayoría de las aplicaciones los utilizaremos, basta recordar la Tarea
Más detallesEJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFAZ CLONEABLE DE JAVA. MÉTODO CLONE() PARA CLONAR OBJETOS. (CU00912C)
APRENDERAPROGRAMAR.COM EJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFAZ CLONEABLE DE JAVA. MÉTODO CLONE() PARA CLONAR OBJETOS. (CU00912C) Sección: Cursos Categoría: Lenguaje de programación Java nivel
Más detallesTEMA 4. ESTRUCTURAS DE CONTROL
M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 4. ESTRUCTURAS DE CONTROL Grado en Ingeniería en Tecnologías Industriales Programación CONTENIDOS 4.1.
Más detallesUNIDAD 7: PROGRAMACIÓN EN R
UNIDAD 7: PROGRAMACIÓN EN R Técnicas Inteligentes en Bioinformática Master en Lógica, Computación e Inteligencia Artificial Dpto. Ciencias de la Computación e Inteligencia Artificial Francisco J. Romero
Más detallesParadigmas de lenguajes de programación. Introducción a la programación imperativa. Lenguaje C. Programación imperativa
Paradigmas de lenguajes de programación Introducción a la programación imperativa Algoritmos y Estructuras de Datos I Paradigma: Definición del modo en el que se especifica el cómputo (que luego es implementado
Más detallesEste método se basa en buscar el elemento menor el vector y colocarlo en la primera
Lectura ORDENACIÓN DE ARREGLOS Con frecuencia se requiere clasificar u ordenar los elementos de un vector (arreglo unidimensional) en algún orden en particular. Por ejemplo, ordenar un conjunto de números
Más detalles7.3. Estructura de un programa
TEMA 7 ALGORITMOS Y PROGRAMAS. ESTRUCTURA DE UN PROGRAMA 7.1. Algoritmos 7.2. Compilación 7.3. Estructura de un programa 7.1. Algoritmos Objetivo: Resolver problemas mediante computadoras (usando el lenguaje
Más detallesAlgoritmos Iterativos de Búsqueda y Ordenación y sus tiempos
Estructura de Datos y Algoritmos Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos 1. Algorimos de ordenación Discutiremos el problema de ordenar un array de elementos. A los efectos de simplificar
Más detallesAlgoritmos de Búsqueda y Ordenamiento
Departamento de Informática Universidad Técnica Federico Santa María Algoritmos de Búsqueda y Ordenamiento Programación de Computadores IWI--p Prof.: Teddy Alfaro Olave Algoritmos de Búsqueda Los procesos
Más detallesInstituto José Manuel Estrada - Villa de Soto. Asignatura: Desarrollo de Soluciones Informáticas. Curso: 5to I. Docente: Contreras, María Elena
- Villa de Soto Asignatura: Desarrollo de Soluciones Informáticas Curso: 5to I Docente: Contreras, María Elena Contenido Algoritmos... 1 Diagramas de flujo... 2 Programar... 3 Programación... 10 Scratch...
Más detallesEstructuras 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 detallesPrá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Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)
Práctico 4 Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Clasificación de ejercicios: (I) Imprescindibles (R) Recomendados (C) Complementarios Árboles balanceados (AVL)
Más detallesSESIÓN DE EJERCICIOS E1
SESIÓN DE EJERCICIOS E1 Primera parte: ejercicios test (soluciones al final) A resolver antes de comenzar la sesión en el aula Ejercicio 1 Qué definición de constantes es la correcta en lenguaje C? a)
Más detallesArreglos. Algoritmos y Estructuras de Datos I. Arreglos en C++ Arreglos y listas
Arreglos Algoritmos y Estructuras de Datos I Primer cuatrimestre 2007 Teórica de imperativo 3 Algoritmos de búsqueda secuencias de una cantidad fija de variables del mismo tipo se declaran con un nombre,,
Más detalles3.1. Errores con pocos dígitos de precisión
Computación Numérica Profesores: José M. Alonso, Fernando Alvarruiz, Juan Garayoa, Jesús Peinado, José L. Pérez, José E. Román, Vicente Vidal. http://www.dsic.upv.es/asignaturas/eui/cnu/prac Práctica 3
Más detalles%&%& ' 10 2 i, i =1!
Máster en Materiales y Sistemas Sensores para Tecnologías Medioambientales (Erasmus Mundus) PRÁCTICAS DE CÁLCULO NUMÉRICO Damián Ginestar Peiró ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEL DISEÑO UNIVERSIDAD
Más detallesTema 6. Ordenación, búsqueda e intercalación interna
Fundamentos de Programación I Tema 6. Ordenación, búsqueda e intercalación interna Luís Rodríguez Baena (luis.rodriguez@upsam.net) Universidad Pontificia de Salamanca (campus Madrid) Escuela Superior de
Más detallesTEMA 4: Programación estructurada
TEMA 4: Programación estructurada 4.1.-Introducción. Teorema de la programación estructurada El principio fundamental de la programación estructurada es que en todo momento el programador pueda mantener
Más detallesEsquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Tipos de Esquema
Los esquemas repetitivos permiten implementar iteraciones del lenguaje algorítmico (mientras, repetir, para, hasta). Podemos dividir los esquemas según: - Se conozcan el número de iteraciones a priori,
Más detallesAlgoritmos de Búsqueda
Introducción a la Computación Algoritmos de Búsqueda Esteban E. Mocskos (emocskos@dc.uba.ar) Facultad de Ciencias Exactas y Naturales, UBA CONICET 11/10/2017 E. Mocskos (UBA CONICET) Algoritmos de Búsqueda
Más detallesSemana Lenguajes 7de programación Tipos de lenguajes de programación
Semana Lenguajes 7de programación Semana 6 Empecemos! Estimados participantes, bienvenidos a esta nueva semana, en la que estudiaremos los lenguajes de programación más utilizados. No olvides repasar los
Más detallesEDA. Tema 8 Colas de Prioridad: Heaps
EDA. Tema 8 Colas de Prioridad: Heaps Natividad Prieto Sáez. DSIC EDA, T-8. Curso 02/03. N.Prieto p.1/55 Objetivos Estudio de las definiciones asociadas a las Colas de Prioridad: Especificación: operaciones
Más detallesHoja de ejercicios del Tema 9
Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 9 1. Sin ejecutarlo, qué mostraría el siguiente código? int x = 5, y = 12, z;
Más detallesGUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.
1 Programación II, Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos. Objetivos Utilizar la sintaxis de las funciones
Más detallesBREAK: FORZAR SALIDA BUCLES FOR, WHILE, DO EN C. LOOP. STATEMENT NOT WITHIN LOOP OR SWITCH (CU00545F)
APRENDERAPROGRAMAR.COM BREAK: FORZAR SALIDA BUCLES FOR, WHILE, DO EN C. LOOP. STATEMENT NOT WITHIN LOOP OR SWITCH (CU00545F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde
Más detallesEstructuras de Datos y Algoritmos
Estructuras de Datos y Algoritmos Práctico 2: Evaluación de Algoritmos (Finalización: 03/09) Ingeniería en Computación - Ingeniería en Informática Año 2015 Ejercicio 1: Dados los siguientes vectores, correspondientes
Más detallesTema 4.- Recursión e iteración
UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER
Más detallesMétodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo
TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para
Más detallesESTRUCTURA SECUENCIAL ESTRUCTURA SELECTIVA
ESTRUCTURA SECUENCIAL Es aquélla en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta
Más detallesPROGRAMACIÓN Escuela de Informática. Curso 2000/2001 Práctica 4. CÁLCULO DE MEDIDAS ESTADÍSTICAS
PROGRAMACIÓ Escuela de Informática. Curso 2000/2001 Práctica 4. CÁLCULO DE MEDIDAS ESTADÍSTICAS Francisco Marqués y atividad Prieto Índice General 1 Introducción 1 2 El problema 1 2.1 Monitorización Ambulatoria
Más detallesClase adicional 7. Análisis numérico en Java. Temas
Clase adicional 7 Temas Análisis numérico en Java Búsqueda de raíces Integración Ejercicios de la clase adicional Ejercicios de diseño Análisis numérico en Java El análisis numérico es una rama de la matemática
Más detallesEsquemas repetitivos en Fortran 90
Los esquemas repetitivos permiten implementar iteraciones del lenguaje algorítmico (mientras, repetir, para, hasta). Podemos dividir los esquemas según: - Se conozcan el número de iteraciones a priori,
Más detallesPROGRAMACIÓN ESTRUCTURADA
FACULTAD DE INGENIERÍA Universidad Nacional de Jujuy PROGRAMACIÓN ESTRUCTURADA Trabajo Práctico Nº 10 Tema: Arreglos. Actualización y Búsqueda Apellido y Nombre: Fecha: / / Conceptos Teóricos RESPONDA
Más detallesEstructura de Datos y de la Información
Universidad Rey Juan Carlos Curso 2009/10 Ingeniería Técnica en Informática de Gestión Estructura de Datos y de la Información Examen Final Junio 2010 Fecha: 24-6-2010 Soluciones Ejercicio 1. (Puntuación
Más detallesFundamentos de la programación
Fundamentos de la programación 3E Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Facultad de Informática Universidad Complutense Recorridos 404 Un
Más detallesSESIÓN DE EJERCICIOS E1
SESIÓN DE EJERCICIOS E1 Primera parte: ejercicios test Ejercicio 1 Qué definición de constantes es la correcta en lenguaje C? a) #define N=25; b) #define N 25 c) int N=25; d) int N 25 Ejercicio 2 La expresión
Más detallesBUCLES EN LENGUAJE C (ESTRUCTURA DE REPETICIÓN) CONDICIÓN, CONTADOR. EJEMPLOS. (CU00533F)
APRENDERAPROGRAMAR.COM BUCLES EN LENGUAJE C (ESTRUCTURA DE REPETICIÓN) CONDICIÓN, CONTADOR. EJEMPLOS. (CU00533F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde cero Fecha revisión:
Más detallesESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:
Nombre y apellidos: Nota: 1. Ejercicio (3 puntos) a) Qué estructura de datos utilizarías para transformar la siguiente expresión a su equivalente expresión postfija? Argumenta tu decisión. Ej. entrada:
Más detallesGUIA 1: Repaso sobre uso de C#. Funciones, procedimientos y arreglos.
1 POO, Guía 1 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación Orientada a Objetos GUIA 1: Repaso sobre uso de C#. Funciones, procedimientos y arreglos. Competencia Desarrolla sistemas
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS GRADO EN INGENIERÍA INFORMÁTICA SEGUNDO CURSO DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO ESCUELA POLITÉCNICA SUPERIOR UNIVERSIDAD DE CÓRDOBA CURSO ACADÉMICO: 2011
Más detallesTema 7- Modelo y Aplicación de Pila, Cola y. Tema 7- Modelo y Aplicación de. Lista Con Punto de Interés
Tema - Modelo y Aplicación de Pila, Cola y Lista con Punto de Interés Tema - Modelo y Aplicación de Pila, Cola y Lista con Punto de Interés Índice general:. Modelo y Aplicación de Lista con Punto de Interés
Más detallesControl de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO
Control de Flujo Estructuras de Control Experiencia Educativa de Algorítmica 1 Introducción El estilo de como escribimos y analizamos un algoritmo se convierte en una de las principales características
Más detallesAlgoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
Más detallesCaracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación
1 Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera Fundamentos de programación Agenda Caracteres y Cadenas Conversión de Datos Introducción a las funciones y procedimientos
Más detallesCursada Segundo Cuatrimestre 2012 Guía de Trabajos Prácticos Nro. 1
Temas: Ambiente de trabajo MATLAB. Creación de matrices y vectores. Matrices pre-definidas. Operador dos puntos. Operaciones con matrices y vectores. Direccionamiento de elementos de matrices y vectores.
Más detallesEjercicios sobre recursividad
Ejercicios sobre recursividad 11 de febrero de 2003 1. Implementa una función recursiva que devuelva la suma de los dígitos de un número natural, que se le pasa por parámetro. 2. Implementa una función
Más detallesOperadores de comparación
Operadores de comparación Los operadores de comparación en C son: Igual (==) Distinto (!=) Mayor (>) y Mayor o igual (>=) Menor (
Más detallesESTRUCTURAS REPETITIVAS
DOCENTE: Ing. Ronald Rentería Ayquipa MARCO TEÓRICO: ESTRUCTURAS REPETITIVAS La programación estructurada es un paradigma que consiste en la organización de un código en bloques conformados por estructuras
Más detallesIntroducció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 detallesTema: Funciones y Procedimientos en C#.
Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación Estructurada Tema: Funciones y Procedimientos en C#. Objetivos Utilizar la sintaxis de las funciones definidas por el usuario
Más detallesEjercicios De Programación De C++ Algoritmos. Lenguaje De Programación C++:
Ejercicios De Programación De C++ 1. Muestre en pantalla el mensaje Bienvenido. Algoritmos 1. Inicio 2. muestrer en pantalla el mensaje Bienvenido 3. Fin Lenguaje De Programación C++: #include
Más detalles6. Vectores Fundamentos de Informática
6. Vectores Fundamentos de Informática Dpto. Lenguajes y Sistemas Informáticos Curso 2012 / 2013 Índice Vectores 1. Introducción 2. Declaración 3. Acceso 4. Paso de parámetros 5. Recorrido completo 6.
Más detallesHoja de ejercicios del Tema 3
Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 3 1. Conversiones de tipos: Prueba el siguiente programa en tu compilador (copia
Más detallesDiferentes Perspectivas de un Ordenador
Arquitectura de Ordenadores Programación en ensamblador Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Diferentes Perspectivas de un Ordenador INT-1
Más detallesLenguajes de Programación Soluciones a pruebas de nivel
Lenguajes de Programación Soluciones a pruebas de nivel Pedro García López pgarcia@etse.urv.es/ Grid Computing Se trata de modelar en un lenguaje orientado a objetos (Java) el problema de computación de
Más detallesINSTITUTO NACIONAL SUPERIOR DEL PROFESORADO TÉCNICO - TÉCNICO SUPERIOR EN INFORMÁTICA APLICADA - PROGRAMACIÓN I
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS La principal razón para que las personas aprendan lenguajes de programación es utilizar una computadora como una herramienta para la resolución de problemas. Cinco
Más detallesExamen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 31 de agosto de 2012 Disponer sobre la mesa en lugar visible un documento de identificación
Más detalles4. Operadores Operador asignación
Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre
Más detalles7ª Práctica. Matlab página 1 EJERCICIO 1. ORDENAR UN VECTOR CON EL MÉTODO DE LA BURBUJA...1
7ª Práctica. Matlab página 1 PROGRAMACIÓN EN MATLAB PRÁCTICA 07 ORDENACIÓN VECTORES Y MATRICES EJERCICIOS REPASO PARA EL EXAMEN EJERCICIO 1. ORDENAR UN VECTOR CON EL MÉTODO DE LA BURBUJA...1 EJERCICIO
Más detallesANEXO XVII DE LA RESOLUCION N
Hoja 1 de 7 UNIVERSIDAD NACIONAL DE CÓRDOBA Facultad de Ciencias Exactas Físicas y Naturales República Argentina Programa de: Código: Informática Carrera: Materia común Res. Nº Plan: Puntos:3.5 Escuela:
Más detallesLISTAS ENLAZADAS FUNDAMENTOS TEORICOS
LISTAS ENLAZADAS FUNDAMENTOS TEORICOS Una lista enlazada es una colección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un «enlace»
Más detallesComplejidad computacional (Análisis de Algoritmos)
Definición. Complejidad computacional (Análisis de Algoritmos) Es la rama de las ciencias de la computación que estudia, de manera teórica, la optimización de los recursos requeridos durante la ejecución
Más detallesTema 7: Recursividad
Tema 7: Recursividad Objetivos: en este tema estudiaremos funciones recursivas; esto es, funciones que se invocan a sí mismas. Estas funciones son equivalentes a estructuras tipo bucle pero permiten especificar
Más detallesPalabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones.
Palabras reservadas de C++ y C Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones. A continuación se muestra el link del listado de palabras
Más detallesFundamentos de la programación
Fundamentos de la programación 2 Grado en Ingeniería Electrónica y Comunicaciones Pilar Sancho Thomas Luis Hernández Yáñez Facultad de Informática Universidad Complutense Fundamentos de la programación:
Más detallesClase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño
Clase adicional 9 Temas Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Listas enlazadas Previamente en este curso, ya habrá trabajado con dos de las estructuras de datos
Más detallesInformática. JavaScript: Lenguaje de programación. Fco J. Martín Mateos Carmen Graciani
Informática JavaScript: Lenguaje de programación Fco J. Martín Mateos Carmen Graciani Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Literales Enteros Con base decimal:
Más detalles1.2.4 Listas enlazadas
1.2.4 Listas enlazadas Las listas enlazadas son tipos de datos dinámicos que se construyen con nodos. Un nodo es un registro con al menos, dos campos, uno de ellos contiene las componentes y se le denomina
Más detallesUnidad 5: Estructuras Estáticas I: Tablas 1 Unidad 5 ESTRUCTURAS ESTÁTICAS I: Tablas Desarrollo de la unidad : 36 h
Unidad 5: Estructuras Estáticas I: Tablas 1 Unidad 5 ESTRUCTURAS ESTÁTICAS I: Tablas Desarrollo de la unidad : 36 h Prácticas: Ejercicios: Conceptos: Tablas unidimensionales, vectores, cadenas, modificación,
Más detalles