UNIVERSIDAD NACIONAL DE TRES DE FEBRERO INGENIERIA ... filePARTES DE UN ALGORITMO: Todo Algoritmo...

12
UNIVERSIDAD NACIONAL DE TRES DE FEBRERO INGENIERIA AMBIENTAL COMPUTACION III Algoritmos y Estructuras de Datos

Transcript of UNIVERSIDAD NACIONAL DE TRES DE FEBRERO INGENIERIA ... filePARTES DE UN ALGORITMO: Todo Algoritmo...

Page 1: UNIVERSIDAD NACIONAL DE TRES DE FEBRERO INGENIERIA ... filePARTES DE UN ALGORITMO: Todo Algoritmo debe tener las siguientes partes: · Entrada de datos, son los datos necesarios que

UNIVERSIDAD NACIONAL

DE

TRES DE FEBRERO

INGENIERIA AMBIENTAL

COMPUTACION III

Algoritmos

y

Estructuras de Datos

Page 2: UNIVERSIDAD NACIONAL DE TRES DE FEBRERO INGENIERIA ... filePARTES DE UN ALGORITMO: Todo Algoritmo debe tener las siguientes partes: · Entrada de datos, son los datos necesarios que

U.N.Tre.F. Ingeniería Ambiental - Computación III Docente: Vivani, Damián

2

CONCEPTO DE ALGORITMO

Sabemos que para un ordenador pueda llevar adelante una tarea cualquiera, se tiene que contar con un al-

goritmo que le indique, a través de un programa, que es lo que debe hacer con la mayor precisión posible. Qui-

zás esta afirmación debería ser revisada desde la óptica de la inteligencia artificial. Consecuencia de lo anterior

es la importancia de los estudios de los algoritmos dentro de las ciencias de la computación. Recordemos que un

algoritmo es una sucesión finita de pasos no ambiguos que se pueden ejecutar en un tiempo finito, cuya razón de

ser es la de resolver problemas; por tanto problema para nosotros, serán aquellas cuestiones, conceptuales o

practicas, cuya solución es expresable mediante un algoritmo.

Un Algoritmo, se puede definir como una secuencia de instrucciones que representan un modelo de solu-

ción para determinado tipo de problemas. O bien como un conjunto de instrucciones que realizadas en orden

conducen a obtener la solución de un problema. Por lo tanto podemos decir que es un conjunto ordenado y finito

de pasos que nos permite solucionar un problema.

Los algoritmos son independientes de los lenguajes de programación. En cada problema el algoritmo pue-

de escribirse y luego ejecutarse en un lenguaje de diferente programación. El algoritmo es la infraestructura de

cualquier solución, escrita luego en cualquier lenguaje de programación.

CARACTERÍSTICAS DE UN ALGORITMO:

Todo algoritmo debe tener las siguientes características:

1. Debe ser Preciso, porque cada uno de sus pasos debe indicar de manera precisa e inequívoca que se de-

be hacer.

2. Debe ser Finito, porque un algoritmo debe tener un número limitado de pasos.

3. Debe ser Definido, porque debe producir los mismos resultados para las mismas condiciones de entra-

da.

4. Puede tener cero o más elementos de entrada.

5. Debe producir un resultado. Los datos de salida serán los resultados de efectuar las instrucciones.

PARTES DE UN ALGORITMO:

Todo Algoritmo debe tener las siguientes partes:

· Entrada de datos, son los datos necesarios que el algoritmo necesita para ser ejecutado.

· Proceso, es la secuencia de pasos para ejecutar el algoritmo.

· Salida de resultados, son los datos obtenidos después de la ejecución del algoritmo.

En resumen, un Algoritmo es una secuencia ordenada de instrucciones, pasos o procesos que llevan a la

solución de un determinado problema. Los hay tan sencillos y cotidianos como seguir la receta del médico,

abrir una puerta, lavarse las manos, etc; hasta los que conducen a la solución de problemas muy complejos.

EJEMPLO

Un procedimiento que realizamos varias veces al día consiste en lavarnos los dientes. Veamos la forma

de expresar este procedimiento como un Algoritmo:

1. Tomarla pasta dental 2. Destaparla pasta dental

3. Tomar el cepillo de dientes

4. Aplicar pasta dental al cepillo

5. Tapar la pasta dental

Page 3: UNIVERSIDAD NACIONAL DE TRES DE FEBRERO INGENIERIA ... filePARTES DE UN ALGORITMO: Todo Algoritmo debe tener las siguientes partes: · Entrada de datos, son los datos necesarios que

U.N.Tre.F. Ingeniería Ambiental - Computación III Docente: Vivani, Damián

3

6. Abrir la canilla

7. Remojar el cepillo con la pasta dental

8. Cerrar la canilla

