35
UNIVERSIDAD TECNOLÓGICA DEL CHOCÓ FACULTAD DE INGENIERÍA PROGRAMA DE TELEINFORMÁTICA ASIGNATURA: Lógica de Programación Docente MARTHA IMELDA LUNA LÓPEZ Ing. De Sistemas U. Eafit Esp. En Derecho de las Telecomunicaciones

Unidad Iii Generalidades Sobre Algoritmos

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Unidad Iii Generalidades Sobre Algoritmos

UNIVERSIDAD TECNOLÓGICA DEL CHOCÓFACULTAD DE INGENIERÍA

PROGRAMA DE TELEINFORMÁTICA

ASIGNATURA: Lógica de Programación

DocenteMARTHA IMELDA LUNA LÓPEZ

Ing. De Sistemas U. EafitEsp. En Derecho de las Telecomunicaciones

Page 2: Unidad Iii Generalidades Sobre Algoritmos

Unidad N. III

Generalidades sobre algoritmos

y programas y programas

Objetivo:

Introducir a los estudiantes en el tema de algoritmos como una herramienta de

interpretación de un problema real.

Page 3: Unidad Iii Generalidades Sobre Algoritmos

INTRODUCCIÓN

La principal razón para que las personas aprendan lenguajes y técnicas deprogramación es utilizar el computador como una herramienta para resolverproblemas.

La resolución de un problema 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.

Page 4: Unidad Iii Generalidades Sobre Algoritmos

PROBLEMA

Los problemas son una serie de inquietudes que se plantean para ser resueltas.La naturaleza de los problemas varía con el contexto en que se presenta:problemas matemáticos, químicos, filosóficos, etc.

Es importante que al tratar un problema se tenga una descripción simple yprecisa del mismo, de lo contrario resultaría complejo tratar de simular, oprogramar su solución en un computador.programar su solución en un computador.

Un programador es una persona que resuelve problemas, y para llegar a ser unprogramador eficaz se necesita aprender a resolver problemas de un modoriguroso y sistemático.

ProblemaDiseño Algoritmo

ProgramaAnálisis

Page 5: Unidad Iii Generalidades Sobre Algoritmos

ALGORITMO

Serie de pasos lógicos y ordenados con los cuales le damos solución a unproblema determinado o a un objetivo específico. Sin algoritmos no puedeexistir un programa. Los algoritmos son independientes tanto del lenguaje deprogramación como del computador que los ejecuta.

La palabra “Algoritmo” viene de un matemático persa que vivió en el siglo IX llamado Mohammed Al-Khowârizî, cuyo apellido traducido al latín es Algorismus.

Características de un algoritmo:

• Preciso: indicar el orden de realización de las instrucciones.• Definido: si se sigue el algoritmo dos veces, se debe obtener el mismoresultado.• Finito , siempre debe terminar despues de un número finito de pasos.

Ej. Obtener el área de un rectángulo.1. Obtener la medida de la base del rectángulo2. Obtener la medida de la altura del rectángulo3. Multiplicar la medida de la base por la medida de la altura.

Page 6: Unidad Iii Generalidades Sobre Algoritmos

ALGORITMO

Ejemplo tradicional de un algoritmo: Cambiar la llanta pinchada de un carro.

1. Buscar herramientas, llanta de repuesto ytriángulo de señalización

2. Ubicar el triángulo en el lugar adecuado3. Ir al lugar de la llanta averiada4. Sacar las tuercas4. Sacar las tuercas5. Colocar el gato6. Levantar el carro7. Sacar la llanta8. Colocar la llanta de Repuesto9. Colocar las tuercas10. Apretar las tuercas11. Guardar las herramientasFIN

Page 7: Unidad Iii Generalidades Sobre Algoritmos

FASES DE UN ALGORITMO

Fase de Análisis: consiste en el estudiodetallado del problema con el fin deobtener una serie de documentos(especificación) en los cuales quedantotalmente definido el proceso a seguir enla automatización

Algoritmo PRUEBA

Inicio

Variables

A,B,C: entero

Diseño: consiste en la realización delalgoritmo que resuelve el problema deacuerdo a la especificación dada en la faseanterior. El algoritmo se representamediante pseudocódigo.

