algoritmos_daniel rodriguez diaz

51
1 ALUMNO: DANIEL RODRIGUEZ DIAZ PROFESORA: NERITA CARRILO DAVILA AREA: COMPUTACION GRADO: 4 SECCION: A 2012

description

trabajo de algoritmos del colegio felix tello l

Transcript of algoritmos_daniel rodriguez diaz

Page 1: algoritmos_daniel rodriguez diaz

1

ALUMNO: DANIEL RODRIGUEZ DIAZ

PROFESORA: NERITA CARRILO DAVILA

AREA: COMPUTACION

GRADO: 4

SECCION: A

2012

Page 2: algoritmos_daniel rodriguez diaz

2

Este trabajo se lo dedico a mis padres por elapoyo que me dan social y económicamente.

También se lo dedico a nuestra profesoranerita que con su apoyo hemos aprendido

muchos temas importantes para lacomputación

Page 3: algoritmos_daniel rodriguez diaz

3

INDICE

Pagina2: dedicatoria

Pagina3: índice

Pagina4: presentación

Pagina5: los algoritmos

Pagina6: componentes de un algoritmo

Pagina7: elaboración de algoritmo

Pagina8: tipos de algoritmo

Pagina13: expresiones variables

Pagina14: tipos de datos

pagina15: datos lógicos

pagina17: constantes variables

pagina19: simbolos

pagina21: conceptos básicos para trabajar con DFD

Page 4: algoritmos_daniel rodriguez diaz

4

PRESENTACION

Este trabajo lo hice con mucho esmero

Y dedicación

Page 5: algoritmos_daniel rodriguez diaz

5

Los algoritmos son las series de pasos por los cuales se resuelvenlos problemas. Los algoritmos se han utilizado para solucionar unamplio rango de problemas matemáticos, como agregar números oencontrar una raíz cuadrada.

Los algoritmos representan soluciones a problemas. Los pasospara la solución (llamados instrucciones) permanecen iguales, yasea que el mismo se esté resolviendo mediante una computadorao a mano.

Características de los Algoritmos:

Las características fundamentales que debe cumplir todoalgoritmo son:

·Un algoritmo debe ser preciso e indicar el orden derealización de cada paso.

·Un algoritmo debe estar definido. Si se sigue un algoritmodos veces, se debe obtener el mismo resultado cada vez.

·Un algoritmo debe ser finito. Si se sigue un algoritmo sedebe terminar en algún momento; o sea, debe tener unnumero finito de pasos.

Page 6: algoritmos_daniel rodriguez diaz

6

Componentes de un algoritmo

Conceptualmente, un algoritmo tiene tres componentes:

La entrada: son los datos sobre los que el algoritmo opera; El proceso: son los pasos que hay que seguir, utilizando la

entrada; el fin: es el resultado que entrega el algoritmo.

El proceso es una secuencia de sentencias, que debe serrealizada en orden. El proceso también puede tener ciclos(grupos de sentencias que son ejecutadas varias veces) ycondicionales (grupos de sentencias que sólo son ejecutadas bajociertas condiciones).

Propiedades de un algoritmo

Las propiedades de un algoritmo son puntos guías a seguir parasu elaboración, ya que éstos permiten un mejor desarrollo delproblema.

Enunciado del problema. El enunciado del problema debe deser claro y completo. Es importante que conozcamosexactamente lo que deseamos que haga el computador.Mientras esto no se comprenda, no tiene caso pasar a lasiguiente etapa.

Análisis de la solución general.

Entendido el problema, para resolverlo es preciso analizar:

Page 7: algoritmos_daniel rodriguez diaz

7

Los datos de entradas que nos suministran.

El proceso al que se requiere someter esos datos a fin deobtener los resultados esperados.

Los datos o resultados que se esperan.

Áreas de trabajo, fórmulas y otros recursos necesarios.

Definir condiciones si las hay

Diferentes alternativas de solución.

Analizando el problema, posiblemente tengamos varias formasde resolverlo. Lo importante es determinar cuál es la mejoralternativa: la que produce los resultados esperados en el menortiempo.

Elaboración Del Algoritmo

Los conocimientos adquiridos anteriormente son lasherramientas necesarias para llevar a cabo la elaboración de unalgoritmo a través de un problema. Se recomienda tomar encuenta cada una de las propiedades de un algoritmo, ya que de ahíse inicia el proceso de elaboración.

