Programación (PRG) PRACTICA 6. Cálculo de complejidad de programas.

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

Download "Programación (PRG) PRACTICA 6. Cálculo de complejidad de programas."

Transcripción

1 Programación (PRG) PRACTICA 6. Cálculo de complejidad de programas. Facultad de Informática Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia Curso 2002/ Introducción El objetivo de esta práctica es aprender a calcular experimentalmente el coste de un algoritmo. Para ello, se proponen dos métodos de medida: mediante el conteo de operaciones significativas, o mediante un reloj. La caracterización de un algoritmo mediante la definición de su coste computacional (tanto en espacio necesario en memoria como en tiempo de CPU) es una tarea importante en cualquier área de la programación de aplicaciones, siendo crítica en entornos donde la memoria es limitada (tarjetas inteligentes) o la velocidad de respuesta debe cumplir unos requisitos mínimos (sistemas de respuesta en tiempo real). En general, todo problema se puede resolver de varias formas, todas ellas válidas. Sin embargo, unas soluciones pueden ser mejores que otras. Un algoritmo se dice que es mejor que otro para una aplicación determinada, si su coste espacial (memoria necesaria) o su coste temporal (tiempo de CPU) es menor que el segundo. 2. Coste de un algoritmo 2.1. Coste espacial El coste espacial de un algoritmo es la cantidad de memoria que va a necesitar para su ejecución. Supongamos el siguiente ejemplo. Se desea calcular la media de números enteros que se encuentran en un fichero. Dos alumnos proponen las siguientes soluciones: 1. Definir un vector de enteros de tamaño 10000, leer todo el fichero dentro del vector, y calcular la media del vector. 1

2 2. Definir un acumulador donde se va sumando cada entero que se lee del fichero. Una vez que se haya obtenido la suma, se calcula la media dividiendo el contenido del acumulador por Qué solución crees que es más eficiente respecto al coste espacial? 2.2. Coste temporal El coste temporal de un algoritmo indica la cantidad de tiempo de proceso que se necesita para resolver un problema. Dicho coste se puede expresar de varias formas, por ejemplo: número de veces que se ejecuta un bucle, número de operaciones significativas ejecutadas (acceso a un elemento de un vector, una operación matemática, etc) o cantidad de tiempo consumido. La ventaja de las dos primeras formas de calcular el coste de un algoritmo es que son válidas tanto teórica (se puede calcular el número de pasos que va a dar un bucle sin necesidad de utilizar el ordenador) como experimentalmente (se puede incluir código en el programa para que lleve la cuenta del número de veces que se pasa por una cierta instrucción). Sin embargo, la utilización del tiempo para caracterizar un algoritmo es muy dependiente de la máquina y del momento de ejecución del programa, por lo que sólo es válida para medidas experimentales. Ejercicio. Dado el programa siguiente, modifícalo para que lleve la cuenta del número de veces que se ha ejecutado la instrucción del bucle más interno. Antes de terminar, deberá mostrar por pantalla dicho número. #include <stdio.h> int main() { int i,j,n,t; } printf("\nintroduce un número: "); scanf("%d",&n); i=0;t=0; while (i<n) { for (j=0;j<n;j++) t+=3; i+=2; } printf("\nt=%d\n",t); return 0; 10 de diciembre de 2002 Página 2 de 15

3 flop. Un flop, o floating point operation se define como el esfuerzo computacional necesario para efectuar una operación en la que intervienen números reales. Una medida muy extendida para comparar la velocidad de distintos computadores son los MFLOPS (leído mega-flops), o millones de operaciones en coma flotante por segundo que pueden ejecutar. 3. Estudio experimental de la eficiencia de un algoritmo Para calcular experimentalmente la eficiencia de un algoritmo es necesario seguir los siguientes pasos: 1. Implementar el algoritmo en un lenguaje de programación adecuado. 2. Generar un conjunto de pruebas que muestren los distintos comportamientos del algoritmo (en el caso de que el coste del algoritmo varíe en función de los datos de entrada). 3. Resolver con el algoritmo dichos conjuntos de prueba, aumentando la talla del problema. Para cada ejecución, generar una medida del esfuerzo que se ha invertido. 4. Presentar los resultados adecuadamente Generar conjuntos de prueba En el caso de que el comportamiento del algoritmo dependa de los datos de entrada, habrá que generar distintos casos que muestren dichas variaciones. Si se desea estudiar el comportamiento de un algoritmo determinado, como por ejemplo la búsqueda secuencial de un elemento dentro de un vector, se deben estudiar los siguientes casos: Caso peor. Se busca aquella configuración de los datos de entrada que hace que el algoritmo se comporte peor. En el ejemplo de la búsqueda secuencial, el caso peor se da cuando se busca un elemento que no se encuentra en el vector (hay que recorrer todos sus elementos). Caso mejor. Es aquel conjunto de datos de entrada cuya solución necesita el mínimo esfuerzo. En el ejemplo, es el caso cuando el primer elemento del vector es el elemento buscado. Caso promedio. Este caso es el más interesante, ya que es el que, estadísticamente, se acercará al caso promedio, y el que definirá el comportamiento del algoritmo en la mayor parte de las ocasiones. Este 10 de diciembre de 2002 Página 3 de 15

