2.2. algoritmos definición - metodología - ejemplos

19
UVM- COMPUTACIÓN 1. Ingeniería indusustrial. Ejercicios Propuestos - Facilitadora: MSc. María Sofía Molina NOMBRE DE LA ASIGNATURA COMPUTACIÓN 1 CARRERA INGENIERÍA INDUSTRIAL HORAS TEÓRICAS-HORAS PRÁCTICAS 2-4 PERIODO DE ELABORACIÓN 2013-B TOMADO Y ADAPTADO CON FINES INSTRUCCIONALES PARA LA UNIDAD 3 DE LA ASIGNATURA DE COMPUTACIÓN I 2DO SEMESTRE DE INGENIERÍA INDUSTRIAL PARA LA UNIVERSIDAD VALLE DEL MOMBOY Facilitadora: MSc. Ing. María Sofía Molina Molina 1

Transcript of 2.2. algoritmos definición - metodología - ejemplos

UVM- COMPUTACIÓN 1. Ingeniería indusustrial. Ejercicios Propuestos - Facilitadora: MSc. María Sofía Molina

NOMBRE DE LA ASIGNATURA

COMPUTACIÓN 1

CARRERA

INGENIERÍA INDUSTRIAL

HORAS TEÓRICAS-HORAS PRÁCTICAS

2-4

PERIODO DE ELABORACIÓN

2013-B

TOMADO Y ADAPTADO CON FINES INSTRUCCIONALES PARA LA UNIDAD 3 DE LA ASIGNATURA DE COMPUTACIÓN I 2DO SEMESTRE DE INGENIERÍA

INDUSTRIAL PARA LA UNIVERSIDAD VALLE DEL MOMBOY

Facilitadora:

MSc. Ing. María Sofía Molina Molina

1

UVM- COMPUTACIÓN 1. Ingeniería indusustrial. Ejercicios Propuestos - Facilitadora: MSc. María Sofía Molina

Lenguajes de programación1. Características de los programas................................................................................2. Diseño del programa.................................................................................................

- Fase de análisis- Fase de programación

EdiciónCompilaciónMontaje

- Fase de explotación y mantenimientoInstalaciónMantenimiento

3. Modelos de programación.........................................................................................- Secuencial- Estructurada- A objetos

4. Datos de la programación..........................................................................................- Numéricos- Lógicos- Alfanuméricos- Constantes y variables

5. Operadores................................................................................................................- Asignación- Aritméticos- Lógicos y relacionales

6. Sentencias de control.................................................................................................- Selección- Iteración

7. Anotaciones para diseño de algoritmos......................................................................- Diagramas de flujo- Pseudocódigo

1. LENGUAJES DE PROGRAMACIÓN

2

UVM- COMPUTACIÓN 1. Ingeniería indusustrial. Ejercicios Propuestos - Facilitadora: MSc. María Sofía Molina

Los programas se escriben mediante lenguajes de proramación que conducen a expresar el algoritmo (problema a resolver) de una forma ordenada y programada. Existen 3 tipos de lenguajes:

Lenguaje Máquina: Inteligibles por la máquina directamente, es decir que las ordenes escritas las procesa y realiza directamente la máquina. Estas instrucciones son cadenas binarias (0 y 1) que especifican las instrucciones a realizar y la memoria donde deben realizarse. Las instrucciones dependen directamente de la máquina donde se programan.

Lenguaje Ensamblador: Sus instrucciones son NEMONICOS que indican la acción a realizar y su dirección de memoria donde se ejecutan. La programación depende también de la máquina donde se programe. Más sencillos que los lenguajes máquina. La máquina no entiende directamente las ordenes y es necesario traducir las ordenes a través de un programa ensamblador. La construcción de los programas consta de 3 partes:

Lenguajes de Alto Nivel: Lenguajes creados a partir de ensamblador. Basan la programación en sentencias y funciones que realizan una operación ya implementada en la creación del lenguaje de programación. Este tipo de lenguajes son los más sencillos de leer y comprender. Son independientes de la máquina donde se programan. La máquina no puede entender directamente las sentencias y se necesita de un programa traductor y linkador para que la máquina pueda ejecutar las operaciones. Estos de lenguajes son Clipper, C, C++, Visual Basic, Pascal, Modula2, etc...

