Módulo: Diagramación y Algoritmos Examen Final 30% Junio 2011
Nombre Alumno: Kelly Johana Durango Ramirez Camilo Andrés Leal Betancur
Nota : 3,0 Objetivos:
Utilizar sus conocimientos para llevar a cabo la elaboración de algoritmos através de un problema dado.
Utilizar sus conocimientos para llevar a cabo la elaboración de diagramas de flujo.
1. (40 puntos) Realizar los Problemas, siguiendo las instrucciones que se indican para cada una de ellas.
- Utilizar la computadora como instrumento de apoyo.
- Resolver con cuidado cada uno de los problemas que se presentan.
- Para todos los problemas que se plantean a continuación, se espera que elestudiante:
a) Lea cuidadosamente y entienda cada problema.
b) Haga un análisis de cómo obtener lo solicitado y escoja una solución que a su juicio resulte funcional.
c) Elabore diagramas de flujo con la solución propuesta. d) Haga la prueba de escritorio y ajustes correspondientes.
e) Escriba algoritmos correspondientes al problema en pseudocódigo.
Problema1: Se desea medir exactamente 4 litros de agua si solo están disponibles cubos de 5 litros y de 3 litros. En el algoritmo no se ve el resultado 4litros exactos!!! P:4
Datos de entrada: cubos de 5 y 3 litros Datos de salida: 4 litros de agua
Procedimiento:
Llenas el tazón de 5 litros, luego llenas el de 3 litros con el agua que tienes en el de 5 litros. Ahora tenemos 2 litros en el de 5 litros.
Vacías el de 3 litros y pasas los 2 litros que tenemos en el de 5 litros al de 3 litros.
Diagrama de flujo:
Pseudocódigo:
1. Algoritmo: medición_agua 2. Variables: litros: numérico litros 3. INICIO
4. Lea(cubo de 5L=0) Lea(cubo de 3L=0) Lea(“suma:”, cubo 5L+5) Escriba(“total” cubo 5L-3L) Lea(“resta:”cubo de 3L-3) Escriba(“total” cubo de 5L-3L) Lea(“suma:”cubo de 5L+5) Escriba(“total” cubo de 5L-1L)
5. FIN
6. Fin: medición_agua
Prueba de escritorio:
Cubo de 5 litros= 5L Cubo de 3 litros= 0L
Entonces 5L-3L= 2L restantes en cubo de 5L Cubo de 5 litros= 2L
INICIO
5L=0 ^ 3L=0
5L+5
5L-3L 2
L
3L-3
Cubo de 3 litros= 3L
Entonces 3L-3L= 0L restantes en cubo de 3L Cubo de 5 litros= 2L
Cubo de 3 litros= 0L
Entonces 2L+0L = 2L en cubo de 3L Cubo de 5 litros= 0L
Cubo de 3 litros= 2L
Entonces 5L+0L = 5L en cubo de 5L Cubo de 5 litros= 5L
Cubo de 3 litros= 2L
Entonces 5L-1L = 4L en cubo de 5L y 3L en cubo de 3L Cubo de 5 litros= 4L
Cubo de 3 litros= 3L
Problema2: Una lista de nombres esta supuestamente en orden alfabético, pero se sospecha que ha ocurrido alguna desorganización, desarrolla algún algoritmo que ordene ésta lista, se imprime una vez esté ordenada.
Solucion? 0
Problema3: Realiza un algoritmo para imprimir los números de 1 a 1000 con su cuadrado.
P:7
Datos entrada: números de 1 a 1000
Datos salida: números de 1 hasta 1000 con su cuadrado
Procedimiento:
Comenzar por contar los números de 1 a 1000 e ir elevando al cuadrado respectivo número.
Diagrama de flujo: Donde calculan el cuadrado?
SI NO
INICIO
i
i=1; i<=1000 ; i=i+1
i=1000
Pseudocódigo:
1. Algoritmo: num_cuadrados 2. Variable: i: numérico entero 3. INICIO
4. Lea(i)
5. For( i=1; i<=1000 ; i=i+1)
¿ Cuadrado=i*i
6. Escriba(“i”, “i^2”) 7. FIN(for)
8. Fin num_cuadrados
Probema4: Encuentra la suma de los valores almacenados en una tabla denominada TPT de 20 elementos; el resultado se desea impreso. P:0
Problema5: Realizar un Algoritmo para obtener de la población total de una escuela donde se halle: P:6
a) El número total de aprobados con calificaciones entre 6 y 8. b) El numero de los aprobados con calificaciones de 8.1 a 10. c) El número total de reprobados en la escuela.
INICIO
Leer total
For(i=1 ; i<=total ; i=i+1)
SI(Puntaje_estudiante[i]>=8.1) AND Puntaje_estudiante<=10)
Mayor8=Mayor8+1 (estudiantes con puntaje entre 8.1 y 10
De lo contrario
SI(Puntaje_estudiante[i]>=6) AND Puntaje_estudiante<=8
Mayor6=Mayor6+1 De lo contrario
Reprobado=Reprobado+1 Fin(SI)
Fin(SI)
Escriba(Mayor8+Mayor6+Reprobado) FIN
a. ¿Qué diferencia existe entre diagramas y diagramas de flujo?P:2
Un diagrama es un gráfico que presenta en forma esquematizada información relativa e inherente a algún tipo de ámbito, como ser la política o la economía de alguna nación o empresa y que aparecerá representada numéricamente y en formato tabulado
Un diagrama de flujo es una forma esquemática de representar ideas y conceptos en relación. A menudo, se utiliza para especificar algoritmos de manera gráfica.
b. Define que es un ciclo, loops. P:2
1. Ciclos: Son procesos repetitivos los cuales se ejecutan una o más instrucciones varias veces.
2. "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."
En los bucles o ciclos son de tres tipos:
While For Until
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.
Sintaxis
La sintaxis en pseudocódigo es la siguiente:
Mientras Condición Hacer
Instrucciones
Fin Mientras
El bucle For o ciclo For es una estructura de control en la que se puede indicar el número máximo de iteraciones. Está disponible en casi todos los lenguajes de programación imperativos.
Sintaxis
La sintaxis en pseudocódigo es la siguiente:
Instrucciones Fin Para
El bucle Repetir comprueba la condición de finalización al final del cuerpo del bucle, y si ésta es cierta continua con el resto del programa, a veces esto resulta más adecuado.
Repetir Instrucciones
Hasta que Condición
c. Define que es un tipo de dato y para que se usa. P:2
En los lenguajes de programación y en otros programas utilitarios tales como una planilla de cálculos, un tipo de dato es un atributo de una parte de los datos que indica al ordenador (y/o al programador) algo sobre la clase de datos sobre los que se va a procesar. Esto incluye imponer restricciones en los datos, como qué valores pueden tomar y qué operaciones se pueden realizar.
Tipos de datos comunes son:
Enteros, números de coma flotante (decimales), cadenas alfanuméricas, fechas, horas, colores, coches o cualquier cosa que se nos ocurra. Por ejemplo, en Java, el tipo "int" representa un conjunto de enteros de 32 bits cuyo rango va desde el -2.147.483.648 al 2.147.483.647, así como las operaciones que se pueden realizar con los enteros, como la suma, resta y multiplicación. Los colores, por otra parte, se representan como tres bytes denotando la cantidad de rojo, verde y azul, y una cadena de caracteres representando el nombre del color; las operaciones permitidas incluyen la adición y sustracción, pero no la multiplicación.
Enteros: Los enteros son el tipo de dato más primitivo en C. Se usan para representar números enteros. Pero siempre se pueden encontrar otras aplicaciones para los números enteros. En general se pueden usar para representar cualquier variable discreta.
Los tipos de datos enteros son: short, int, long y long long.
Flotante: Se denomina flotantes a los tipos de datos que representan a los números reales, ya que utilizan un sistema de representación basado en la técnica de coma flotante, que permite operar con números reales de diversas magnitudes, mediante un número decimal llamado mantisa y un
exponente que indica el orden de magnitud.
Caracteres: Los caracteres se representan utilizando el tipo char, que tiene sólo 1 byte de tamaño. Este tipo se utiliza para representar los 255 caracteres de la tabla de caracteres del sistema. El tipo char es también un tipo entero, ya que puede tomar valores de 0 a 255.
Los tipos de datos son conceptos fundamentales de cualquier lenguaje de programación. Estos definen los métodos de almacenamiento disponibles para representar información, junto con la manera en que dicha información ha de ser interpretada.
d. Menciona dos reglas que consideras importantes para la elaborar un diagrama de flujo. P:2
1. Entender el problema: un modo de manejar un problema es la de imaginar el tipo de salida que debe producirse para distintas entradas posibles. Después determinar el tipo de proceso necesario para convertir la entrada en salida.
2. Encontrar un método de solución: esto es, diseñar un algoritmo que le permita definir los pasos que llevarán a la solución del problema.
3. Traducir el método a código de computadora: este paso es generalmente sencillo cuando se ha concretado un método paso a paso y se conoce la sintaxis del lenguaje de programación.
4. Probar y depurar: si la ejecución del programa no es la correcta, se deben encontrar y corregir los errores que contenga. Este proceso se llama depuración. Posteriormente debe ejecutarse el programa con una amplia variedad de entradas para verificar que la lógica del programa esté correcta.
e. Menciona dos tipos de software que sirvan como herramientas para introducir diagramas de flujo. P:2
1. Programa DFD
2. Programa WinEsquema 5.0
Nota: El primer punto vale 80% de la nota para 40 puntos y el segundo punto vale 20% de la nota para 10 puntos, un total de 50 puntos para 5 como nota.