4 caso se mide generando aleatoriamente instancias del problema. Dado que aleatoriamente se puede generar el caso peor o el caso mejor, habrá que repetir varias veces el experimento, para poder calcular la media de dichos experimentos. Hay casos en los que el coste del algoritmo no depende de los datos de entrada. Por ejemplo, la suma de dos vectores de N números enteros siempre cuesta lo mismo, independientemente de los valores a sumar. En estas ocasiones, no hay distinción entre los casos mejor, peor o promedio. Azar determinista. Es posible hacer que el ordenador genere números enteros pseudoaleatorios mediante las siguientes funciones, definidas en stdlib.h: int random(void); void srandom(unsigned int semilla); La función random devuelve un número entero entre 0 y la constante RAND_MAX ( en las máquinas del laboratorio). Cada vez que se invoca devuelve un nuevo número. Dicho número se calcula mediante una función matemática que depende del valor generado anteriormente. El valor que define el comienzo de una serie de valores pseudoaleatorios se denomina semilla. La función srandom 1 permite establecer dicha semilla. A partir de una semilla dada, se generará siempre la misma serie de números. Es común necesitar números menores que RAND_MAX. Para convertir los valores devueltos por random a un rango menor, se puede utilizar el operador módulo (%). Por ejemplo, para obtener números entre 0 y 100, se puede utilizar: a=random()%101; Ejercicio. Escribe un programa que escriba en pantalla 10 números aleatorios entre 1 y En Windows estas funciones se llaman rand y srand. Para utilizar siempre random y srandom y compilar el mismo programa en Windows y en Linux puedes poner en la cabecera del programa: #ifndef random #define random rand #define srandom srand #endif 10 de diciembre de 2002 Página 4 de 15

5 Repetitivo. Ejecuta varias veces el programa anterior. Qué observas en los resultados? A qué crees que es debido? Para establecer una semilla del generador de números aleatorios distinta en cada ejecución, se suele utilizar el reloj del sistema. Así, es muy probable que dos ejecuciones del programa generen series de números distintas. La función time de la librería time.h devuelve el número de segundos transcurridos desde el 1 de enero de A continuación se muestra un ejemplo de utilización de esta función para establecer la semilla. srandom(time(null)); 3.2. Aplicar los casos de prueba al algoritmo Este paso consiste en resolver cada uno de los casos de prueba generados, calculando el coste de resolución de cada uno de ellos. Ejercicio. Completa el siguiente programa, que calcula el número medio de pasos necesarios para buscar un elemento dentro de un vector: #include <stdio.h> #include <stdlib.h> #define MAX int main(void) { int i,tam,x,cont; int v[max]; /* Inicializar v con valores entre 1 y MAX */ for (i=0;i<max;i++) v[i]=i+1; } /* Para tam = {10000, 20000, MAX} */ for (tam= { /* x es un entero aleatorio entre 1 y tam */ x= /* Buscar x dentro de v. Calcular el número de comparaciones realizadas */ /* Imprimir en una línea por pantalla: tam coste */ printf("%d\t%d\n",tam,cont); } return 0; 10 de diciembre de 2002 Página 5 de 15

6 Al mostrar el resultado del ejercicio anterior mediante una gráfica, se obtendrá un resultado parecido al mostrado en la Figura Coste de la búsqueda Comparaciones Talla Figura 1: Gráfica de un posible resultado del programa de la página 5 Ejercicio. Observando la gráfica anterior, crees que el resultado es correcto? Muestra la gráfica el comportamiento promedio de la búsqueda secuencial de elementos en un vector? Modifica el programa para calcular una aproximación al comportamiento promedio de dicho algoritmo Presentar los resultados adecuadamente La salida del programa anterior son dos columnas de números, que a primera vista puede ser difícil de interpretar. El uso de gráficas como la mostrada en la Figura 1 facilita la interpretación de los resultados. A continuación se presenta una herramienta que permite la creación de dichas gráficas de una forma sencilla, a partir de datos formateados Dibujo de gráficas con gnuplot gnuplot es un dibujador de gráficas interactivo. Es un programa que se distribuye bajo licencia GNU, y hay versiones disponibles para Linux, Windows y otros sistemas operativos 2. Para ejecutarlo, se debe lanzar el comando gnuplot desde un terminal: 2 Se puede descargar desde la página web 10 de diciembre de 2002 Página 6 de 15

7 p6]$ gnuplot G N U P L O T Linux version 3.7 patchlevel 1 last modified Fri Oct 22 18:00:00 BST 1999 Copyright(C) , 1998, 1999 Thomas Williams, Colin Kelley and many others Type help to access the on-line reference manual The gnuplot FAQ is available from < Send comments and requests for help to <info-gnuplot@dartmouth.edu> Send bugs, suggestions and mods to <bug-gnuplot@dartmouth.edu> Terminal type set to unknown gnuplot> gnuplot permite dibujar funciones matemáticas con el comando plot. Por ejemplo, para dibujar la función seno se utiliza: gnuplot> plot sin(x) El resultado de la orden anterior se puede ver en la Figura 2. Mediante la orden help functions se puede consultar la lista de funciones definidas por gnuplot. Dado un fichero de texto con el siguiente formato: # Tiempo Pasos gnuplot puede dibujar cada línea del archivo como un punto, donde el primer número es la coordenada en el eje X, y el segundo es la coordenada en el eje Y. Las líneas que empiezan con el carácter # se ignoran. La instrucción para dibujar dicha gráfica es la siguiente: 10 de diciembre de 2002 Página 7 de 15

