Subido por Enrique Ozuna

Introduccion a la informática - Los algoritmos

Anuncio
Introducción a la Informática
Los Algoritmos
Algoritmo
Antes de que una computadora pueda realizar una tarea, hay que
proporcionarle un algoritmo que le diga de forma precisa qué
hacer; en consecuencia, el estudio de los algoritmos es la piedra
angular de las Ciencias de la computación.
¿Qué es un algoritmo?
Es un conjunto de pasos lógicos ordenados, secuencialmente y
finita, escritos de tal forma que permiten visualizar la solución de un
problema determinado en un momento específico.
Algoritmos: Nombre
El nombre en latín de
algoritmo proviene de la
traducción que realizó
Fibonacci, de la obra del
matemático árabe
Al'Khwarizmi llamada ,
Algoritmi de Numero
Indorum.
Algoritmos:
Es un conjunto de pasos
lógicos ordenados,
secuencialmente y finita,
escritos de tal forma que
permiten visualizar la
solución de un problema
determinado en un
momento específico.
Características de los algoritmos
• Preciso/Definido
Los pasos a seguir en el algoritmo deben ser definidos claramente. Debe
ser preciso e indicar el orden de realización de cada paso.
• Determinación
Dado un conjunto de datos idénticos de entrada, siempre debe arrojar los
mismos resultados, cada vez que se ejecute.
• Ser finito
Si se sigue un algoritmo, debe terminar en algún momento; o sea debe
tener un número finito de pasos.
• Efectivo
Todas las operaciones a ser realizadas en el algoritmo deben ser lo
suficientemente básicas de modo que puedan en principio ser llevadas a
cabo en forma exacta y en un período de tiempo finito por una persona
usando papel y lápiz.
Partes que describen un algoritmo
• Datos de Entrada
Un algoritmo tiene entradas, es decir cantidades que le son dadas
antes de que el algoritmo comience, o dinámicamente mientras el
algoritmo corre.
• Procesamiento de Datos
Aquí incluye operaciones aritmético-lógicas, selectivas y
repetitivas; cuyo objetivo es obtener la solución del problema.
• Salida de Resultados
Permite comunicar al exterior el resultado. Puede tener una o más
salidas, es decir cantidades que tienen una relación única
respecto a las entrantes.
Diferencia entre algoritmo y programa
Los algoritmos no son directamente interpretados por la
computadora y deben ser traducidos a un lenguaje de
programación concreto.
ALGORITMO: Estructura
Datos
Procesos
Corresponden a los
datos requeridos
para realizar el
algoritmo (datos
de entrada) y los
datos que son
generados (datos
de salida)
Conforma el
grupo de
instrucciones
que realizan las
operaciones con
los datos.
Estructuras
de Control
Determinan la
organización de
las instrucciones
que deben ser
realizadas.
ALGORITMO: Elementos
Es necesario
identificar que
datos se
necesitan
ingresar, cuales
sirven de forma
auxiliar y cuales se
van a generar.
Las instrucciones que se van a
realizar deben estar bien
estructuradas y tener un orden
lógico, con el fin de evitar
inconsistencias en el resultado.
Definición
de variables y
constantes
Entrada
Proceso
Estructuras
de control
Salida
Cuerpo del algoritmo
ALGORITMO: Elementos
DATOS: Información con la cual trabaja la computadora. Se refiere
a los elementos que se utilizan en los algoritmos para realizar alguna
operación sobre estos.
TIPOS DE DATOS: Corresponde al tipo de valor que puede
almacenarse en un espacio de memoria definido y a la cantidad de
espacio que requiere para almacenar un valor.
• Se clasifican atendiendo a:
 Propiedades
 Operaciones que se pueden realizar
• Datos Simples:
 Numérico (Real o entero)
 Carácter (Letras, símbolos, números)
 Lógico (Verdadero o Falso)
