Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Slides:



Advertisements
Presentaciones similares
INFORMÁTICA PROGRAMACIÓN.
Advertisements

Nuestro reto es educar al pensamiento, para que razone de acuerdo a ciertas reglas; con ello podremos ser más eficientes al momento en que ordenamos.
PROF. ING. JULIO CESAR CANO RAMIREZ
ALGORITMOS Y LENGUAJES Estructuras de Control CONDICIONAL
ECUACIONES = 7 x + y = y + x x + 5 = 7 Incógnita
Unidad 1 DISEÑO DE ALGORITMOS ING. Nelwi Baez. MSC
Razonamiento algorítmico
LÓGICA DE PROGRAMACIÓN
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN
Introducción a los Algoritmos
Resolución de Problemas Algoritmos y Programación
INFORMÁTICA II.
Curso de Programación I Parte I
INFORMÁTICA PROGRAMACIÓN.
Técnico en programación de Software
Unidad 2 Algoritmos y resolución de problemas
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Tipo de Dato Abstracto Tipos de datos:
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
Programación 1 Introducción
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Curso de Programación I Parte III
Complemento a los Diagrama de Flujos Fundamentos de la Programación
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Introducción a la Programación
PARADIGMA Es un esquema de pensamiento que nos lleva a concebir las cosas de una manera determinada. el término paradigma puede indicar el concepto de esquema.
Introducción a la Computación
METODOLOGIA DE LA PROGRAMACION
PSEUDOCÓDIGO. DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE REPRESENTACIÓN DE ALGORITMOS.
Análisis Diseño y Desarrollo
Matemáticas Discretas y Algoritmos
ESTRUCTURAS DE CONTROL
Potencias de exponente natural mayor que 1
Potencias de exponente natural mayor que 1
INTRODUCCIÓN A LA COMPUTACIÓN 12va Semana – 19va Sesión Miércoles 18 de Mayo del 2005 Juan José Montero Román
Programación de Computadores
ALGORITMOS.
Programación en Matlab
PROFESOR: SIRACUSA EMILIANO MARTÍN Página Web: 1.
Fundamentos de programación
Tema 6. Conceptos básicos de programación (Repaso) Prof. María Alejandra Quintero Informática Año 2013.
Teoría – Alejandro Gonzalez
Figure: Algoritmos Conceptos básicos. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Introducción a la Ingeniería de Sistemas
PENSAMIENTO ANALÍTICO SISTÉMICO DAISY KATERINE RODRÍGUEZ DURÁN
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Introducción a la tecnología Realizado por: Miguel Ángel Arias.
ALGORITMOS La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió.
Tema 6. Introducción a la programación
Programación de Computadores (IWI-131)
Introducción a los programas
DEV- C++ ·include <iostream> Int x x=x+2(x)
ALGORITMO QUE ES ??.
Computación I (CI-2125) Clase 2 Prof. Mireya Morales.
Elaboración de algoritmos usando lógica de programación
Propósito Desarrollar la lógica mediante la creación de algoritmos.
M.S.C. Ivette Hernández Dávila
Lic. Carla Aguirre Montalvo
* Cuando nos permite desarrollar un programa que necesitamos para tomar un conjunto de buenas prácticas para hacer eso. Esto se debe a que podemos ahorrar.
Objetivos del tema. Hemos visto lo que es la estructura de un programa, los datos, que esos datos en realidad se convierten en variables de distinto.
Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 3 Programas.
PARCIAL 1 SISTEMA DE TRATAMIENTO DE INFORMACION. Concepto de Programa  El término programa (d el latín programma, que a su vez proviene de un vocablo.
PARCIAL 1 Introducción a los programas. Concepto de Programa  El término programa (d el latín programma, que a su vez proviene de un vocablo griego)
Números racionales Lorenzo Contreras Garduño Ago. 2015
INFORMÁTICA II TEMA: DISEÑA Y ELABORA ALGORITMOS DOCENTE: MARÍA DOLORES GARCÍA PONCE CAMPUS TONALÁ JALISCO.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
ALGORITMOS Y PROGRAMAS. OBJETIVOS  Resolver problemas mediante la especificación algorítmica.  Proporcionar los procedimientos y técnicas para el desarrollo.
Transcripción de la presentación:

Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS PROFESOR: SIRACUSA EMILIANO MARTÍN Página Web: www.esiracusa.jimdo.com

Problemas modelos y abstracciones Buscar la solución a un problema es buscar un MODELO. Un modelo es una versión simplificada de la realidad con datos relevantes del problema. Los modelos se construyen con ayuda de abstracciones.

Algoritmo Buscar la solución a un problema es buscar un MODELO. Un modelo es una versión simplificada de la realidad con datos relevantes del problema. Los modelos se construyen con ayuda de abstracciones.

Ejemplo: Cocinar un huevo frito: Buscar la sartén. Colocarle aceite. Colocar la sartén en el fuego. Buscar un hueva. Cascar el huevo. Colocar el interior del huevo en la sartén. Cocinar el huevo. Sacar el huevo de la sartén. Retirar la sartén del fuego. Finalizar

Especificación del algoritmo: Sucesión de pasos o instrucciones que representan la resolución de una clase de problemas. Es una entidad estática. Ejecución del algoritmo: Proceso de llevar a cabo los pasos indicados en la especificación. Algoritmo: Secuencia de pasos o especificaciones que cundo se ejecutan, produce resultados y termina luego de una cantidad finita de tiempo.

-Para cada paso del algoritmo, el siguiente está definido sin ambigüedad. -El orden de ejecución se establece en la especificación. -Todo algoritmo tiene un punto inicial y al menos un punto final. -La resolución del problema frecuente mente se divide en distintas secciones y la terminación del proceso depende de la sección que se ha ejecutado

Ejemplo: 0. Observar si hay algún huevo. 0. Si hay por lo menos un huevo entonces realizar las acciones de 1 a 10, sino , pensar en otra comida y finalizar. Cocinar un huevo frito: Buscar la sartén. Colocarle aceite. Colocar la sartén en el fuego. Buscar un hueva. Cascar el huevo. Colocar el interior del huevo en la sartén. Cocinar el huevo. Sacar el huevo de la sartén. Retirar la sartén del fuego. Finalizar

Buscar la sartén. Colocarle aceite. 2’ Buscar la botella de aceite de girasol. 2’’Colocar 1/3 cm3 de aceite en la sartén. Colocar la sartén en el fuego. Buscar un hueva. Cascar el huevo. Colocar el interior del huevo en la sartén. Cocinar el huevo. Sacar el huevo de la sartén. Retirar la sartén del fuego. Finalizar

Ejemplo: Juan suele ir de campamento amenudeo y como es muy metódico y consume tres rebanadas de pan en su desayuno. Habitualmente trata de minimizar lo que lleva en su mochila. Su parrilla no es muy grande, y por ejemplo solo entran tres rebanadas de pan que siempre consume, las cuales por supuesto siempre se doran de un solo lado. Al desayuno hace tostadas en la parrilla y quiere saber cuanto es el mínimo que tardaría en hacer las tostadas. Como no le gustan ni muy tostadas ni muy blancas, descubrió que necesita 30 segundos para que la tostada este lista de un lado. Tarda 5 segundos en sacarla, y 3 segundos en dar vuelta una rebanada (Si son dos rebanadas puede hacer esta tarea simultáneamente)

Base lunar Alfa La Base Alfa con dos robots, Pipo y Kuki, y abundantes baterías. En la Base Beta no hay baterías. Un robots necesita viajar 9 días para llegar de una a la otra base. Un robot necesita baterías con carga para poder moverse. Cada robots puede cargar 12 baterías (cada batería dura un día). Los robots pueden dejar alguna de sus baterías (no todas) en suelo lunar, y también recogerlas de el. Se quiere hacer llegar un mensaje a la Base Beta en menos de 10 días usando los robots, que deben regresar a Alfa. Elabore un plan para que los robots cumplan su tarea.

Base lunar Alfa Kuki Base Alfa Suelo lunar 9 Días Pipo Base Beta

Las acciones conocidas que emplean en la especificación de un algoritmo se llaman acciones primitivas. Para que un algoritmo pueda ser interpretado y ejecutado debe estar expresado por medio de acciones primitivas que puedan ser comprendidas por el interlocutor, persona o máquina que las llevara a cabo. Un algoritmo puede ser transformado en un programa, cuando se traduce a instrucciones ejecutables por una computadora. Un programa está formado por un conjunto de acciones primitivas definidas por el lenguaje de programación que se utilice.

Lenguaje de diseño de algoritmos Objetivos: Servir de apoyo durante la resolución del problema. Servir de etapa previa a la traducción a un lenguaje de programación. Opción de elegir el lenguaje de programación que más se adecue a las primitivas especificadas en el algoritmo. Permitir la visón global del trabajo aunque lo estén desarrollando distintas personas.

Estructura de un algoritmo Todo algoritmo se encabeza por un nombre elegido por la persona que lo escribe, al que se le precede la palabra algoritmo. Ejemplo Algoritmo Prueba Todo algoritmo esta constituido por dos componentes claramente identificadas: 1- Los datos. 2- Las acciones. Los datos: objetos que intervienen en la resolución del problema. Forman que intervienen en la resolución del problema. Forman el estado inicial y final del problema. Se llaman datos de entrada y de salida respectivamente

Los datos de algoritmo son objetos que representan a un conjunto de valores, tienen un nombre y asumen algún valor durante la ejecución del algoritmo. Ejemplo: A partir del número 3 obtengo el número 3. A partir del número -5 obtengo el -6. Objetos que intervienen en el problema: El dato es un número. Nombre del dato: número, x, num, etc. Conjunto de valores que se representan: enteros. Valores que se asumen: se establece durante la ejecución del algoritmo.

Algoritmo predecesor Datos de entrada: un-numero Datos de salida: otro-numero

Ejemplo1: Determinar el perímetro de un polígono regular, sabiendo la longitud de uno de sus lados y la cantidad de lados. Algoritmo perímetro-polígono-regula Datos de entrada: lado, cantidad-lados Datos de salida: perímetro

Ejemplo2: Contar la cantidad de números primos entre un número natural y otro. Algoritmo primos-entre-naturales Datos de entrada: numreo1, numero2 Datos de salida: cantidad-de-primos

Ejemplo3: Determinar si un año es bisiesto Ejemplo3: Determinar si un año es bisiesto. Algoritmo año-bisiesto Datos de entrada: año Datos de salida: es-bisiesto

Precondición  

Postcondición  

Descripción de las acciones Distinguiremos dos tipos de acciones Manipulación de datos: expresiones por medio de las cuales se obtiene valores. Esos valores pueden asignarse a los datos. Estructuras de control: Esquemas por medio de los cuales se establece el orden de ejecución.

Operaciones elementales Manipulación de datos   Operaciones elementales Operadores Suma + Resta - Producto X ; , División real / División entera /e Módulo, resto de división entera // Cuadrado N2 ; n^2 Raíz cuadrada

Manipulación de datos Operadores Operandos Numéricos Lógicos y;^ o;v   Operadores Operandos Numéricos Lógicos y;^ o;v no; -; Lógicos Falso (F) Verdadero (V)

Manipulación de datos Asignación: Operación que aplica un valor a un dato. Forma general: nombre del dato expresión Ejemplos: Número 18 X a – b . C + n Vale verdadero Casi a=b

Ejercicio: Escribir un algoritmo que calcule el área de un cuadrado considerando el lado. Datos u objetos: lado, cuadrado, área. Método área =lado . lado Algoritmo área-cuadrado Acciones Dato de entrada: lado [real positivo] Dato de salida: área [real positivo] área lado . lado Fin

Datos u objetos: circulo, radio, área. Método área =pi . radio2 Ejercicio: Escribir un algoritmo que calcule el área de un circulo considerando su radio. Solución Datos u objetos: circulo, radio, área. Método área =pi . radio2 Algoritmo área-circulo Dato de entrada: radio [real positivo] Dato de salida: área [real positivo] Acciones área pi . radio. radio Fin

Datos u objetos:, triángulo, área. Método área =base. Altura/2 Ejercicio: Escribir un algoritmo que calcule el área de un triángulo considerando la base y la altura. Solución Datos u objetos:, triángulo, área. Método área =base. Altura/2 Algoritmo área-triángulo Dato de entrada: base, altura [real positivo] Dato de salida: área [real positivo] Acciones área base. Altura/2 Fin

Estructuras de control -Secuencia: Secuencias de control implícita que establece que la ejecución del algoritmo se realiza desde la primera acción hacia la última. Este orden puede ser interrumpido por otra estructura de control. -Condicional: Permite indicar las distintas acciones alternativas a ejecutarse que presentan resolución del problema para hallar las soluciones. -Repetición: Permite indicar en una sola estructura las acciones durante la ejecución se deben reiterar.

Secuencia El orden en que se escribe las acciones de un algoritmo, es el orden en el que se van a ser llevadas a cabo. El orden en que nosotros acostumbramos a escribir y a leer un texto es secuencial y es implícito, esto es, la frese anterior no indica expresamente cual es la siguiente que se debe leer, pero sabemos que es la que continua en el texto. En un algoritmo, la secuencia es similar a la de un texto. En esa secuencia puede ser interrumpida por otras estructuras de control.

Ejercicio: Escribir un algoritmo que calcule el perímetro de un cuadrado conociendo su diagonal. Solución  

Algoritmo intercambio-datos Dato de entrada: dato1 dato2 Ejercicio: Escribir un algoritmo que permita intercambiar los valores numéricos de dos datos. Solución Algoritmo intercambio-datos Dato de entrada: dato1 dato2 Dato de salida: dato1 dato2 dato-auxiliar dato1 dato1 dato2 dato2 dato-auxiliar Fin

Estructuras de control Condicionadas Algunas acciones pueden llevarse a cabo para alguna instancia de una clase de programa o bien si cierta condición se satisfacen. El condicional permite que una acción o conjunto de acciones se pueda ejecutar sólo bajo ciertas condiciones. Ejemplo: Si n>0 Entonces n n-1

Estructuras de control Condicionadas Si n>0 entonces n n-1 si no n n+1 Forma de la estructura de control condicional Si EXPRESIÓN BOOLEANA BLOQUE1 BLOQUE2

Estructuras de control Condicionadas Generalización Ejemplo Si EXPRESIÓN BOOLEANA1 Si a>b BLOQUE1 a b-1 Si EXPRESIÓN BOOLEANA2 a=b BLOQUE2 a b-2 Si EXPRESIÓN BOOLEANA3 d d+5 BLOQUE3 a<b … c b-a a a+b Si EXPRESIÓN BOOLEANA n BLOQUE n La expresión booleana debe ser mutuamente excluyente

Estructuras de control Condicionadas Si n>0 Si n>0 entonces n n-1 n=0 Si n=0 entonces n n-2 n<0 Si n<0 entonces n n+1 La estructura condicional a la izquierda no es equivalente a las tres estructuras de la derecha. Es decir en el caso de la izquierda solo contemplara una de las tres opciones posible mientras que la estructura de la derecha realizará tres evaluaciones sin considerar que sucedió antes y después.

Estructuras de control Condicionadas   Acciones si n >= m entonces mayor n sino mayor m Fin

Estructuras de control Condicionadas Ejemplo: Escribir un algoritmo que permita calcular lo que cobrará en persona a la que se le ha reducido el sueldo en in 13% si con anterioridad cobra menos de 500 pesos, en un 15% si cobra menos de 800 pesos y más o igual a 500, y un 18% si cobra más o igual de 800 pesos. Análisis del problema Sueldo< 500 cobrara=sueldo-sueldo . 0,13 800<=Sueldo< 500 cobrara=sueldo-sueldo . 0,15 800<=Sueldo cobrara=sueldo-sueldo . 0,18

Estructuras de control Condicionadas Algoritmo Descuento Datos de entrada: sueldo [real positivo] Datos de salida: sueldo-nuevo [real positivo] Acciones Si Sueldo< 500 sueldo-nuevo=sueldo-sueldo . 0,13 800<=Sueldo< 500 sueldo-nuevo=sueldo-sueldo . 0,15 800<=Sueldo sueldo-nuevo=sueldo-sueldo . 0,18 Fin

Estructuras de control Condicionadas  

Estructuras de control Condicionadas  

Estructuras de control Condicionadas Anidada Si EXPRESIÓN BOOLEANA entonces BLOQUE1 si no BLOQUE2 Cada uno de los bloque puede ser una estructura condicionada Si EXPRESIÓN BOOLEANA entonces Si EXPRESIÓN BOOLEANA entonces BLOQUE1 si no BLOQUE2 si no Si EXPRESIÓN BOOLEANA

Estructuras de control Condicionadas Anidada Algoritmo Descuento Datos de entrada: sueldo [real positivo] Datos de salida: sueldo-nuevo [real positivo] Acciones Si Sueldo< 500 entonces sueldo-nuevo=sueldo-sueldo . 0,13 si no Si 800<=Sueldo< 500 sueldo-nuevo=sueldo-sueldo . 0,15 Si no sueldo-nuevo=sueldo-sueldo . 0,18 Fin

Estructuras de control Repetitivas La repetición permite que un conjunto de acciones indicadas en la estructura se ejecute más de una vez, de acuerdo a determinadas condiciones.

Número fijo de repeticiones Forma general de la estructura: Repetir n veces acción Interpretación semántica: La acción se repite tantas veces como lo indique el valor de n:0, 1, o más veces. Ejemplo: Repetir 10 veces X x+1 Repetir n+2 veces

Para generar los números entre n y m tomamos un dato auxiliar. Ejemplo: Escribir un algoritmo que permita sumar todos los números naturales entre dos números dados, incluyendo éstos. Si n=5 y m=13 suma=5+6+7+8+9+10+11+12+13=81 Si n=1 y m=5 suma=1+2+3+4+5=15 Para generar los números entre n y m tomamos un dato auxiliar. auxiliar=5 auxiliar=6=auxiliar+1 auxiliar=7=auxiliar+1 … auxiliar=13=auxiliar+1 Para acumular los valores de las sumas parciales tomamos suma. suma=5 suma=5+6=suma + auxiliar suma=11+7=suma + auxiliar suma=68+13=suma + auxiliar

Podemos escribir la siguiente sucesión de acciones auxiliar auxiliar+1 suma suma + auxiliar Tantas veces como sea necesario para obtener el resultado final. Usando la estructura de control repetitiva Repetir m-n veces

Algoritmo Suma-de-naturales-sucesivos Datos de entrada: n , m [Naturales] Datos de salida: suma [Natural] Acciones auxiliar n suma auxiliar Repetir m-n veces auxiliar auxiliar+1 suma suma + auxiliar Fin

Algoritmo Suma-de-naturales-sucesivos2 Datos de entrada: n , m [Naturales] Datos de salida: suma [Natural] Acciones auxiliar n suma 0 Repetir (m-n)+1 veces suma suma + auxiliar auxiliar auxiliar+1 Fin

Ejercicio: Escribir un algoritmo que permita escribir el factorial de un número. =1 si n=0 n! =1.2.3…n si n>0 Datos de entrada: n Datos de salida: el-factorial Para obtener el factorial debo general los números desde 1 hasta n factor factor+1

Algoritmo Factorial Datos de entrada: numero [Natural] Datos de salida: el-factorial [Natural] Acciones el-factorial 1 factor 1 Repetir numero veces el-factorial el-factorial. Factor factor factor+1 Fin

Otra estructura repetitiva depende de una condición. Repetir mientras condición acción Interpretación semántica -Se evalúa la condición, se dicho valor es verdadero se ejecuta la acción. -Se repite lo anterior mientras la condición es Verdadera. -En la condición participan datos que modifican su valor en la acción para que el ciclo termine. -La acción puede ejecutarse 0, 1 o más veces. -Los datos que participan en la condición deben estar inicializados.

Ejemplo1: b 1 a 3 repetir mientras a<=b 2 veces a a-1 Ejemplo2: repetir mientras a<b 0 veces repetir mientras a>b infinitas veces a a+1

Ejemplo: escribir un algoritmo que permita hallar el menor múltiplo de un número m que sea mayor que un número n dado. Sabemos que m<=n Supongamos que los números son 3 y 17. Los múltiplos de 3 son: 3, 6, 9, 12, 15, 18, …, el menor múltiplo de 3 mayor que 17 es 18. Un intento de desarrollar un algoritmo: Datos de entrada: n , m [Naturales] Datos de salida: múltiplo [Naturales] Repetir mientras múltiplo < 17 Buscar nuevo múltiplo

Algoritmo MenorNumeroMayor Datos de entrada: n , m [Naturales, m<=n] Datos de salida: múltiplo [Naturales] Acciones múltiplo m Repetir mientras múltiplo < =n múltiplo múltiplo+m Fin

Método para calcularlo: Ejercicio: contar la cantidad de dígitos que posee un número natural dado. 2456 cantidad de dígitos = 4 cantidad de dígitos = 5 Método para calcularlo: Si vamos dividiendo el número por diez y contamos la cantidad de veces que lo dividimos, obtenemos la cantidad de dígitos. 1563879 156387 1 vez 15638 2 veces 1563 3 veces 156 4 veces 15 5 veces 1 6 veces 0 7 veces

Algoritmo CantidadDigitos Datos de entrada: numero [Naturales y ‘0’] Datos de salida: cantidad [Naturales] Acciones cantidad 1 Repetir mientras numero>9 numero numero/e 10 cantidad cantidad +1 Fin

Otra estructura que depende de una condición es: repetir acción hasta condición Interpretación semántica -Se ejecuta la acción y luego se evalúa la condición, si es falsa se ejecuta nuevamente la acción. Esto se repite hasta que la condición sea verdadera. -La acción se ejecuta por lo menos una vez. -En la estructura repetitiva, repetir-hasta se ejecutará la acción por lo menos una vez. -En la condición deberá participar datos que sean modificados en la acción de manera que tal condición cambie su valor de verdad.

Ejemplo1: b 1 a 3 repetir 2 veces a a-1 hasta a<=b Ejemplo2: repetir 1 vez hasta a<b repetir mientras a>b infinitas veces a a+1

Algoritmo Cantidad-de-dígitos Ejercicio: Contar la cantidad de dígitos que posee un número natural dado. Solución Algoritmo Cantidad-de-dígitos Datos de entrada: numero [Naturales y ‘0’] Datos de salida: cantidad [Naturales] Acciones cantidad 0 Repetir numero numero/e 10 cantidad cantidad +1 mientras numero<0 Fin

Estructuras de control repetitivas anidadas Un estructura de control repetitiva puede ser también una estructura de control repetitiva. En este caso diremos que esta estructura se encuentra anidada en la otra. Por ejemplo: b 0 a 0 Repetir n veces b b+1 Repetir m veces a a+1

Ejemplo1: b 0 a 0 Repetir mientras b<n b b+1 Repetir m veces a a+1 El siguiente ejemplo produce los mismos valores para a y b que el anterior. Ejemplo2: b 0 a 0 Repetir mientras b<n b b+1 Repetir mientras a<m a a+1 ¿Presenta alguna variante en cuanto los resultados con respecto al Ejemplo 1?

Datos de entrada: m, n [Naturales ] Datos de salida: suma [Naturales]   Solución Algoritmo Suma Datos de entrada: m, n [Naturales ] Datos de salida: suma [Naturales] Acciones i 1, suma1 0 Repetir n veces j 1, suma2 0 suma2 suma2+j3 j j+1 suma1 suma1+i2,suma2 i i+1 Fin

Traza de un algoritmo Una traza es un cuadro en el cual se plasman los datos que están especificados en un algoritmo y el estado de los datos en cada momento de la ejecución del algoritmo. El cuadro presenta una columna para fijar la acción que se está ejecutando en ese momento, una columna por cada uno de los datos que intervienen en el algoritmo, ya sean datos de entrada, de salida u otros, una columna que refleja el valor de verdad de la condición que se evaluada en alguna estructura de control condicional o repetitiva. La primera fila del cuadro contendrá los nombres de los ítems que representan las columnas. Las siguientes filas se irán completando a medida que se ejecutan cada una de las acciones. Cada línea representa la alteración que produce la ejecución de las acciones asociadas a ella. Las acciones que intervienen en el algoritmo estarán numeradas en orden creciente desde el 1, considerando el orden textual de la especificación del algoritmo, no el orden de ejecución. Eventual mente estos ordenes podrán coincidir.

Traza de un algoritmo Algoritmo Uno DE: n DS: p Acciones 1) m 3.n 2) p n.2(m/2) Fin Estado inicial Traza Uno (3;p) Acción Condición n m p 3 1 9 2 40,5

