SlideShare una empresa de Scribd logo
Los Algoritmos
Introducción a la Informática
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.
• 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.
Características de los algoritmos
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
Estructuras
de Control
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.
Determinan la
organización de las
instrucciones que
deben ser
realizadas.
ALGORITMO: Elementos
Definición
de variables y
constantes
Proceso
Estructuras
de control
Entrada Salida
Cuerpo del algoritmo
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.
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
• Una constante es un dato numérico o alfanumérico que no cambia durante la
ejecución del programa.
Ejemplo:
pi = 3.1416
ALGORITMO: Elementos
CONSTANTE:
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
1. 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
Diseñar un algoritmo para cambiar una llanta a un coche.
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
Debe estar dentro de
contexto
Debe resolver el
problema
Debe evitar la
ambigüedad
Los algoritmos se crean para resolver problemas. Es
importante que junto al algoritmo, describamos claramente el
problema que éste nos permite resolver.
No debemos omitir el contexto de nuestros algoritmos. Es
necesario establecer lo que se necesita y dónde se debe
comenzar.
Seguir los pasos del algoritmo debe llevarnos a la resolución de
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.
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.
Top Down
Divide y vencerás
PSEUDOCÓDIGO:Cómo se Hace?
Cada instrucción que se va a realizar debe comenzar por un
verbo, ejemplo: Muestre, Haga, Lea, etc.
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.
1
2
3
Se debe mantener una identación o sangría sobre el
margen izquierdo para identificar fácilmente el
comienzo y final de las estructuras
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.
Calcular : Denota la realización de cualquier operación
aritmética que genere valores para ser
almacenados en una variable.
Imprimir : Representa la acción de enviar datos desde
variables a un dispositivo estándar de salida.
Fin: Denota el punto de finalización del algoritmo.
DIAGRAMA DE FLUJO: Simbología
ALGORITMO: Fases de Diseño
Análisis del problema
Definición 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..1
Solución..2
Solución..3
Solución .4
Lo importante es determinar cuál es la mejor alternativa.
La que produce los resultados Esperados en el menor
tiempo y al menor costo.
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.
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
Tarea
Bibliografía
J. Glenn Brookshear. (2012). Introducción a la Computación.
(11ª Ed.). PEARSON EDUCACIÓN, S. A., Madrid. ISBN eBook:
9788478291380

Más contenido relacionado

Similar a Introducción a la Informática - Los Algoritmos

Algoritmos
AlgoritmosAlgoritmos
Algoritmos
YESENIA CETINA
 
ALGORITMOS
ALGORITMOSALGORITMOS
ALGORITMOS
Paolita Love
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programa
zeta2015
 
Tema n° 1
Tema n° 1Tema n° 1
Tema n° 1
Pavel Soncc Humal
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
susanabiebs
 
Algoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoAlgoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujo
Clariza
 
Presentación de slideshare
Presentación de slidesharePresentación de slideshare
Presentación de slideshare
daniel_estrada
 
Presentación de slideshare
Presentación de slidesharePresentación de slideshare
Presentación de slideshare
daniel_estrada
 
Unidad 1
Unidad 1Unidad 1
Introduccion A La Programacion
Introduccion A La ProgramacionIntroduccion A La Programacion
Introduccion A La Programacion
Mary Sanchez
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
juanjoset1
 
Presentación Luis Barreto
Presentación Luis BarretoPresentación Luis Barreto
Presentación Luis Barreto
LuisBarreto80
 
Resolución de problemas y algoritmo
Resolución de problemas y algoritmoResolución de problemas y algoritmo
Resolución de problemas y algoritmo
Nombre Apellidos
 
Unidad 1
Unidad 1Unidad 1
Algoritmo
AlgoritmoAlgoritmo
Algoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacionAlgoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacion
Boris Salleg
 
EL ALGORITMO
EL ALGORITMOEL ALGORITMO
EL ALGORITMO
Erika Jimenez
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
Rafael Carlos
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
SebastianGomezPayan
 

Similar a Introducción a la Informática - Los Algoritmos (20)

Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
ALGORITMOS
ALGORITMOSALGORITMOS
ALGORITMOS
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programa
 
Tema n° 1
Tema n° 1Tema n° 1
Tema n° 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Algoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoAlgoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujo
 
Presentación de slideshare
Presentación de slidesharePresentación de slideshare
Presentación de slideshare
 
Presentación de slideshare
Presentación de slidesharePresentación de slideshare
Presentación de slideshare
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Introduccion A La Programacion
Introduccion A La ProgramacionIntroduccion A La Programacion
Introduccion A La Programacion
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Presentación Luis Barreto
Presentación Luis BarretoPresentación Luis Barreto
Presentación Luis Barreto
 
Resolución de problemas y algoritmo
Resolución de problemas y algoritmoResolución de problemas y algoritmo
Resolución de problemas y algoritmo
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacionAlgoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacion
 
EL ALGORITMO
EL ALGORITMOEL ALGORITMO
EL ALGORITMO
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
 