8 Figura 2: Gráfica de la función seno gnuplot> plot resbusca2.txt donde resbusca2.txt es el nombre del fichero que se encuentra en el directorio actual y contiene la información a dibujar. El resultado se puede ver en la Figura 3. Por defecto, cuando se utiliza el comando plot como se acaba de ver, genera una gráfica de puntos, donde cada línea del archivo indicado se convierte en un punto. La primera columna dentro del archivo de texto es la coordenada en el eje X, y la segunda columna la coordenada en el eje Y. Si hay más columnas en el fichero, se ignoran. Los límites de los ejes mostrados en la gráfica se ajustan a los datos de entrada. En la parte superior derecha de la gráfica se muestra la leyenda de la gráfica, donde se muestra un punto exactamente igual a los utilizados en la gráfica, junto al nombre del fichero. Sin embargo, plot es muy potente, y admite gran variedad de opciones. La sintaxis de dicho comando es: plot [rangos] {<función> fichero_datos [using <cols>]} [title Titulo ] [with <estilo>] [, <otra función o fichero>] donde: [<rangos>]: Tamaño de los ejes X e Y. Por ejemplo: plot [0:20] [-1:1] sin(x) <función>: Especifica la función a dibujar fichero_datos : nombre del fichero con los datos a dibujar. 10 de diciembre de 2002 Página 8 de 15

9 Figura 3: Dibujo de una gráfica mediante puntos [using <cols>]: especifica el orden de las columnas que se van a utilizar como ejes X e Y. Por ejemplo: plot datos.txt u 3:1 [title Titulo ]: define el título de la curva que aparecerá en la leyenda [with <estilo>]: estilo puede ser: points, lines, linespoints, impulses... Por ejemplo: plot x w points, x**2 with lines plot sin(x) with impulses A continuación se muestra una tabla con otras instrucciones comunes de GNUPLOT: Comando Acción help Muestra la ayuda set xlabel Etiqueta Etiqueta del eje X set ylabel Etiqueta Etiqueta del eje Y set title Título Título principal del gráfico cd <directorio> Cambia el directorio actual quit Terminar 10 de diciembre de 2002 Página 9 de 15

10 Ejercicio. Dibuja el resultado de la modificación del ejercicio propuesto en la página 6. Utiliza líneas para dibujarlo y llama a la curva Promedio búsqueda. El eje X deberá mostrar la etiqueta Talla, y el eje Y Comparaciones. Para volcar la salida por pantalla de un programa a un fichero de texto, se puede utilizar la redirección de la salida estándar, mediante el símbolo >. Por ejemplo: resbusca2 > resultado.txt Ajuste de funciones con gnuplot Una vez que se ha obtenido la gráfica que muestra el comportamiento de un algoritmo, es necesario encontrar la función matemática que describa de forma más precisa el comportamiento de dicho algoritmo. gnuplot proporciona el comando fit para ajustar una función dada por el usuario a unos puntos definidos en un archivo. La sintaxis de dicho comando es: fit <función> fichero_datos [using <cols>] via <var1> [,<var2>] donde: <función>: es la función a ajustar. Se debe haber definido previamente [using <cols>]: indica el orden en las que se utilizarán las columnas del fichero via <var1>[,<var2>]: especifica los parámetros de la función a ajustar. Por ejemplo, el fichero datos.txt define la curva mostrada en la Figura 4. Por inspección de la curva, parece que los puntos siguen un comportamiento cuadrático. Así, hay que definir un polinomio cuadrático genérico, para posteriormente ajustarlo. Para ello, se ejecuta la orden: gnuplot> f(x)=a*x**2+b*x+c Dentro de gnuplot se pueden definir funciones con los operadores normales de C, además del operador **, que indica exponenciación. La función f(x) no es directamente representable porque las variables a, b ycno tienen valor definido. Para darles aquel valor que haga que la función f(x) se ajuste lo más posible a los puntos anteriores, se puede utilizar el comando fit: gnuplot> fit f(x) datos.txt via a,b,c El siguiente comando muestra ambas curvas en la misma gráfica: 10 de diciembre de 2002 Página 10 de 15

11 3000 datos.txt Figura 4: Gráfica generada a partir de unos puntos de entrada. gnuplot> plot datos.txt title Puntos w l, f(x) tit Función y la Figura 5 muestra el resultado. La selección de la familia de funciones que se utilizará para ajustar los puntos encontrados experimentalmente se puede basar en dos métodos, que dependen si el código fuente del programa que generó los puntos está disponible o no. Si el código fuente está disponible, se puede calcular el coste del mismo. Para ello hay que buscar la zona de código que consume mayor tiempo de computación. Normalmente dicha zona está localizada en uno o más bucles del programa, que se ejecutarán más o menos veces dependiendo de la talla del problema. De la inspección de dichos bucles, se debe poder extraer el coste esperado (ver el primer ejercicio de los Ejercicios propuestos). Si el código fuente de la función que se desea estudiar no está disponible, entonces la familia de funciones se deberá derivar de la observación de los puntos que describen el tiempo de ejecución del algoritmo, en función de la talla. En este caso, se deberá utilizar un reloj para medir el tiempo de ejecución para cada talla del problema. La siguiente sección explica cómo utilizar el reloj del sistema. Ejercicio. Ajusta los puntos obtenidos en el ejercicio de la página 6 a la función matemática que estimes conveniente mediante el comando fit de gnuplot. 10 de diciembre de 2002 Página 11 de 15