Page 8: algoritmos_daniel rodriguez diaz

8

Tipos de algoritmos

Algoritmos estáticos, es decir, algoritmos que funcionansiempre igual, independientemente del tipo de problematratado. Por ejemplo, los sistemas basados en el métodode resolución.

Algoritmos probabilísticos, es decir, algoritmos que noutilizan valores de verdad booleanos sino continuos. Porejemplo, los sistemas basados en lógica difusa.

Algoritmos adaptativos, es decir, algoritmos con ciertacapacidad de aprendizaje. Por ejemplo, los sistemasbasados en redes neuronales.

Los Algorítmos permiten resolver problemascomputacionales mediante lenguajes de programación.

Page 9: algoritmos_daniel rodriguez diaz

999

Page 10: algoritmos_daniel rodriguez diaz

10

Page 11: algoritmos_daniel rodriguez diaz

11

Page 12: algoritmos_daniel rodriguez diaz

12

Page 13: algoritmos_daniel rodriguez diaz

13

TIPOS DE DATOS

El primer objetivo de toda computadora es el manejo deinformación o datos. Estos datos pueden ser las cifras de ventasde un supermercado o las calificaciones de una clase. Un dato esla expresión general que describe los objetos con los cualesopera una computadora.

Existen dos tipos de datos: simples (sin estructura) ycompuestos (estructurados, los cuales se verán en programación).

Los tipos de datos simples son los siguientes:

Numéricos (integer, real)

Lógicos (boolean)

carácter (char, string)

Datos numéricos:

El tipo numérico es el conjunto de los valores numéricos. Estospueden representarse en dos formas distintas:

Tipo numérico entero (integer) Tipo numérico real (real)

Enteros: El tipo entero es un subconjunto finito de los númerosenteros. Los enteros son números completos, no tienencomponentes fraccionarios o decimales y pueden ser negativos opositivos. En ocasiones se denominan números de punto fijo.

Ejemplo de números enteros son: 5 6 -15 4

Page 14: algoritmos_daniel rodriguez diaz

14

Reales: El tipo real consiste en un subconjunto de los númerosreales. Los números reales siempre tienen un punto decimal ypueden ser positivos o negativos. Un número real consta de unentero y una parte decimal.

Los siguientes ejemplos son números reales: 0.08 3739.413.7452 -52.321

En aplicaciones científicas se requiere una representaciónespecial para manejar números muy grandes como la masa de laTierra o muy pequeños como la masa de un electrón. Unacomputadora sólo puede representar un número fijo de dígitos.Este número puede variar de una máquina a otra, siendo ochodígitos un número típico. Este límite provocará problemas pararepresentar y almacenar números muy grandes o muy pequeñoscomo son los ya citados o los siguientes: 486432 0.00000

Existe un tipo de representación denominado notaciónexponencial o científica y que se utiliza para números muygrandes o muy pequeños. Así:367520100000000000000

Se representa en notación científica, descomponiéndolo engrupos de tres dígitos.

367 520 100 000 000 000 000

Y posteriormente en forma de potencias de 10

3.675201 x 10^19 y de modo similar

.0000000000302579 se representa como

3.02579 x 10^-11

La representación en coma o punto flotante es una generalizaciónde notación científica.

Page 15: algoritmos_daniel rodriguez diaz

15

Obsérvese que las siguientes expresiones son equivalentes:

3.675201x10^19 = .3675201x10^20 = .03675201x10^21 = ,..., =36.75201x10^18 = ...

En estas expresiones se considera la mantisa (parte decimal) alnúmero real y el exponente (parte potencial) el de la potencia dediez.

36.75201 mantisa 18 exponente

Datos lógicos

También denominado booleano - es aquel dato que sólo puedetomar uno de dos valores:

verdadero o falso

Este tipo de datos se utiliza para representar las alternativas (sí/ no) a determinadas condiciones. Por ejemplo, cuando se pide siun valor entero es par, la respuesta será verdadera o falsa,según sea par o impar.

Datos tipo carácter

El tipo carácter es el conjunto finito y ordenado de caracteresque la computadora reconoce. Un dato tipo carácter contiene unsolo carácter.

Los caracteres que reconocen las diferentes computadoras noson estándar; sin embargo, la mayoría reconoce los siguientescaracteres alfabéticos y numéricos:

