Issuu on Google+

MIS ALGORITMOS ALUMNO: Kevin David Poquioma Zea

GRADO Y SECCIÓN: 4º “C”

DOCENTE: Nerita Tarrillo Dávila

Página 1


OBJETIVOS 1.1. Objetivo General Presentar técnicas fundamentales de análisis y diseño de algoritmos que permitan comprender la naturaleza de los problemas tan independientemente como sea posible de aspectos de implementación (tanto hardware como software) y resolverlos eficientemente. 1.2. Objetivos Específicos 1. Ilustrar con ejemplos el compromiso de complejidad entre espacio y tiempo usado por un algoritmo. 2. Ilustrar las etapas requeridas para la verificación de correctitud de programas. 3. Conocer la clasificación estándar de problemas en clases de complejidad. 4. Determinar la complejidad de algoritmos simples. 5. Ilustrar con ejemplos diferentes técnicas de diseño de algoritmos tales como técnicas voraces, ingenuas, de dividir y conquistar, programación dinámica. 6. Usar e implementar tipos de datos fundamentales para la solución eficiente de problemas, tales como tablas de hashing, arboles binarios y grafos. 7. Resolver problemas utilizando búsqueda secuencial, búsqueda binaria, algoritmos de ordenación y algoritmos fundamentales de grafos. 8. Adquirir la capacidad de evaluar algoritmos, seleccionar entre varias opciones justiciando la elección e implementarlos en un lenguaje de programación.

Página 2


DEDICATORIA El trabajo de algoritmos va dedicado a nuestros padres; a quienes les debemos todo lo que tenemos en esta vida. A Dios, ya que gracias a el tenemos esos padres maravillosos, los cuales nos apoyan en nuestras derrotas y celebran nuestros triunfos. A nuestros profesores quienes son nuestros guías en el aprendizaje, dándonos los últimos conocimientos para nuestro buen desenvolvimiento en la sociedad.

Página 3


INDICE Caratula

1

Objetivos

2

Dedicatoria

3

Indicé

4

Presentación

5

Sesión 01

6-10

Sesión 02

11-16

Sesión 03

17

Sesión 04

18-22

Sesión 05

23-27

Sesión 06

28-32

Sesión 07

33-35

Sesión 08

36-37

Bibliografía

38

Página 4


PRESENTACIร“N

MIS ALGORITMOS PRESENTADO POR:

Kevin David Poquioma Zea

Pรกgina 5


SESIÓN 01: CONOCIMIENTO DE LOS ALGORITMOS Es la habilidad para manejar algoritmos tiene un valor estratégico en el uso de la computadora como herramienta para resolver un problema, después de que se ha dicho como se resuelve. “http://es.wikipedia.org/wiki/Algoritmo” (Es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad).

PROPIEDADES DE UN ALGORITMO: Son puntos de guía para su elaboración. Sus propiedades son:  ENUNCIADO DEL PROBLEMA: Debe ser claro y completo, es necesario que se desee compartir; mientras esto no se comprenda.  ANALISIS DE LA SOLUCION GENERAL: Debemos analizar: Los datos que se esperan. Los datos de entrada que nos dan. El proceso al que se quiere someter.  DIFERENTES ALTERNATIVAS DE SOLUCION: Analizando el problema, posiblemente tengamos varias formas de resolver; es importante que sepamos determinar cual es la mejor alternativa.

Página 6

http://es.wikipedia.org/wiki/Algoritmo


ELABORACIÓN DE ALGORITMOS: Los conocimientos adquiridos anteriormente son las herramientas necesarias para llevar a cabo la elaboración de un algoritmo a través de un problema. Se recomienda tomar en cuenta cada una de las propiedades de un algoritmo, ya que de ahí se inicia el proceso de elaboración. A continuación se mostrara el desarrollo de un problema con su respectivo algoritmo como solución.

