tarea 1 eii115

Upload: jairosorto

Post on 07-Jul-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Tarea 1 EII115

    1/19

    Universidad de El Salvador

    Facultad de Ingeniería y Arquitectura

    Escuela de Ingeniería Eléctrica

    Introducción a la informática IIE-115

    Tarea 1 

    ALGORITMOS

    Narrados y ráficos”

     

    Instructor: Arturo Posada

    Grupo de laboratorio N° 2

    Integrantes: Carnet:

    Hernández Nieto, Jairo Alejandro HN14001

    Sorto Castillo, Jairo Josué SC14009

     Vargas Rosa, Sergio Manuel VR14003

    Roque Vidal, José Arnoldo RV14040

    Ciudad Universitaria, Viernes 16 de abril de 2015

  • 8/18/2019 Tarea 1 EII115

    2/19

     

    Página 2 de 19  IIE-115 Ciclo 1-2015 

    INDICE

    Introducción:

      ................................................................................................................................................. 3

    Objetivos:

      ....................................................................................................................................................... 3

    Marco Teórico:

      .............................................................................................................................................. 4

    Estructuras secuenciales  ......................................................................................................................... 5

    Desarrollo:  ..................................................................................................................................................... 8

    Conclusiones:

      ............................................................................................................................................... 19

    Bibliografía:

      .................................................................................................................................................. 19

    Sitios de Internet:  ..................................................................................................................................... 19

  • 8/18/2019 Tarea 1 EII115

    3/19

     

    Página 3 de 19  IIE-115 Ciclo 1-2015 

    Introducción:

    En el presente documento se presenta la primera tarea de Introducción a la Informática, de la carrera

    Ingeniería Eléctrica la cual consta de ALGORITMOS, Narrados y Gráficos. Son 10 ejercicios

    resueltos utilizando los conocimientos adquiridos en los teóricos de la materia, se involucranFlujogramas y diagramas de caja, dado que es una forma rápida y eficiente de presentar una posible

    solución a los problemas dados, todo este proceso es necesario conocer antes de aprender cualquier

    lenguaje de programación. Se debe tener claro que el desarrollo de estos diagramas esta armado al

    nivel de lógica de la persona que los está utilizando, por esto es necesario conocer la simbología y la

    funcionalidad de ciertas propiedades o características de la lógica de resolución de problemas.

    Entendemos como algoritmos a 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.2 Dados un estado inicial y una entrada, siguiendo los

    pasos sucesivos se llega a un estado final y se obtiene una solución.

     A diferencia de los laboratorios en las tareas se pone en manifiesto el grado de comprensión de los

    alumnos sobre un determinado tema, por eso dentro de este reporte se expone un marco teorico

    básico sobre los algoritmos, diagramas de flujo y demás información, un desarrollo que son los

    ejercicios dados y unas conclusiones en base a los objetivos planteados por los alumnos que se

    presentan a continuación:

    Objetivos:

      Tener la capacidad realizar Algoritmos narrados y gráficos.

       Aplicar los bucles repetitivos, Mientras Hacer-mientras y para.

      Graficar de manera correcta los diagramas NS y de flujo.

  • 8/18/2019 Tarea 1 EII115

    4/19

     

    Página 4 de 19  IIE-115 Ciclo 1-2015 

    Marco Teórico:

    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. 

    Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural,

    pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en

    lenguaje natural tienden a ser ambiguas y extensas; El usar pseudocódigo y diagramas de flujo evita

    muchas ambigüedades del lenguaje natural; Dichas expresiones son formas más estructuradas para

    representar algoritmos; No obstante, se mantienen independientes de un lenguaje de programación

    específico.

    Existen dos tipos de algoritmos y son llamados así por su naturaleza:

      Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras. Lo ejecutan las

    personas.

      Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del

    proceso. Lo ejecuta el computador

    La descripción de un algoritmo usualmente se hace en tres niveles:

      Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se

    explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.

     

    Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentranla solución.

     

    Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico

    o algún objeto capaz de llevar a cabo instrucciones.

    Diagrama de flujo.

    Los diagramas de flujo son descripciones gráficas de algoritmos; usan

    símbolos conectados con flechas para indicar la secuencia de instrucciones

     y están regidos por ISO.

    Los diagramas de flujo son usados para representar algoritmos pequeños, ya

    que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad

    de lectura son usados como introducción a los algoritmos, descripción de

    un lenguaje y descripción de procesos a personas ajenas a la computación.

    Ejemplo: Calculo de la raíz de la cuadrada de un número.

  • 8/18/2019 Tarea 1 EII115

    5/19

     

    Página 5 de 19  IIE-115 Ciclo 1-2015 

    Pseudocódigo.

    El pseudocódigo (falso lenguaje , el prefijo pseudo  significa falso ) es una descripción de alto nivel de

    un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintácticas

    propias de lenguajes de programación, como asignaciones, ciclos y condicionales, aunque no está

    regido por ningún estándar. Es utilizado para describir algoritmos en libros y publicacionescientíficas, y como producto intermedio durante el desarrollo de un algoritmo, como los diagramas

    de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos en

    pseudocódigo requieren menos espacio para representar instrucciones complejas.

    El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y por

    lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación.

    Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en la

    sintaxis de lenguajes de programación concretos.

    Variables.

    Son elementos que toman valores específicos de un tipo de datos concreto. La declaración de una

     variable puede realizarse comenzando con var. Principalmente, existen dos maneras de otorgar

     valores iniciales a variables:

    1.  Mediante una sentencia de asignación.

    2.  Mediante un procedimiento de entrada de datos (por ejemplo: 'read').

    Ejemplo:

    ...

    i:=1;

    read(n);

     while i < n do begin

    (* cuerpo del bucle *)

    i := i + 1

    end;

    … 

    Estructuras secuenciales

    La estructura secuencial es aquella en la que una acción sigue a otra en secuencia. Las operaciones

    se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el

    fin del proceso. La asignación de esto consiste, en el paso de valores o resultados a una zona de la

    memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación

    se puede clasificar de la siguiente forma:

    1.  Simples: Consiste en pasar un valor constante a una variable (a← 15)

  • 8/18/2019 Tarea 1 EII115

    6/19

     

    Página 6 de 19  IIE-115 Ciclo 1-2015 

    2. 

    Contador: Consiste en usarla como un verificador del número de veces que se realiza un

    proceso (a← a + 1)

    3.  Acumulador: Consiste en usarla como un sumador en un proceso (a← a + b).

    4. 

    De trabajo: Donde puede recibir el resultado de una operación matemática que involucre

    muchas variables (a← c + b*2/4).

    Un ejemplo de estructura secuencial, como obtener el área de un triángulo:

    Inicio

    ...

    float b, h, a;

    printf("Diga la base");

    scanf("%f", &b);

    printf("Diga la altura");

    scanf("%f", &h);

    a = (b*h)/2;printf("El área del triángulo es %f", a)

    ...

    Fin

    Símbolos utilizados en los diagramas de flujo.

  • 8/18/2019 Tarea 1 EII115

    7/19

     

    Página 7 de 19  IIE-115 Ciclo 1-2015 

    Bucle:

    Un bucle o ciclo, en programación, es una sentencia que se realiza repetidas veces a un trozo

    aislado de código, hasta que la condición asignada a dicho bucle deje de cumplirse.

    Generalmente, un bucle es utilizado para hacer una acción repetida sin tener que escribir varias

     veces el mismo código, lo que ahorra tiempo, deja el código más claro y facilita su modificación enel futuro.

    Los tres bucles más utilizados en programación son el bucle while, el bucle for y el bucle repetir.

    Bucle while:

    El Bucle while o bucle mientras es una estructura de la mayoría de

    los lenguajes de programación estructurados cuyo propósito es

    repetir un bloque de código mientras una condición se mantenga

     verdadera.

    Bucle for:

    La principal diferencia de un bucle PARA con respecto a los bucles MIENTRAS Y REPETIR, es

    que puede determinarse al comienzo del bucle cuántas veces se iterará el mismo, lo cual muchas

     veces puede redundar en una optimización del código por parte de los compiladores.

    Bucle for:

    Comprueba la condición de finalización al final del cuerpo del bucle, y si éstaes cierta continua con el resto del programa, a veces esto resulta más

    adecuado.

  • 8/18/2019 Tarea 1 EII115

    8/19

     

    Página 8 de 19  IIE-115 Ciclo 1-2015 

    Desarrollo:

    1.  Se tienen tres números reales (a, b y c) y se desea saber cuál es el mayor.

    Hacer un algoritmo narrado para resolver este problema.

     Algoritmo Narrado 

    1.  Problema 1

    2.  Inicio

    3.  Leer a, b, b

    4.  ¿Es “a” mayor o igual a “b”? 

    5.  Si es verdadero mayor es igual a “a” 

    6.  Si es falso mayor es “b” 

    7. 

    Es “c” >= a mayor8.  Si es verdadero mayor es igual a c

    9.  Mostrar mayor

    10. Fin

  • 8/18/2019 Tarea 1 EII115

    9/19

     

    Página 9 de 19  IIE-115 Ciclo 1-2015 

    2. 

    Desarrollar un diagrama NS que calcule el ángulo menor entre las agujas delreloj (minutera y horaria), el dato de entrada será la hora.

    Diagrama NS 

    Fin

    anguloc=c*6

    angulo d= abs(angulo b-anguloc)

    angulo d= 360-angulod

    mostrar angulo d

    inicio

    leer hora (b:c)

    b=0

    angulob= b*30

    b == 12 0

    angulod>(360-angulod)

    0 1

    1

  • 8/18/2019 Tarea 1 EII115

    10/19

     

    Página 10 de 19  IIE-115 Ciclo 1-2015 

    3.  Implementar un algoritmo narrado y de flujo que calcule la máxima

    cantidad de billetes de 100, 50, 25, 10, 5 y 1. Por ejemplo 278 colones se

    tienen como resultado 2 de 100, uno de 50, uno de 25 y 3 de 1.

    Leer b

     Valor=b

     J=valor DIV 100

     Valor=valor MOD 100

    M=valor DIV50

     Valor=valor Mod50

    L=valor MOD 20

     Valor=valor DIV 20

    G=valor DIV 10

     Valor=valor MOD 10

    N =valor DIV 5

     Valor=valor MOD 5

    P= valor DIV 1

     J “de 100, “ M “de 50, ” L

    “de 20, ” G “de 10, ” N

    “de 5, ” P “de 1” 

    FIN

  • 8/18/2019 Tarea 1 EII115

    11/19

     

    Página 11 de 19  IIE-115 Ciclo 1-2015 

    4.  Los ángulos se pueden representar en grados, minutos y segundos, por

    ejemplo 15º24'5''. Hacer un diagrama de flujo que pueda sumar dos

    ángulos en este formato.

    Diagrama de Flujo

    Inicio

     A1 (G1, M1, S1)

     A2 (G2, M2, S2)

    Gsuma : G1 + G2 

    Msuma : M1 + M2 Ssuma : S1 + S2 

    Ssuma >= 60 

    Ssuma : Ssuma  – 60

    Msuma : Msuma + 1Msuma >= 60 

    Msuma : Msuma  – 60

    Msuma : Gsuma + 1

    Gsuma , Msuma , Ssuma . 

    Fin

    V

     

    F

     

    V

     

    F

     

  • 8/18/2019 Tarea 1 EII115

    12/19

     

    Página 12 de 19  IIE-115 Ciclo 1-2015 

    5.  Crear un diagrama de flujo que ordene “N” cantidad de datos 

    X[J] X[J+1]

    X[J+1] AUXI

    X[J] > X[J+1]

    V F

    AUXI X[J] 

    Para J = 1 hasta n 

    Inicio 

    R Leer X[i] 

    Fin 

    Para i=1 hasta n

     

    Para  I=1 hasta  n - 1 

    Para J=1 hasta  J = n - 1 

    Mostrar X[J] 

  • 8/18/2019 Tarea 1 EII115

    13/19

     

    Página 13 de 19  IIE-115 Ciclo 1-2015 

    6.  Implementar un diagrama de flujo para la siguiente serie:

    Inicio

    X

    K = 2; Suma = 0

    M

  • 8/18/2019 Tarea 1 EII115

    14/19

     

    Página 14 de 19  IIE-115 Ciclo 1-2015 

    7. Diseñar un diagrama de cajas para la siguiente serie:

    R n = n + 1 

    inico 

    Ingresar x 

    Denominar K=2; Suma=0; P=8/π; n=1; Y=2n-1 

    R T = ((K-1)+(K+1))/2 

    Mostrar Suma  

    F Fin

    Mientras K

  • 8/18/2019 Tarea 1 EII115

    15/19

     

    Página 15 de 19  IIE-115 Ciclo 1-2015 

    8.  Diseñar un algoritmo de flujo que calcule un número combinatorio para:

    V

    VF

    V

    F

    F

    V

    V

    F

    F

    N = k ; M = 1

    M = M*N

    N = N-1

    N>=2

    T = (n-k)

    P = T ; Q = 1

    Q = Q*P ; P = P-1

    Inicio

    n

  • 8/18/2019 Tarea 1 EII115

    16/19

     

    Página 16 de 19  IIE-115 Ciclo 1-2015 

    Fin

    Frac = Nom/Den

    Frac

    A B

    Den = M*T

  • 8/18/2019 Tarea 1 EII115

    17/19

     

    Página 17 de 19  IIE-115 Ciclo 1-2015 

    9.  Crear el diagrama de flujo para encontrar el MCD Máximo Común

    Divisor) de dos números enteros.

    Inicio

    Count1=n2

    Count2=n1

    R=count1 MOD count2

    Rant=count2

    F

    R!= 0

    Rant= r

    R=count1MOD count2

    Count1=count2

    Count2=r

    Obtener n1, n2

    n1>n2

    Count1=n1

    Count2=n2

    R= count1 MOD count2

    Rant=count2

    V

    Rant

    FIN

    V

    F

  • 8/18/2019 Tarea 1 EII115

    18/19

     

    Página 18 de 19  IIE-115 Ciclo 1-2015 

    10. Hacer una corrida manual del siguiente diagrama de cajas, se deberá

    realizar por lo menos 10 iteraciones para x = 0.45.

    Iteraciones Valor de X  Valor de suma  Valor de K Valor de Mientras

    abs pow x, - 2*k-1))) / 2*k-1)

    1 0.45 -- -- --

    2 0.45 -- -- --

    3 0.45 -- -- --

    4 0.45 -- -- --

    5 0.45 -- -- --

    6 0.45 -- -- --

    7 0.45 -- -- --

    8 0.45 -- -- --

    9 0.45 -- -- --

    10 0.45 -- -- --

    La condición del primer Do-While siempre se cumple cuando

    X=0.45, por lo cual el algoritmo siempre lo regresara a introducir X 

     y no podrá accesar a Suma, K, Ni el siguiente ciclo repetitivo. 

  • 8/18/2019 Tarea 1 EII115

    19/19

     

    Página 19 de 19  IIE-115 Ciclo 1-2015 

    Conclusiones:

    -  Los algoritmos tanto narrados como gráficos son herramientas que nos facilitan la resolución

    de problemas mediante métodos lógicos, además de facilitar la comprensión de quien lo lee,

    el único inconveniente es que debe conocer con anterioridad la metodología.

    Las estructuras repetitivas nos ayudan a la resolución de problemas más complejos. Por

    ejemplo el lazo Mientras que tiene la propiedad de repetir el código dentro del bucle hasta

    que una condición sea falsa, el Lazo Hacer-Mientras se usa para repetir un proceso que

    necesariamente se ejecuta al menos una vez en este aspecto radica su diferencia con Mientras.

    -  Existe un tercer lazo se utiliza cuando se conoce el número exacto de veces que se ejecutara

    el bucle, es un tanto más simple que las dos anteriores, pero igualmente útil.

    Los diagramas NS omiten las flechas de unión, solo son cajas simples y contiguas que varían

    de posición en el caso de utilizar un bucle, los flujogramas son diagramas que utilizansímbolos específicos y flechas para expresar la dirección del procedimiento.

    Bibliografía:

    Zelaya, W. (2012) Introducción a la Informática. Ed. Imprenta Universitaria UES. San Salvador, pág., 32 al

    72.

    Sitios de Internet:

     

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

      http://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml 

      http://www.minsa.gob.pe/dgsp/observatorio/documentos/herramientas/Diagramade

    Flujo.pdf  

     

    https://docs.google.com/document/d/1AN_r2s2zCdabvQ5j0P2i2Aggp3axxce82f-

     JIKyuo7g/mobilebasic?pli=1 

      http://image.slidesharecdn.com/simbolosdiagramadeflujo-120309174851-

    phpapp02/95/simbolos-diagrama-de-flujo-1-728.jpg?cb=1331336987 

    http://es.wikipedia.org/wiki/Algoritmo#Diagrama_de_flujohttp://es.wikipedia.org/wiki/Algoritmo#Diagrama_de_flujohttp://www.monografias.com/trabajos15/algoritmos/algoritmos.shtmlhttp://www.monografias.com/trabajos15/algoritmos/algoritmos.shtmlhttp://www.minsa.gob.pe/dgsp/observatorio/documentos/herramientas/DiagramadeFlujo.pdfhttp://www.minsa.gob.pe/dgsp/observatorio/documentos/herramientas/DiagramadeFlujo.pdfhttp://www.minsa.gob.pe/dgsp/observatorio/documentos/herramientas/DiagramadeFlujo.pdfhttp://www.minsa.gob.pe/dgsp/observatorio/documentos/herramientas/DiagramadeFlujo.pdfhttp://www.minsa.gob.pe/dgsp/observatorio/documentos/herramientas/DiagramadeFlujo.pdfhttps://docs.google.com/document/d/1AN_r2s2zCdabvQ5j0P2i2Aggp3axxce82f-JIKyuo7g/mobilebasic?pli=1https://docs.google.com/document/d/1AN_r2s2zCdabvQ5j0P2i2Aggp3axxce82f-JIKyuo7g/mobilebasic?pli=1https://docs.google.com/document/d/1AN_r2s2zCdabvQ5j0P2i2Aggp3axxce82f-JIKyuo7g/mobilebasic?pli=1https://docs.google.com/document/d/1AN_r2s2zCdabvQ5j0P2i2Aggp3axxce82f-JIKyuo7g/mobilebasic?pli=1https://docs.google.com/document/d/1AN_r2s2zCdabvQ5j0P2i2Aggp3axxce82f-JIKyuo7g/mobilebasic?pli=1http://image.slidesharecdn.com/simbolosdiagramadeflujo-120309174851-phpapp02/95/simbolos-diagrama-de-flujo-1-728.jpg?cb=1331336987http://image.slidesharecdn.com/simbolosdiagramadeflujo-120309174851-phpapp02/95/simbolos-diagrama-de-flujo-1-728.jpg?cb=1331336987http://image.slidesharecdn.com/simbolosdiagramadeflujo-120309174851-phpapp02/95/simbolos-diagrama-de-flujo-1-728.jpg?cb=1331336987http://image.slidesharecdn.com/simbolosdiagramadeflujo-120309174851-phpapp02/95/simbolos-diagrama-de-flujo-1-728.jpg?cb=1331336987http://image.slidesharecdn.com/simbolosdiagramadeflujo-120309174851-phpapp02/95/simbolos-diagrama-de-flujo-1-728.jpg?cb=1331336987http://image.slidesharecdn.com/simbolosdiagramadeflujo-120309174851-phpapp02/95/simbolos-diagrama-de-flujo-1-728.jpg?cb=1331336987http://image.slidesharecdn.com/simbolosdiagramadeflujo-120309174851-phpapp02/95/simbolos-diagrama-de-flujo-1-728.jpg?cb=1331336987https://docs.google.com/document/d/1AN_r2s2zCdabvQ5j0P2i2Aggp3axxce82f-JIKyuo7g/mobilebasic?pli=1https://docs.google.com/document/d/1AN_r2s2zCdabvQ5j0P2i2Aggp3axxce82f-JIKyuo7g/mobilebasic?pli=1http://www.minsa.gob.pe/dgsp/observatorio/documentos/herramientas/DiagramadeFlujo.pdfhttp://www.minsa.gob.pe/dgsp/observatorio/documentos/herramientas/DiagramadeFlujo.pdfhttp://www.monografias.com/trabajos15/algoritmos/algoritmos.shtmlhttp://es.wikipedia.org/wiki/Algoritmo#Diagrama_de_flujo