Codificación: consiste en la traducción delalgoritmo a un programa escrito en unlenguaje de programación

A,B,C: entero

Leer(A,B)

C�A+B

Escribir (C)

Fin

Page 8: Unidad Iii Generalidades Sobre Algoritmos

………FASES DE UN ALGORITMO

Compilación/Interpretación: consiste en obtener el programa ejecutable uobjeto a partir del programa fuente.

Programa fuentePrograma ejecutable

Page 9: Unidad Iii Generalidades Sobre Algoritmos

………FASES DE UN ALGORITMO

Prueba: consiste en determinar si el programa funciona correctamente y realizalas operaciones que esperamos de él.

Programa ejecutable Aplicación

Page 10: Unidad Iii Generalidades Sobre Algoritmos

SEUDOCODIGO

Serie de instrucciones abstractas que resuelven un problema. Es unaherramienta útil para el seguimiento de la lógica de un algoritmo, facilita latranscripción a un lenguaje de programación. Con el seudocódigo representamoslos pasos de un algoritmo a través de palabras, utilizando una nomenclaturaestandarizada para el significado de cada paso.

Ej. Obtener el área de un rectángulo.

1. Inicio2. Leer BASE3. Leer ALTURA4. AREA = BASE * ALTURA5. Escribir AREA6. Fin

Page 11: Unidad Iii Generalidades Sobre Algoritmos

LENGUAJES DE PROGRAMACIÓN

Lenguaje: conjunto de reglas y convenciones que se utilizan para comunicarinformación.

Lenguaje de Programación: es un lenguaje que permite la traducción de unalgoritmo para que sea entendible por el computador. Son los lenguajes utilizadospara escribir programas de computadores.

Tipos de Lenguaje de Programación:

�Lenguaje de Máquina

�Lenguaje de Bajo Nivel (Ensamblador)

�Lenguaje de Alto Nivel

Page 12: Unidad Iii Generalidades Sobre Algoritmos

Son aquellos que están escritos en lenguaje directamente inteligibles porla máquina, ya que sus instrucciones son cadenas binarias (0’s ,1’s) que especificanuna operación.

Las instrucciones en lenguaje máquina dependen del Hardware de lacomputadora, difiere de una PC a otra.

La ventaja de los lenguajes máquina es que ofrecen mayor velocidad de

LENGUAJE DE MÁQUINA

La ventaja de los lenguajes máquina es que ofrecen mayor velocidad deejecución.

Existen algunas desventajas: dificultad y lentitud en la codificación, poca fiabilidad,los programas no son portables.

11001010 00010111 11110101 0010101100010111 11110101 00101011 0010101111001010 00010111 11110101 0010101111001010 11110101 00101011 0010101111001010 00010111 11110101 0010101100010111 11110101 00101011 0010101111001010 11110101 00101011 00101011

Page 13: Unidad Iii Generalidades Sobre Algoritmos

Son lenguajes que permiten escribir programas con instruccionessimilares al lenguaje humano.

Son más fáciles de utilizar que los lenguajes de máquina, pero éstostambién dependen de la máquina en particular.

El mejor ejemplo es el lenguaje ensamblador

LENGUAJE DE BAJO NIVEL

El mejor ejemplo es el lenguaje ensamblador

Un programa escrito en lenguaje ensamblador requiere una fase detraducción

Entre las desventajas tenemos: que este lenguaje depende de lamáquina y demanda una mayor exigencia para los programadores, yaque deben conocer tanto las técnicas de programación así como elinterior de la máquina.

Page 14: Unidad Iii Generalidades Sobre Algoritmos

; HOLA.ASMSTACK SEGMENT STACK ; Segmento de pila

DW 64 DUP (?) ; Define espacio en la pilaSTACK ENDS

DATA SEGMENT ; Segmento de datosSALUDO DB "Hola mundo!!",13,10,"$" ; CadenaDATA ENDS

Ejemplo Lenguaje Ensamblador

INICIO: ; Punto de entrada al programaMOV AX,DATA ; Pone dirección en AXMOV DS,AX ; Pone la dirección en los registrosMOV DX,OFFSET SALUDO ; Obtiene dirección del mensajeMOV AH,09H ; Función: Visualizar cadenaINT 21H ; Servicio: Funciones alto nivel DOSMOV AH,4CH ; Función: TerminarINT 21H