• Datos compuestos
 Formados por agrupaciones de otros datos (arreglos,
registros, archivos, apuntadores)
ALGORITMO: Elementos
CONSTANTE:
Una constante es un dato numérico o alfanumérico que no cambia
durante la ejecución del programa.
Ejemplo:
pi = 3.1416
•
VARIABLE:
Corresponde a un espacio de memoria que almacena un dato que dentro
del programa en ejecución cambia o varía su contenido (valor).
El valor de una variable puede cambiar a lo largo del algoritmo
Todas las variables son de un determinado tipo y sólo pueden tomar valores
de ese tipo.
Se clasifican por:
Contenido
USO
• Numéricas
De trabajo
• Lógicas
Contadores
• Alfanuméricas (String)
Acumuladores
Ejemplo:
area = pi * radio ^ 2
Las variables son : el radio, el area y la constate es pi
ALGORITMO: ¿Quiénes pueden hacer un
algoritmo?
Toda persona, implícitamente y
diariamente diseña y realiza
algoritmos, para dar solución a
situaciones cotidianas de forma
natural.
Sin embargo el programador,
diseña el algoritmo consciente
de que al realizar cada paso
obtendrá la solución de un
problema específico.
Algoritmos simples
Existen algoritmos para la conversión de representaciones numéricas de
un formato a otro, para la detección y corrección de errores en los
datos, para la compresión y descompresión de archivos de datos, para
el control de la multiprogramación en un entorno multitarea, etc.
Podemos idear un algoritmo para un determinado proceso, así como
también hacerlo en diferentes formas.
Por ejemplo: Cómo podríamos encontrar el promedio de un conjunto
de números?.
Una posible solución sería:
1.- Sumar los números dados.
2.- Contar dichos números.
3.- Dividir el resultado obtenido en el punto 1 entre el resultado obtenido
en el punto 2.
ALGORITMO: Ejemplo
Diseñar un algoritmo para cambiar una llanta a un coche.
Inicio.
2.
Traer gato.
3.
Levantar el coche con el gato.
4.
Aflojar tornillos de las llantas.
5.
Sacar los tornillos de las llantas.
6.
Quitar la llanta.
7.
Poner la llanta de repuesto.
8.
Poner los tornillos.
9.
Apretar los tornillos.
10. Bajar el gato.
11. Fin
1.
Hacer un algoritmo para calcular el promedio de calificaciones de un
estudiante. Los datos disponibles son: nombre y las 4 calificaciones de
los exámenes. El algoritmo deberá imprimir el mensaje de “Aprobado”
si el promedio fue >=7, de lo contrario el mensaje deberá ser “Reprobado”.
1.- inicio
2.- pedir nombre (N)
3.-Pedir calificaciones( c1,c2,c3,c4)
4.- sacar promedio prom=(c1+c2+c3+c4)/4
5.- si el promedio es >=7 entonces mostrar como resultados “aprobado” si
el promedio es menor a 7 mostrar como resultado “reprobado.
6.- fin
Representación de algoritmos
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al
lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de
programación entre otros. Las descripciones en lenguaje natural tienden a ser
ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas
ambigüedades del lenguaje natural.
La descripción de un algoritmo usualmente se hace en tres niveles:
1.Descripción de alto nivel. Se establece el problema, se selecciona un modelo
matemático y se explica el algoritmo de manera verbal, posiblemente con
ilustraciones y omitiendo detalles.
2.Descripción formal. Se usa pseudocódigo para describir la secuencia de
pasos que encuentran la solución.
3.Implementación. Se muestra el algoritmo expresado en un lenguaje de
programación específico o algún objeto capaz de llevar a cabo instrucciones.
También es posible incluir un teorema que demuestre que el algoritmo es
correcto, un análisis de complejidad o ambos.
Los algoritmos pueden ser creados de dos formas:
1)Pseudocódigo.- Es un conjunto pequeño y claro de instrucciones; en
secuencia, que permite llevar a cabo una tarea.
2)Diagrama de flujo.- Es la representación de la secuencia, a través de
símbolos, de la tarea que se va a realizar.
Un ejemplo de algoritmo es el que realizamos para lavarnos las manos:
Inicio
Abrir el grifo de agua.
Mojarse las manos.
Aplicarse jabón.
Enjuagarse las manos.
Cerrar el grifo de agua.
Secarse la manos con papel.
Exponer las manos a corriente de aire caliente.<
fin
Diagrama de flujo de datos
ALGORITMO: Requisitos
Debe Definirse del
problema
Los algoritmos se crean para resolver problemas. Es
importante que junto al algoritmo, describamos
claramente el problema que éste nos permite resolver.
Debe estar dentro
de contexto
No debemos omitir el contexto de nuestros algoritmos.
Es necesario establecer lo que se necesita y dónde se
debe comenzar.
Debe resolver el
problema
Debe evitar la
ambigüedad
Seguir los pasos del algoritmo debe llevarnos a la
resolución del problema. Siempre que sea posible
seguiremos personalmente los pasos de nuestro algoritmo
para comprobar que son efectivamente correctos y
conducen efectivamente a la solución esperada.
Si se requiere hallar la velocidad de un automóvil, es
necesario, definir si la distancia debe ser en metros,
kilómetros, etc y el tiempo estará dado en segundos
u horas, ya que la velocidad puede representarse en
Km/h ó mts/seg.
ALGORITMO: Técnicas de Diseño
Es una técnica de diseño
descendente donde se
realiza un refinamiento
sucesivo, que permite
darle una organización a
las instrucciones, en forma
de módulos o bloques.
Top Down
Divide y vencerás
Está técnica permite dividir
el problema en pequeñas
partes, a las cuales se les
da solución por separado,
luego se integran las
soluciones para resolver el
problema principal.
PSEUDOCÓDIGO:Cómo se Hace?
1
Cada instrucción que se va a realizar debe comenzar
por un verbo, ejemplo: Muestre, Haga, Lea, etc.
2 Se debe mantener una identación o sangría
sobre el margen izquierdo para identificar
fácilmente el comienzo y final de las estructuras
3
La representación de las estructuras son similares
u homónimas de los lenguajes de
programación, ejemplo: inicio, fin, mientras que,
repita_hasta, si_entonces_sino, etc.
PSEUDOCÓDIGO: Cómo se Hace?
Inicio : Denota el punto de inicio del algoritmo.
Leer : Denota la acción de introducir datos o variables
desde un dispositivo estándar de entrada.
Imprimir : Representa la acción de enviar datos desde
variables a un dispositivo estándar de salida.
Calcular : Denota la realización de cualquier operación
aritmética que genere valores para ser
almacenados en una variable.
Fin: Denota el punto de finalización del algoritmo.
DIAGRAMA DE FLUJO: Simbología
ALGORITMO: Fases de Diseño
Definición del problema
Análisis del problema
Selección de la mejor alternativa
Diagramación
Prueba de escritorio
ALGORITMO: Definición del Problema
Está dada por el enunciado
del problema, el cuál debe
ser claro y completo
Es importante que
conozcamos exactamente
que se desea.
Mientras qué esto no se
comprenda, no tiene caso
pasar a la siguiente etapa.
ALGORITMO: Análisis del Problema
ALGORITMO: Selección de Alternativa
Analizado el problema.
Posiblemente tengamos varias
formas de resolverlo.
Solución..3
Solución..1
Solución..2
Solución .4
Lo importante es determinar cuál es la mejor alternativa.
La que produce los resultados Esperados
menor tiempo y al menor costo.
en el
Se debe tener en cuenta el principio de que las cosas siempre se
podrán hacer de una mejor forma.
ALGORITMO: Diagramación
Una vez que
sabemos
cómo resolver el
Problema.
Dibujar
gráficamente
la lógica de la
alternativa
seleccionada
Plasmar la
solución
mediante el
Pseudocódigo
ALGORITMO: Prueba de Escritorio
Esta prueba consiste en:
Dar diferentes datos
de entrada al programa
seguir la secuencia
indicada
hasta
obtener los resultados
ALGORITMO: Prueba de Escritorio
Se utiliza para corroborar que el algoritmo plasmado en
cualquier herramienta presenta la solución al problema
inicial
Al realizar lo anterior se puede comprobar si el algoritmo es
correcto o si hay necesidad de hacer ajustes (volver al
paso anterior)
Es Recomendable
Dar diferentes datos de entrada y considerar todos los
posibles casos, aún los de excepción o no esperados, para
asegurar que el programa no produzca errores en ejecución
cuando se presenten estos casos.
Eficiencia de un algoritmo
Aunque las máquinas actuales son capaces de ejecutar millones
de instrucciones por segundo, la eficiencia continúa siendo una
de las preocupaciones principales en el diseño de algoritmos.
A menudo la elección entre un algoritmo eficiente y otro
ineficiente puede marcar la diferencia entre una solución
práctica a un problema y otra completamente inútil.
EJERCICIO EJEMPLO:
Una ONG tiene puntos de reparto de vacunas que se pretende
funcionen de la siguiente manera. Cada día, empezar con 1000
vacunas disponibles y a través de un programa que controla las
entregas avisar si el inventario baja de 200 unidades. Desarrollar
pseudocódigo.
1. Inicio [Control de Vacunas]
2. Existencias = 1000
3. Mientras Existencias >= 200 Hacer
Mostrar “Introduzca el número de unidades
entregadas”
Pedir Entregadas
Existencias = Existencias – Entregadas
Repetir
4. Mostrar “El inventario ha bajado de 200 unidades. Debe
comunicarlo”
5. Fin
Comentarios: La variable Existencias funciona como un acumulador que
parte de un valor inicial y cuyo valor tras un movimiento depende de su
contenido precedente.
Tarea
1) Define que es un algoritmo.
2) Cita y explica las características que debe tener un algoritmo
3) ¿Cómo se representan los algoritmos?
4) Resuelve los siguientes ejercicios de algoritmo:
• Escribe un algoritmo para obtener el área de un triángulo, tomando en
cuenta que el área: (base * altura)/2.
• Elaborar un algoritmo el cual calcule e imprima el sueldo de un empleado,
teniendo como datos de entrada: nombre, horas trabajadas y cuota por
hora.
• Hacer un algoritmo que convierta un número dado de segundos en
minutos y que imprima el resultado.
• Elaborar un algoritmo que lea 20 números y que determine e imprima el
promedio de la suma de dichos números.
5) Investiga cuáles son los pasos para resolver el cubo de Rubik por capas
Bibliografía
J. Glenn Brookshear. (2012). Introducción a la
Computación. (11ª Ed.). PEARSON EDUCACIÓN, S. A.,
Madrid. ISBN eBook: 9788478291380
Descargar