9. Frotar los dientes con el cepillo

10.

Abrir la canilla

11.

Enjuagarse la boca

12.

Enjuagar el cepillo

REPRESENTACIÓN DE ALGORITMOS

Los Algoritmos se pueden expresar de muchas maneras, se tratarán solo dos formas: Pseudocódigo y

Diagrama de Flujo. En Pseudocódigo la secuencia de instrucciones se representa por medio de frases o propo-

siciones, mientras que en un Diagrama de Flujo se representa por medio de gráficos.

EJEMPLO

Elaborar un Algoritmo para calcular el área de cualquier triángulo rectángulo y presentar el resultado en panta-

lla.

PSEUDOCÓDIGO

Paso1:Inicio

Paso2: Asignar el número 2 a la constante "Div"

Paso3: Conocer la base del triángulo y guardarla en la variable "Base"

Paso4: Conocer la altura del triángulo y guardarla en la variable "Altura"

Paso5: Guardar en la variable "Area" el valor de multiplicar "Base" por "Altura"

Paso6: Guardar en la variable "Area" el valor de dividir "Area" entre "Div"

Paso7: Reportar el valor de la variable "Area"

Paso8: Final

Utilizar Diagramas de Flujo para representar un algoritmo tiene claras ventajas. Numerosas in-

vestigaciones han mostrado que el Aprendizaje Visual es uno de los mejores métodos para enseñar habilidades

del pensamiento. Las técnicas que utilizan formas graficas para representar ideas e información ayudan a los

estudiantes a clarificar su pensamiento, y a procesar, organizar y priorizar nueva información. Los diagramas

visuales revelan patrones, interrelaciones e interdependencias además de estimular el pensamiento creativo.

La utilización de Diagramas ayuda a los estudiantes a:

• Clarificar el pensamiento: Ellos pueden ver cómo se conectan los procesos y se dan cuenta de cómo estos se

pueden organizar o agrupar para darles el orden lógico correcto.

• Identificar pasos erróneos: Sobre un diagrama es más fácil identificar los cambios que se requieren para el

correcto funcionamiento de un programa de computador que hacerlo sobre el código.

Page 4: UNIVERSIDAD NACIONAL DE TRES DE FEBRERO INGENIERIA ... filePARTES DE UN ALGORITMO: Todo Algoritmo debe tener las siguientes partes: · Entrada de datos, son los datos necesarios que

U.N.Tre.F. Ingeniería Ambiental - Computación III Docente: Vivani, Damián

4

DIAGRAMA DE FLUJO

Algoritmo para calcular el área de cualquier triángulo rectángulo

El pseudocódigo está compuesto por proposiciones informales en español que permiten expresar deta-

lladamente las instrucciones que llevan desde un estado inicial (problema) hasta un resultado deseado (so-

lución). Por lo regular, los algoritmos se escriben por refinamiento: se escribe una primera versión que lue-

go se descompone en varios subproblemas (el número depende de la complejidad del problema) indepen-

dientes entre sí. Si es necesario se va refinando cada vez las instrucciones hasta que las proposiciones gene-

rales en español como las del ejemplo anterior se puedan codificar en el lenguaje seleccionado para hacer la

programación.

TÉCNICAS DE REPRESENTACIÓN:

Para la representación de un algoritmo, antes de ser convertido a lenguaje de programación, se utilizan

algunos métodos de representación escrita, gráfica o matemática. Los métodos más conocidos son:

· Diagramación libre (Diagramas de flujo).

· Pseudocódigo.

· Lenguaje natural (español, inglés, etc.).

· Fórmulas matemáticas.

Los Diagramas de Flujo son una de las técnicas más utilizadas para representar gráficamente la se-

cuencia de instrucciones de un Algoritmo. Estas instrucciones están compuestas por operaciones, decisiones

lógicas y ciclos repetitivos, entre otros. La solución de un problema puede contener varios conjuntos de

instrucciones (procedimientos o métodos) que tienen como finalidad ejecutar cada uno de los procesos

necesarios para llegar a la solución de un problema a partir de los datos disponibles (estado inicial).

Las ventajas de diseñar un Diagrama de Flujo antes de empezar a generar el código de un programa

(Rojas&Ñacato,1980) son, entre otras:

• Forzar la identificación de todos los pasos de una solución de forma clara y lógica;

• Establecer una visión amplia y objetiva de la solución;

Page 5: UNIVERSIDAD NACIONAL DE TRES DE FEBRERO INGENIERIA ... filePARTES DE UN ALGORITMO: Todo Algoritmo debe tener las siguientes partes: · Entrada de datos, son los datos necesarios que

U.N.Tre.F. Ingeniería Ambiental - Computación III Docente: Vivani, Damián

5