CODE ENDSEND INICIO ; Marca fin y define INICIO

Page 15: Unidad Iii Generalidades Sobre Algoritmos

Son los más utilizados por los programadores

Son independientes de la máquina

Los programas escritos en estos lenguajes son portables

Aumento de la ocupación de la memoria

LENGUAJE DE ALTO NIVEL

Las estructuras de los programas se basan en reglas sintácticas

Ejemplos: C, C++, Pascal, Ada, Prolog, Smalltalk, Visual Basic, Delphi,Java,...

Ejemplo de lenguaje de alto nivel

#include <stdio.h>

int main(void){

printf("Hola, Mundo\n");}

Page 16: Unidad Iii Generalidades Sobre Algoritmos

Hacer un procedimiento que describa los pasos para cambiar una bombillaquemada.

Hacer un procedimiento que describa los pasos para ir al cine

Hace un procedimiento para cambiar la llanta pinchada de una bicicleta.

EJERCICIOS PROPUESTOS

Hace un procedimiento para cambiar la llanta pinchada de una bicicleta.

Page 17: Unidad Iii Generalidades Sobre Algoritmos

ALGORITMO CAMBIAR UNA BOMBILLA QUEMADA.

INICIO1. Buscar una bombilla nueva2. Buscar una escalera o similar3. Ir al lugar de la bombilla quemada4. Instalar la escalera4. Instalar la escalera5. Subir a la escalera6. Sacar la bombilla quemada7. Colocar la nueva bombilla8. Ajustar la bombilla9. Bajarse de la escalera10. Probar la bombilla instalada11. Retirar la escalera12. Votar la bombilla quemada13. Guardar la escaleraFIN

Page 18: Unidad Iii Generalidades Sobre Algoritmos

ALGORITMO PASOS PARA IR AL CINE

INICIO1. Revisar la cartelera de cine2. Seleccionar la película de mi interés3. Seleccionar el horario de mi interés4. A la hora adecuada, desplazarme hasta el4. A la hora adecuada, desplazarme hasta el

cine5. Hacer la fila para comprar boletos6. Comprar los boletos7. Hacer la fila para entrada a la sala8. Entrar a la sala9. Buscar mi puesto asignado10. Ubicarme en el puesto asignado11. Disfrutar de la películaFIN

Page 19: Unidad Iii Generalidades Sobre Algoritmos

ALGORITMO CAMBIAR LA LLANTA PINCHADA DE UNA BICICLETA.

INICIO1. Buscar las herramientas2. Voltear la bicicleta3. Quitar las tuercas o remaches4. Quitar llanta pinchada4. Quitar llanta pinchada5. Sacar el neumático6. Buscar el escape de aire7. Parcharlo8. Instalar el neumático en la llanta9. Inflar el neumático10. Poner llanta nuevamente11. Volver a colocar los remaches o tuercas12. Voltear la bicicleta13. Guardar las herramientasFIN

Page 20: Unidad Iii Generalidades Sobre Algoritmos

Algoritmos para ser ejecutados por personasPara que un algoritmo sea ejecutado por una persona, debe estar escrito de

tal manera que esta persona lo entienda claramente

Normas:

• Debe escribirse en el idioma de la persona que realizará el algoritmo

CLASIFICACION DE LOS ALGORITMOS

• Debe escribirse en el idioma de la persona que realizará el algoritmo• Debe enumerar cada uno de los pasos a realizar en un orden lógico. • Debe utilizar palabras que comprenda claramente la persona que realizará el algoritmo.

Ejemplos: Las recetas de cocina, los manuales de funcionamiento,itinerarios, guía de matricula etc.

Page 21: Unidad Iii Generalidades Sobre Algoritmos

Algoritmos para ser ejecutados por computadores. Los pasos para la solución de un problema utilizando como herramienta la computadora son :

1. Diseño del algoritmo que describa la secuencia ordenada de pasos, que conducen a la solución de un problema dado(análisis del problema y desarrollo del algoritmo).

2. Expresar el algoritmo como un programa en un lenguaje de programación

CLASIFICACION DE LOS ALGORITMOS