- caracteres alfabéticos (A, B, C,..., Z)

- caracteres numéricos (1, 2, ..., 9)

- caracteres especiales (+, -, *, /, ^, ... , <, >, $, ...)

Page 16: algoritmos_daniel rodriguez diaz

16

Una cadena de caracteres es una sucesión de caracteres que seencuentran delimitados por una comilla (apóstrofo) o doblescomillas, según el tipo de lenguaje de programación. La longitudde una cadena de caracteres es el número de ellos comprendidosentre los separadores o delimitadores. Algunos lenguajes tienendatos tipo cadena. Ejemplo: ‘8 de octubre de 1976’

Constantes

Una constante es una variable cuyo valor puede determinar elcompilador durante la compilación y puede aplicar optimizacionesderivadas de ello. Para que esto sea posible se ha de cumplir queel valor de una constante no pueda cambiar durante la ejecución,por lo que el compilador informará con un error de todo intentode modificar el valor inicial de una constante. Las constantes sedefinen como variables normales pero precediendo el nombre desu tipo del modificador const y dándoles siempre un valor inicialal declararlas.

Variable

Es un espacio en la memoria de la computadora que permitealmacenar temporalmente un dato durante la ejecución de unproceso, su contenido puede cambiar durante la ejecución delprograma.

Para poder reconocer una variable en la memoria de lacomputadora, es necesario darle un nombre con el cual podamosidentificarla dentro de un algoritmo.

Expresiones

Las Expresiones lógicas son aquellas que pueden tomar uno dedos valores, verdadero o falso.

Page 17: algoritmos_daniel rodriguez diaz

17

La importancia de estas expresiones es la aplicación en lasestructuras de control que gobiernan el flujo de un programa.

Las expresiones lógicas se forman combinando constantes yvariables con operadores lógicos y relacionales.

((a >=b) or (a<d)) and (( a>=d) and (c>d))

(F or F) and (T and T)

F and T

F

Page 18: algoritmos_daniel rodriguez diaz

18

Page 19: algoritmos_daniel rodriguez diaz

19

Diagrama de flujo: son herramientas gráficas para representaralgoritmos. Está compuesto por símbolos, como: rectángulosrombos, cuadrados, etc., unidos por flechas, estos símbolosrepresentan acciones y orden en cómo se realizan estas. Esdecir, los diagramas de flujo son diagramas que emplean símbolosgráficos para representar algoritmos.

Page 20: algoritmos_daniel rodriguez diaz

20

Page 21: algoritmos_daniel rodriguez diaz

21

1. CONCEPTOS BASICOS PARA TRABAJAR CON DFD

a) ¿Que es Dfd?

Dfd es un software diseñado para construir y analizar algoritmos. Usted puede crear diagramas de flujo de datos para larepresentación de algoritmos de programación estructurada apartir de las herramientas de edición que para éste propósitosuministra el programa. Después de haber ingresado el algoritmorepresentado por el diagrama, podrá ejecutarlo, analizarlo ydepurarlo en un entorno interactivo diseñado para éste fin. Lainterfaz gráfica de Dfd, facilita en gran medida el trabajo condiagramas ya que simula la representación estándar de diagramasde flujo en hojas de papel.

b) Algoritmo

Un algoritmo es un procedimiento para la resolución de problemasde cualquier tipo por medio de determinada secuencia de pasossimples y no ambiguos. El concepto fue utilizado originalmentepara el cálculo matemático pero ahora es ampliamente usado enprogramación de computadoras.

c) Diagrama de Flujo de Datos

Page 22: algoritmos_daniel rodriguez diaz

22

Un diagrama de flujo de datos es una descripción gráfica de unprocedimiento para la resolución de un problema. Sonfrecuentemente usados para describir algoritmos y programasde computador. Los diagramas de flujo de datos estánconformados por figuras conectadas con flechas. Para ejecutarun proceso descrito por un diagrama de flujo de datos secomienza por el INICIO y se siguen las flechas de figura afigura, ejecutándose las acciones indicadas por cada figura; eltipo de figura indica el tipo de paso que representa.

Los diagramas de flujo son frecuentemente usados debido a quepueden suprimir detalles innecesarios y tener un significadopreciso, si son usados correctamente.

Page 23: algoritmos_daniel rodriguez diaz