•Verificar si se han tenido en cuenta todas las posibilidades;

• Comprobar si hay procedimientos duplicados;

• Representar gráficamente una solución (es más simple hacerlo con gráficas que mediante palabras);

• Facilitar a otras personas la comprensión de la secuencia lógica de la solución planteada;

• Posibilitar acuerdos con base en la aproximación común a una solución de un problema, resolver ambi-

güedades o realizar mejoras;

• Establecer posibles modificaciones (resulta más fácil depurar un programa con el diagrama que con el

listado del código);

• Agilizar la codificación (traducción) del algoritmo en un lenguaje de programación;

• Servir como elemento de documentación de la solución del problema

Programa:

Un programa es una serie de instrucciones ordenadas, codificadas en lenguaje de programación que ex-

presa un algoritmo y que puede ser ejecutado en un computador.

La resolución de problemas y el uso del ordenador

Antes de entrar en la codificación de la resolución de un problema, hemos de contar con una idea bas-

tante precisa de como podemos llegar a esta solución.

Se puede dividir en tres fases:

a. Analisis del problema

b. Diseño del algoritmo

c. Programacion del algoritmo

Analisis del problema:

El objetivo del análisis del problema, es ayudar al programador a llegar a una cierta comprensión de

la naturaleza del mismo:

i. Definir el problema con total precisión.

ii. Especificar los datos de partida necesarios para la resolución del mismo.

iii. Especificar la información que deba proporcionarse al resolverse.

Page 6: UNIVERSIDAD NACIONAL DE TRES DE FEBRERO INGENIERIA ... filePARTES DE UN ALGORITMO: Todo Algoritmo debe tener las siguientes partes: · Entrada de datos, son los datos necesarios que

U.N.Tre.F. Ingeniería Ambiental - Computación III Docente: Vivani, Damián

6

Variables Tipo

Numéricas Enteras

Reales

Texto

Caracter

Cadena de caracteres Lógicas (V,F)

Comentarios // Este es un comentario

Expresiones Fórmulas

Números

Constantes

Variables

Operadores

Asignación

Prueba de igualdad =

Operadores (+,-,*,/)

Según Polya(1957), cuando se resuelven problemas, intervienen cuatro operaciones mentales:

1. Entender el problema

Page 7: UNIVERSIDAD NACIONAL DE TRES DE FEBRERO INGENIERIA ... filePARTES DE UN ALGORITMO: Todo Algoritmo debe tener las siguientes partes: · Entrada de datos, son los datos necesarios que

U.N.Tre.F. Ingeniería Ambiental - Computación III Docente: Vivani, Damián

7

2. Trazar un plan

3. Ejecutar el plan (resolver)

4. Revisar

Numerosos autores de textos escolares de matemáticas hacen

referencia a estas cuatro etapas planteadas por Polya. Sin embargo,

es importante notar que estas son flexibles y no una simple lista de

pasos como a menudo se plantea en muchos de esos textos

(Wilson, Fernández&Hadaway,1993). Cuando estas etapas se si-

guen como un modelo lineal, resulta contraproducente para cualquier actividad encaminada a resolver pro-

blemas.

Es necesario hacer énfasis en la naturaleza dinámica y cíclica de la solución de problemas. En el inten-

to de trazar un plan, los estudiantes pueden concluir que necesitan entender mejor el problema y deben regre-

sar a la etapa anterior; o cuando han trazado un plan y tratan de ejecutarlo, no encuentran cómo hacerlo;

entonces, la actividad siguiente puede ser intentar con un nuevo plano regresar y desarrollar una nueva com-

prensión del problema (Wilson, Fernández &Hadaway,1993;Guzdial,2000).

1. COMPRENDER EL PROBLEMA.

• Leer el problema varias veces

• Establecer los datos del problema

• Aclarar lo que se va a resolver (¿Cuál es la pregunta?)

• Precisar el resultado que se desea lograr

• Determinar la incógnita del problema

• Organizar la información

• Agrupar los datos en categorías

• Trazar una figura o diagrama.

2. HACER EL PLAN.

• Escoger y decidir las operaciones a efectuar.

• Eliminar los datos inútiles.

• Descomponer el problema en otros más pequeños.

3. EJECUTAR EL PLAN (Resolver).

• Ejecutar en detalle cada operación.

• Simplificar antes de calcular.

• Realizar un dibujo o diagrama

4. ANALIZAR LA SOLUCIÓN (Revisar).

• Dar una respuesta completa

• Hallar el mismo resultado de otra manera.

• Verificar por apreciación que la respuesta es adecuada.

EJEMPLO

Page 8: UNIVERSIDAD NACIONAL DE TRES DE FEBRERO INGENIERIA ... filePARTES DE UN ALGORITMO: Todo Algoritmo debe tener las siguientes partes: · Entrada de datos, son los datos necesarios que

