Post on 21-Dec-2015
description
UNIVERSIDAD CATOLICA DE SANTA MARIAFACULTAD DE CIENCIAS E INGENIERÍAS FISICAS Y FORMALES
PROGRAMA PROFESIONALINGENIERIA MECÁNICA, MECÁNICA-ELECTRÍCA Y MECATRÓNICA
Página:1/13
Jefes de Prácticas:Ing. Juan Carlos CuadrosIng. Henry Zegarra Gago
Ing. Christian Collado OportoLaboratorio de Mecánica Computacional I
Tema: Algoritmos y Herramientas de ProgramaciónCódigo: 4E03017Semestre: IIIGrupo: FECHA:
Apellidos y Nombres: Lab. Nº: 02 16 al 20 MAR/2014
I. OBJETIVOS
Comprender las fases básicas en el proceso de resolución de problemas con computadora.
Comprender la necesidad del diseño de algoritmos en el estudio y resolución de programas.
Identificar la forma de elaborar algoritmos y su aplicación para la solución de problemas determinados.
Utilizar correctamente las reglas para la construcción de identificadores.
II. MARCO TEORICO
Fases en la resolución de problemas por computadora:
El proceso de resolución de un problema con una computadora conduce a la escritura de un programa y a su
ejecución en la misma. Aunque el proceso de diseñar programas es esencialmente creativo, podemos considerar
una serie de fases o pasos comunes, a saber:
• Análisis del problema
– El problema se analiza teniendo presente las especificaciones y los requisitos dados.
• Diseño del algoritmo
– Analizado el problema se diseña una solución que conducirá a un algoritmo que resuelva el
problema.
• Codificación (Implementación)
– La solución se escribe en la sintaxis del lenguaje de programación de alto nivel obteniéndose el
programa.
La resolución de un programa con una computadora se hace escribiendo un programa, que exige al menos los
siguientes pasos:
1. Definición o análisis del problema
2. Diseño del algoritmo
3. Transformación del algoritmo en un programa
4. Ejecución y validación del programa
Algoritmo
Un algoritmo es un método para resolver un problema. Describe la solución de un problema computacional,
mediante una serie de pasos precisos, definidos y finitos.
Los pasos para la resolución de un problema mediante un algoritmo son:
1. Diseño del algoritmo, que describe la secuencia ordenada de pasos.
2. Expresar el algoritmo como un programa.
3. Ejecución y validación del programa por la computadora.
Laboratorio de Mecánica Computacional I Página: 2/13
Tema: Algoritmos y Herramientas de Programación LAB N° 2 JP: Ings.JCC-HZG -CCO
• Sin algoritmo no puede existir un programa
• Los algoritmos son independientes del lenguaje de programación.
• Los algoritmos son independientes de la computadora que los ejecuta.
• Los algoritmos son más importantes que los lenguajes de programación o las computadoras.
La solución de un algoritmo debe describir tres partes:
1. Entrada: datos que se necesita para poder ejecutarse.
2. Proceso: Acciones y cálculos a realizar.
3. Salida: Resultado esperado.
Características obligatorias de los Algoritmos
• Preciso à indicar el orden de realización de cada paso.
• Definido à si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
• Finito à si se sigue un algoritmo, se debe terminar en algún momento (debe tener un número finito de pasos)
Características aconsejables para los Algoritmos
• Validez à un algoritmo es válido si carece de errores. Un algoritmo puede resolver un problema para el que
se planteó y sin embargo no ser válido debido a que posee errores.
• Eficiencia à un algoritmo es eficiente si obtiene la solución del problema en poco tiempo. No lo es si es lento
en obtener el resultado.
• Óptimo à Un algoritmo es óptimo si es el más eficiente posible y no contiene errores. La búsqueda de este
algoritmo es el objetivo prioritario del programador.
Fases en la creación de algoritmos
Problema
Diseño del Algoritmo
Programa de Computadora
Entrada Proceso Salida
Laboratorio de Mecánica Computacional I Página: 3/13
Tema: Algoritmos y Herramientas de Programación LAB N° 2 JP: Ings.JCC-HZG -CCO
Hay tres fases en la elaboración de un algoritmo:1. Análisis: En esta fase se determina cuál es exactamente el problema a resolver; que datos forman la entrada
del algoritmo y cuáles deberán obtenerse como salida.
2. Diseño: Elaboración del algoritmo.
3. Prueba: Comprobación del resultado. Se observa sis el algoritmo obtiene la salida esperada para todas las
entradas.
Diseño del Algoritmo
Podemos adoptar dos etapas bien definidas en el diseño de nuestro algoritmo:
• Diseño descendente (top-down design): consiste en la descomposición del problema original en sub-
problemas más simples y a continuación dividir estos sub-problemas en otros más simples.
• Refinamiento del algoritmo (stepwise refinement): Tras el diseño descendente, se amplía la descripción
hecha en una descripción más detallada con pasos más específicos.
Ejemplo: Cálculo de la circunferencia y superficie de un circulo.
Ventajas del diseño descendente
• El problema se comprende más fácilmente al dividirse en partes más simples denominadas módulos.
• Las modificaciones en los módulos son más fáciles.
• La comprobación del problema se puede verificar fácilmente.
Laboratorio de Mecánica Computacional I Página: 4/13
Tema: Algoritmos y Herramientas de Programación LAB N° 2 JP: Ings.JCC-HZG -CCO
Escritura de Algoritmos
Algoritmo narrado: El sistema para escribir (“describir”) un algoritmo, consiste en realizar una descripción paso a
paso con un lenguaje natural del citado algoritmo.
Un algoritmo es un conjunto de reglas para solucionar un problema. Estas reglas tienen las siguientes
propiedades:
• Deben estar seguidas de alguna secuencia definida de pasos.
• Solo puede ejecutarse una operación a la vez. (¡Importante!)
Diagramas de Flujo: Es una representación gráfica que utiliza símbolos normalizados por ANSI, y expresa las
sucesivas instrucciones que se debe realizar para resolver el problema. Estas instrucciones no dependen de la
sintaxis de ningún lenguaje de programación, sino que debe servir fácilmente para su transformación (codificación)
en un lenguaje de programación.
Algunos símbolos empleados en Diagramas de Flujo.
Indica el inicio y el final de nuestro diagrama de flujo.
Indica la entrada y salida de datos.
Símbolo de proceso y nos indica la asignación de un valor en la memoria
y/o la ejecución de una operación aritmética.
Símbolo de decisión indica la realización de una comparación de valores.
Conector dentro de página. Representa la continuidad del diagrama
dentro de la misma página.
Conector fuera de página. Representa la continuidad del diagrama en
otra página.
Diseño
Diseño descendente Refinamiento Representación
Diagrama de flujo Pseudocódigo Diagrama N-S
Laboratorio de Mecánica Computacional I Página: 5/13
Tema: Algoritmos y Herramientas de Programación LAB N° 2 JP: Ings.JCC-HZG -CCO
Indica la salida de información por impresora
Indica la salida de información en la pantalla o Monitor.
Símbolo de repetición.
Líneas de flujo o dirección. Indican la Secuencia en que se realizan las
operaciones.
Algunas recomendaciones para el diseño de Diagramas de Flujo son:
1. Se deben de usar solamente líneas de flujo horizontal y/o vertical.
2. Se debe evitar el cruce de líneas utilizando los conectores.
3. Se deben usar conectores solo cuando sea necesario.
4. No deben quedar líneas de flujo sin conectar.
5. Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha.
6. Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas palabras.
Instrucciones: Son las acciones que debe realizar un algoritmo para resolver un problema. Las instrucciones más
comunes son las siguientes:
Instrucción de inicio/fin: representa el inicio y el fin de un algoritmo.
Diagrama de Flujo Pseudocódigo
Inicio
Fin
Instrucción de asignación: representa la asignación de un valor a una variable, se puede representar usando
una flecha o el símbolo de igualdad, que es el símbolo empleado por muchos lenguajes de programación.
Diagrama de Flujo Pseudocódigo
N 10
Inicio
Fin
Laboratorio de Mecánica Computacional I Página: 6/13
Tema: Algoritmos y Herramientas de Programación LAB N° 2 JP: Ings.JCC-HZG -CCO
N = 10
Instrucción de lectura: representa el ingreso de datos mediante un dispositivo de entrada, que muchas veces
es representado por un símbolo de teclado.
Diagrama de Flujo Pseudocódigo
Leer N
Leer N
Instrucción de escritura: representa la salida de información mediante un dispositivo de salida, puede ser
representado por el símbolo de entrada/salida, por el símbolo de pantalla o impresora.
Diagrama de Flujo Pseudocódigo
Escribir R
Escribir R
Escribir R
N 10
N = 10
Leer N
Leer N
Escribir R
Escribir R
Escribir R
Laboratorio de Mecánica Computacional I Página: 7/13
Tema: Algoritmos y Herramientas de Programación LAB N° 2 JP: Ings.JCC-HZG -CCO
Pseudocódigo: Mezcla de lenguaje de programación y español que se emplea, dentro de la programación
estructurada, para realizar el diseño de un programa. En esencia, el pseudocódigo se puede definir como un
lenguaje de especificaciones de algoritmos. Es la representación narrativa de los pasos que debe seguir un
algoritmo para dar solución a un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a
realizar. Entonces, todo pseudocódigo debe posibilitar la descripción de:
- Instrucciones de entrada y salida
- Instrucciones de proceso.
- Sentencias de control del flujo de ejecución.
- Acciones compuestas a refinar posteriormente
Identificadores: Son los nombres que utiliza el programador para referenciar los datos y otros elementos del
programa (constantes simbólicas, variables, funciones y procedimientos u otros objetos que manipulan el
algoritmo), permitiendo así su definición en una posición de la memoria del ordenador.
La regla para construir un identificador establece que:
- Debe resultar significativo. Es decir, el nombre asignado debe tener relación con la información que contiene,
pudiéndose emplear abreviaturas que sean significativas.
- No podrá coincidir con palabras reservadas, propias del lenguaje algorítmico.
- La longitud no debe ser excesivamente larga. De todos modos, el número máximo de caracteres que se
pueden emplear dependen del compilador utilizado.
- Comenzará siempre por un carácter alfabético y los siguientes podrán ser letras, dígitos o el símbolo de
subrayado. Sólo se permitirán los caracteres alfabéticos correspondientes a los códigos ASCII menores de
127.
- No deben contener espacios.
- Según el lenguaje de programación podrá ser utilizado indistintamente o no, en mayúsculas o en minúsculas.
- Podremos utilizar nombres completos o abreviaturas
III. MATERIAL Y EQUIPO
- Una PC con SO Windows XP, Internet
IV. PROCEDIMIENTO
1. Algoritmos narrados
1.1. Escribir un algoritmo narrado para asistir a clases a la UCSM:
1. Levantarse2. Bañarse3. Vestirse4. Desayunar5. Cepillarse los dientes
Laboratorio de Mecánica Computacional I Página: 8/13
Tema: Algoritmos y Herramientas de Programación LAB N° 2 JP: Ings.JCC-HZG -CCO
6. Salir de casa7. Tomar el autobús8. Llegar a la universidad.9. Buscar el aula10. Ubicarse en un asiento
1.2. Escribir un algoritmo narrado para cambiar un vidrio roto de una ventana
1.ventana rota.2.recoger restos.3.limpiar partículas de vidro.4.botar restos.5.comprar ventana nueva.6.comprar pegamento de ventana.7.colocar ventana en posición.8.colocar pegamento en vntana.9.limpiar empañadura de vidrio.10.guardar demás accseorios.
2. Pseudocódigo
2.1. Elabore el pseudocódigo para calcular e imprimir el área de un triángulo.
1. Iniciar el proceso.2. Declarar variables: H (Altura), B (Base), A (Área).3. Mostrar “Ingresar base y altura”4. Leer B y H5. Hacer: A = (B*H)/26. Escribir A7. Finalizar proceso.
2.2. Elabore el pseudocódigo para que dado el valor de venta de un producto, hallar el IGV (19%) y el precio
de venta
Laboratorio de Mecánica Computacional I Página: 9/13
Tema: Algoritmos y Herramientas de Programación LAB N° 2 JP: Ings.JCC-HZG -CCO
3. Diagramas de flujo:
3.1. Realizar el diagrama de flujo del pseudocódigo del problema 2.1
Laboratorio de Mecánica Computacional I Página: 10/13
Tema: Algoritmos y Herramientas de Programación LAB N° 2 JP: Ings.JCC-HZG -CCO
3.2. Realizar el diagrama de flujo del pseudocódigo del problema 2.2
Laboratorio de Mecánica Computacional I Página: 11/13
Tema: Algoritmos y Herramientas de Programación LAB N° 2 JP: Ings.JCC-HZG -CCO
Laboratorio de Mecánica Computacional I Página: 12/13
Tema: Algoritmos y Herramientas de Programación LAB N° 2 JP: Ings.JCC-HZG -CCO
4. Pseudocódigo y diagrama de flujo
4.1. Diseñe un algoritmo que permita el cálculo del área de un triángulo dados sus tres lados, según la
fórmula siguiente:
A=√S∗(S−L1 )∗(S−L2 )∗(S−L3 )
donde:
S=(L1+L2+L3)
2
Escriba su algoritmo en pseudocódigo y dibuje su diagrama de flujo.
Laboratorio de Mecánica Computacional I Página: 13/13
Tema: Algoritmos y Herramientas de Programación LAB N° 2 JP: Ings.JCC-HZG -CCO
V. CUESTIONARIO FINAL
1. Escriba un algoritmo narrado para medir exactamente cuatro litros de agua si solo están disponibles baldes de
cinco litros y tres litros.
2. Diseñar un algoritmo que lea cuatro variables y calcule e imprima su producto, suma y media aritmética.
Escriba su algoritmo en forma de pseudocódigo y dibuje su diagrama de flujo.
VI. OBSERVACIONES Y CONCLUSIONES
Emita al menos tres conclusiones en torno al trabajo realizado
1. ________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
2. ________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
3. ________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
Haga sus observaciones en torno al trabajo realizado (si es que las tuviera).
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________