SlideShare ist ein Scribd-Unternehmen logo
1 von 71
Módulo 2ALGORITMOS Y ESTRUCTURA DE DATOS  PROFESOR:SIRACUSA EMILIANO                     MARTÍN Página Web: www.esiracusa.jimdo.com
Problemas modelos y abstracciones ,[object Object]
Un modelo es una versión simplificada de la realidad con datos relevantes del problema.
Los modelos se construyen con ayuda de abstracciones.,[object Object]
Un modelo es una versión simplificada de la realidad con datos relevantes del problema.
Los modelos se construyen con ayuda de abstracciones.,[object Object]
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. 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
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.
Algoritmopredecesor 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.Algoritmoperímetro-polígono-regulaDatos de entrada: lado, cantidad-ladosDatos de salida: perímetro
Ejemplo2: Contar la cantidad de números primos entre un número natural y otro.Algoritmoprimos-entre-naturalesDatos de entrada: numreo1, numero2Datos de salida: cantidad-de-primos
Ejemplo3: Determinar si un año es bisiesto.Algoritmo año-bisiestoDatos de entrada: añoDatos de salida: es-bisiesto
Precondición  Precondición: Conjunto de valores que puede tomar un dato de entrada y cierta condiciones preestablecidas entre o para los datos. (Dominio) Las precondiciones garantizan que un algoritmo correcto, dé resultados correctos. Precondición es la información que se conoce como verdadera antes de comenzar el algoritmo. Ejemplo división entera. Algoritmodivisión-entera Datos de entrada: dividendo, divisor. [Dividendo ∈Ζ, Divisor ∈Ζ−0]  
Postcondición  Postcondición: Conjunto de valores que puede tomar un dato de salida Las postcondiciones no aseguran que los valores de los datos de salida pertenecen a los conjuntos indicados.. Es la información que se conoce como verdadera al  concluir el algoritmo si se  cumple adecuadamente el requerimiento pedido. Ejemplo división entera. Algoritmo división-entera Datos de entrada: dividendo, divisor. [Dividendo ∈Ζ, Divisor ∈Ζ−0] Datos de salida: cociente, resto [Cociente ∈Ζ, Resto ∈Ν∪0]  
Descripción de las acciones Distinguiremos dos tipos de acciones ,[object Object]
Estructuras de control: Esquemas por medio de los cuales se establece el orden de ejecución.,[object Object]
Manipulación de datos Expresiones lógicas: natación y evaluación matemática. Ejemplo:-[(a<b)^(c>5)]               (a≤10) y (a≠7)o(a=15)  
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
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
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 Datos : perímetro, diagonal, cuadrado. Método: diagonal . diagonal=lado.lado+lado.lado 			lado=diagonal.2 perímetro=4.lado Algoritmo perímetro-cuadrado-diagonal Dato de entrada: diagonal		[real positivo] Dato de salida: perímetro [real positivo] Acciones        lado                  diagonal.2 perímetro          4.lado Fin       
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 entonces 		BLOQUE1 si no BLOQUE2
Estructuras de control Condicionadas La expresión booleana debe ser mutuamente excluyente
Estructuras de control Condicionadas 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 Ejemplo: Escribir un algoritmo que permita hallar el mayor ente dos números. Algoritmo Mayor-de-dos Datos de entrada: n,m				[𝑛,𝑚∈ℝ] Datos de salida: mayor				[𝑚𝑎𝑦𝑜𝑟∈ℝ] Acciones      si n>=m                    mayor         n          n<m                     mayor         m Fin   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 Ejemplo: Escribir un algoritmo que  permita detectar si un año es bisiesto. Algoritmo Año-bisiesto Datos de entrada: año  [año∈ℕ] Datos de salida: es-bisiesto [es-bisiesto ∈𝑣;𝑓] Acciones     Si (año//4=0)y(año//100<>0)o(año//400=0) 	entonces              es-bisiesto			v 	si no			 es-bisiesto			f Fin  
Estructuras de control Condicionadas Propuesta dos. Algoritmo Año-bisiesto2 Datos de entrada: año  [año∈ℕ] Datos de salida: es-bisiesto [es-bisiesto ∈𝑣;𝑓] Acciones   es-bisiesto(año//4=0)y(año//100<>0)o(año//400=0) Fin  
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           entoncesSi EXPRESIÓN BOOLEANA        entonces	        		      BLOQUE1         si no BLOQUE2           si no Si EXPRESIÓN BOOLEANA                   entonces        	        		      BLOQUE1                    si no 				      BLOQUE2
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                        entonces                           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 X		x+1
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
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 auxiliar 		auxiliar+1 suma			suma + auxiliar
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: 	b	1 	a	3		 	repetir mientras a<b			0 veces 	        a	a-1 Ejemplo1: 	b	1 	a	3		 	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
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			4veces 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: 	b	1 	a	3		 	repetir                			1 vez a	a-1 	hasta a<b Ejemplo1: 	b	1 	a	3		 	repetir mientras a>b			infinitas veces 	        a	a+1 	hasta a<=b
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?
Ejercicio: Escribir un algoritmo que permita resolver la siguiente suma:𝑰=𝟏𝒏𝒋=𝟏𝒎𝒋𝟑   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 		Repetir n veces 			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
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
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
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
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

Weitere ähnliche Inhalte

Was ist angesagt?

Estructuras iterativas1
Estructuras iterativas1Estructuras iterativas1
Estructuras iterativas1
Kathy Granizo
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestos
marigelcontreras
 
Guia de estructuras Condicionales
Guia de estructuras CondicionalesGuia de estructuras Condicionales
Guia de estructuras Condicionales
laryenso
 
Actividad de aprendizaje nro 08 estructuras de control repetitivas while, d...
Actividad de aprendizaje nro 08   estructuras de control repetitivas while, d...Actividad de aprendizaje nro 08   estructuras de control repetitivas while, d...
Actividad de aprendizaje nro 08 estructuras de control repetitivas while, d...
GabrielGonzaloDavila
 
Ejercisos condicionales
Ejercisos condicionalesEjercisos condicionales
Ejercisos condicionales
Joshe Varillas
 
2,1 elementos de java script
2,1 elementos de java script2,1 elementos de java script
2,1 elementos de java script
Cronio Antmao
 
Principales codigos visual basic
Principales codigos visual basicPrincipales codigos visual basic
Principales codigos visual basic
Marlon Gomez Solis
 
Logica-difusa-simulink-casos
Logica-difusa-simulink-casosLogica-difusa-simulink-casos
Logica-difusa-simulink-casos
Dave R Rdez
 

Was ist angesagt? (20)

Presentacion
PresentacionPresentacion
Presentacion
 
Pre Algoritmos
Pre AlgoritmosPre Algoritmos
Pre Algoritmos
 
Lección No. 1 de Python
Lección No. 1 de PythonLección No. 1 de Python
Lección No. 1 de Python
 
Estructuras iterativas1
Estructuras iterativas1Estructuras iterativas1
Estructuras iterativas1
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestos
 
Curso php - capitulo 2
Curso php - capitulo 2Curso php - capitulo 2
Curso php - capitulo 2
 
Guia estructuras cíclicas
Guia estructuras cíclicasGuia estructuras cíclicas
Guia estructuras cíclicas
 
Estructuras iterativas en java y pseudocódigo
Estructuras iterativas en java y pseudocódigoEstructuras iterativas en java y pseudocódigo
Estructuras iterativas en java y pseudocódigo
 
Logica Fuzzy
Logica FuzzyLogica Fuzzy
Logica Fuzzy
 
Informe 1
Informe 1Informe 1
Informe 1
 
Guia de estructuras Condicionales
Guia de estructuras CondicionalesGuia de estructuras Condicionales
Guia de estructuras Condicionales
 
Actividad de aprendizaje nro 08 estructuras de control repetitivas while, d...
Actividad de aprendizaje nro 08   estructuras de control repetitivas while, d...Actividad de aprendizaje nro 08   estructuras de control repetitivas while, d...
Actividad de aprendizaje nro 08 estructuras de control repetitivas while, d...
 
7. estructura condicional if
7.  estructura condicional if7.  estructura condicional if
7. estructura condicional if
 
Ejercisos condicionales
Ejercisos condicionalesEjercisos condicionales
Ejercisos condicionales
 
2,1 elementos de java script
2,1 elementos de java script2,1 elementos de java script
2,1 elementos de java script
 
Principales codigos visual basic
Principales codigos visual basicPrincipales codigos visual basic
Principales codigos visual basic
 
Funciones
FuncionesFunciones
Funciones
 
Instrucciones de control repetitivas
Instrucciones de control repetitivasInstrucciones de control repetitivas
Instrucciones de control repetitivas
 
Manual r commander
Manual r commanderManual r commander
Manual r commander
 
Logica-difusa-simulink-casos
Logica-difusa-simulink-casosLogica-difusa-simulink-casos
Logica-difusa-simulink-casos
 

Ähnlich wie Módulo 2

Diagramas De Flujo
Diagramas De FlujoDiagramas De Flujo
Diagramas De Flujo
carlospaul
 
Diagramas de-flujo.
Diagramas de-flujo.Diagramas de-flujo.
Diagramas de-flujo.
Uriel Lopez
 
Unidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmosUnidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmos
Grisell d?z
 
01 algoritmos
01 algoritmos01 algoritmos
01 algoritmos
Carlos
 
01 algoritmos
01 algoritmos01 algoritmos
01 algoritmos
Carlos
 
01 algoritmos
01 algoritmos01 algoritmos
01 algoritmos
Carlos
 

Ähnlich wie Módulo 2 (20)

Diagramas De Flujo
Diagramas De FlujoDiagramas De Flujo
Diagramas De Flujo
 
Diagramas de-flujo.
Diagramas de-flujo.Diagramas de-flujo.
Diagramas de-flujo.
 
dqwrwer
dqwrwerdqwrwer
dqwrwer
 
Unidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmosUnidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmos
 
Unidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosUnidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmos
 
Introduccion a los algoritmos
Introduccion  a los algoritmosIntroduccion  a los algoritmos
Introduccion a los algoritmos
 
Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptUnidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.ppt
 
01 algoritmos
01 algoritmos01 algoritmos
01 algoritmos
 
01 algoritmos
01 algoritmos01 algoritmos
01 algoritmos
 
01 algoritmos
01 algoritmos01 algoritmos
01 algoritmos
 
ALGORITMOS
ALGORITMOSALGORITMOS
ALGORITMOS
 
TECNOLOGIA 10-3 (1).pdf
TECNOLOGIA 10-3 (1).pdfTECNOLOGIA 10-3 (1).pdf
TECNOLOGIA 10-3 (1).pdf
 
TECNOLOGIA 10-3.pdf
TECNOLOGIA 10-3.pdfTECNOLOGIA 10-3.pdf
TECNOLOGIA 10-3.pdf
 
TECNOLOGIA 10-3.pdf
TECNOLOGIA 10-3.pdfTECNOLOGIA 10-3.pdf
TECNOLOGIA 10-3.pdf
 
TECNOLOGIA 10-3.pdf
TECNOLOGIA 10-3.pdfTECNOLOGIA 10-3.pdf
TECNOLOGIA 10-3.pdf
 
TECNOLOGIA 10-3.pdf
TECNOLOGIA 10-3.pdfTECNOLOGIA 10-3.pdf
TECNOLOGIA 10-3.pdf
 
TECNOLOGIA 10-3.pdf
TECNOLOGIA 10-3.pdfTECNOLOGIA 10-3.pdf
TECNOLOGIA 10-3.pdf
 
TECNOLOGIA 10-3.pdf
TECNOLOGIA 10-3.pdfTECNOLOGIA 10-3.pdf
TECNOLOGIA 10-3.pdf
 
TECNOLOGIA 10-3.pdf
TECNOLOGIA 10-3.pdfTECNOLOGIA 10-3.pdf
TECNOLOGIA 10-3.pdf
 
TECNOLOGIA 10-3.pdf
TECNOLOGIA 10-3.pdfTECNOLOGIA 10-3.pdf
TECNOLOGIA 10-3.pdf
 

Mehr von Emiliano Siracusa (11)

Capacitores
CapacitoresCapacitores
Capacitores
 
Módulo 7 (sin estilo)
Módulo 7 (sin estilo)Módulo 7 (sin estilo)
Módulo 7 (sin estilo)
 
Módulo 6 (sin estilo)
Módulo 6 (sin estilo)Módulo 6 (sin estilo)
Módulo 6 (sin estilo)
 
Módulo 4 (sin estilo)
Módulo 4 (sin estilo)Módulo 4 (sin estilo)
Módulo 4 (sin estilo)
 
Módulo 5 (sin estilo)
Módulo 5 (sin estilo)Módulo 5 (sin estilo)
Módulo 5 (sin estilo)
 
Módulo 4
Módulo 4Módulo 4
Módulo 4
 
Módulo 4
Módulo 4Módulo 4
Módulo 4
 
Elecciones
EleccionesElecciones
Elecciones
 
Módulo 3
Módulo 3Módulo 3
Módulo 3
 
Módulo 1
Módulo 1Módulo 1
Módulo 1
 
Programa 4º
Programa 4ºPrograma 4º
Programa 4º
 

Kürzlich hochgeladen

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Kürzlich hochgeladen (11)

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 

Módulo 2

  • 1. Módulo 2ALGORITMOS Y ESTRUCTURA DE DATOS PROFESOR:SIRACUSA EMILIANO MARTÍN Página Web: www.esiracusa.jimdo.com
  • 2.
  • 3. Un modelo es una versión simplificada de la realidad con datos relevantes del problema.
  • 4.
  • 5. Un modelo es una versión simplificada de la realidad con datos relevantes del problema.
  • 6.
  • 7. 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.
  • 8. -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
  • 9. 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. 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
  • 10. 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
  • 11. 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)
  • 12. 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.
  • 13. Base lunar Alfa Kuki Base Alfa Suelo lunar 9 Días Pipo Base Beta
  • 14. 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.
  • 15. 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.
  • 16. 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
  • 17. 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.
  • 18. Algoritmopredecesor Datos de entrada: un-numero Datos de salida: otro-numero
  • 19. Ejemplo1: Determinar el perímetro de un polígono regular, sabiendo la longitud de uno de sus lados y la cantidad de lados.Algoritmoperímetro-polígono-regulaDatos de entrada: lado, cantidad-ladosDatos de salida: perímetro
  • 20. Ejemplo2: Contar la cantidad de números primos entre un número natural y otro.Algoritmoprimos-entre-naturalesDatos de entrada: numreo1, numero2Datos de salida: cantidad-de-primos
  • 21. Ejemplo3: Determinar si un año es bisiesto.Algoritmo año-bisiestoDatos de entrada: añoDatos de salida: es-bisiesto
  • 22. Precondición Precondición: Conjunto de valores que puede tomar un dato de entrada y cierta condiciones preestablecidas entre o para los datos. (Dominio) Las precondiciones garantizan que un algoritmo correcto, dé resultados correctos. Precondición es la información que se conoce como verdadera antes de comenzar el algoritmo. Ejemplo división entera. Algoritmodivisión-entera Datos de entrada: dividendo, divisor. [Dividendo ∈Ζ, Divisor ∈Ζ−0]  
  • 23. Postcondición Postcondición: Conjunto de valores que puede tomar un dato de salida Las postcondiciones no aseguran que los valores de los datos de salida pertenecen a los conjuntos indicados.. Es la información que se conoce como verdadera al concluir el algoritmo si se cumple adecuadamente el requerimiento pedido. Ejemplo división entera. Algoritmo división-entera Datos de entrada: dividendo, divisor. [Dividendo ∈Ζ, Divisor ∈Ζ−0] Datos de salida: cociente, resto [Cociente ∈Ζ, Resto ∈Ν∪0]  
  • 24.
  • 25.
  • 26. Manipulación de datos Expresiones lógicas: natación y evaluación matemática. Ejemplo:-[(a<b)^(c>5)] (a≤10) y (a≠7)o(a=15)  
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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.
  • 32. 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.
  • 33. Ejercicio: Escribir un algoritmo que calcule el perímetro de un cuadrado conociendo su diagonal. Solución Datos : perímetro, diagonal, cuadrado. Método: diagonal . diagonal=lado.lado+lado.lado lado=diagonal.2 perímetro=4.lado Algoritmo perímetro-cuadrado-diagonal Dato de entrada: diagonal [real positivo] Dato de salida: perímetro [real positivo] Acciones lado diagonal.2 perímetro 4.lado Fin  
  • 34. 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
  • 35. 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
  • 36. 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 entonces BLOQUE1 si no BLOQUE2
  • 37. Estructuras de control Condicionadas La expresión booleana debe ser mutuamente excluyente
  • 38. Estructuras de control Condicionadas 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.
  • 39. Estructuras de control Condicionadas Ejemplo: Escribir un algoritmo que permita hallar el mayor ente dos números. Algoritmo Mayor-de-dos Datos de entrada: n,m [𝑛,𝑚∈ℝ] Datos de salida: mayor [𝑚𝑎𝑦𝑜𝑟∈ℝ] Acciones si n>=m mayor n n<m mayor m Fin   Acciones si n >= m entonces mayor n sino mayor m Fin
  • 40. 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
  • 41. 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
  • 42. Estructuras de control Condicionadas Ejemplo: Escribir un algoritmo que permita detectar si un año es bisiesto. Algoritmo Año-bisiesto Datos de entrada: año [año∈ℕ] Datos de salida: es-bisiesto [es-bisiesto ∈𝑣;𝑓] Acciones Si (año//4=0)y(año//100<>0)o(año//400=0) entonces es-bisiesto v si no es-bisiesto f Fin  
  • 43. Estructuras de control Condicionadas Propuesta dos. Algoritmo Año-bisiesto2 Datos de entrada: año [año∈ℕ] Datos de salida: es-bisiesto [es-bisiesto ∈𝑣;𝑓] Acciones es-bisiesto(año//4=0)y(año//100<>0)o(año//400=0) Fin  
  • 44. 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 entoncesSi EXPRESIÓN BOOLEANA entonces BLOQUE1 si no BLOQUE2 si no Si EXPRESIÓN BOOLEANA entonces BLOQUE1 si no BLOQUE2
  • 45. 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 entonces sueldo-nuevo=sueldo-sueldo . 0,15 Si no sueldo-nuevo=sueldo-sueldo . 0,18 Fin
  • 46. 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.
  • 47. 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 X x+1
  • 48. 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
  • 49. 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 auxiliar auxiliar+1 suma suma + auxiliar
  • 50. 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
  • 51. 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
  • 52. 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
  • 53. 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
  • 54. 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.
  • 55. Ejemplo1: b 1 a 3 repetir mientras a<=b 2 veces a a-1 Ejemplo2: b 1 a 3 repetir mientras a<b 0 veces a a-1 Ejemplo1: b 1 a 3 repetir mientras a>b infinitas veces a a+1
  • 56. 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
  • 57. 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
  • 58. 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 4veces 15 5 veces 1 6 veces 0 7 veces
  • 59. 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
  • 60. 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.
  • 61. Ejemplo1: b 1 a 3 repetir 2 veces a a-1 hasta a<=b Ejemplo2: b 1 a 3 repetir 1 vez a a-1 hasta a<b Ejemplo1: b 1 a 3 repetir mientras a>b infinitas veces a a+1 hasta a<=b
  • 62. 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
  • 63. 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
  • 64. 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?
  • 65. Ejercicio: Escribir un algoritmo que permita resolver la siguiente suma:𝑰=𝟏𝒏𝒋=𝟏𝒎𝒋𝟑   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 Repetir n veces suma2 suma2+j3 j j+1 suma1 suma1+i2,suma2 i i+1 Fin
  • 66. 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.
  • 67. Traza de un algoritmo Algoritmo Uno DE: n DS: p Acciones 1) m 3.n 2) p n.2(m/2) Fin Estado inicial
  • 68. 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
  • 69. 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
  • 70. 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
  • 71. 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
  • 72. 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
  • 73.
  • 74. 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.
  • 75. Curso Nivelación 2011 - Universidad Nacional de Chilecito Lic. en Sistemas - Ing. En Sistemas – Tecnicatura Univ. Desarrollo Aplic. WEB.
  • 76. Agustin Fonseca- Juegos de mente – Memoria, Cálculo, Memoria, Agilidad Mental.
  • 77. Martín Sierra, Abel Martín Álvarez, Ángel Aguirre Pérez- Aula Matemática digital 2.
  • 78. Ing. Gábor loerines, ing. Francisco Chaves-Micro computación Tomo 2- Nahel Ediciones.
  • 79. Adrián Paenza- Matemática... ¿Estás Ahí?
  • 80. Adrián Paenza- Matemática... ¿Estás Ahí? Episodio 2
  • 81. Adrián Paenza- Matemática... ¿Estás Ahí? Episodio 3,14.
  • 82. Moroni Norma-Apunte de R.P.A (2003) –U.N.S.