U.N.Tre.F. Ingeniería Ambiental - Computación III Docente: Vivani, Damián

8

En un juego, el ganador obtiene una ficha roja; el segundo, una ficha azul; y el tercero, una amarilla. Al final de

varias rondas, el puntaje se calcula de la siguiente manera: Al cubo de la cantidad de fichas rojas se adiciona el do-

ble de fichas azules y se descuenta el cuadrado de las fichas amarillas. Si Andrés llegó 3 veces en primer lugar, 4

veces de último y 6 veces de intermedio, ¿Qué puntaje obtuvo?

COMPRENDE

• Leer detenidamente el problema

• ¿Cuántos colores de fichas se reparten?

• ¿Cuántas fichas rojas, azules y amarillas obtuvo Andrés?

• ¿Qué pregunta el problema? PLANEA

• Para hallar el puntaje que obtiene Andrés por sus llegadas de primero, calcular el cubo de la cantidad de fi-

chas rojas.

• Para hallar el puntaje por sus llegadas en segundo lugar, calcular el doble de la cantidad de fichas azules.

• Para hallar el puntaje que pierde por sus llegadas en último lugar, calcular el cuadrado de la cantidad de fi-

chas amarillas.

• Para hallar el puntaje total, calcular la suma de los puntajes por las fichas rojas y azules, restarle los puntos

de las fichas amarillas.

RESUELVE

• Por tres fichas rojas: 33=27 puntos

• Por seis fichas azules: 6x2=12 puntos

• Por cuatro fichas amarillas: 42=16 puntos

• Para obtener el puntaje final de Andrés, sumar los puntos obtenidos con las fichas rojas y azules (27+12=39

puntos) y de este resultado restar los puntos representados por las fichas amarillas (39 –16=23 puntos).

REVISA

• El puntaje que obtuvo Andrés es 23 puntos.

• Verificar las operaciones y comparar los cálculos con la solución estimada.

Page 9: UNIVERSIDAD NACIONAL DE TRES DE FEBRERO INGENIERIA ... filePARTES DE UN ALGORITMO: Todo Algoritmo debe tener las siguientes partes: · Entrada de datos, son los datos necesarios que

U.N.Tre.F. Ingeniería Ambiental - Computación III Docente: Vivani, Damián

9

Ejercicios

1. Ingresar tres números y realizar su suma.

Page 10: UNIVERSIDAD NACIONAL DE TRES DE FEBRERO INGENIERIA ... filePARTES DE UN ALGORITMO: Todo Algoritmo debe tener las siguientes partes: · Entrada de datos, son los datos necesarios que

U.N.Tre.F. Ingeniería Ambiental - Computación III Docente: Vivani, Damián

10

2. Ingresar dos números y mostrar la suma, resta, multiplicación y división de dichos números.

3. De cada trabajador se conoce la cantidad de horas trabajadas y el precio por hora. Determinar cuánto

gana por semana.

Proceso sin_titulo

definir ph,hd,ds,resultado Como Real;

Escribir 'ALGORITMO PARA CALCULAR EL SUELDO DE UN EMPLEADO';

Escribir 'INTRODUCE EL PAGO POR HORA DEL EMPLEADO';

Leer PH;

Escribir 'INTRODUCE LAS HORAS TRABAJADAS AL DIA';

Leer HD;

DS<-6;

RESULTADO <- (HD*PH)*DS;

Escribir 'EL SALARIO SEMANAL ES: ', RESULTADO;

FinProceso

Page 11: UNIVERSIDAD NACIONAL DE TRES DE FEBRERO INGENIERIA ... filePARTES DE UN ALGORITMO: Todo Algoritmo debe tener las siguientes partes: · Entrada de datos, son los datos necesarios que

U.N.Tre.F. Ingeniería Ambiental - Computación III Docente: Vivani, Damián

11

4. Ingresando tres números realizar el promedio y mostrarlo.

5. Escriba un programa que convierta de centímetros a pulgadas. Una pulgada es igual a 2.54 centí-

metros.

6. Escriba un programa que reciba como entrada las longitudes de los dos catetos a y b de un triángu-

lo rectángulo, y que entregue como salida el largo de la hipotenusa c del triangulo, dado por el teo-

rema de Pitágoras: c 2 =a 2 +b 2

7. Calcular el área de un triángulo.

Page 12: UNIVERSIDAD NACIONAL DE TRES DE FEBRERO INGENIERIA ... filePARTES DE UN ALGORITMO: Todo Algoritmo debe tener las siguientes partes: · Entrada de datos, son los datos necesarios que

U.N.Tre.F. Ingeniería Ambiental - Computación III Docente: Vivani, Damián

12