2. Expresar el algoritmo como un programa en un lenguaje de programación adecuado( fase de codificación). La actividad de expresar un algoritmo en forma de programa se denomina programación.

3. Ejecución y validación de programa por la computadora.

Page 22: Unidad Iii Generalidades Sobre Algoritmos

INICIO

FIN

Una de las características de los algoritmos es que deben ser finitos. Sedebe indicar claramente donde inicia y donde termina.Para indicar donde comienza nuestro algoritmo vamos a utilizar la palabraINICIO y para indicar donde se termina nuestro algoritmo vamos a utilizar las

PARTES DE UN ALGORITMO

INICIO y para indicar donde se termina nuestro algoritmo vamos a utilizar laspalabras FIN PROGRAMA.

ejemplo:

Inicio

Fin Programa

Page 23: Unidad Iii Generalidades Sobre Algoritmos

Los datos son una parte muy importante en un algoritmo, pues son ellos elpunto de partida y son ellos quienes sufren las transformaciones que daránlos resultados deseados. Por esta razón el algoritmo debe guardar losdatos en un sitio donde los pueda leer y modificar cada vez que lorequiera. El sitio donde el algoritmo guarda los datos se llama ESPACIODE MEMORIA y el tamaño de estos dependen del tipo de dato que sequiera guardar en ellos.

DECLARACIÓN DE VARIABLES

quiera guardar en ellos.

Además si se tienen varios datos se debe tener la posibilidad dediferenciarlos de una manera que no se presenten confusionesasignándoles un identificador válido y único a estos espacios de memoria.

Un espacio de memoria se denomina VARIABLE cuando su contenidopuede variar en el tiempo y CONSTANTE cuando no se permite que sucontenido cambie.

Page 24: Unidad Iii Generalidades Sobre Algoritmos

Lo primero que se hace en al algoritmo es declarar las variables.

Donde se separan los espacios de memoria del tamaño indicado según el tipo de dato que guardarán y asignándoles un nombre o identificador válido, con el cual nos referiremos a la información que se guarda en dicho espacio de memoria.

DECLARACIÓN DE VARIABLES

Para declarar las variables se hará de la siguiente forma:

tipo de dato: identificador, identificador

• Primero se coloca el tipo de dato según la información que se guardará en los espacios de memoria a crear.• dos puntos ' : ' • una lista de identificadores válidos separados por coma

Page 25: Unidad Iii Generalidades Sobre Algoritmos

lLos tipos de datos a utilizar en nuestros algoritmos son: 1. numéricos: para hacer cálculos matemáticos y pueden ser de dos tipos así:

1. ENTERO: cuando el número no tiene parte decimal (ejemplo: 4 , 5 , 7, 97). 2. REAL: cuando el número consta de una parte entera y una parte decimal (ejemplo: 2.33 , 4.59 , 5.0 ).

TIPOS DE DATOS

decimal (ejemplo: 2.33 , 4.59 , 5.0 ). 2. CARACTER: contiene un solo símbolo y esta delimitado por comillas sencillas y puede ser:

1. Caracteres alfanuméricos ('A', 'B', …, 'Z') 2. Caracteres numéricos('1', '2', …'0') 3. Caracteres especiales ('+', '-', '*', '/', ',' '.', '<' ,'>', '$', ….)

3. CADENA(string): es una sucesión de caracteres que se encuentran delimitados por doble comilla. se utilizan para guardar información como el nombre de una persona, el color preferido etc. (ejemplos: " león ", "Maria", "azul", "rojo"). se utilizan para mostrar mensajes. 4. LOGICOS (booleanos): es aquel dato que sólo puede tomar uno de dos valores: verdadero(true) o falso (false).

Page 26: Unidad Iii Generalidades Sobre Algoritmos

Para diferenciar los espacios de memoria se les asigna un identificadorque debe ser único (no se permiten dos espacios de memoria con elmismo identificador). Además un identificador es válido si esta formadocon letras, dígitos y el carácter de subrayado, pero teniendo en cuentaque el primer carácter debe ser una letra. también es recomendable queel nombre del espacio de memoria indique el significado de la informaciónque contiene.La siguiente lista muestra una serie de identificadores válidos:· x

IDENTIFICADORES VÁLIDOS