EJEMPLOS: Ejercicio No: 1 Desarrolle un algoritmo que permita leer dos valores distintos, determinar cual de los dos valores es el mayor y escribirlo. Pseudocódigo: 1. Inicio 2. Inicializar variables: A = 0, B = 0 3. Solicitar la introducción de dos valores distintos 4. Leer los dos valores 5. Asignarlos a las variables A y B 6. Si A = B Entonces vuelve a 3 porque los valores deben ser distintos 7. Si A>B Entonces Escribir A, “Es el mayor” 8. De lo contrario: Escribir B, “Es el mayor” 9. Fin_Si 10. Fin Página 7

http://ubv2006.galeon.com/Programas/Algoejemplos.pdf


Diagrama de flujo de datos:

INICIO “Introduzca dos valores distintos”

A, B Si

A=B No No

A>B

B “Es el mayor”

Si

A “Es el mayor”

FIN Página 8

http://ubv2006.galeon.com/Programas/Algoejemplos.pdf


Ejercicio No: 2 Desarrolle un algoritmo que permita leer tres valores y almacenarlos en las variables A, B y C respectivamente. El algoritmo debe imprimir cual es el mayor y cual es el menor. Recuerde constatar que los tres valores introducidos por el teclado sean valores distintos. Presente un mensaje de alerta en caso de que se detecte la introducción de valores iguales. Pseudocódigo 1. Inicio 2. Inicializar las variables A, B y C 3. Leer los tres valores 4. Almacenar en las variables A, B y C 5. Si A > B y A > C Entonces 6. Escribir A “Es el mayor” 7. Sino 8. Si B > A y B > C Entonces 9. Escribir B “Es el mayor” 10. Sino 11. Escribir C “Es el mayor” 12. Fin_Si 13. Fin_Si 14. Fin

Página 9

http://ubv2006.galeon.com/Programas/Algoejemplos.pdf


Diagrama de flujo de datos:

INICIO A, B, C

No

B>AyB>C

No

A>ByA>C

Si

Si

A “Es el mayor”

B “Es el mayor”

C “Es el mayor”

FIN Página 10

http://ubv2006.galeon.com/Programas/Algoejemplos.pdf


SESIÓN 02: VARIABLES Una variable es una característica que al ser medida en diferentes individuos es susceptible de adoptar diferentes valores.” http://es.wikipedia.org/wiki/Variable_estad%C3%ADstica”.

TIPOS DE VARIABLE: Según la medición: Variables cualitativas Son las variables que expresan distintas cualidades, características o modalidad. Cada modalidad que se presenta se denomina atributo o categoría y la medición consiste en una clasificación de dichos atributos. Las variables cualitativas pueden ser dicotómicas cuando sólo pueden tomar dos valores posibles como sí y no, hombre y mujer o son polinómicas cuando pueden adquirir tres o más valores. Dentro de ellas podemos distinguir:  Variable cualitativa ordinal o variable cuasi cuantitativa: La variable puede tomar distintos valores ordenados siguiendo una escala establecida, aunque no es necesario que el intervalo entre mediciones sea uniforme, por ejemplo: leve, moderado, grave.  Variable cualitativa nominal: En esta variable los valores no pueden ser sometidos a un criterio de orden como por ejemplo los colores o el lugar de residencia. Variables cuantitativas Son las variables que se expresan mediante cantidades numéricas. Las variables cuantitativas además pueden ser:  Variable discreta: Es la variable que presenta separaciones o interrupciones en la escala de valores que puede tomar. Estas separaciones o interrupciones indican la ausencia de valores entre los distintos valores específicos que la variable pueda asumir. Ejemplo: El número de hijos (1, 2, 3, 4, 5). Página 11

http://es.wikipedia.org/wiki/Variable_estad%C3%ADstica


 Variable continua: Es la variable que puede adquirir cualquier valor dentro de un intervalo especificado de valores. Por ejemplo la masa (2,3 kg, 2,4 kg, 2,5 kg, ...) o la altura (1,64 m, 1,65 m, 1,66 m, ...), que solamente está limitado por la precisión del aparato medidor, en teoría permiten que siempre exista un valor entre dos variables, también puede ser el dinero o un salario dado y se puede identificar las clases de variables (cualitativas y cuantitativas).