12 3000 Puntos Función Figura 5: Ajuste de los puntos de la Figura 4 mediante una función 3.4. Medida de tiempos de ejecución En los compiladores ANSI C estándar se puede encontrar la función clock definida en time.h: clock_t clock(void); La función clock devuelve una aproximación del tiempo de procesador consumido por el programa. Las unidades en las que devuelve dicho tiempo son unidades de reloj, y para convertirlas en segundos hay que dividir por la constante CLOCKS_PER_SEC, también definida en time.h. Para calcular el tiempo que ha tardado el ordenador en ejecutar un bloque de código, se puede utilizar el siguiente método: int t1,t2; double resultado; t1=clock(); /* Código a medir */ t2=clock(); resultado=((double)(t2-t1))/clocks_per_sec; 10 de diciembre de 2002 Página 12 de 15

13 Ejercicio. Calcula experimentalmente el coste de las operaciones suma y producto de matrices, y ajusta los resultados obtenidos a las funciones matemáticas que estimes oportunas. Utiliza para ello los ficheros matrix.h y matrix.c que se encuentran en el directorio /misc/ practicas/asignaturas/prgfi/p6. Tu programa deberá mostrar por pantalla tres columnas, con la talla de la matriz, el tiempo que ha necesitado una suma y el tiempo que ha necesitado un producto: # Talla tsuma tprod Te puedes basar en el ejercicio de la página 5 para estructurar tu programa, y lo estudiado en el Apartado 3.4 para medir los tiempos de las operaciones. No tienes que implementar las operaciones sobre matrices (ni tampoco debes modificar los ficheros matrix.h o matrix.c). Para utilizar las funciones de matrix.c en otro fichero: 1. Incluir la cabecera matrix.h en el programa donde se vayan a usar sus funciones. 2. Llamar a las funciones normalmente. Tienes funciones para rellenar una matriz con valores (iniciam), para mostrarla por pantalla (escribem), para sumar dos matrices (sumam) y para multiplicarlas (productom). 3. Para compilar el programa, utilizar: gcc -o prog prog.c matrix.c 10 de diciembre de 2002 Página 13 de 15

14 Tiempo cero. Es posible que, al ejecutar el programa anterior, obtengas resultados parecidos a estos: [fjabad@pc0101 p6]$ midematrix Evidentemente, este resultado es falso (no hay ningún ordenador que pueda sumar dos matrices en tiempo cero). El problema es la precisión del reloj. Las unidades de la función clock son demasiado grandes para medir los tiempos de ejecución de las operaciones. La solución a este problema es repetir la operación un número de veces suficiente como para que el tiempo sea significativo. Luego, a la hora de sacar la cantidad de segundos que ha tardado en realizarse una operación, habrá que dividir por el número de veces que se ha repetido dicha operación. Ejercicio. Modifica el ejercicio anterior para evitar que aparezcan tiempos nulos. 4. Ejercicios propuestos 1. A continuación se muestran los fragmentos de programas que se han detectado como los que consumen más tiempo de ejecución. A partir del código de los bucles, indicar el coste esperado de cada ejemplo, para una talla de problema n, y la familia de funciones que se debería utilizar para ajustar su comportamiento. 10 de diciembre de 2002 Página 14 de 15

15 for (i=0;i<n;i++) for (i=0;i<n;i++) for (j=0;j<10;j++) for (i=0;i<n;i++) { printf("%d",i); for (j=n;j>0;j--) for (k=0;k<n-10;k++) } for (i=0;i<10;i++) for (j=0;j<n;j++) for (i=0;i<n;i++) for (j=0;j<n;j++) for (k=0;k<n;k++) for (i=0;i<n;i++) for (j=0;j<n;j++) acum=acum+a[i][j]; for (k=0;k<n;k++) acum=acum-k; 2. En el fichero enigma.o del directorio/misc/practicas/asignaturas/ prgfi/p6, están implementadas las funciones f1, f2, f3 y f4. No se dispone del código fuente de dichas funciones, pero se desea caracterizar su comportamiento temporal. Las cabeceras de las funciones se encuentran en el fichero enigma.h, dentro del mismo directorio. Todas las funciones reciben un parámetro de tipo entero, que es el que determinará el tiempo de ejecución de cada una de ellas. Para compilar el programa que utilice dichas funciones, utilizar: gcc -o prog prog.c enigma.o -lm Ajusta el comportamiento de cada función mediante la función matemática que estimes oportuna. 10 de diciembre de 2002 Página 15 de 15

Programación (PRG) PRÁCTICA 10. Algoritmos de búsqueda

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

Más detalles

La eficiencia de los programas

La 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 detalles

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III Lenguaje C 1 Puntos previos Los códigos fuentes generados en C requieren ser compilados

Más detalles

RESUMEN DEL PROGRAMA GNUPLOT

RESUMEN DEL PROGRAMA GNUPLOT RESUMEN DEL PROGRAMA GNUPLOT Gnuplot es un programa de representación grafica de funciones y superficies, tanto definidas a través de sus expresiones analíticas, como de un conjunto de datos o puntos del

Más detalles

Examen Teórico (1/3 de la nota final)

Examen Teórico (1/3 de la nota final) Examen Teórico (1/3 de la nota final) 105000016 - Programación para Sistemas Grado en Ingeniería Informática (2009) Lenguajes y Sistemas Informáticos e Ingeniería de Software Facultad de Informática Universidad

Más detalles

Programación. Test Autoevaluación Tema 3

Programación. Test Autoevaluación Tema 3 Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.

Más detalles

Cátedra I Informática Autor I Carlos Bartó

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

Más detalles

Tema 3. Análisis de costes

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 detalles

Fundamentos de Programación 2017-I

Fundamentos de Programación 2017-I Fundamentos de Programación 2017-I Fundamentos para la construcción de código a partir del algoritmo Objetivo: El alumno construirá programas utilizando el lenguaje de programación C a través de un análisis