· x · y · x1 · y1 · suma · contador · mayor · menor · promedio · mayor_promedio· menor_1 · porcentaje

Page 27: Unidad Iii Generalidades Sobre Algoritmos

ENUNCIADO:Hacer un algoritmo que declare una variable para guardar el nombre deun deportista, otra para guardar el número de intentos en la prueba de100 metros planos y otra para guardar el menor tiempo registrado.

EXPLICACION DEL ALGORITMOSe declara la variable NOMBRE, de tipo cadena para guardar el nombredel deportista.

EJEMPLO Declaración de variables

del deportista.Como la cantidad de intentos es un entero, se define la variableINTENTOS de tipo entero.Como la medición del tiempo puede tener parte decimal, se define lavariable TIEMPO de tipo real.Inicio

Cadena: NOMBREEntero: INTENTOSReal: TIEMPO

Fin programa

Page 28: Unidad Iii Generalidades Sobre Algoritmos

1. Hacer un algoritmo que declare una variable para guardar el número demeses del año y otra variable para guardar el porcentaje de meses quetienen 30 o 31 días.2. Hacer un algoritmo que declare una variable para guardar el número dehoras de estudio, y otra para guardar el nombre.3. Hacer un algoritmo que declare una variable para guardar cuantasmaterias se han perdido en el semestre y otra para guardar el porcentajede materias ganadas.4. Hacer un algoritmo que declare una variable para guardar el promedio

PROBLEMAS PROPUESTOS

4. Hacer un algoritmo que declare una variable para guardar el promediodel semestre, otra para guardar el nombre de un estudiante y otra paraguardar el número de notas perdidas.5. Hacer un algoritmo que declare una variable para guardar el nombre deuna persona, otra para guardar la comida preferida y otra para guardar lacantidad de dinero que posee.6. Hacer un algoritmo que declare una variable para guardar el nombre deun animal, otra para guardar la comida preferida y otra para guardar lacantidad de patas que tiene.7. Hacer un algoritmo que declare una variable para guardar el nombre deun deportista, otra para guardar la distancia recorrida y otra para guardarla cantidad de intentos.

Page 29: Unidad Iii Generalidades Sobre Algoritmos

Cuando un algoritmo requiera que el usuario ingrese datos, se utilizará lainstrucción LEER y entre paréntesis la lista de variables donde seguardarán los datos ingresados por el usuario.

leer(identificador1, identificador2)

de esta forma se podrá tener la siguiente instrucción:

ENTRADA DE DATOS

leer( X, Y, Z)

donde se le pide al usuario que entre tres datos

•el primero de los cuales se guarda en el espacio de memoria que tieneidentificador X,•el segundo se guardará en el espacio de memoria que tiene identificadorY• y el tercero se guardará en el espacio de memoria que tiene identificadorZ.

Page 30: Unidad Iii Generalidades Sobre Algoritmos

ENUNCIADO:

Hacer un algoritmo que lea el nombre y la edad de una persona.

VARIABLES: los datos de entrada son :

NOMBRE: para guardar el nombre de la persona (tipo cadena)EDAD: para guardar la edad de la persona, como en el enunciado no loespecifican lo tomaremos de tipo entero.

EJEMPLO Entrada de Datos|

especifican lo tomaremos de tipo entero.

EXPLICACION DEL ALGORITMOPrimero se definen las variables requeridas y luego se le pide al usuarioque ingrese los datos.

InicioCadena: NOMBREEntero: EDADLeer ( NOMBRE, EDAD)

Fin Programa

Page 31: Unidad Iii Generalidades Sobre Algoritmos

1. Hacer un algoritmo que lea el número de meses del año y la cantidadde meses que se trabajan.

2. Hacer un algoritmo que lea el nombre de una persona y número dehoras que estudia en la semana.

3. Hacer un algoritmo que lea el nombre de un estudiante, la cantidad dematerias perdidas y el porcentaje de materias ganadas.

PROBLEMAS PROPUESTOS

4. Hacer un algoritmo que lea el nombre de un estudiante, el promediodel semestre y el número de notas perdidas.

5. Hacer un algoritmo que lea el nombre de una persona, la comidapreferida y la cantidad de dinero que posee.