Según la influencia: Variables independientes Son las que el investigador escoge para establecer agrupaciones en el estudio, clasificando intrínsecamente a los casos del mismo. Un tipo especial son las variables de control, que modifican al resto de las variables independientes y que de no tenerse en cuenta adecuadamente pueden alterar los resultados por medio de un sesgo. Es aquella característica o propiedad que se supone ser la causa del fenómeno estudiado. En investigación experimental se llama así a la variable que el investigador manipula. Variables dependientes Son las variables de respuesta que se observan en el estudio y que podrían estar influenciadas por los valores de las variables independientes. Hayman (1974: 69) la define como propiedad o característica que se trata de cambiar mediante la manipulación de la variable independiente. La variable dependiente es el factor que es observado y medido para determinar el efecto de la variable independiente.

Página 12

http://es.wikipedia.org/wiki/Variable_estad%C3%ADstica


EXPRESIONES Una expresión matemática es una secuencia o cadena de caracteres cuyos símbolos pertenecen a un lenguaje formal, de tal manera que la expresión cumple ciertas reglas de buena formación y que admite una interpretación consistente en alguna área de la matemática y en otras ciencias.” http://es.wikipedia.org/wiki/Expresi%C3%B3n_matem%C3%A1tica” Las expresiones matemáticas constan de un conjunto de símbolos del alfabeto, que en una expresión matemática incluyen: _Números _Operadores _El alfabeto griego _El alfabeto latino _Signos de puntuación _Conectivas lógicas (

)

Otros símbolos de creación exclusiva para este lenguaje, como muchos otros.

entre

Las reglas "gramaticales" de buena formación que rigen a las expresiones matemáticas vienen descritas por el lenguaje formal que formaliza una teoría matemática. Las expresiones matemáticas son usadas en las ecuaciones matemáticas, en las ecuaciones químicas y el las leyes científicas.

Página 13

http://es.wikipedia.org/wiki/Expresi%C3%B3n_matem%C3%A1tica


DATOS El dato es una representación simbólica (numérica, alfabética, algorítmica, entre otros.), un atributo o característica de una entidad. Los datos describen hechos empíricos, sucesos y entidades. Los datos aisladamente pueden no contener información humanamente relevante. Sólo cuando un conjunto de datos se examina conjuntamente a la luz de un enfoque, hipótesis o teoría se puede apreciar la información contenida en dichos datos. Los datos pueden consistir en números, estadísticas o proposiciones descriptivas. Los datos convenientemente agrupados, estructurados e interpretados se consideran que son la base de la información humanamente relevante que se pueden utilizar en la toma decisiones, la reducción de la incertidumbre o la realización de cálculos. Es de empleo muy común en el ámbito informático y, en general, prácticamente en cualquier investigación científica. En programación, un dato es la expresión general que describe las características de las entidades sobre las cuales opera un algoritmo. En Estructura de datos, es la parte mínima de la información.” http://es.wikipedia.org/wiki/Dato”

Página 14

http://es.wikipedia.org/wiki/Datos


OPERADORES En matemáticas, el término operador puede usarse con varios significados. Algunas veces, un operador es un símbolo matemático que indica que debe ser llevada a cabo una operación especificada1 sobre un cierto número de operandos (número, función, vector, etc.).” http://es.wikipedia.org/wiki/Operador” TIPOS DE OPERADORES: OPERADORES ARITMETICOS: Las operaciones aritméticas pueden ser entendidas, desde un punto de vista operacional, como operadores vivarienses o como operadores a derecha. Por ejemplo, '2 × 3' puede ser el operador bivariante de la multiplicación actuando sobre los números 2 y 3, o el operador '2 ×' que actúa sobre 3. En este grupo se encuentran la adición, la sustracción, multiplicación y la división. Otras operaciones, derivadas de las operaciones aritméticas usuales son la potenciación, radicación y logaritmación. OPERADORES LOGICOS: Muy utilizados en Informática, Lógica proposicional y Álgebra booleana, entre otras disciplinas. Los operadores lógicos nos proporcionan un resultado a partir de que se cumpla o no una cierta condición. Esto genera una serie de valores que, en los casos más sencillos, pueden ser paramerizados con los valores numéricos 0 y 1, como se puede apreciar en los ejemplos de abajo. La combinación de dos o más operadores lógicos conforma una función lógica. Los más sencillos son (nótese su relación con los operadores relacionales): _Operador NO-lógico: '¬A' significa todo lo que no es A'