2. CARACTERÍSTICAS GENERALES DE UN PROGRAMA

3

Programa Fuente

Programa Traductor (ensamblador)

Programa Objeto

UVM- COMPUTACIÓN 1. Ingeniería indusustrial. Ejercicios Propuestos - Facilitadora: MSc. María Sofía Molina

Con el fin de facilitar la explotación y el mantenimiento de un programa, es fundamental reunir un conjunto de características generales para obtener su máximo rendimiento en el menor plazo de tiempo y esfuerzo. Estas características son:

LEGIBILIDAD: Un programa debe ser claro y sencillo para facilitar su lectura y comprensión a las personas ajenas al programador (autor) de la aplicación. De este modo existe la posibilidad de repartir las tareas de mantenimiento y explotación.

FIABILIDAD: Nuestra aplicación debe ser un programa "robusto". Es decir, capaz de recuperarse frente a errores o usos inadecuados por parte del usuario y controlar todo posible error que pueda producirse en las distintas operaciones que realicen los dispositivos que se utilizan en la aplicación.

PORTABILIDAD: El diseño de la aplicación debe permitir la codificación en diferentes lenguajes utilizando para ello un diseño único y universal, sin entrar en sentencias u operadores específicos de algún lenguaje en especial.

MODIFICABILIDAD: Debe ser fácil y posible su instalación en distintas máquinas. Facilitar al máximo su mantenimiento, modificación y actualización para adaptarlo o mejorarlo a nuevas situaciones. Por ejemplo efecto 2000. Este apartado se le denomina por el termino coloquial "parcheado".

EFICIENCIA: Aprovechar y no derrochar los recursos de la máquina. Esto lo conseguimos minimizando el uso de la memoria, el tiempo de proceso y el de ejecución. No debemos dejarnos llevar por los últimos y potentes máquinas que surgen día a día en el mercado. Siempre que podamos debemos pensar que disponemos de una máquina con pocos recursos.

3. DISEÑO DE UN PROGRAMA

Proceso que se sigue desde el planteamiento del problema o tarea, hasta que se tiene una solución instalada. Consta del estudio y diseño de cada una de las operaciones a realizar por la aplicación. En este proceso no es necesaria la utilización del ordenador. Todo diseño y análisis consta de diferentes fases, siendo 3 fundamentales en la realización de un buen plan de trabajo.

FASE DE ANALISIS

4

UVM- COMPUTACIÓN 1. Ingeniería indusustrial. Ejercicios Propuestos - Facilitadora: MSc. María Sofía Molina

Esta fase consiste en el examen y descripción detallada de cada uno de los aspectos y dispositivos que intervienen en la creación y explotación del programa. Debemos tener muy en cuenta los siguientes puntos:

Equipos informáticos Personal informatico (en creación y utilización) Estudio de datos de entrada Estudio de los resultados Relación entre salida / entrada

FASE DE PROGRAMACIÓN

Consiste en el diseño y desarrollo del algoritmo para la codificación de la aplicación. Como resultado del desarrollo obtenemos un conjunto de acciones (funciones) que serán traducidas por el compilador (proceso de compilación) y enlazas con las librerías (proceso de linkado) para poder ser realizadas por la máquina. Las partes de este desarrollo son entrada de datos, proceso de datos y salida. Por este orden sin posibilidad de modificación.

FASE DE EXPLOTACIÓN Y MANTENIMIENTO

Es el momento donde debemos ejecutar y probar la aplicación sucesivas veces con diferentes datos para asegurar su correcto funcionamiento. También comprobaremos el rendimiento optimo del programa. Esta fase comprende el mantenimiento de la aplicación a lo largo de su vida útil para poder adaptarlo ante cualquier circunstancia. Es decir, mejorar la aplicación añadiendo nuevas funciones o mejorando su rendimiento.