Más detalles

2.1 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS

2.1 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS 2.1 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS El proceso de resolución de un problema con una computadora conduce a la escritura de un programa y su ejecución en la misma. Aunque el proceso de diseñar

Más detalles

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute. Los problemas que se plantean en la vida diaria suelen ser resueltos mediante el uso de la capacidad intelectual y la habilidad manual del ser humano. La utilización de la computadora en la resolución

Más detalles

Guía práctica de estudio 05: Diagramas de flujo

Guía práctica de estudio 05: Diagramas de flujo Guía práctica de estudio 05: Diagramas de flujo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 05: Diagramas de

Más detalles

Funciones Definición de función

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

Más detalles

RECORDAR TIPOS DE DATOS

RECORDAR TIPOS DE DATOS RECORDAR TIPOS DE DATOS VARIABLES: OBJETO CUYO valor cambia: A510 nombres NOTAS Int A=0; float B=1; CONSTANTES: OBJETO cuyo valor no cambia PI= 3.14159 LAS COMAS NO SE PERMITEN Int PI=3.1415 EXPRESIONES:

Más detalles

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial Informática Ingeniería en Electrónica y Automática Industrial Entrada y salida estándar V1.3 Autores Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato:

Más detalles

Unidad II: Análisis semántico

Unidad II: Análisis semántico Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico

Más detalles

ESTRUCTURAS REPETITIVAS EN PHP

ESTRUCTURAS REPETITIVAS EN PHP ESTRUCTURAS REPETITIVAS EN PHP Los bucles nos permiten iterar conjuntos de instrucciones, es decir repetir la ejecución de un conjunto de instrucciones mientras se cumpla una condición. Sentencia while

Más detalles

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL 1 TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL TECNOLOGÍA DE LA COMPUTADORA FACILITADOR: PARTICIPANTE: DAVID, CHIRIQUÍ 2015 2 Qué es un programa? Un programa informático es un conjunto

Más detalles

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Tema 2 Conceptos básicos de programación. Fundamentos de Informática Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis

Más detalles

MyOpenLab. Versión Manejo de datos en Matrices y Tablas.

MyOpenLab. Versión Manejo de datos en Matrices y Tablas. MyOpenLab Versión 3.015 Manejo de datos en Matrices y Tablas http://myopenlab.de http://es.myopenlab.de Prof. José Manuel Ruiz Gutiérrez jruiz1@platea.pntic.mec.es 1 Índice 1. Tratamiento de Matrices y

Más detalles

Programación MODULAR: Subalgoritmos - funciones y procedimientos

Programación MODULAR: Subalgoritmos - funciones y procedimientos Programación MODULAR: Subalgoritmos - funciones y procedimientos Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. Estos problemas

Más detalles

Formatos para prácticas de laboratorio

Formatos para prácticas de laboratorio Fecha de efectividad: CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA TRONCO COMÚN 2009-2 11214 PROGRAMACIÓN PRÁCTICA No. LABORATORIO DE PROGRAMACIÓN DURACIÓN (HORA) 9 NOMBRE DE LA PRÁCTICA

Más detalles

SESIÓN DE EJERCICIOS E1

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

Más detalles

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,

Más detalles

Tipos de datos y Operadores Básicos

Tipos de datos y Operadores Básicos Módulo I: Conceptos Básicos Tema 1. Qué es un ordenador? Tema 2. Cómo se representan los datos en un ordenador? Tema 3. Qué es un lenguaje de programación? Tema 4. Cómo se hace un programa informático?

Más detalles

Es un lenguaje estructurado, tiene una abundante cantidad de operadores y tipos de datos.

Es un lenguaje estructurado, tiene una abundante cantidad de operadores y tipos de datos. Lenguaje C Un poco de historia C es un lenguaje de propósito general, es decir, se pueden desarrollar aplicaciones de diversas áreas. Dentro de sus principales características podemos mencionar que: Es

Más detalles

Sentencias de Procesamiento Iterativo: while y do-while

Sentencias de Procesamiento Iterativo: while y do-while ESTRUCTURAS CÍCLICAS Se discuten en este documento las sentencias que se utilizan en el lenguaje C++ para representar la tercera de las estructuras utilizadas en la programación estructurada: La Estructura

Más detalles

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Laboratorio de Arquitectura de Redes. Entrada y salida estándar Laboratorio de Arquitectura de Redes Entrada y salida estándar Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato: scanf() El buffer de teclado Entrada

Más detalles

Factorización LU y la librería GSL. Graficaciíon en Gnuplot

Factorización LU y la librería GSL. Graficaciíon en Gnuplot Clase No 6: Factorización LU y la librería GSL Graficaciíon en Gnuplot MAT 251 Dr Alonso Ramírez Manzanares CIMAT, AC e-mail: alram@ cimatmx web: http://wwwcimatmx/ alram/met_num/ Dr Joaquín Peña Acevedo

Más detalles

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;) Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,

Más detalles

ESTIMACIÓN DE TIEMPO Y COSTO DE PRODUCTOS SOFTWARE

ESTIMACIÓ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 detalles

Lenguaje de Programación: C++ Directivas al preprocesador

Lenguaje de Programación: C++ Directivas al preprocesador UG Lenguaje de Programación: C++ Directivas al preprocesador Universidad de Guanajuato Septiembre 2010 Un preprocesador es un programa separado que es invocado por el compilador antes de que comience la

Más detalles

FUNCIONES. Identificador valido. Tipo-Funcion Identificador_de_la_funcion (Tipo par1,tipo par2 )