Página 15

http://es.wikipedia.org/wiki/Operador


_Operador Y-lógico: 'A ∧ B' significa 'A y B a la vez'; resultando FALSO (0) si no se cumple y VERDADERO (1) si sí lo hace. _Operador O-lógico: 'A ∨ B' significa 'O bien A, o bien B, o bien los dos'; resultando FALSO (0) si no se dan ni A ni B y VERDADERO (1) si se da alguno de los dos o los dos a la vez. _Operador =: 'A = B' significa 'A debe ser igual a B'; resultando FALSO (0) si esto no es así y VERDADERO (1) en caso contrario. _Operador <: 'A < B' significa 'A debe ser menor que B'; resultando FALSO (0) si no se satisface y VERDADERO (1) en caso contrario. _Los operadores más complejos se construyen a partir de los anteriores (podría incluirse alguno más) y ya entran dentro de lo que sería una función lógica. Un ejemplo muy utilizado sería ‘SI (condición; A; B)' ('IF condición THEN A ELSE B' en la mayoría de los lenguajes de programación) cuyo resultado sería A si se satisface la 'condición' o B en caso contrario. OPERADORES RELACIONALES: Los operadores relacionales, también denominados operadores binarios lógicos y de comparación, se utilizan para comprobar la veracidad o falsedad de determinadas propuestas de relación (en realidad se trata respuestas a preguntas). Las expresiones que los contienen se denominan expresiones relacionales. Aceptan diversos tipos de argumentos, y el resultado, que es la respuesta a la pregunta, es siempre del tipo cierto/falso, es decir, producen un resultado booleano (3.2.1b) Si la propuesta es cierta, el resultado es true (un valor distinto de cero), si es falsa false (cero). C++ dispone de los siguientes: _<

Menor que

_>

Mayor que

_ <= Menor o igual que _ >= Mayor o igual que _ == Igual que (identidad) _!=

Desigual que (desigualdad) Página 16

http://es.wikipedia.org/wiki/Operador


SESIÓN 03: DIAGRAMA DE FLUJO DE DATOS Un diagrama de flujo de datos (DFD por sus siglas en español e inglés) es una representación gráfica para la maceta del "flujo" de datos a través de un sistema de información. Un diagrama de flujo de datos también se puede utilizar para la visualización de procesamiento de datos (diseño estructurado). Es una práctica común para un diseñador dibujar un contexto a nivel de DFD que primero muestra la interacción entre el sistema y las entidades externas. Este contexto a nivel de DFD se "explotó" para mostrar más detalles del sistema que se está modelando. Los diagramas de flujo de datos fueron inventados por Larry Constantina, el desarrollador original del diseño estructurado, basado en el modelo de computación de Martin y Estrin: "flujo gráfico de datos" . Los diagramas de flujo de datos (DFD) son una de las tres perspectivas esenciales de Análisis de Sistemas Estructurados y Diseño por Método SSADM.” http://es.wikipedia.org/wiki/Diagrama_de_Flujo_de_Datos”

Página 17

http://es.wikipedia.org/wiki/Diagrama_de_Flujo_de_Datos


SESIร“N 04: SOLUCIONANDO PROBLEMAS CON DFD _Realizar un diagrama de flujo que permita calcular el promedio del รกrea de educaciรณn para el trabajo, teniendo en cuenta que esta cuenta con 04 capacidades.

X=Real

X= (G+E+C+A)/4

G=Real E=Real C=Real A=Real

INICIO X, G, E, C, A, ES REAL

LEER G, E, C, A X= (G, E, C, A)/4

MOSTRAR X FIN

Pรกgina 18


_Diseñar un diagrama de flujo correspondiente a un programa que calcule el área y el perímetro de un triangulo rectángulo dada la base y la altura.

A= (B.C)/2

A=Real B= Entero

P= (C ^ 2 + D ^ 2) ^ 1/2