232323

Page 24: algoritmos_daniel rodriguez diaz

242424

Page 25: algoritmos_daniel rodriguez diaz

252525

Page 26: algoritmos_daniel rodriguez diaz

262626

Page 27: algoritmos_daniel rodriguez diaz

272727

Page 28: algoritmos_daniel rodriguez diaz

28

Page 29: algoritmos_daniel rodriguez diaz

29

Page 30: algoritmos_daniel rodriguez diaz

30

Page 31: algoritmos_daniel rodriguez diaz

31

Page 32: algoritmos_daniel rodriguez diaz

32

Page 33: algoritmos_daniel rodriguez diaz

33

Page 34: algoritmos_daniel rodriguez diaz

34

Page 35: algoritmos_daniel rodriguez diaz

35

Page 36: algoritmos_daniel rodriguez diaz

36

Page 37: algoritmos_daniel rodriguez diaz

37

Page 38: algoritmos_daniel rodriguez diaz

38

No todos los problemas pueden resolverse empleandoestructuras secuenciales. Cuando hay que tomar una decisiónaparecen las estructuras condicionales.

Estructura condicional simple.

Cuando se presenta la elección tenemos la opción de realizar unaactividad o no realizar ninguna.Representación gráfica:

Podemos observar: El rombo representa la condición. Hay dosopciones que se pueden tomar. Si la condición da verdadera sesigue el camino del verdadero, o sea el de la derecha, si lacondición da falsa se sigue el camino de la izquierda.Se trata de una estructura CONDICIONAL SIMPLE porque porel camino del verdadero hay actividades y por el camino del falsono hay actividades.Por el camino del verdadero pueden existir varias operaciones,entradas y salidas, inclusive ya veremos que puede haber otrasestructuras condicionales.

Page 39: algoritmos_daniel rodriguez diaz

39

Problema:

Ingresar el sueldo de una persona, si supera los 3000 pesosmostrar un mensaje en pantalla indicando que debe abonarimpuestos.

Podemos observar lo siguiente: Siempre se hace la carga delsueldo, pero si el sueldo que ingresamos supera 3000 pesos semostrará por pantalla el mensaje "Esta persona debe abonarimpuestos", en caso que la persona cobre 3000 o menos noaparece nada por pantalla

Page 40: algoritmos_daniel rodriguez diaz

40

Estructura condicional compuesta.

Cuando se presenta la elección tenemos la opción de realizar unaactividad u otra. Es decir tenemos actividades por el verdadero ypor el falso de la condición. Lo más importante que hay que teneren cuenta que se realizan las actividades de la rama delverdadero o las del falso, NUNCA se realizan las actividades delas dos ramas.

Representación gráfica:

En una estructura condicional compuesta tenemos entradas,salidas, operaciones, tanto por la rama del verdadero como por larama del falso.

Problema:

Realizar un programa que solicite ingresar dos números distintosy muestre por pantalla el mayor de ellos.

Diagrama de flujo:

Page 41: algoritmos_daniel rodriguez diaz

41

Se hace la entrada de num1 y num2 por teclado. Para saber cualvariable tiene un valor mayor preguntamos si el contenido denum1 es mayor (>) que el contenido de num2, si la respuesta esverdadera vamos por la rama de la derecha e imprimimos num1,en caso que la condición sea falsa vamos por la rama de laizquierda (Falsa) e imprimimos num2.Como podemos observar nunca se imprimen num1 y num2simultáneamente.

Estructura condicional Múltiples:

Las estructuras de comparación múltiples, son tomas de decisiónespecializadas que permiten comparar una variable contradistintos posibles resultados, ejecutando para cada caso una

Page 42: algoritmos_daniel rodriguez diaz

42

serie de instrucciones especificas. La forma común es lasiguiente:

Page 43: algoritmos_daniel rodriguez diaz

43

Page 44: algoritmos_daniel rodriguez diaz

44

Page 45: algoritmos_daniel rodriguez diaz

45

Page 46: algoritmos_daniel rodriguez diaz

46

Page 47: algoritmos_daniel rodriguez diaz

47

Page 48: algoritmos_daniel rodriguez diaz

48

Page 49: algoritmos_daniel rodriguez diaz

49

Page 50: algoritmos_daniel rodriguez diaz

50

Page 51: algoritmos_daniel rodriguez diaz

51