FUNCIONES. Identificador valido. Tipo-Funcion Identificador_de_la_funcion (Tipo par1,tipo par2 ) FUNCIONES Las funciones son el medio básico de que se vale C para construir programas. Un Programa es, básicamente, una colección de funciones entre las que se incluye una especial llamada main(), la función

Más detalles

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales

Más detalles

Manual de usuario MetaTrader 4 TraderNovo:

Manual de usuario MetaTrader 4 TraderNovo: Manual de usuario MetaTrader 4 TraderNovo: Aquí está una foto que muestra la pantalla principal MT4: Menú principal (acceder al menú y los ajustes del programa); Barras de herramientas (acceso rápido a

Más detalles

TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.

TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. 1 TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. 1- Cuáles son las principales funciones de un sistema operativo? Los Sistemas Operativos tienen como objetivos o funciones principales lo siguiente; Comodidad;

Más detalles

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Caracteres 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 detalles

7.3. Estructura de un programa

7.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 detalles

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros

Más detalles

LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE

LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE 1 OBJETIVOS Al finalizar esta actividad, serás capaz de: Entender el funcionamiento de las estructuras iterativas en general; la(s) condición(es)

Más detalles

INSTITUTO POLITECNICO NACIONAL CENTRO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS " GONZALO VAZQUEZ VELA "

INSTITUTO POLITECNICO NACIONAL CENTRO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS  GONZALO VAZQUEZ VELA INSTITUTO POLITECNICO NACIONAL CENTRO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS " GONZALO VAZQUEZ VELA " GUIA DE ESTUDIOS DE ANALISIS Y DISEÑO DE ALGORITMOS. 1. Qué es un algoritmo? 2. Qué es un Pseudocódigo?

Más detalles

CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS

CAPÍ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 detalles

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual. Manual de Dev-C++ 4.9.9.2 Página 1 de 11 Introducción Dev-C++ es un IDE (entorno de desarrollo integrado) que facilita herramientas para la creación y depuración de programas en C y en C++. Además, la

Más detalles

Tema: Estructuras de Selección en C#.

Tema: Estructuras de Selección en C#. Programación I, Guía 4 1 Tema: Estructuras de Selección en C#. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Objetivos Utilizar las instrucciones de selección if e

Más detalles

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus

Más detalles

TEMA 4. ESTRUCTURAS DE CONTROL

TEMA 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 detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Ejercicios 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 detalles

: Algorítmica y Estructura de Datos I

: Algorítmica y Estructura de Datos I FACULTAD POLITÉCNICA DIRECCIÓN ACADÉMICA PROGRAMA DE ESTUDIO I. IDENTIFICACIÓN Carrera : Ingeniería de Sistemas CARGA HORARIA (Horas reloj) Asignatura : Algorítmica y Estructura de Datos I Carga Horaria

Más detalles

Texto estructurado (ST)

Texto estructurado (ST) 17 Texto estructurado (ST) El texto estructurado se compone de una serie de instrucciones que se pueden ejecutar, como sucede con los lenguajes superiores, de forma condicionada ("IF..THEN..ELSE") o en

Más detalles

Preliminares. Tipos de variables y Expresiones

Preliminares. Tipos de variables y Expresiones Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un

Más detalles

Tema: Sobrecarga. Objetivos. Materiales y Equipo. Introducción Teórica. Programación II. Guía No. 7

Tema: Sobrecarga. Objetivos. Materiales y Equipo. Introducción Teórica. Programación II. Guía No. 7 Programación II. Guía No. 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga. Objetivos Describir como redefinir (sobrecargar) operadores para que funcionen con

Más detalles

EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO

EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO TIPOS DE DATOS BÁSICOS: Tipo Tipo Tamaño aproximado en bits Rango mínimo Carácter char 8 0 a 55 Entero int 16-3767 a 3767 Real float 3

Más detalles

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero

TEMA 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 detalles

ESTRUCTURAS REPETITIVAS

ESTRUCTURAS 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 detalles

Algoritmos. Diagramas de Flujo. Informática IV. L. S. C. Heriberto Sánchez Costeira

Algoritmos. Diagramas de Flujo. Informática IV. L. S. C. Heriberto Sánchez Costeira Informática IV Algoritmos Diagramas de Flujo L. S. C. Heriberto Sánchez Costeira Algoritmos 1 Definición Es una serie finita de pasos o instrucciones que deben seguirse para resolver un problema. Es un

Más detalles

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Mé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 detalles

ESTRUCTURA DE ASIGNACIÓN

ESTRUCTURA DE ASIGNACIÓN ALUMNA: GRADO: MODALIDAD-10 FECHA: PROFESOR: Hugo Nelson Ramírez Cárdenas LOGROS 1. Comprende la importancia que tiene el diseño de algoritmos, como forma de dar solución a un determinado problema. 2.

Más detalles

Introducción a la programación: Algoritmos

Introducción a la programación: Algoritmos Introducción a la programación: Algoritmos Algoritmo La palabra algoritmo proviene del nombre del matemático persa del siglo IX Muhammad ibn Musa al-jwarizmi Un algoritmo es una secuencia ordenada de pasos,

Más detalles

Introducción a la programación

Introducción a la programación Introducción a la programación Resolución de Problemas El objetivo principal para que las personas aprendan a programar en algún lenguaje de programación en particular es utilizar el computador como una

Más detalles

Ejercicios Tema 6. Funciones

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.

Más detalles

Boletín de ejercicios de la asignatura de INFORMÁTICA para la realización de las prácticas de laboratorio. Ejercicios de Estructuras de Control

Boletín de ejercicios de la asignatura de INFORMÁTICA para la realización de las prácticas de laboratorio. Ejercicios de Estructuras de Control Boletín de ejercicios de la asignatura de INFORMÁTICA para la realización de las prácticas de laboratorio Ejercicios de Estructuras de Control Escuela Técnica Superior de Ingeniería Geodésica, Cartográfica

Más detalles

Estructuras de Repetición (Repita para)

Estructuras de Repetición (Repita para) Estructuras de Repetición (Repita para) Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación Digital I 1 REPITA PARA Fijar

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓ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 detalles

Manual de turbo pascal

Manual de turbo pascal Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de

Más detalles

Introducción rápida a la programación (estructurada ) con C++

Introducción rápida a la programación (estructurada ) con C++ Introducción rápida a la programación (estructurada ) con C++ A B No A? Si B A Los Bloques pueden ser una línea de código o un modulo (función o subrutina) que pueden estar contenido en otro archivo de

Más detalles

Programación en Lenguaje C

Programación en Lenguaje C Lenguaje de programación C Programación en Lenguaje C Introducción El Lenguaje de programación C fue implantado por primera vez en los años 70 por Dennis Ritchie para una computadora DEC PDP-11 corriendo

Más detalles

Cuales son los tipos de instrucciones que se utilizan en la programación?

Cuales son los tipos de instrucciones que se utilizan en la programación? EXAMEN NIVEL PREUNI/UNI Cuales son los tipos de instrucciones que se utilizan en la programación? a) Instrucciones afirmativas e instrucciones negativas b) Instrucciones entrada, instrucciones afirmativas