Último

Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
Javier Martinez Seco
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
APLICACIONES EN INTERNET-GOOGLE.20240pdf
APLICACIONES EN INTERNET-GOOGLE.20240pdfAPLICACIONES EN INTERNET-GOOGLE.20240pdf
APLICACIONES EN INTERNET-GOOGLE.20240pdf
jordanovillacorta09
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
Maria Celeste Trujillo Cruz
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
dayronfabricioruizmo
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
PaulDelgadoSoto
 
sesión 8 tipos de componentes SMD SOFTWARE
sesión 8 tipos de componentes SMD SOFTWAREsesión 8 tipos de componentes SMD SOFTWARE
sesión 8 tipos de componentes SMD SOFTWARE
YanelyMedalithBM
 
DuckDuckGo (Motor de Busqueda) - JRM - APSTI I A
DuckDuckGo (Motor de Busqueda) -  JRM - APSTI I ADuckDuckGo (Motor de Busqueda) -  JRM - APSTI I A
DuckDuckGo (Motor de Busqueda) - JRM - APSTI I A
DarnotOcxalFlorianoP
 
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
Eduardo455921
 

Último (10)

Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
APLICACIONES EN INTERNET-GOOGLE.20240pdf
APLICACIONES EN INTERNET-GOOGLE.20240pdfAPLICACIONES EN INTERNET-GOOGLE.20240pdf
APLICACIONES EN INTERNET-GOOGLE.20240pdf
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
 
sesión 8 tipos de componentes SMD SOFTWARE
sesión 8 tipos de componentes SMD SOFTWAREsesión 8 tipos de componentes SMD SOFTWARE
sesión 8 tipos de componentes SMD SOFTWARE
 
DuckDuckGo (Motor de Busqueda) - JRM - APSTI I A
DuckDuckGo (Motor de Busqueda) -  JRM - APSTI I ADuckDuckGo (Motor de Busqueda) -  JRM - APSTI I A
DuckDuckGo (Motor de Busqueda) - JRM - APSTI I A
 
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
 

Introducción a la Informática - Los Algoritmos

  • 2. 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.
  • 3. 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.
  • 4. 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.
  • 5. • 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. Características de los algoritmos
  • 6. 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.
  • 7. 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.
  • 8. ALGORITMO: Estructura Datos Procesos Estructuras de Control 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. Determinan la organización de las instrucciones que deben ser realizadas.
  • 9. ALGORITMO: Elementos Definición de variables y constantes Proceso Estructuras de control Entrada Salida Cuerpo del algoritmo 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.
  • 10. 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
  • 11. • Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa. Ejemplo: pi = 3.1416 ALGORITMO: Elementos CONSTANTE: 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
  • 12. 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.
  • 13. 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.
  • 14. ALGORITMO: Ejemplo 1. 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 Diseñar un algoritmo para cambiar una llanta a un coche.
  • 15. 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
  • 16. 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.
  • 17. 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
  • 18. Diagrama de flujo de datos
  • 19. ALGORITMO: Requisitos Debe Definirse del problema Debe estar dentro de contexto Debe resolver el problema Debe evitar la ambigüedad Los algoritmos se crean para resolver problemas. Es importante que junto al algoritmo, describamos claramente el problema que éste nos permite resolver. No debemos omitir el contexto de nuestros algoritmos. Es necesario establecer lo que se necesita y dónde se debe comenzar. Seguir los pasos del algoritmo debe llevarnos a la resolución de 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.
  • 20. 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. 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. Top Down Divide y vencerás
  • 21. PSEUDOCÓDIGO:Cómo se Hace? Cada instrucción que se va a realizar debe comenzar por un verbo, ejemplo: Muestre, Haga, Lea, etc. 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. 1 2 3 Se debe mantener una identación o sangría sobre el margen izquierdo para identificar fácilmente el comienzo y final de las estructuras
  • 22. 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. Calcular : Denota la realización de cualquier operación aritmética que genere valores para ser almacenados en una variable. Imprimir : Representa la acción de enviar datos desde variables a un dispositivo estándar de salida. Fin: Denota el punto de finalización del algoritmo.
  • 23. DIAGRAMA DE FLUJO: Simbología
  • 24. ALGORITMO: Fases de Diseño Análisis del problema Definición del problema Selección de la mejor alternativa Diagramación Prueba de escritorio
  • 25. 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.
  • 27. ALGORITMO: Selección de Alternativa Analizado el problema. Posiblemente tengamos varias formas de resolverlo. Solución..1 Solución..2 Solución..3 Solución .4 Lo importante es determinar cuál es la mejor alternativa. La que produce los resultados Esperados en el menor tiempo y al menor costo. Se debe tener en cuenta el principio de que las cosas siempre se podrán hacer de una mejor forma.
  • 28. 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
  • 29. ALGORITMO: Prueba de Escritorio Esta prueba consiste en: Dar diferentes datos de entrada al programa seguir la secuencia indicada hasta obtener los resultados
  • 30. 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.
  • 31. 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.
  • 32. 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.
  • 33. 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 Tarea
  • 34. Bibliografía J. Glenn Brookshear. (2012). Introducción a la Computación. (11ª Ed.). PEARSON EDUCACIÓN, S. A., Madrid. ISBN eBook: 9788478291380