6. Hacer un algoritmo que lea el nombre de un animal, la comidapreferida y la cantidad de patas que tiene.

7. Hacer un algoritmo que lea el nombre de un deportista, la distanciarecorrida y la cantidad de intentos.

Page 32: Unidad Iii Generalidades Sobre Algoritmos

Si el algoritmo requiere mostrar la información que tiene guardada envariables (espacio de memoria) hacia el exterior(para el usuario final ), seutilizará la instrucción MOSTRAR y entre paréntesis la lista de variablesdonde se guardan los datos que se quieren mostrar.

Mostrar( identificador1, identificador2, identificador 3)

La instrucción siguiente mostrará al usuario la información que se tiene

SALIDA DE DATOS

La instrucción siguiente mostrará al usuario la información que se tieneguardada en la variables X, Y y Z.

MOSTRAR ( X, Y, Z)

también se puede pasar información directamente (que no esta guardadaen variables) para construir mensajes de la siguiente manera:

MOSTRAR (" hola como estas ", 123, X)

el anterior mensaje mostrará al usuario un mensaje que contiene lacadena "hola como estas", el numero 123 y la información contenida en lavariable X.

Page 33: Unidad Iii Generalidades Sobre Algoritmos

ENUNCIADO: Hacer un algoritmo que lea el nombre de un artículo, lacantidad existente en bodega, el precio unitario y muestre la cantidadexistente en bodega.VARIABLESse declara la variable NOMBRE, de tipo cadena para guardar el nombredel artículo.como la cantidad de artículos es un entero, se define la variableCANTIDAD de tipo entero.como un precio puede tener parte decimal, se define la variable

EJEMPLO Salida de Datos

como un precio puede tener parte decimal, se define la variablePRECIO de tipo real.EXPLICACION DEL ALGORITMOPrimero se definen las variables requeridas y luego se le pide al usuarioque ingrese los datos.Inicio

Cadena: NOMBREEntero: CANTIDADReal: PRECIOLeer (NOMBRE, CANTIDAD, PRECIO)Mostrar (NOMBRE, CANTIDAD)

Fin Programa

|

Page 34: Unidad Iii Generalidades Sobre Algoritmos

1. Hacer un algoritmo que lea el nombre de un trabajador, la cantidad demeses que trabajó en el año y muestre el nombre y el porcentaje demeses trabajados.

2. Hacer un algoritmo que lea el nombre de una persona, el número dehoras que estudia en la semana y muestre el porcentaje de tiempoque dedica a estudiar y la cantidad de minutos que dedica a estudiar.

3. Hacer un algoritmo que lea el nombre de un estudiante, la cantidad dematerias que cursa en el semestre, la cantidad de materiasperdidas y muestre el nombre y el porcentaje de materias ganadas.

4. Hacer un algoritmo que lea el nombre de un estudiante, el promedio

PROBLEMAS PROPUESTOS

4. Hacer un algoritmo que lea el nombre de un estudiante, el promediodel semestre, el número de materias perdidas, la suma de todas lasnotas y muestre la cantidad de materias que ganó.

5. Hacer un algoritmo que lea el nombre de una persona, la comidapreferida con su precio, la cantidad de dinero que posee y muestre lacantidad de comidas que puede comprar con el dinero que posee.

6. Hacer un algoritmo que lea el nombre de un animal, la comidapreferida, el número de porciones que come al día, el valor de laporción y muestre el nombre del animal y el costo de alimentarlo en eldía.

7. Hacer un algoritmo lea el nombre de un deportista, la distanciarecorrida, la cantidad de intentos y muestre la distancia promedio queha recorrido.

Page 35: Unidad Iii Generalidades Sobre Algoritmos

RECURSOS

Bibliografía.

OVIEDO, Regino Efrain M, Lógica de Programación. Ecoeediciones.

Joyanes Aguilar Luis. Fundamentos de ProgramaciónJoyanes Aguilar Luis. Fundamentos de Programación

SITIOS WEB:

http://www.alegsa.com.ar/Notas/70.phphttp://www.deguate.com/infocentros/educacion/recursos/computacion/origen.htmhttp://www.bloginformatico.com/concepto-y-tipos-de-software.phphttp://mx.geocities.com/berebl2001/mipag5.html