Más detalles

Cuáles son los lenguajes que pueden utilizarse para programar Karel?

Cuáles son los lenguajes que pueden utilizarse para programar Karel? EXAMEN NIVEL OMI Cuáles son las ventanas del programa de karel? a) Mundo, Programa, Ejecutar y Ayuda. b) Nueva, Abrir, Guardar, Guardar como y compilar. c) Muros y zumbadores. d) Todos los anteriores.

Más detalles

Modularización en lenguaje C. Funciones

Modularización en lenguaje C. Funciones Modularización en lenguaje C Funciones Segundo Cuatrimestre 2016 F. de la Informática- Int.a la Computación - Int.a la Programación 1 Ejercicio: Dado el siguiente algoritmo incompleto codificado en Lenguaje

Más detalles

Porque usar Arreglos?

Porque 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 detalles

Hoja de ejercicios del Tema 3

Hoja 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 detalles

Índice. Ya sé Excel, pero necesito más

Índice. Ya sé Excel, pero necesito más Índice Introducción... 1 He visto con mis propios ojos... 3 Yo siempre he trabajado así... 5 Convenciones... 6 Suposiciones... 8 Sobre la versión 2007... 10 Un recordatorio rápido... 12 Archivos... 12

Más detalles

Tema: Clases y Objetos en C#. Parte II.

Tema: Clases y Objetos en C#. Parte II. Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y

Más detalles

Sesión 8- Práctica de Medida de Rendimiento

Sesión 8- Práctica de Medida de Rendimiento Sesión 8- Práctica de Medida de Rendimiento Arquitectura de Computadores I (IS19) Arquitectura de Computadores I (II19) Área de Arquitectura y Tecnología de Computadores Departamento de Ingeniería y Ciencia

Más detalles

SISTEMAS OPERATIVOS Arquitectura de computadores

SISTEMAS OPERATIVOS Arquitectura de computadores SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega emezav@unicauca.edu.co Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios

Más detalles

UNIVERSIDAD NACIONAL DE SALTA Sede Regional Orán AÑO: 2013 Carreras: TIG - TUP

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);

Más detalles

Diseño Estructurado de Algoritmos

Diseño Estructurado de Algoritmos Diseño Estructurado de Algoritmos 1 Sesión No. 11 Nombre: Estructuras algorítmicas. Tercera parte. Objetivo de la sesión: Al concluir la sesión el estudiante aplicará las estructuras algorítmicas repetitivas

Más detalles

TEMA 1: Algoritmos y programas

TEMA 1: Algoritmos y programas TEMA 1: Algoritmos y programas 1.1.-Introducción La razón principal para utilizar un ordenador es para resolver problemas (en el sentido más general de la palabra), o en otras palabras, procesar información

Más detalles

Comenzando a usar MatLab:

Comenzando a usar MatLab: Universidad Simón Bolívar Núcleo del Litoral Departamento de Tecnología Industrial TI-2284. Laboratorio de Sistemas de Control PRACTICA 1. INTRODUCCION A MATLAB Introducción: MatLab es una herramienta

Más detalles

Teoría de Autómatas y Lenguajes Formales, IS17 Ingeniería Técnica en Informática de Sistemas. Práctica 1: Introducción al Analizador Léxico FLEX

Teoría de Autómatas y Lenguajes Formales, IS17 Ingeniería Técnica en Informática de Sistemas. Práctica 1: Introducción al Analizador Léxico FLEX Teoría de Autómatas y Lenguajes Formales, IS17 Ingeniería Técnica en Informática de Sistemas Práctica 1: Introducción al Analizador Léxico FLEX Enunciado: El objetivo de esta práctica consiste en aprender

Más detalles

Cuestiones: Ejercicios 2: 1) Qué imprimen los siguientes bucles?