4. MODELOS DE PROGRAMACIÓN

Los modelos de programación es conocido también como metodología de la programación y consiste en los métodos y técnicas disciplinadas para desarrollar algoritmos cumpliendo con las características de los programas anteriormente expuestas. Existen 3 métodos:

SECUENCIAL: Modelo descendente, se base en una serie de descomposiciones sucesivas del algoritmo inicial que describen el repertorio de instrucciones que constituyen el programa. El programa quedara formado por una serie de módulos consecutivos que realizaran una parte del algoritmo.

ESTRUCTURADA: Programación basada en la secuencial añadiendo subrutinas y estructuras secuenciales, de iteración y selección consiguiendo un programa con módulos

5

UVM- COMPUTACIÓN 1. Ingeniería indusustrial. Ejercicios Propuestos - Facilitadora: MSc. María Sofía Molina

independientes y reutilizables desde cualquier parte del programa. Los lenguajes tienden a este tipo de programación.

A OBJETOS: Mismas características que los lenguajes estructurados, añadiendo nuevas funciones y mecanismos de trabajo, como los objetos (conjunto de variables y funciones), el encapsulamiento, el polimorfismo y la herencia. A través de estos lenguajes se consigue un mejor rendimiento de los programas y una mayor seguridad en el tratamiento de los datos. Los lenguajes de última generación tienden a ser orientados a objetos.

5. TIPOS DE DATO, VARIABLES Y CONSTANTES

Los datos u objetos en un programa son aquellos que son modificados por las instrucciones. Mediante ellos podremos realizar el almacenamiento y manipulación de la información que intervienen en el programa. Todos los datos u objetos tiene un identificador para referenciarlo, un tipo para indicar la información que puede tomar y valor que es la información que guardan. Los tipos de datos básicos son:

VARIABLES

TIPO VARIANTE VALORES EJEMPLO

NUMEROS

Decimal. cualquiera numero=14

Hexadecimal. 0 al 9 y letras A-Z numero=0x9

Octal. 0 al 7 numero=06

BOOLEANOS --- true / false

CADENAS

Texto. cualquier texto cad=”hola”

Caracteres Especiales

Retroceso.

Retorno de carro.

Movimientos de línea.

Espacios

. . .

Los objetos que están destinados a guardar esta información son las variables y constates. Las variables y constantes son posiciones de memoria destinadas a guardar información que como hemos comentado tienen un identificador y un tipo. La diferencia entre la variable y la constante, es que, la primera puede admitir y cambiar su valor a lo

6

UVM- COMPUTACIÓN 1. Ingeniería indusustrial. Ejercicios Propuestos - Facilitadora: MSc. María Sofía Molina

largo de un mismo programa mientras que las constantes tendrán un valor fijo durante toda la ejecución del programa y será imposible su modificación en tiempo de ejecución.

6. OPERADORES

ASIGNACIÓN

Es el signo "=". Se puede utilizar en cualquier expresión valida. A su lado izquierdo siempre tendrá una variable a la cual se le asigna el valor. A la derecha puede ser una expresión valida como una constate, un valor, una variable, una función, o cualquier expresión aritmética. Existe la posibilidad de realizar una asignación múltiple:

varible=valor;variable1=variable2=variableN=valor;

ARITMÉTICOS

Utilizados para realizar cualquier operación matemática. Este tipo de operadores se utilizan con variables numéricas o también para unir expresiones. En la siguiente tabla se muestran este tipo de operadores.

OPERADOR DESCRIPCIÓN ORDEN

- Resta. 3

+ Suma 3

* Multiplica 2

/ Divide 2

LOGICOS Y RELACIONALES

Ambos operadores se utilizan en las sentencias de control, fuera de este tipo de sentencias no tienen ninguna utilidad. Los Lógicos se utilizan para unir varias condiciones dando como resultado una única expresión. Los relacionales son utilizados para realizar

7

UVM- COMPUTACIÓN 1. Ingeniería indusustrial. Ejercicios Propuestos - Facilitadora: MSc. María Sofía Molina