Ejemplo: hacer una traza de ejecución del algoritmo que permite obtener la suma de todos los divisores de un número natural. Algoritmo SumaDivisores DE: n DS: Suma Acciones 1) i 1 suma 0 repetir mientras i<=n si n//i=0 entonces suma suma+i i i+1 Fin Acción Condición n i Suma 10 1 2 3 V 4 5 6 f F v 8

Ejemplo: hacer una traza de ejecución del algoritmo que permite obtener la suma de todos los divisores de un número natural. Algoritmo SumaDivisores DE: n DS: Suma Acciones 1) i 1 suma 0 repetir mientras i<=n si n//i=0 entonces suma suma+i i i+1 Fin Acción Condición n i Suma 5 8 6 3 V 4 F 7 f 9 v 10 18 11

Algoritmo SumaDivisores DE: n DS: Suma Acciones 1) i 1 suma n Observando la traza podemos mejorar el método que hemos empleado en resolver el problema, cambiando la condición del ciclo por 1<= n/e2. De esta manera se realiza la mitad de las iteraciones. Algoritmo SumaDivisores DE: n DS: Suma Acciones 1) i 1 suma n repetir mientras i<=n/e2 si n//i=0 entonces suma suma+i i i+1 Fin Acción Condición n i Suma 10 1 2 3 V 4 5 11 6 13 F 18