Cuestiones: Ejercicios 2: 1) Qué imprimen los siguientes bucles? Ejercicios 1: 1) Calcule y muestre cuántos billetes de 1000, monedas de 100, monedas de 25, monedas de 5 y monedas de peseta se corresponden con una cantidad dada (leída por el programa ó =13578 pts).

Más detalles

IMPORTAR Y USAR CLASES DEL API DE JAVA. EJEMPLO CLASE MATH Y MÉTODO POW. CONSTRUCTORES PRIVADOS. (CU00647B)

IMPORTAR Y USAR CLASES DEL API DE JAVA. EJEMPLO CLASE MATH Y MÉTODO POW. CONSTRUCTORES PRIVADOS. (CU00647B) APRENDERAPROGRAMAR.COM IMPORTAR Y USAR CLASES DEL API DE JAVA. EJEMPLO CLASE MATH Y MÉTODO POW. CONSTRUCTORES PRIVADOS. (CU00647B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero

Más detalles

Programación I. Carrera: ECM Participantes Participantes de las academias de ingeniería electrónica de los Institutos Tecnológicos.

Programación I. Carrera: ECM Participantes Participantes de las academias de ingeniería electrónica de los Institutos Tecnológicos. .- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Programación I Ingeniería Electrónica. ECM-043 3-2- 2.- HISTORIA DEL PROGRAMA Lugar

Más detalles

C1 INTRODUCCIÓN AL LENGUAJE C. Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid

C1 INTRODUCCIÓN AL LENGUAJE C. Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid C1 INTRODUCCIÓN AL LENGUAJE C Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid Índice 1. Lenguajes de Programación 1. Definición. 2. Niveles

Más detalles

NOTACIÓN O GRANDE. El análisis de algoritmos estima el consumo de recursos de un algoritmo.

NOTACIÓN O GRANDE. El análisis de algoritmos estima el consumo de recursos de un algoritmo. NOTACIÓN O GRANDE El análisis de algoritmos estima el consumo de recursos de un algoritmo. Esto nos permite comparar los costos relativos de dos o más algoritmos para resolver el mismo problema. El análisis

Más detalles

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

Métodos que devuelven valor Dado el siguiente triángulo rectángulo: Métodos que devuelven valor Dado el siguiente triángulo rectángulo: hipotenusa altura base Para dibujar este triángulo necesitamos los siguientes datos: base y altura La base y la altura, se utilizarán

Más detalles

Funciones: Pasos por Referencia Recursividad

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

Más detalles

Métodos numéricos para ingeniería Francisco Javier Delgado Cepeda

Métodos numéricos para ingeniería Francisco Javier Delgado Cepeda Preguntas de comprensión En esta sección se hace un recuento sobre algunas distinciones relativas a los diferentes métodos numéricos tratados. Deben realizarse después de una lectura profunda de los contenidos

Más detalles

Tema 01: Algoritmia y diagramas de flujo. Estructuras de datos (Prof. Edgardo A. Franco)

Tema 01: Algoritmia y diagramas de flujo. Estructuras de datos (Prof. Edgardo A. Franco) Tema 1 Estructuras de datos (Prof. Edgardo A. Franco) Contenido Algoritmia Qué es un algoritmo? Métodos algorítmicos Diagrama de flujo Símbolos utilizados en los diagramas de flujo Reglas para la construcción

Más detalles

Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos.

Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos. Universidad Rafael Urdaneta Escuela de Ingeniería de Computación Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos. Asignación

Más detalles

Introducción a Sistemas Operativos: Ficheros

Introducción a Sistemas Operativos: Ficheros Introducción a Sistemas Operativos: Ficheros Clips Fr ancisco J Ballesteros 1. Entrada/Salida Es importante saber cómo utilizar ficheros. En UNIX, es aún más importante dado que gran parte de los recursos,

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

Consideremos una función que determine si una fecha dada (d, m, a) es valida:

Consideremos una función que determine si una fecha dada (d, m, a) es valida: CodeHood arreglo Establecimos anteriormente que una variable es un lugar en la memoria de la computadora donde podemos guardar un valor entre dos o más que puede haber en un conjunto, como un número entero,

Más detalles

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos

PRÁ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 detalles

funciones printf scanf

funciones printf scanf FUNCIONES EN C FUNCIONES Los módulos en C se llaman funciones. Hemos estado utilizando funciones de la biblioteca estandar stdio.h como por ejemplo printf y scanf. Comenzaremos viendo algunas funciones

Más detalles

Introducción a Python. Cecilia Manzino

Introducción a Python. Cecilia Manzino Características del lenguaje Es un lenguaje de programación multiparadigma, soporta la programación orientada a objetos, imperativa y, en menor medida, funcional. Es un lenguaje multiplataforma, puede

Más detalles

Algoritmos y Programas

Algoritmos y Programas Introducción a la Programación Pontificia Universidad Javeriana Generado con LAT E X Febrero de 2010 Recorderis Algoritmos Recorderis Estado Una configuración determinada del sistema en un tiempo-espacio

Más detalles

Tema 13: Apuntadores en C

Tema 13: Apuntadores en C Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción

Más detalles

Instituto de Matemática. Agosto de ) Encuentre experimentalmente los siguientes valores de su calculadora:

Instituto de Matemática. Agosto de ) Encuentre experimentalmente los siguientes valores de su calculadora: Curso de Métodos Numéricos Instituto de Matemática Práctico 1: Errores Agosto de 2005 1) Encuentre experimentalmente los siguientes valores de su calculadora: (a) El valor ɛ mach definido como el minimo

Más detalles