C=Entero P=Real C=Entero D=Entero

INICIO

A ES REAL; B, C ES ENTERO P ES REAL; C, D ES ENTERO

LEER B, C LEER C, D

A= (B*C)/2 P=SQRT(C^2+D^2) MOSTRAR A, P FIN

Página 19


_Desarrollar un diagrama de flujo que permita realizar las cuatro operaciones con dos números ingresados por el teclado. Y=REAL Z=REAL Y, Z= ES REAL S, R, M, D = ES REAL

INICIO Y, Z ES REAL

LEER Z, Y S=Y+Z R=Y-Z M=Y*Z D=Y/Z

MOSTRAR S, R, M, D FIN

Página 20


_Desarrollar un diagrama de flujo que nos permita cambiar una cantidad de soles a d贸lares.

X=0,37 * PEN X= REAL PEN= REAL

INICIO Y, PEN ES REAL

LEER PEN X=0,37 * PEN

MOSTRAR X FIN

P谩gina 21


_ Desarrollar un diagrama de flujo que nos permita calcula el importe a pagar por un determinado artículo el cual se conozca su precio unitario.

X=Numero / 12 Numero= 60 Numero es entero

INICIO NUMERO ES REAL

LEER NÚM X=NÚM/12

MOSTRAR X FIN

Página 22


SESIÓN 05: INTEGRANDO LOS APRENDIZAJES I _ Diseña el algoritmo del programa que, tras leer tres números, comprueba si la suma de cualquier pareja de ellos es igual al tercer número, indicando si se cumple esa condición o no.

INICIO LEER A, B, C

A+B==C

Si

A+C==B

Si

B+C==A

Si

VISUALIZAR “NO SE CUMPLE”

VISUALIZAR “SE CUMPLE”

Página 23

FIN


_Diseña el algoritmo del programa que sume y muestra en pantalla los múltiplos de 3entre 3 y 99.

INICIO SUMA=3 CONTADOR=6

CONTADOR < 100

SUMA=SUMA+CONTADOR

No

VISUALIZAR SUMA

CONTADOR=CONTADOR+3 FIN

Página 24


_Diseña el algoritmo que suma todos los números naturales anteriores a un número N dado.

INICIO SUMA = 1 CONTADOR = 2

CONTADOR < =100

LEER NÚM

SUMA=SUMA+CONTADOR FIN CONTADOR=CONTADOR+1

Página 25


_Diseña el algoritmo del programa que muestra en pantalla las potencias de 2comprendidas entre 0 y 10 (2:; 2;; 2<... 2;:).

INICIO CONTADOR = 0

CONTADOR <=100

No

Si

POTENCIA = 2^CONTADOR CONTADOR = CONTADOR+1

VISUALIZAR POTENCIA

FIN

Página 26


_Diseña el algoritmo del programa que permita resolver la ecuación de segundo grado.

INICIO LEER A, B, C D=B^2-4*A*C

D>=0

Si Si

X1= (-B+D^1/2)/2*A X2= (-B-D^1/2)/2*A

VISUALIZAR SOLICITUDES IMAGINARIAS

VISUALIZAR X1, X2

FIN

Página 27


SESIÓN 06: CREANDO DFD CON EL SOFTWARE FREE DFD _ Tres amigos hicieron una venta de libros y se reparten las ganancias de acuerdo al siguiente porcentaje: el 25% para Miguel, el 35% para Antonio y el 40% para Roberto. Si las ganancias fueron en soles, ¿Cuántos le corresponde a cada quien?

M=CD*25/100 A=CD*35/100

INICIO

R=CD*40/100 CD CD= ENTERO M, A, R= REAL

M=CD*25/100 A=CD*35/100 R=CD*40/100 M

A

R

FIN Página 28


_ Calcular cuanto va a pagar un estudiante por sus Ăştiles escolares, si necesita 6 cuadernos cuyo precio es el mismo para todos, 2 libros del mismo valor y un millar de hojas.

M=6*X+2*Y+Z

X= ENTERO Y= ENTERO Z=ENTERO

INICIO X, Y, Z M=6*X+2*Y+Z M