comparaciones entre los objetos (variables, constantes, valores y funciones) de un programa.

OPERADORES RELACIONALES OPERADORES LÓGICOS

OPERADOR DESCRIPCIÓN ORDEN DESCRIPCIÓN ORDEN

< Menor que. 5 Y (AND) 10

> Mayor que. 5 O (OR) 11

<= Menor o igual. 5 NO (NOT) 1

>= Mayor o igual 5

= = Igual 6

--- Distinto 6

7. SENTENCIAS DE CONTROL

Mecanismo por el cual, los lenguajes de programación provocan que el flujo, avance y se ramifique en funcion de los datos que contienen sus objetos. Existen las sentencias de selección que ramifican el programa y las sentencias de iteración de realizan una repetición de un bloque de código mientras que una condición sea verdadera.

SELECCIÓN

Las sentencias de selección pueden ser simples o multiselección. En ambos casos la ejecución atraviesa un conjunto de estados bolean de determinan las acciones a realizar. El modo de ejecución de estas sentencias es comparar objetos para ver si la condición o condiciones se cumplen. La sentencia de multiselección suelen usarse cuando el rango de valores es conocido y no muy amplio. Las simples para cualquier caso de comparación.

SIMPLE

si condicion(es)=verdadero entonces

ACCIONACCION

8

UVM- COMPUTACIÓN 1. Ingeniería indusustrial. Ejercicios Propuestos - Facilitadora: MSc. María Sofía Molina

...sino

ACCIONACCION...

fin si

MULTISELECCION

si valor=const1 entoncesACCIONACCION

fin si

si valor=const2 entoncesACCIONACCION

fin si

si valor=const2 entoncesACCIONACCION

si noACCIONACCION

fin si

DE ITERACIÓN

Las sentencias de iteración repiten el bloque de código que tienen en su interior mientras la condición o condiciones de salida sean verdad. Existen dos tipos de iteración HASTA y MIENTRAS. Ambas pueden realizar las mismas operaciones. La utilización del primero suele coincidir que la condición de salida sea un valor límite y el segundo que su condición sea un valor determinado.

HASTA

repetir hasta valor

ACCION

9

UVM- COMPUTACIÓN 1. Ingeniería indusustrial. Ejercicios Propuestos - Facilitadora: MSc. María Sofía Molina

ACCIONfin repetir

MIENTRAS

repetir mientras condicion(es) = verdaderoACCIONACCION

fin repetir

8. AÑOTACIONES PARA EL DISEÑO DE ALGORITMOS

Es la representación gráfica del desarrollo del algoritmo. Esta representación nos ayudara a conocer la información que tenemos, donde la tenemos, que debemos hacer con ella y como presentarla. Esta representación debe tener las cualidades de sencillez, claridad y normalización en su diseño. Las normas para presentar los organigramas son:

El inicio y final del programa solo aparecen una vez. El camino se tomara de principio a fin de izquierda a derecha (en mismo nivel). No realizar cruces entre los distintos caminos. Para evitarlo usar los conectores. En la parte superior se encuentran los soportes de entrada. En la parte central estarán los procesos y operaciones a realizar. En la parte final se encontrara la salida de datos.

SIMBOLOGIA

DIAGRAMA DESCRIPCIÓN

10

UVM- COMPUTACIÓN 1. Ingeniería indusustrial. Ejercicios Propuestos - Facilitadora: MSc. María Sofía Molina

Establece el INICIO y el FIN.

Indica un PROCESO interno.

Introducción de datos por parte del usuario.

SALIDA de información POR PANTALLA.

Indica la continuidad de un diagrama. CONECTOR.

Volumen de DATOS.

Indica el SENTIDO del flujo

Especifica una bifurcación del flujo del programa. DECISIÓN.

SALIDA de información POR IMPRESORA.

Indica un proceso externo. SUBRUTINA.

SENTECIAS DE CONTROL

DIAGRAMA DESCRIPCIÓN

11

UVM- COMPUTACIÓN 1. Ingeniería indusustrial. Ejercicios Propuestos - Facilitadora: MSc. María Sofía Molina

