Ejercicios sobre cálculo de complejidad
|
|
- Luis Soriano Villanueva
- hace 5 años
- Vistas:
Transcripción
1 Ejercicios sobre cálculo de complejidad 20 de noviembre de Calcula el número de pasos que realiza cada uno de los siguientes segmentos de código. Después, expresa el coste asintótico de cada uno de ellos. a) j=k-2; i=j*12; printf("%d\n",i); b) for (i=0;i<n;i++) printf("%d\n",i); c) for (i=0;i<10;i++) printf("%d\n",i+j); d) for (i=0;i<100;i++) q=i+j; e) for (i=0;i<n;i++) for (k=0;k<n;k++) { q=i+j*k; printf("%d\n",q); f ) for (i=1;i<=n;i++) { printf("%d\n",i); for (j=n;j>0;j--) for (k=0;k<n-10;k++) q=i+2j*k; 1
2 g) for (i=0;i<n;i++) acum+=a[i][j]; k=0; while (k<n) { acum-=k; k++; h) i=1; while (i*i<n) i++; i) i=n; while (i>0) { printf("%d",i); i/=2; 2. Demuestra las siguientes relaciones: a) 17 O(1) b) n(n 1)/2 O(n 2 ) c) 3n + log n O(n) d) 3n + log n O(log n) e) 3n + log n Ω(n) f ) n + 2n O(n) g) n + 2n O( n) 3. Demuestra las siguientes relaciones encontrando los valores n 0 y c tales que cumplen la definición de O grande. Elige los valores mínimos, en el sentido que n 0 1 y c, o n 0 y d < c no cumplan la relación. a) n 2 es O(0,001n 3 ) b) 25n 4 19n n 2 106n + 77 es O(n 4 ) c) 2 n+10 es O(2 n ) d) n 10 es O(3 n ) 2
3 4. Indica el número de veces que se ejecutan los siguientes bucles, en función de a, b y c: a) for (i=a;i<=b;i++) b) for (i=a;i>=b;i--) c) for (i=a;i<=b;i+=c) d) i=a; while (a<b) {i++; 5. Desarrolla los siguientes sumatorios: a) d) g) i b) i=3 i=1 j=1 1 e) n 2 + n 2 h) i=0 n 2 i c) i=3 n 1 3i f) i=0 j=0 i=0 j=0 m ij i) 2 i=0 1 (n + i) 2 i=1 i + i=1 n(n + 1) 2 6. Dada la siguiente definición de tipos de datos, que implementa el tipo número complejo, vector de números complejos y matriz cuadrada de números complejos : typedef struct { float real,comp; TComplejo; typedef TComplejo VTComp[NVmax]; typedef TComplejo MTComp[NMmax][NMmax]; a) Implementa las siguientes funciones: void sumavc(vtcomp A, VTComp B, int tam); void sumamc(mtcomp A, MTComp B, int tam); void multiplicamc(mtcomp A, MTComp B, MTComp C, int tam); donde tam indica en el primer caso el número de elementos del vector y en el segundo y tercero la dimensión de la matriz cuadrada (tam tam). La función sumavc calcula la suma vectorial de A y B, almacenando el resultado en A. La función sumamc hace lo mismo, pero con matrices. La función multiplicamc calcula el producto matricial de A y B, almacenando el resultado en C. 3
4 b) Calcula la complejidad asintótica de ambas funciones. 7. Según el Principio de encasillamiento (o pigeonhole), si una función f tiene n entradas distintas, pero tiene menos de n salidas distintas, entonces existen dos entradas a y b tal que a b y f(a) = f(b). Escribe un programa para encontrar un par de elementos de entrada a y b tal que func(a) = func(b), donde func es una función que puedes llamar y que recibe como parámetro un número entero entre 1 y N, y devuelve números menores que N. Estudia el coste asintótico para el mejor y el peor de los casos. 8. Implementa una función que, dada una cadena de caracteres, encuentre el número máximo de caracteres que separan dos caracteres iguales (entre dichos caracteres no puede aparecer otro igual). Por ejemplo, dada la siguiente cadena: A B C A B E F G A la función debería devolver 5 ( ojo! la respuesta NO es 8). Calcula la complejidad asintótica para el caso peor. 9. Dada la siguiente función, indica una talla que describa el tamaño del problema, y aporta las cotas asintóticas del coste de la función en los casos peor y mejor. int Factores2(int n) { int i; i=0; while (n%2 == 0) { n=n/2; i++; return i; 10. Calcula el coste computacional del siguiente segmento de código: if (A[1][1]==0) for (i=0;i<n;i++) A[i][j]=0; else 4
5 for (i=0;i<n;i++) A[i][i]=1; 11. Dado el siguiente segmento de código: for (i=0;i<n-1;i++) { small=i; for (j=i+1;j<n;j++) if (A[j]<A[small]) small=j; temp=a[small]; A[small]=A[i]; A[i]=temp; qué hace sobre el vector de enteros A? Calcula el coste computacional del algoritmo. 12. Calcula el coste asintótico de los siguientes algoritmos que imprimen una cadena al revés (Nota: ten en cuenta el coste de strlen): a) N = strlen(word); for (i = 0; i < N; i++) printf("%c", word[n-i-1]); b) for (i = 0; i < strlen(word); i++) printf("%c", word[strlen(word)-i-1]); 13. Dado un vector de N números reales, encuentra el par de elementos que tienen el valor más alejado entre sí. Impleméntalo con un algoritmo de coste lineal. 5
6 14. Dada la siguiente función: func(int n) { int limite, j, k; limite=1; j=1; while (j<=n) { k=1; while (k<=limite) { k++; printf("k incrementado a %d\n",k); j++; limite=limite+limite; printf("j incrementado a %d\n",j); a) Cuántas veces se comprueba la condición del primer while si n vale 1? b) Cuántas veces escribe la función j incrementado a... si n vale 5? c) Cuántas veces se comprueba la condición del primer while, en función de n? d) Cuántas veces escribe la función k incrementado a... para n igual a 2? e) Cuántas veces se comprueba la condición del segundo while si n vale 5? f ) Cuál es el valor máximo que toma la variable k durante la ejecución de func(5);? g) Cuántas veces escribe la función k incrementado a..., en función de n? 6
Análisis y Diseño de Algoritmos. Complejidad Computacional
Análisis y Diseño de Algoritmos Complejidad Computacional Multiplicación Método Tradicional Método Russé Método Particiones Complejidad Computacional Tan pronto como una máquina análitica exista, será
Ejercicios 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
Estructuras de Datos. Andrea Rueda. Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas
Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Fundamentos de complejidad Es eficiente un algoritmo? Análisis de los recursos que el algoritmo
Análisis de algoritmos
Tema 05: no recursivos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido no recursivos La notación de Landau O La notación O Principio
Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2
Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2 Diseño de algoritmos recursivos 1. Dado un vector de enteros de longitud N,
Programación Análisis de Algoritmos: Tiempo de Ejecución (Introducción)
Programación 2 5 - Análisis de Algoritmos: Tiempo de Ejecución (Introducción) 1 Análisis de Algoritmos: Introducción Qué algoritmos elegir para resolver un problema? Que sean fáciles de entender, codificar
Recursividad. Dept. Ciencias de la Computación e I.A. Universidad de Granada
TEMA Recursividad Dept. Ciencias de la Computación e I.A. Universidad de Granada Índice Introducción a la recursión Recursividad frente a iteración Eficiencia de los algoritmos recursivos Ejemplos y ejercicios
#include <stdio.h> /* Factorial de un número - versión 1- */
Ejemplo 1: Programa que calcula el factorial de 'n' números introducidos desde teclado. Primera versión: /* Factorial de un número - versión 1- */ long int factorial (int x) /*definición de función*/ int
Programación: Sistemas unitriangulares inferiores
Programación: Sistemas unitriangulares inferiores Objetivos. Programar en el lenguaje de MATLAB el método de la sustitución hacia adelante para resolver sistemas de ecuaciones lineales con matrices unitriangulares
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
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 2
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 2 Contenidos: 1. Punteros 2. Arrays 3. Estructuras (registros) y uniones 4. Funciones Ejercicios Algoritmos y
Ejercicios sobre Descomposición Funcional, Parte II. tcomplejo SumarComplejos(tcomplejo, tcomplejo); que sume dos números complejos.
Ejercicios sobre Descomposición Funcional, Parte II 1. Escribir un programa que haga uso de las siguientes funciones: tcomplejo SumarComplejos(tcomplejo, tcomplejo); que sume dos números complejos. tcomplejo
Examen de Programación I
Tiempo disponible: 100 minutos Examen de Programación I Convocatoria de Diciembre 2006 Permutación 1 Puntuación: sobre 20 puntos - las respuestas acertadas suman 1 punto - las respuestas falladas restan
Programación (PRG) PRACTICA 4. Elementos de programación: estructuras de control.
Programación (PRG) PRACTICA 4. Elementos de programación: estructuras de control. Facultad de Informática Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia Curso 2002/2003
Introducción general al Lenguaje C (2010/2011)
Luis Valencia Cabrera lvalencia@us.es (http://www.cs.us.es/~lvalencia) Ciencias de la Computacion e IA (http://www.cs.us.es/) Introducción general al Lenguaje C (2010/2011) Universidad de Sevilla Índice
Análisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos Notación Asintótica DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Introducción Por qué el análisis de algoritmos? Determinar tiempos de respuesta (runtime)
Programación 2. Lección 8. Caracterización asintótica de la eficiencia de un algoritmo
Programación 2 Lección 8. Caracterización asintótica de la eficiencia de un algoritmo 1 1. Funciones de coste de un algoritmo 2. Caracterización asintótica del coste Notación O Consecuencias prácticas
* Operador de Indirección ( o de referencia ) ( o de desreferencia )
PUNTEROS INTRODUCCION Una de las características más poderosas del C, es el puntero o apuntador. Los punteros permiten simular las llamadas por referencia y crear y manipular estructuras de datos dinámicas,
Introducció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
Complejidad de algoritmos recursivos
Tema 3. Complejidad de algoritmos recursivos 1. INTRODUCCIÓN... 1 CLASIFICACIÓN DE FUNCIONES RECURSIVAS... 1 DISEÑO DE FUNCIONES RECURSIVAS... 2 2. VENTAJAS E INCONVENIENTES DE LA RECURSIVIDAD... 4 3.
Notación Asintótica. Temas. Introducción Notación O Notación Omega Notación Theta. Análisis de Algoritmos
Notación Asintótica Análisis de Algoritmos Temas Introducción Notación O Notación Omega Notación Theta 1 Introducción Por qué el análisis de algoritmos? Determinar tiempos de respuesta (runtime) Determinar
Programación (PRG) PRÁCTICA 10. Algoritmos de búsqueda
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
Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I
Vectores y matrices Fundamentos de Programación Fundamentos de Programación I 1 Ejemplo de utilización n de vectores: gráfico de producción En una compañía nos han encargado escribir un programita que
Estructura de Datos. Complejidad de Algoritmos. Algoritmo. Algoritmo. Mauricio Solar Lorna Figueroa
Estructura de Datos Complejidad de Algoritmos Mauricio Solar Lorna Figueroa 2010 1 Algoritmo Definición: Un algoritmo es un conjunto finito de instrucciones que sirven para resolver un problema si fueron
Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos
Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos 1! 1. Algoritmos recursivos " 1.1 Algoritmos recursivos. Recursión simple " 1.2 Algoritmos con vuelta atrás y ejemplos! 2. Complejidad de
Cá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
Funciones II. Fundamentos de Programación Fundamentos de Programación I
Funciones II Fundamentos de Programación Fundamentos de Programación I Ejercicio 1: Escribe una función que transforme un punto en coordenadas polares a cartesianas Entradas: Un punto como coordenadas
1000+(4/100)*1000 =1000 * (1+4/100) =1000 * 1.04 = Al finalizar el segundo año, el 4% se aplica sobre los 1040, y obtenemos:
Nombre: Apellidos: Grupo: Nº. Matrícula Ejercicio 1 (2,5 puntos 30 minutos) Al ingresar capital en un banco, pongamos 1000, éste nos ofrece un porcentaje anual de interés, por ejemplo el 4%. Al cabo de
Ejercicios Tema 6. Funciones
Ejercicios Tema 6. Funciones 1. Programa que calcule el cuadrado de todos los números comprendidos entre dos dados. Usar una función a la que se le pasa como parámetro un valor y retorna su cuadrado. 2.
Arreglos. 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,,
Algoritmos 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
SESIÓ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)
Programación de sistemas Recursión
Programación de sistemas Recursión Departamento de Ingeniería Telemática 1 Contenidos Recursión Tipos de recursión Recursión vs. iteración 2 Recursión Proceso por el cual un método se llama a sí mismo
Informática. Prueba de conjunto (0.25 puntos) Considerar el siguiente fragmento de código:
NOMBRE Y APELLIDOS DEL ALUMNO: Informática Prueba de conjunto 23.05.14 1.- (0.25 puntos) Considerar el siguiente fragmento de código: for(i=0;i
Programación de Sistemas
Programación de Sistemas Algoritmos de Ordenación Índice Por qué es importante la ordenación? Un par de ejemplos InsertionSort QuickSort Para cada uno veremos: En qué consisten, Casos extremos Eficiencia
Tema 6: Memoria dinámica
: Programación 2 Curso 2013-2014 Índice 1 2 3 El tamaño es fijo y se conoce al implementar el programa Declaración de variables int i=0; char c; float vf[3]={1.0, 2.0, 3.0}; i c vf[0] vf[1] vf[2] 0 1.0
ANÁLISIS Y DISEÑO DE ALGORITMOS
ANÁLISIS Y DISEÑO DE ALGORITMOS CURSO 2005/2006 BOLETÍN DE PROBLEMAS: DIVIDE Y VENCERÁS Ejercicio 1 Dado un vector ordenado y rotado k veces: diseñar un algoritmo O(log n) que encuentre el elemento mayor
ESTRUCTURA DE DATOS: Tema 5. Ordenamiento y Búsqueda
ESTRUCTURA DE DATOS: Tema 5. Ordenamiento y Búsqueda Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. 37 dtorres@mixteco.utm.mx Contenido 1. Ordenamiento
Algoritmos 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
Funciones Definición de función
Funciones Definición de función Una función es un bloque de código que realiza una tarea específica. Una función es una porción de programa, identificable mediante un nombre, que realiza determinadas tareas
Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C
Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS Departamento de Ciencias de la Computación e IA Subprogramas en C Objetivo Una vez que tengamos un programa que resuelva un problema concreto, ser capaces de usarlo
Primera Parte: Preguntas Cortas. Fundamentos de Informática 1ºIIND Examen Teoría Septiembre Grupo: A B C D E. Advertencias:
Fundamentos de Informática 1ºIIND Examen Teoría Septiembre 2005 Nombre Grupo: A B C D E Apellidos: Preguntas Cortas Programar código Nota final Preguntas cortas (5 puntos) Prob.1 (2 punto) Prob.2 (1,5
Programación I Funciones
1 Funciones Iván Cantador 2 Funciones: definición, sintaxis, ejemplos (I) Una funciónes un bloque de sentencias identificado con un nombre que se ejecutan de manera secuencial ofreciendo una funcionalidad
Programación en ensamblador Ejercicios propuestos
Programación en ensamblador Ejercicios propuestos 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 un fragmento de
Bloque 5. Tipos de datos compuestos estáticos: arrays, strings y structs
Bloque 5 Tipos de datos compuestos estáticos: arrays, strings y structs Hasta ahora... Tipos de datos simples: Caracteres: char Números: int, float, double (y modificadores) Problema: calcular la temperatura
ACTIVIDADES INICIALES
2 Determinantes ACTIVIDADES INICIALES I. Enumera las inversiones que aparecen en las siguientes permutaciones y calcula su paridad, comparándolas con la permutación principal 1234. a) 1342 b) 3412 c) 4321
Funciones: Pasos por Referencia Recursividad
Funciones: Pasos por Referencia Recursividad Fundamentos de Programación Fundamentos de Programación I Parámetros por referencia Con la instrucción return sólo se puede devolver un valor calculado. A veces
SESIÓ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
ELO320 Estructuras de Datos y Algoritmos. Heap & HeapSort. Tomás Arredondo Vidal
ELO320 Estructuras de Datos y Algoritmos Heap & HeapSort Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen et
Programación. Curso 2005/2006. Tema 3: Complejidad computacional
Programación Facultad de Informática Universidad Politécnica de Valencia Curso 2005/2006 Tema 3: FI UPV: 29 de noviembre de 2005 Índice 1 Introducción 2 2 Consumo de recursos: costes espaciales y temporales
Programación de sistemas
Programación de sistemas Recursión Julio Villena Román MATERIALES BASADOS EN EL TRABAJO DE DIFERENTES AUTORES: Carlos Delgado Kloos, Carlos Alario Hoyos 1 Contenidos Recursión Tipos
Fundamentos de Informática 1ºIIND Examen Junio 2006
Fundamentos de Informática 1ºIIND Examen Junio 2006 Nombre Apellidos: Grupo: A B C D E Advertencias: 1. Duración del examen 2 horas y 45 minutos 2. No se puede desgrapar el cuadernillo del examen. 3. Se
<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.
Tipos de Datos en C. Palabras reservadas en C
Tipos de Datos en C Tipo Tamaño de bits Rango char 8-128 a 127 unsigned char 8 0 a 255 signed char 8-128 a 127 int 16 32768 a 32767 unsigned int 16 0 a 65535 signed int 16 Igual que int short int 16 Igual
Cadenas y Estructuras
Cadenas y Estructuras Fundamentos de Programación Fundamentos de Programación I FP / FP I 1 Proyecto de programación para el manejo de cadenas en C++ Escriba un programa que lea el nombre de una persona
Estructuras de datos
Estructuras de datos Grado en Matemáticas, UCM Curso 2012-2013 http://gpd.sip.ucm.es/jaime/edat/ 0. Breve introducción al lenguaje C++ Programa 1. Análisis de la eficiencia de algoritmos. Medidas asintóticas
Indique la veracidad o falsedad de cada una de las afirmaciones siguientes, explicando detalladamente en cada caso el motivo de su respuesta.
LENGUAJES DE PROGRAMACIÓN INSTRUCCIONES Por favor, entregue esta primera hoja de enunciado junto con el examen. Dispone de 2 horas para realizar el examen. MATERIAL PERMITIDO: Ninguno. Pregunta 1 (3 puntos)
Técnicas Informáticas PRÁCTICA 7 Curso PRÁCTICA 7: Cadenas y Estructuras.
: Cadenas y Estructuras. Objetivo de la práctica: - Utilización y manipulación de cadenas de texto. Conocer y aplicar el tipo de dato estructurado en C++. Cadenas Las cadenas ('string') son un tipo especial
Laboratorio 4 Tema 6. Procedimientos: Acciones, Funciones y Pase de Parámetros
Laboratorio 4 Tema 6. Procedimientos: Acciones, Funciones y Pase de Parámetros Procedimientos El paradigma de programación basado en procedimientos se basa en la posibilidad de crear procedimientos computacionales
Tiempo de Ejecución. Midiendo el Tiempo de Ejecución
Tiempo de Ejecución Arturo Díaz Pérez Sección de Computación Departamento de Ingeniería Eléctrica CINVESTAV-IPN Av. Instituto Politécnico Nacional No. 2508 Col. San Pedro Zacatenco México, D. F. CP 07300
Diseño y Análisis de Algoritmos
1. Recursividad 2. "Dividir para Reinar" 3. Recursividad y Tabulación (Programación Dinámica) 4. Métodos Matemáticos Funciones discretas Notación O Ecuaciones de recurrencia 5. Casos de Estudio Breve descripción
Análisis matemático de algoritmos no recursivos
no recursivos Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 22 de enero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Análisis matemático de algoritmos 22 de enero de 2018 1 / 16 1 Análisis matemático
Carlos Delgado Kloos Ingeniería Telemática Univ. Carlos III de Madrid. Java: Complejidad / 1
Complejidad Carlos Delgado Kloos Ingeniería Telemática Univ. Carlos III de Madrid cdk@it.uc3m.es Java: Complejidad / 1 Comparación long fib (int n) {if (n
Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)
Repaso Lenguaje C OBJETOS Variables Constantes Variable: objeto del ambiente cuyo contenido puede cambiar. Constante: objeto cuyo contenido no puede cambiar. Variables: - un nombre que la identifica. Deben
Variables y tipos básicos 1. Definir una variable de tipo char. Convertirla a una variable de tipo entera e imprimir su valor asociado.
Variables y tipos básicos 1. Definir una variable de tipo char. Convertirla a una variable de tipo entera e imprimir su valor asociado. Probarlo con lo caracteres a, b, A y B 2. Hacer lo contrario, leer
Punteros. Definición Un puntero es un dato que contiene una dirección de memoria.
Punteros Definición Un puntero es un dato que contiene una dirección de memoria. NOTA: Existe una dirección especial que se representa por medio de la constante NULL (definida en ) y se emplea
Complejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande
Complejidad computacional Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Algoritmos - clase 10 Introducción a la complejidad computacional y
Soluciones a los ejercicios planteados en el curso
Soluciones a los ejercicios planteados en el curso Unidad 3 - Algoritmos recursivos Lección 2 Mecanismo de recursividad Escribe un algoritmo recursivo que calcule el elemento de cardinal más elevado de
Programación 2. Lección 4. Metodología de diseño de algoritmos recursivos
Programación 2 Lección 4. Metodología de diseño de algoritmos recursivos 1 1. Diseño iterativo vs diseño recursivo 2. Cómo diseñar algoritmos recursivos 3. Diseño recursivo de funciones: a) Función que
Estructuras de Datos Estáticas. Diseñar y programar en lenguaje C soluciones utilizando estructuras de datos estáticas
Fundación Misión Sucre Colegio Universitario de Caracas Taller 2: Estructuras de Datos Estáticas Objetivo Diseñar y programar en lenguaje C soluciones utilizando estructuras de datos estáticas Contenido
Análisis de algoritmos.
Análisis de algoritmos. - Introducción. - Notaciones asintóticas. - Ecuaciones de recurrencia. - Ejemplos. 1 Introducción Algoritmo: Conjunto de reglas para resolver un problema. Su ejecución requiere
Complejidad computacional y asintótica
Complejidad computacional y asintótica Complejidad computacional Indica el esfuerzo que hay que realizar para aplicar un algoritmo y lo costoso que éste resulta. La eficiencia suele medirse en términos
Metodología y Tecnología de la Programación
Tema 4. Abstracción procedimental y de datos 1. Cuál es el error del siguiente programa? import java.util.scanner; class Respuesta{ static Scanner leer=new Scanner(System.in); int valor = lectura(); System.out.println(valor);
Algoritmos Recursivos de Búsqueda y Ordenación y sus tiempos
Estructura de Datos y Algoritmos Algoritmos Recursivos de Búsqueda y Ordenación y sus tiempos 1. Algoritmos de ordenación recursivos 1.1. Mergesort, Ordenamiento por fusión Mergesort se ejecuta en un tiempo
LISTAS 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»
Multiplicación de matrices simétricas
Multiplicación de matrices simétricas La traspuesta de una matriz A n n es definida como una matriz A T n n tal que A T [i, j] =A[j, i] paracadai, j 2{1,...,n} Además, una matriz A es simétrica si A =
Punteros en C ISO, Pablo González Nalda. 26 de febrero de 2013
Punteros en C ISO, 2012-2013 Pablo González Nalda Depto. de Lenguajes y Sistemas Informáticos EU de Ingeniería de Vitoria-Gasteiz, UPV/EHU 26 de febrero de 2013 s, Basado en: A TUTORIAL ON POINTERS AND
UNIVERSIDAD NACIONAL DE SALTA Sede Regional Orán AÑO: 2013 Carreras: TIG - TUP
TRABAJO PRÁCTICO N 4: Modularidad Ejercicio 1: Dados los siguientes prototipos de módulos, explicar cada elemento que los conforman. a) int suma(int a, int b); b) double area(double base, double altura);
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
Ejercicios 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
PROBLEMA 1. Rellena el hueco 1 (línea 23). Realiza la reserva de memoria para almacenar los n puntos.
PROBLEMA 1. El siguiente programa tiene algunos huecos en blanco que tienes que rellenar para que funcione correctamente. En cada hueco va una única línea de C, salvo en el cuerpo de la función calcula_area_triangulo,
Programación en ensamblador Ejercicios resueltos
Programación en ensamblador Ejercicios resueltos Ejercicio 1. Dado el siguiente fragmento de programa en ensamblador..globl main main:... li $a0, 5 jal funcion move $a0, $v0 li $v0, 1 li $v0, 10 funcion:
Tema 7 Vectores y cadenas de caracteres. Fundamentos de Informática
Tema 7 Fundamentos de Informática Índice 1. Qué es un vector? 2. Vectores unidimensionales 3. Cadenas de caracteres 4. Paso de vectores unidimensionales a funciones. 5. Vectores multidimensionales: matrices
Examen de Fundamentos de la Programación (Modelo 1)
Examen de Fundamentos de la Programación (Modelo 1) 27 de noviembre de 2007 1. Qué escribe el siguiente programa si se teclea 5? int num, resultado; for (resultado=0; num; resultado++) num -= 2; printf
Punteros y aritmética de punteros. se almacena el operando
1. Introducción Punteros y aritmética de punteros Una de las características más poderosas del C, es el puntero o apuntador. Los punteros permiten simular las llamadas por referencia y crear y manipular
TEMA 5: Subprogramas. Programación modular EJERCICIOS DE TRAZAS
TEMA 5: Subprogramas. Programación modular EJERCICIOS DE TRAZAS 1.- Escribir la traza y decir que imprime por pantalla cada uno de los siguientes programas: a.- /* Ejercicio de traza 1 */ int a, b, c;
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
Recursión como herramienta en resolución de problemas computacionales
Recursión como herramienta en resolución de problemas computacionales Modularidad! Es común dividir los algoritmos en módulos! Cada módulo lleva a cabo cierta funcionalidad! Muchas veces los módulos sirven
LENGUAJES DE PROGRAMACIÓN. Solución al Trabajo Práctico - Septiembre de 2015
Solución al Trabajo Práctico - Septiembre de 2015 EJERCICIO 1 De acuerdo a la Ley del decaimiento radioactivo, la masa de una sustancia radioactiva disminuye a una velocidad que es proporcional a la masa
Laboratorio de Paralelismo
Laboratorio de Paralelismo 2010-2011 Prácticas OpenMP En el directorio de trabajo LPAR de tu cuenta mlapxx tienes cuatro programas que hay que procesar en paralelo utilizando OpenMP. En el caso de los
public static long Fibonacci (int n) { //devuelve el n-ésimo término de la sucesión de Fibonacci
public static long Fibonacci (int n) { //devuelve el n-ésimo término de la sucesión de Fibonacci if (n
4. 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
#include <stdio.h> float cubica(float numero) { float cubica; cubica = numero * numero * numero; return cubica; }
/*1. Crear una función que calcule el cubo de un número real (float). El resultado deberá ser otro número real. Probar esta función para calcular el cubo de 3.2 y el de 5. */ float cubica(float numero)
TAD 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
Cadenas (strings) y Estructuras
Cadenas (strings) y Estructuras Fundamentos de Programación Fundamentos de Programación I Operaciones básicas definidas para string Creación de variables: string palabra, frase; Asignación: frase = palabra;
Examen Fundamentos de Programación 15 de enero de 2016 Curso 2015/16
Problema 1: [1 punto] Examen Fundamentos de Programación 15 de enero de 2016 Curso 2015/16 Duración: 2,45 horas 10 PUNTOS Publicación de notas 26 de enero Revisión de examen 1 de febrero En el horario
TEMA 1 La eficiencia de los algoritmos
DLSI (Univ. Alicante) Tema 1. La eficiencia de los algoritmos TEMA 1 La eficiencia de los algoritmos PROGRAMACIÓN Y ESTRUCTURAS DE DATOS La eficiencia de los algoritmos 1. Noción de complejidad Complejidad
Listas. Rafael Palacios May/2005
Listas Rafael Palacios May/2005 Descripción Las listas son estructuras de datos parecidas a los vectores Aprovechan la memoria mejor que los vectores Facilitan las operaciones de inserción y borrado No