FIN

PĂĄgina 29


_ Calcular cuanto dinero ahorrará María en una alcancía, durante un año si cada semana ahorra Nº soles.

X=Nº*52

X= ENTERO INICIO Nº X=Nº*52

X

FIN

Página 30


_ Martha deposita sus ahorros en el Banco de Crédito, le pagan un interés del 3% mensual ¿Cuánto dinero tendrá a los seis meses si no retiro nada? El interés siempre se aplica sobre el depósito inicial.

R=CD*3/100 G=R*6 R= REAL G=REAL

INICIO CD R=CD*3/100 G=R*6 G

FIN

Página 31


_Diseñar un DFD que te permita saber la estatura y el peso de una persona y el cálculo del índice de masa corporal. La información que necesitas investigar es cual es la formula para calcular el índice de masa.

IMC=P/E^ 2 I, M, C=REAL

INICIO P, E IMC=P/E^2

IMC

FIN

Página 32


SESIÓN 07: ESTRUCTURAS CONDICIONALES Existen 3 tipos de estructuras condicionales:

 SIMPLES: Se les conoce también como “toma de decisión”, tiene la siguiente forma.

NO

SI

CONDICION

PROCESO 1 PROCESO 2

SINTAXIS: SI<CONDICION>ENTONCES PROCESOS FIN_SI

Página 33


 DOBLES: Permiten elegir entre 2 obsiones a alternativas posibles en función del cumplimiento o no de una determina condición se representa de la siguiente forma.

NO

CONDICION

SI

PROCESO F1

PROCESO V1

PROCESO F2

PROCESO V2

SINTAXIS: SI<CONDICION>ENTONCES PROCESOS_SI SI_NO PROCESOS_NO FIN_SI

 MULTIPLES: Las estructuras de comparación múltiple son toma de decisiones especializadas que permiten comparar una variable contra una posible, ejecutando para cada caso una serie de instrucciones especificas, la forma común es la siguiente.

Página 34


SI

CONDICION 1

PROCESOS V1

A

PROCESOS V2

A

PROCESOS V3

A

SI

CONDICION 2

SI CONDICION 3

A

Pรกgina 35


SESIÓN 08: INTEGRANDO LOS APRENDIZAJES II _Desarrolle un algoritmo que realice la sumatoria de los números enteros comprendidos entre el 1 y el 10, es decir, 1 + 2 + 3 +…. + 10. 1. Inicio 2. Declaración de variables: N= 0, Suma = 0

INICIO

3. Asignación Contador:

N=0

N=N+1

SUMA=0

4. Asignación Acumulador: Suma = Suma + N

N=N+1

5. Si N = 10 Entonces 6.

SUMA=SUMA+N

Escribir Suma

7. De lo contrario, Repetir desde el Paso 3 8. Fin_Si 8. Fin

No

N=10 Si

SUMA FIN

Página 36


_Desarrolle un algoritmo que permita leer dos números y ordenarlos de menor a mayor, si es el caso. 1. Inicio 2. Declaración de Variables:

INICIO

A = 0, B = 0, Temporal = 0 3. Leer A y B

A=0, B=0, TEMPORAL=0

4. Si A<B Entonces 5.

Asignar a Temporal = B

6.

Asignar a B = A

7.

Asignar a A = Temporal

8. Si no (De lo contrario) 9. Fin_Si

A, B Si

A>B No

TEMPORAL=B

10 Escribir “Orden = “, A, B 11. Fin

Si

B=A A=TEMPORAL

ORDEN=A, B FIN

Página 37


BIBLIOGRAFIAS http://es.wikipedia.org/wiki/Algoritmo http://ubv2006.galeon.com/Programas/Algoejemplos.pdf http://es.wikipedia.org/wiki/Variable_estad%C3%ADstica http://es.wikipedia.org/wiki/Expresi%C3%B3n_matem%C3%A1ti ca http://es.wikipedia.org/wiki/Datos http://es.wikipedia.org/wiki/Operador http://es.wikipedia.org/wiki/Diagrama_de_Flujo_de_Datos

Pรกgina 38


MI MANUAL