1 Especificaciones y Análisis
|
|
- Gabriel Lara Cuenca
- hace 7 años
- Vistas:
Transcripción
1 : Práctica 1
2 1 Especificaciones y Análisis 1.1 Especificaciones La práctica se centra en dominar los conceptos más elementales de C (Bucles, Vectores, Ficheros, Funciones con argumentos por valor y referencia, creación de todos estos elementos mediante prototipos separados del programa principal), para su uso posterior en practicas futuras Especificaciones Particulares Ejercicio 1 El primer ejercicio pide generar una rutina que genere un numero aleatorio equiprobable entre dos valores (MAX,MIN) que se le pasan a la función. La forma de resolución de este programa reside en encontrar una formula que permita dar números aleatorios por igual: return ip + (int) ( ( (double) (iu-ip+1) * rand() ) / (RAND_MAX+1.0) ); Con esta ecuación obtenemos valores aleatorios equiprobables entre iu e ip, la explicación es bien sencilla, al restar el Max-Min y sumarle uno obtenemos el rango de posibles valores, si multiplicamos por rand() y dividimos por el valor máximo de rand() + 1 el resultado, como máximo va a ser iu-ip y como mínimo va a ser cero, por lo que al sumar el Min siempre va a dar un numero entre ambos valores Especificaciones Particulares Ejercicio 2 Este ejercicio nos pide una rutina que genere permutaciones aleatorias entre 0 y N, para generar dicha rutina se nos facilita el siguiente pseudocódigo: para i de 1 a N: perm[i] = i; para i de 1 a N: intercambiar perm[i] con perm[aleator(i, N)]; Especificaciones Particulares Ejercicio 3 El tercer programa nos pide generar una rutina que llame a la rutina del ejercicio 2, pasándole a la rutina del ejercicio 2, el valor M, nos generara tantas permutaciones como veces se la llame mediante el parámetro N Especificaciones Particulares Ejercicio 4 Éste apartado nos pide dar el código de una rutina que ordene las permutaciones generadas por los ejercicios anteriores Especificaciones Particulares Ejercicio 5 Éste programa tiene como finalidad determinar experimentalmente el tiempo medio de ejecución por inserción sobre tablas de diferentes tamaños, para ello la rutina recurre a las rutinas generadas en los ejercicios anteriores para generar las permutaciones y ordenarlas, además de la rutina Driver_Ordena, en este ejercicio se pide generar una 2
3 rutina que escriba en un fichero el tiempo medio de ejecución del algoritmo de ordenación para n_perms. 1.2 Análisis Análisis Particular Ejercicio 1 Para realizar el histograma, se nos planteo la posibilidad de hacerlo mediante el Gnuplot, los datos se los podíamos pasar de dos maneras generando en la propia función un fichero donde guardar los valores y las veces que se repiten, o mediante la siguiente línea de código en Linux vamos metiendo en un fichero las veces que se repite cada numero: Grep numero salida.txt wc l >>distribución.txt, se generaba el fichero, esta segunda forma es la que hemos usado para generar las graficas en el Gnuplot y de esta forma no modificar la función Análisis Particular Ejercicio 2 En este ejercicio no se encontraba dificultad aparente si el primer ejercicio poseía un algoritmo correcto Análisis Particular Ejercicio 3 El trabajo con punteros es el elemento principal de éste ejercicio. Lo más importante es cubrir los casos para errores en la reserva de memoria y su posterior liberación Análisis Particular Ejercicio 4 En este ejercicio la principal dificultad se podía encontrar en el diseño del código de ordenación Análisis Particular Ejercicio 5 La principal característica de este ejercicio es la medición del tiempo de ejecución de un método, teniendo claro los ejercicios anteriores este ejercicio solo planteaba la dificultad de medir el tiempo que se solucionaba mediante la instrucción clock(). 2 Diseño 2.1 Estructuras y Tipos Abstractos de Datos Estructura de ordena.h typedef int (*pfunc_pivote) (int, int); typedef int (*pfunc_ordena) (int *, int, int, pfunc_pivote); int aleator(int ip,int iu); int *genera_perm(int n); int **driver(int N,int M); int InsertSort(int *tabla,int P,int U,pfunc_pivote pivote); double Driver_Ordena(pfunc_ordena metodo, pfunc_pivote pivote, int n_perms, int tamanio); 3
4 int Time_Ordena(pfunc_ordena metodo, pfunc_pivote pivote, char *fichero, int num_min, int num_max, int incr, int n_perms); short GuardaTabla_double(char *fichero, double *tiempo, int *tamanio, int N); 2.2 Algoritmo A continuación adjuntamos el código de las funciones con los algoritmos Fichero ordenar.c /*FUNCIÓN: aleator*/ int aleator(int ip,int iu) return ip + (int) ( ( (double) (iu-ip+1) * rand() ) / (RAND_MAX+1.0) ); /*FUNCIÓN: genera_perm*/ int *genera_perm(int n) int i, aleat, temp; int *perm = NULL; if(n<=0) return NULL; perm = (int *) malloc(n*sizeof (int)); if(perm == NULL) return NULL; for(i=0; i<n; i++) perm[i] = i; for(i=0; i<n; i++) aleat = aleator(0, n-1); temp=perm[i]; 4
5 perm[i]=perm[aleat]; perm[aleat]=temp; return perm; /*FUNCIÓN: driver*/ int **driver(int N,int M) int i; int **perms; if(n<=0 M <=0) return NULL; perms=(int **) malloc(n*sizeof(int *)); if(perms == NULL) return NULL; for(i=0; i<n; i++) perms[i]=genera_perm(m); if(perms[i] == NULL) for(--i; i>=0; i--) free((void *)perms[i]); return NULL; return perms; /*FUNCIÓN: InsertSort*/ int InsertSort(int *tabla,int P,int U,pfunc_pivote pivote) int i, j, temp; 5
6 if(p<0 U<0 P>U) return ERR; if(p==u) return OK; for(i=1; i<(u-p+1); i++) for(j=i; (j>0) && (tabla[j-1] > tabla[j]); j--) temp=tabla[j]; tabla[j]=tabla[j-1]; tabla[j-1]=temp; return OK; /*FUNCIÓN: Driver_Ordena*/ double Driver_Ordena(pfunc_ordena metodo, pfunc_pivote pivote, int n_perms, int tamanio) int i; int **perms = NULL; clock_t start, end; if(metodo == NULL n_perms<0 tamanio<0) return (double)err_time; perms=driver(n_perms, tamanio); if(perms == NULL) return (double)err_time; start = clock(); for(i=0; i<n_perms; i++) if(metodo(perms[i], 0, tamanio, pivote)!= OK) for(i=0; i<n_perms; i++) 6
7 if(perms[i]!= NULL) free((void *)perms[i]); free((void *)perms); return (double)err_time; end = clock(); for(i=0; i<n_perms; i++) if(perms[i]!= NULL) free((void *)perms[i]); free((void *)perms); return (double) (end - start) / (CLOCKS_PER_SEC * n_perms); /*FUNCIÓN: Time_Ordena*/ int Time_Ordena(pfunc_ordena metodo, pfunc_pivote pivote, char *fichero, int num_min, int num_max, int incr, int n_perms) int i, size, num; int *sizes = NULL; double *times = NULL; if(metodo == NULL fichero == NULL num_min<=0 num_max<=0 num_min>num_max) return ERR_TIME; num = (num_max - num_min) / incr + 1; sizes=(int *)malloc(num*sizeof(int)); if(sizes == NULL) return ERR_TIME; times=(double *)malloc(num*sizeof(double)); 7
8 if(times == NULL) return ERR_TIME; for(i=0, size=num_min; i<num; i++, size+=incr) sizes[i]=size; times[i]=driver_ordena(metodo, pivote, n_perms, size); if(times[i] == ERR_TIME) return ERR_TIME; if(guardatabla_double(fichero, times, sizes, num)!= OK) free((void *)sizes); free((void *)times); return ERR_TIME; free((void *)sizes); free((void *)times); return OK; /*FUNCIÓN: GuardaTabla_double */ short GuardaTabla_double(char *fichero, double *tiempo, int *tamanio, int N) int i; FILE *f_handler = NULL; f_handler = fopen(fichero, "w+"); if(f_handler == NULL) return (short) ERR; for(i=0; i<n; i++) fprintf(f_handler, "%d %f\n", tamanio[i], tiempo[i]); fclose(f_handler); return (short) OK; 8
9 2.3 Organización Módulos y Ficheros Los ejercicios correspondientes a cada uno de los ejercicios de prueba de cada una de las rutinas estan estructurados y compilados mediante el MakeFile: CC=gcc INC_DIRS = LIB_DIRS = LIBS = CFLAGS = $(INC_DIRS) -ggdb -Wall LDFLAGS = $(LIB_DIRS) $(LIB) all: ej1 ej2 ej3 ej4 ej5 clean: rm -rf ej1 ej2 ej3 ej4 ej5 *.o core ej1: ej1.o ordenar.o $(CC) $(LDFLAGS) -o $@ $^ ej2: ej2.o ordenar.o $(CC) $(LDFLAGS) -o $@ $^ ej3: ej3.o ordenar.o $(CC) $(LDFLAGS) -o $@ $^ ej4: ej4.o ordenar.o $(CC) $(LDFLAGS) -o $@ $^ ej5: ej5.o ordenar.o $(CC) $(LDFLAGS) -o $@ $^ ordenar.o: ordenar.c ordenar.h ej1.o: ej1.c ordenar.h ej2.o: ej2.c ordenar.h ej3.o: ej3.c ordenar.h ej4.o: ej4.c ordenar.h ej5.o: ej5.c ordenar.h 2.4 Documentación Funciones Importantes /*FUNCIÓN: aleator*/ /*ENTRADA: int ip: limite inferior int iu: limite superior */ /*SALIDA: int: numero aleatorio */ 9
10 /*DESCRIPCIÓN: Rutina que genera un numero aleatorio entre dos numeros dados */ /*FUNCIÓN: genera_perm*/ /*ENTRADA: int n: Numero de elementos de la permutación */ /*SALIDA: int *: puntero a un array de entero que contiene a la permutación o NULL en caso de error */ /*DESCRIPCIÓN: Rutina que genera una permutación aleatoria */ /*FUNCIÓN: driver*/ /*ENTRADA: int N: Numero de permutaciones int M: Numero de elementos de cada permutacion */ /*SALIDA: int **:array de punteros a enteros que apuntan a cada una de las permutaciones NULL en caso de error */ /*DESCRIPCIÓN: Rutina que genera N permutaciones aleatorias de M elementos*/ /*FUNCIÓN: InsertSort*/ /*ENTRADA: int *tabla: Direccion del primer elemento de la tabla, int P: Primer elemento de la tabla, int U: Ultimo elemento de la tabla, pfunc_pivot pivote: Metodo de ordenacion (en esta practica NULL) */ /*SALIDA: OK: Ordenación correcta ERR: Se ha producido un error */ /*DESCRIPCIÓN: Rutina que ordena una tabla, que va desde un primer elemento P, hasta un ultimo U */ /*FUNCIÓN: Driver_Ordena*/ /*ENTRADA: pfunc_ordena metodo: Puntero a la función de ordenación, pfunc_pivote pivote: Método de ordenación (en esta practica NULL), int n_perms: numero de permutaciones a generar y ordenar, int tamanio:tamaño de las permutaciones */ /*SALIDA: Double: Tiempo medio de ejecución o -1 en caso de ERR */ /*DESCRIPCIÓN: Rutina que calcula el tiempo medio de ejecución del algoritmo de ordenación sobre una permutación */ /*FUNCIÓN: Time_Ordena*/ 10
11 /*ENTRADA: pfunc_ordena metodo: Puntero a la funcion de ordenacion, pfunc_pivote pivote: Metodo de ordenacion (en esta practica NULL), char *fichero: Nombre del fichero, int num_min: Numero minimo, int num_max: Numero maximo, int incr: Incremento del tamaño de las permutaciones, int n_perms: Numero de permutaciones a generar y ordenar */ /*SALIDA: OK: El proceso a sido correcto, ERR: Se ha producido algún error */ /*DESCRIPCIÓN: Escribe en un fichero los tiempos medios de ejecución */ /*FUNCIÓN: GuardaTabla_double */ /*ENTRADA: char * fichero: Nombre del fichero, double *tiempo: Puntero a la tabla que contiene el valor de los tiempos de ejecucion, int *tamanio: Puntero a la tabla que contiene el tamaño de las permutaciones, int N: Tamaño de los Arrays */ /*SALIDA: OK : Guardado satisfactoriamente ERR Error durante al guardar */ /*DESCRIPCIÓN: Rutina que almacena en un archivo los tiempos medios de ejecución */ 11
12 3 Resultado /*FUNCIÓN: aleator*/ Los resultados obtenidos se han representado en una grafica mediante el Gnuplot: Como se puede ver la función que hemos implementado es totalmente equiprobable, ya q los valores se repiten por igual. 12
13 /*FUNCIÓN: Time_Ordena*/ La función time_ordena, devuelve el tiempo que tarda la función insert_short en ordenar las permutaciones, con esta grafica se ve que los valores de tiempo aumentan de igual manera que la función x*x: 13
1.1 Introducción. 1.2 Esquema Funcional. Apartado 1. Rutina Aleat.or
Prácticas MTP II 1 Rutina Aleator Apartado 1. Rutina Aleat.or 1.1 Introducción. En este primer apartado se realizará una rutina en leguaje C que genere un número entero aleatorio dentro un intervalo dado
Más detallesINTRODUCCIÓN: El main1 además genera un fichero preparado para el histograma que demuestra que los números sacados al azar son equiprobables.
MTP2 PRACTICA 1 INTRODUCCIÓN: En esta práctica vamos a crear una función que nos permita generar números aleatorios en un intervalo elegido, ya que en C la funcion rand() genera números entre 0 y RAND_MAX,
Más detallesMetodología y Tecnología de la Programación II Escuela Politécnica Superior, UAM,
Metodología y Tecnología de la Programación II Escuela Politécnica Superior, UAM, 2009 2010 Conjunto de Prácticas no. 3 Fecha de entrega: Grupo del Lunes: 11 de Enero. Grupos del Martes: 15 de Diciembre.
Más detallesPROBLEMA 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,
Más detalles8. Vectores (arrays)
8. Vectores (arrays) Fundamentos de Informática Especialidad de Electrónica 2009-2010 Ismael Etxeberria Agiriano 16/12/2009 Índice 8. Vectores (arrays) 1. Números aleatorios 2. Serie ordenada 3. Números
Más detallesComplejidad de Algoritmos
Complejidad de Algoritmos Tema 5 Introducción Un algoritmo es una secuencia de instrucciones que resuelve un problema Puede tener diferentes implementaciones Para comparar las diferentes formas (algoritmos)
Más detallesIntroducción a MATLAB
Introducción a MATLAB Sistemas Conexionistas - Curso 07/08 MATLAB es un sistema interactivo basado en matrices para cálculos científicos y de ingeniería. Se pueden resolver problemas numéricos relativamente
Más detallesProgramació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
Más detallesProgramación 2. Grado en Estadística Aplicada. Curso 2012-2013. Generación de números pseudoaleatorios. Manejo de ficheros de texto.
Programación 2 Grado en Estadística Aplicada Curso 2012-2013 Generación de números pseudoaleatorios. Manejo de ficheros de texto. Jesús Correas jcorreas@fdi.ucm.es Departamento de Sistemas Informáticos
Más detallesGENERAR NÚMEROS O SECUENCIAS ALEATORIOS EN C. SRAND Y RAND. TIME NULL. RAND_MAX. (CU00525F)
APRENDERAPROGRAMAR.COM GENERAR NÚMEROS O SECUENCIAS ALEATORIOS EN C. SRAND Y RAND. TIME NULL. RAND_MAX. (CU00525F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde cero Fecha
Más detallesINDICE Capitulo 1. El Turbo C++ y el Lenguaje C Capitulo 2. Declaración e inicialización de variables Capitulo 3. Funciones de entrada y salida
INDICE Capitulo 1. El Turbo C++ y el Lenguaje C 1 Introducción 1 Introducción al turbo C++ 2 Instalación de la versión 3 del turbo C++ 4 Carga del editor turbo C++ para crear programas 6 Opciones: File,
Más detallesIntroducción a MATLAB
Introducción a MATLAB Sistemas Conexionistas - Curso 08/09 MATLAB es un sistema interactivo basado en matrices que se utiliza para cálculos científicos y de ingeniería. Puede resolver problemas numéricos
Más detallesPráctica 3: Análisis en el Dominio Espectral
Prácticas de laboratorio Práctica 3: Análisis en el Dominio Espectral 1. INTRODUCCIÓN El objetivo de la práctica es programar funciones en C, dentro del entorno LTVWIN, para la estimación espectral de
Más detallesIndice del curso básico programación desde cero Visual Basic Nivel I (CU00302A)
aprenderaprogramar.com Indice del curso básico programación desde cero Visual Basic Nivel I (CU00302A) Sección: Cursos Categoría: Curso Visual Basic nivel I Fecha revisión: 2029 Autor: Mario R. Rancel
Más detallesEstructuras de control
Estructuras de control El flujo secuencial de acciones en un algoritmo puede ser alterado por medio de las denominadas estructuras de control, las cuales se resumen a continuación: Estructuras de selección
Más detallesPolinomios. 1.- Funciones cuadráticas
Polinomios 1.- Funciones cuadráticas Definición 1 (Función polinomial) Sea n un entero no negativo y sean a n, a n 1,..., a, a 1, a 0 número s reales con a n 0. La función se denomina función polinomial
Más detallesPráctica 1: Una primera aproximación a la programación de sistemas concurrentes y distribuidos en C++
Práctica 1: Una primera aproximación a la programación de sistemas concurrentes y distribuidos en C++ Programación de Sistemas Concurrentes y Distribuidos Dpto. de Informática e Ingeniería de Sistemas,
Más detallesEJEMPLO DE CÓDIGO JAVA BÁSICO. CREAR CLASES CON CAMPOS, CONSTRUCTOR Y MÉTODOS. LA PALABRA CLAVE THIS (CU00652B)
APRENDERAPROGRAMAR.COM EJEMPLO DE CÓDIGO JAVA BÁSICO. CREAR CLASES CON CAMPOS, CONSTRUCTOR Y MÉTODOS. LA PALABRA CLAVE THIS (CU00652B) Sección: Cursos Categoría: Curso Aprender programación Java desde
Más detallesEJERCICIOS DE PROGRAMACIÓN EN C. DIBUJAR UN ROMBO O DIAMANTE. CALCULAR SUMATORIOS. (CU00542F)
APRENDERAPROGRAMAR.COM EJERCICIOS DE PROGRAMACIÓN EN C. DIBUJAR UN ROMBO O DIAMANTE. CALCULAR SUMATORIOS. (CU00542F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde cero Fecha
Más detallesPRUEBA DE FUNDAMENTOS DE INFORMÁTICA. 1.- Qué se mostrará por pantalla tras ejecutar el código correspondiente a la función main?
UNIVERSIDD PONTIFICI COMILLS ESCUEL TECNIC SUPERIOR DE INGENIERI (I.C..I.) DEPRTMENTO DE SISTEMS INFORMÁTICOS TITULCIÓN: INGENIERO TÉCNICO INDUSTRIL PRUEB DE FUNDMENTOS DE INFORMÁTIC Nombre Grupo Preguntas
Más detallesPráctica 1 Pasa la calculadora
Práctica 1 Pasa la calculadora Fecha de entrega: 7 de diciembre de 2014 En matematicasdivertidas.com se propone el siguiente juego 1 : Dos jugadores A y B juegan de la manera siguiente: A enciende la calculadora
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 detallesCAPITULO III: METODOLOGIA. En el presente capítulo se describirá el conjunto de pasos a seguir para lograr el
CAPITULO III: METODOLOGIA En el presente capítulo se describirá el conjunto de pasos a seguir para lograr el objetivo propuesto en esta tesis. Primero se presenta la descripción general del programa y
Más detallesINFORMATICA II PRIMER PARCIAL
Grupo 1 INFORMATICA II PRIMER PARCIAL Hacer un programa en C o C++ que realice lo siguiente: a. Almacenar en un archivo binario 100 juegos de valores compuestos por un valor entero, un número real y una
Más detallesAlgoritmos: Algoritmos sobre secuencias y conjuntos de datos
Algoritmos: Algoritmos sobre secuencias y conjuntos de datos Alberto Valderruten LFCIA - Departamento de Computación Facultad de Informática Universidad de A Coruña, España www.lfcia.org/alg www.fi.udc.es
Más detallesTema 3 Constantes, Variables y Tipos
Tema 3 Constantes, Variables y Tipos Contenidos 1. Definiciones. 1.1 Variables y Constantes. 1.2 Identificadores. 2. Declaración de Variables en un Programa en C. 3. Tipos de Datos. 3.1 Clasificación.
Más detallesTEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero
TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando
Más detallesParte de Algoritmos, de la asignatura de Programación Máster de Bioinformática Aleatoriedad y algoritmos aleatorios
Parte de Algoritmos, de la asignatura de Programación Máster de Bioinformática Departamento de Informática y Sistemas Universidad de Murcia http://dis.um.es/ domingo/algbio.html domingo@um.es Contenido
Más detallesAlgoritmos. Diseño de algoritmos por inducción. Alberto Valderruten. alberto.valderruten@udc.es. Dept. de Computación, Universidade da Coruña
Divide y Vencerás Diseño de algoritmos por inducción Dept. de Computación, Universidade da Coruña alberto.valderruten@udc.es Contenido Divide y Vencerás 1 Divide y Vencerás 2 Índice Divide y Vencerás 1
Más detallesLa herramienta ArtEM: Aritmética Entera y Modular
La herramienta ArtEM: Aritmética Entera y Modular 1. Introducción La herramienta ArtEM (Aritmética Entera y Modular) es una aplicación informática programada en Visual Basic y desarrollada con el fin de
Más detallesIntroducción al lenguaje C
Introducción al lenguaje C Ampliación de Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Tipos de datos escalares 4. Operadores básicos
Más detallesINSTRUCCIONES PARA EL USO DEL SOFTWARE (IS)
INSTRUCCIONES PARA EL USO DEL SOFTWARE (IS) Pantalla Inicial de DERIVE for Windows Teniendo instalado el programa DERIVE sobre Windows, podemos ingresar al sistema de las siguientes formas: Haciendo clic
Más detallesAPELLIDOS NOMBRE GRUPO CALIFICACIÓN FECHA
Hoja 1/10 Duración: una hora y media Resultados de aprendizaje que se evalúan en este examen: R2: Saber emplear las estructuras de control de flujo de programación para implementar algoritmos sencillos.
Más detallesIntroducción Programación Modular y a Métodos: Consideremos el siguiente ejercicio:
Introducción Programación Modular y a Métodos: Consideremos el siguiente ejercicio: Ejercicio: Escriba una aplicación que requiera un número real como entrada y que muestre el producto del número y tres.
Más detallesDiseño de algoritmos paralelos
PROGRAMACIÓN CONCURRENTE TEMA 7 Diseño de algoritmos paralelos ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN DISEÑO DE ALGORITMOS PARALELOS - TEMA 7.2 Algoritmos
Más detallesProblemas de Recursividad
Problemas de Recursividad Problema 1. El factorial de un número entero n 0, denotado como n!, se define! como!!! i = 1 2 n cuando n > 0, y 0! = 1. Por ejemplo 6! = 1 2 3 4 5 6 = 720 Diseñad una método
Más detallese-mail: mtoledo@dgrfsa.gov.ar
Arreglos Introducción a las Estructuras de Datos. Arreglos Unidimensionales: Vectores Vectores Estáticos en VB Vectores Dinámicos en VB Ordenando un Vector Introducción a las Estructuras de Datos. Una
Más detallesMATEMÁTICAS 5º PRIMARIA DIVISIBILIDAD: MÚLTIPLOS Y DIVISORES
MATEMÁTICAS 5º PRIMARIA DIVISIBILIDAD: MÚLTIPLOS Y DIVISORES 1 2 MÚLTIPLOS DE UN NÚMERO Un número es múltiplo de otro si se obtiene multiplicando este número por otro número natural. Ejemplo: 12 es múltiplo
Más detallesEJERCICIOS EXCEL. Guardar el libro en tu pen drive, con el nombre PRACTICA1_ALUMNO_GRUPO.
EJERCICIOS EXCEL EJERCICIO DEL PRECIO CON IVA Crear un libro para saber cuál es el precio de un artículo aplicándole el 16% de IVA. El precio sin IVA es un valor que se tendrá que introducir, así como
Más detallesLenguajes de programación LPSI EUI UPM CADENAS DE CARACTERES
CADENAS DE CARACTERES Arrays unidimensionales de caracteres \0 es el carácter nulo Toda cadena debe acabar en \0 Lo que hay después de \0 en el array no se considera parte de la cadena Las cadenas constantes
Más detallesProgramació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
Más detallesAlgoritmos y Diagramas de flujo
Algoritmos y Diagramas de flujo En los pasos a seguir para el desarrollo de un problema, existen básicamente dos tipos de elementos con los cuales es posible especificar un problema en forma esquemática
Más detallesRelación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso 2016-2017. 1º Grado en Informática Práctica 1: Punteros Objetivos Se hará hincapié en la aritmética de punteros
Más detallesProgramación I. Práctica parcial: el juego de los barquitos (ENTREGA OBLIGATORIA)
Programación I Práctica parcial: el juego de los barquitos (ENTREGA OBLIGATORIA) El objetivo de esta práctica es implementar una variedad del juego de los barquitos o hundir la flota. Como sabréis el juego
Más detallesProf. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 5 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº5 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Trabajando
Más detallesTema 5: Herramientas de programación y diseño modular
: Herramientas de programación y diseño Programación 2 Curso 2013-2014 Índice 1 2 3 4 El proceso de compilación (1/2) La tarea de traducir un programa fuente en ejecutable se realiza en dos fases: : El
Más detallesFunciones & Estructuras de control
Funciones & Estructuras de control Universidad de Concepción, Chile Departamento de Geofísica Programación Científica con Software libre Primavera, 2011 Universidad de Concepción Contenidos 1 2 3 En la
Más detallesPROGRAMACIÓN LINEAL ENTERA
PROGRAMACIÓN LINEAL ENTERA Programación lineal: hipótesis de perfecta divisibilidad Así pues decimos que un problema es de programación lineal entera, cuando prescindiendo de las condiciones de integridad,
Más detallesPráctica 3. CÁLCULO DE LA FUNCIÓN SENO UTILIZANDO UN DESARROLLO EN SERIE
PROGRAMACIÓN (EUI). Curso 2001-2002 Práctica 3. CÁLCULO DE LA FUNCIÓN SENO UTILIZANDO UN DESARROLLO EN SERIE F. Marqués y N. Prieto Índice General 1 Introducción 1 2 El problema 1 2.1 Desarrollo en serie
Más detallesTEMA 4 ALGUNAS FUNCIONES DEL LENGUAJE C
TEMA 4 ALGUNAS FUNCIONES DEL LENGUAJE C 4.1.- Introducción. 4.2.- Función de salida exit. 4.3.- Función de salida _exit. 4.4.- Función de salida abort. 4.5.- Función de salida assert. 4.6.- Funciones de
Más detallesEL MÉTODO SIMPLEX ALGEBRAICO: MINIMIZACION. M. En C. Eduardo Bustos Farías
EL MÉTODO SIMPLEX ALGEBRAICO: MINIMIZACION M. En C. Eduardo Bustos Farías 1 Minimización El método simplex puede aplicarse a un problema de minimización si se modifican los pasos del algoritmo: 1. Se cambia
Más detallesEscuela 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 detalles324 T. P. Lapso 2010/1 1/7
324 T. P. Lapso 2010/1 1/7 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA TRABAJO PRÁCTICO: ASIGNATURA: COMPUTACIÓN II CÓDIGO: 324 FECHA DE ENTREGA DE LAS ESPECIFICACIONES AL ESTUDIANTE:
Más detallesPráctica 1: Introducción a SPSS 1
Estadística Aplicada Curso 2010/2011 Diplomatura en Nutrición Humana y Dietética Práctica 1: Introducción a SPSS 1 Este programa estadístico está organizado en dos bloques: el editor de datos y el visor
Más detallesUNIVERSIDAD DE MANAGUA Al más alto nivel
UNIVERSIDAD DE MANAGUA Al más alto nivel SIMULACIÓN DE SISTEMAS Guía práctica #3 Generación de números Aleatorios para modelos de simulación Prof.: MSc. Julio Rito Vargas A. Grupo: INGENIERIA INDUSTRIAL
Más detallesTEMA 5: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE. Definición de Ingeniería del Software
TEMA 5: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE Definición de Estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software [Zelkovitz, 1978]. Aplicación práctica del
Más detallesTema 5: Diseño modular. Índice. Notas. Programación 2. Curso 2014-2015. Notas. Ejemplo. La herramienta make. 1 Diseño modular.
: Programación 2 Curso 2014-2015 Índice 1 2 3 (1/2) Cuando el programa crece es necesario dividirlo en módulos Cada módulo agrupa una serie de funciones con algo en común El módulo puede reutilizarse en
Más detallesProf. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 4 Fundamentos de Programación Informática II Prof. Dr. Paul Bustamante Practica Nº 4 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Números Perfectos....
Más detallesAnalista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior PUNTEROS
PUNTEROS 1 Punteros en C Un puntero es una variable que almacena direcciones de memoria tipo *puntero; tipo variable; puntero = &variable; ffd0 valor variable fff0 ffd0 puntero A partir de la última sentencia
Más detallesTema 5: Diseño modular
: Programación 2 Curso 2015-2016 Índice 1 2 3 (1/2) Cuando el programa crece es necesario dividirlo en módulos Cada módulo agrupa una serie de funciones con algo en común El módulo puede reutilizarse en
Más detallesPráctica 4: Funciones en lenguaje C/C++.
Práctica 4: Funciones en lenguaje C/C++. Objetivos En esta práctica el objetivo principal es el de poner en práctica los principios básicos del uso de funciones en lenguaje C/C++. Evaluación La práctica
Más detallesIntroducción a las sentencias de control
INSTRUCCIONES DE CONTROL CONTENIDOS 1. Introducción a las sentencias de control. 2. Instrucciones o sentencias condicionales: IF, IF-ELSE, SWITCH. 3. Instrucciones o sentencias repetitivas o iterativas:
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 detallesMonoalgorítmez: modelo funcional
Monoalgorítmez 1. Características 2. Modelo funcional Interfaz del usuario Interfaz del programador: llamadas al sistema 3. Modelo estructural Estructura del núcleo Proceso de arranque 4. Modelo procesal
Más detallesDesarrollo de una aplicación usando Bitbake
Desarrollo de una aplicación usando Bitbake Objetivos Compilar una aplicación sencilla sin hacer uso de Bitbake Utilizar el entorno Bitbake para compilar una aplicación sencilla. Requisitos Tener instalado
Más detallesMatrices escalonadas y escalonadas reducidas
Matrices escalonadas y escalonadas reducidas Objetivos. Estudiar las definiciones formales de matrices escalonadas y escalonadas reducidas. Comprender qué importancia tienen estas matrices para resolver
Más detallesEjercicios del tema 5. Jerarquía de de Memoria
Ejercicios del tema 5. Jerarquía de de Memoria Ejercicio 1. Considere un computador de 32 bits con una caché de 64 KB asociativa por conjuntos de 4 vías y un tiempo de acceso de 4 ns. El tamaño de la línea
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 detallesDISEÑO CURRICULAR ALGORITMOS, ESTRUCTURAS Y PROGRAMACIÓN I
DISEÑO CURRICULAR ALGORITMOS, ESTRUCTURAS Y PROGRAMACIÓN I FACULTAD (ES) CARRERA (S) Ingeniería Computación y Sistemas CÓDIGO HORAS TEÓRICAS HORAS PRÁCTICAS UNIDAS CRÉDITO SEMESTRE 122643 02 02 03 II PRE-REQUISITO
Más detallesFundamentos de Programación
Fundamentos de Programación Arrays 18.10.2010 José A. Mañas Dpto. de Ingeniería de Sistemas Telemáticos http://www.dit.upm.es/~pepe/doc/fprg/ Arrays Cuando tenemos N datos del mismo
Más detallesÍNDICE DEL LIBRO Y DEL EBOOK APRENDE A PROGRAMAR CON PSEUDOCÓDIGO, DIAGRAMAS DE FLUJO Y EJERCICIOS DE EJEMPLO RESUELTOS EN C
ÍNDICE DEL LIBRO Y DEL EBOOK APRENDE A PROGRAMAR CON PSEUDOCÓDIGO, DIAGRAMAS DE FLUJO Y EJERCICIOS DE EJEMPLO RESUELTOS EN C 1 INDICE MÓDULO 1. INTRODUCCIÓN 1. INTRODUCCIÓN... 19 2. A QUIÉN VA DIRIGIDO
Más detallesVectores 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
Más detalles8 de Junio 2005 UNIVERSITAT DE VALÈNCIA
Prob.1. En la práctica 4 ( Qué impresora uso?), se nos acaba de romper la impresora nueva. Ante esta situación nos piden que realicemos una nueva función para el programa de gestión de colas de impresión
Más detallesPráctica 2 - Manejo de estructuras de datos y punteros
Práctica 2 - Manejo de estructuras de datos y punteros Organización del Computador 2 1er Cuatrimestre 2017 1. Estructuras estáticas: Vectores y Matrices Ejercicio 1 Para cada uno de los siguientes ítems,
Más detallesTaller de Sistemas Operativos. Módulos del kernel
Taller de Sistemas Operativos Módulos del kernel Módulos El kernel de Linux es modular ya que permite la inserción y eliminación dinámica de código en el kernel en tiempo de ejecución. Las subrutinas asociadas,
Más detallesProf. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 2 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 2 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Reserva
Más detallesRAICES DE ECUACIONES Y SISTEMA DE ECUACIONES
RAICES DE ECUACIONES Y SISTEMA DE ECUACIONES Justo Rojas T. Laboratorio de Simulación Computacional de Materiales Facultad de Ciencias Físicas Universidad Nacional Mayor de San Marcos Abril 24, 2012 Curso
Más detallesUNIDAD UNO PROGRAMACIÓN LÍNEAL Parte 3
UNIDAD UNO PROGRAMACIÓN LÍNEAL Parte 3 Matriz unitaria "I" de base con variables artificiales. Cuando el problema de programación lineal se expresa en la forma canónica de maximizar, las variables de holgura
Más detallesTema 2.- Ordenación (Parte I)
En la elaboración de estos apuntes han participado los siguientes alumnos: Helena Hernández Obregón (Curso 200/2002), Eduardo Quevedo, Raquel González y Aarón Asencio (Curso 2003/200). Actualizado por
Más detallesIndique 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)
Más detallesINGENIERIA DE SISTEMAS 1 ESTRUCTURAS DE DATOS (Listas simples) INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS
INGENIERIA DE SISTEMAS 1 ESTRUCTURAS DE DATOS (Listas simples) 1. INTRODUCCIÓN INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS Las computadoras fueron diseñadas o ideadas como una herramienta mediante la cual
Más detallesSistemas de Ecuaciones Lineales
Sistemas de Ecuaciones Lineales 1 Sistemas de ecuaciones y matrices Definición 1 Una ecuación lineal en las variables x 1, x 2,..., x n es una ecuación de la forma con a 1, a 2... y b números reales. a
Más detalles1. Algoritmo, Pseudocódigo, Diagramas de flujo.
1. Algoritmo, Pseudocódigo, Diagramas de flujo. Algoritmo: es un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos. En matemáticas, ciencias de la computación y
Más detallesGenerador de analizadores léxicos FLEX
Generador de analizadores léxicos FLEX Procesadores de Lenguajes 4 o Informática PL curso 2008-2009 (CCIA) CCIA Octubre 2008 PL 0809 (CCIA) Introducción a FLEX Octubre-2008 1 / 12 Uso de FLEX FLEX: traduce
Más detallesD.2 ANÁLISIS ESTADÍSTICO DE LAS TEMPERATURAS DE VERANO
Anejo Análisis estadístico de temperaturas Análisis estadístico de temperaturas - 411 - D.1 INTRODUCCIÓN Y OBJETIVO El presente anejo tiene por objeto hacer un análisis estadístico de los registros térmicos
Más detallesTIPOS DE DATOS BASICOS EN LENGUAJE C
TIPOS DE DATOS BASICOS EN LENGUAJE C TIPO char int float double void ANCHO EN BIT 64 0 TIPOS DE DATOS RANGO EN PC -12 a 127-76 a 767 3.4E-3 a 3.4E+3 1.7E-30 a 1.7E+30 sin valores TIPO ANCHO EN BIT RANGO
Más detallesAlgoritmos 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
Más detallesMemoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez
Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez 1. PUNTEROS 2. MEMORIA DINÁMICA 2 1. PUNTEROS 3 Qué es un puntero? Un tipo de variable cuyo valor es la dirección de memoria de otra variable.
Más detallesProf. Dr. Paul Bustamante
Nombre: Carné: Examen C++ - Junio Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Examen Grupo B Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción.... 1 1.1 Ejercicio 1:
Más detallesMICROSOFT ACCESS 2013 (COMPLETO)
MICROSOFT ACCESS 2013 (COMPLETO) Descripción del funcionamiento del programa de gestión de bases de datos Microsoft Access 2013, estudiando los conceptos fundamentales de las bases de datos: desde su análisis
Más detallesUNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO
UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO LICENCIATURA EN INGENIERÍA DE SOFTWARE UNIDAD DE APRENDIZAJE: PROGRAMACIÓN Créditos institucionales de la UA: 8 Material visual: Diapositivas Unidad de competencia
Más detallesFUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 3 Estructuras de datos Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería de Sistemas y Automática.
Más detallesCada grupo de alumnos entregará un guión con los resultados. Preparación de la práctica
Práctica Optimización de Procesos Químicos Uso de funciones de la Toolbo de optimización de Matlab Objetivo: El objetivo de esta práctica es doble: Familiarizarse con la Toolbo de Optimización de Matlab
Más detallesPRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos
ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos Contenido Introducción...1 Objeto...2 Atributo...2 Métodos...2 Clase...3
Más detalles315 M/R Versión 1 Integral 1/13 2009/1 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA
35 M/R Versión Integral /3 29/ UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA MODELO DE RESPUESTA (VERSION.2) ASIGNATURA: Investigación de Operaciones I CÓDIGO: 35 MOMENTO: Prueba
Más detallesMicrosoft Access 2003 (Completo)
Página 1 Horas de teoría: 27 Horas de práctica: 25 Precio del Curso: 167 Descripción del funcionamiento del programa de gestión de bases de datos Microsoft Access 2003, estudiando los conceptos fundamentales
Más detallesEjercicios 3A. 2. Implemente un programa que, dados los tres vértices de un triángulo, calcule el área del mismo. Puede aplicar la siguiente fórmula:
Ejercicios 3A 1. Diseñe un programa que lea los coeficientes de un sistema de dos ecuaciones lineales con dos incógnitas y calcule su solución. Se supone que el sistema de ecuaciones es compatible determinado.
Más detallesTema 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
Más detalles