Sentencia de ITERACIÓN.

Sentencia de SELECCIÓN simple. Con cláusula sino

Sentencia de SELECCIÓN múltiple. Con cláusula sino.

EJEMPLO 1: Realizar un programa para calcular el área de un rectángulo cuyos datos base y altura se leen del teclado y el resultado se visualizara en la pantalla. Se deberá realizar mediante diagramas y pseudocódigo.

12

UVM- COMPUTACIÓN 1. Ingeniería indusustrial. Ejercicios Propuestos - Facilitadora: MSc. María Sofía Molina

EJEMPLO 2: Realizar un programa que obtenga el sueldo neto de un trabajador cuyo sueldo base se obtiene por teclado y teniendo en cuenta que si ese sueldo es mayor a 150.000pts tiene una retención del 10%.

EJEMPLO 3: Realizar un programa que calcule la cuota de kilómetros de un visitador médico pidiendo los kilómetros por teclado. Sabiendo que se paga a 100pts si los kilómetros recorridos son menores o iguales a 200 y 150pts si el kilometraje es menor a 200.

13

INICIOINICIALIZAR VARIABLES

BASE<-0ALTURA<-0AREA<-0

INTRODUCIRBASEALTURA

PROCESO: AREA<-BASE*ALTURAVISUALIZAR AREA

FIN

INICIOINICIALIZAR VARIABLES

BASE<-0NETO<-0RETEN<-0

INTRODUCIRBASE

SI BASE > 150000RETEN<-SUELDO_BASE*10/100

FIN SINETO<- BASE-RETENVISUALIZAR NETO

FIN

UVM- COMPUTACIÓN 1. Ingeniería indusustrial. Ejercicios Propuestos - Facilitadora: MSc. María Sofía Molina

14

INICIOINICIALIZAR VARIABLES

KM<-0TOTAL<-0MAS200<-100MENOS 200<-150

INTRODUCIRKM

SI KM<=200TOTAL<-KM*150

SINOTOTAL<-KM*100

FIN SIVISUALIZAR TOTAL

FIN

UVM- COMPUTACIÓN 1. Ingeniería indusustrial. Ejercicios Propuestos - Facilitadora: MSc. María Sofía Molina

EJEMPLO 4: Realizar un programa donde nos calcule el dinero total a devolver cuando se pide un crédito bancario. Teniendo en cuenta el estado civil del usuario a la hora de pedir el crédito.

15

INICIOINICIALIZAR

VARIABLESPRESTADO<-0CIVIL<-0CASADO<-1SOLTERO<-2VIUDO<-3DIVORCIADO<-4SEPARADO<-5TOTAL<-0

INTRODUCIRPRESTADO,CIVIL

SI CIVIL=CASADO ENTONCESTOTAL=PRESTADO*CASADO

FIN SI

SI CIVIL=SOLTERO ENTONCESTOTAL=PRESTADO*SOLTERO

FIN SI

SI CIVIL=VIUDO ENTONCESTOTAL=PRESTADO*VIUDO

FIN SI

SI CIVIL=SEPARADO ENTONCESTOTAL=PRESTADO*SEPARADO

FIN SI

SI CIVIL=DIVORCIADOENTONCESTOTAL=PRESTADO*DIVORCIADO

SI NOTOTAL=0

FIN SI

VISUALIZAR TOTAL

FIN

UVM- COMPUTACIÓN 1. Ingeniería indusustrial. Ejercicios Propuestos - Facilitadora: MSc. María Sofía Molina

EJEMPLO 5: Realizar un programa que sume los valores que se van introduciendo por teclado mientras que el usuario no introduzca cero. Debemos ir mostrando el subtotal cada valor introducido.

16

INICIOINICIALIZAR VARIABLES

TOTAL<-0VALOR<-0

REPETIR HASTA VALOR=0

INTRODUCIR VALORTOTAL=TOTAL+VALORVISUALIZAR TOTAL

FIN REPETIR

VISUALIZAR TOTALFIN