28 8 1 2 3 4 F V 5 Algoritmo DCMDos DE: n,m DS: dcm Acciones Ejemplo: Algoritmo para calcular el divisor común menor entre dos números naturales. Algoritmo DCMDos DE: n,m DS: dcm Acciones 1) repetir resto m// n m n n resto entonces Hasta resto =0 dcm m Fin Acción Condición n m resto dcm 28 8 1 2 3 4 F V 5

26 13 1 v 2 3 4 5 V 6 Algoritmo DCMDos DE: n,m DS: dcm Acciones Ejemplo: Algoritmo para calcular el divisor común menor entre dos números naturales. Algoritmo DCMDos DE: n,m DS: dcm Acciones 1) repetir resto m// n m n n resto entonces Hasta resto =0 dcm m Fin Acción Condición n m resto dcm 26 13 1 v 2 3 4 5 V 6

Bibliografía López García, Guillermo (ed.) (2005). El ecosistema digital: Modelos de comunicación, nuevos medios y público en Internet. Valencia: Servei de Publicacions de la Universitat de València. Disp. Snyder, Ilana –compiladora (2004): Alfabetismos digitales. Comunicación,innovación y educación en la era electrónica. Málaga: Aljibe Stallman, Richard M. (2004) Software libre para una sociedad libre. Introducción de Lawrence Lessig. Curso Nivelación 2011 - Universidad Nacional de Chilecito Lic. en Sistemas - Ing. En Sistemas – Tecnicatura Univ. Desarrollo Aplic. WEB. Agustin Fonseca- Juegos de mente – Memoria, Cálculo, Memoria, Agilidad Mental. Martín Sierra, Abel Martín Álvarez, Ángel Aguirre Pérez- Aula Matemática digital 2. Ing. Gábor loerines, ing. Francisco Chaves-Micro computación Tomo 2- Nahel Ediciones. Adrián Paenza- Matemática... ¿Estás Ahí? Adrián Paenza- Matemática... ¿Estás Ahí? Episodio 2 Adrián Paenza- Matemática... ¿Estás Ahí? Episodio 3,14. Moroni Norma-Apunte de R.P.A (2003) –U.N.S.