SlideShare una empresa de Scribd logo
1 de 10
Concepto
En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas, un algoritmo (del
griego y latín, dixit algorithmus y este a su vez del matemático persa Al-Juarismi1
) es un conjunto
Informática
ALGORITMO
prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una
actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha
actividad.2
Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un
estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.1
En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos
ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las
instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos
en matemática son el algoritmo de la división para calcular el cociente de dos números,
el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o
el método de Gauss para resolver un sistema.
Tipos de algoritmo
Cualitativos:Sonaquellosenlosquesedescribenlospasosutilizandopalabras.
• Son todos aquellos pasos o instrucciones descritos por medio de palabras que sirven para
llegar a la obtención de una respuesta o solución de un problema cualquier
Cuantitativos: Sonaquellosenlosqueseutilizancálculosnuméricosparadefinirlospasosdelproceso.
• Son aquellos pasos o instrucciones que involucran cálculos numéricos para llegar a un
resultado satisfactorio
Tiposdealgoritmosderazonamiento:
AlgoritmosEstáticos: sonlosquefuncionansiempreigual,independientementedeltipodeproblematratado.
AlgoritmosAdaptativos:algoritmosconciertacapacidaddeaprendizaje.
Algoritmos Probabilísticos: son algoritmos que no utilizan valores de verdad booleanos sino
continuos. Existen varios tipos de algoritmos probabilísticos dependiendo de su funcionamiento,
pudiéndose distinguir:
§ Algoritmos numéricos: que proporcionan una solución aproximada del problema.
§ Algoritmos de Montecarlo: que pueden dar la respuesta correcta o respuesta erróneas (con
probabilidad baja).
§ Algoritmos de Las Vegas: que nunca dan una respuesta incorrecta: o bien dan la respuesta
correcta o informan del fallo.
Algoritmo Cotidiano: es la serie de pasos que realizamos en nuestra vida diaria para realizar las
diferentes tareas y actividades comunes, desde los pasos al levantarnos, así como ir de compras,
etc.
Algoritmo Voraz: un algoritmo voraz es aquel que, para resolver un determinado problema, sigue
una heurística consistente en elegir la opción óptima en cada paso local con la esperanza de
llegar a una solución general óptima.
PÁGINA 2
Algoritmo Determinista: es un algoritmo que, en términos informales, es completamente
predictivo si se conocen sus entradas.
Algoritmo Heurístico: es un algoritmo que abandona uno o ambos objetivos; por ejemplo,
normalmente encuentran buenas soluciones, aunque no hay pruebas de que la solución no pueda
ser arbitrariamente errónea en algunos casos; o se ejecuta razonablemente rápido, aunque no
existe tampoco prueba de que siempre será así.
Las heurísticas generalmente son usadas cuando no existe una solución óptima bajo las
restricciones dadas (tiempo, espacio, etc.), o cuando no existe del todo.
Algoritmo de escalada: la idea básica consiste en comenzar con una mala solución a un
determinado problema y, repetidamente, aplicar optimizaciones a la misma hasta que esta sea
óptima o satisfaga algún otro requisito.
CARACTERISTICAS DE LOS ALGORITMOS
Las principales características de los algoritmos son:
• El algoritmo debe ser sencillo e indicar el orden de realización de cada paso
• Un algoritmo debe estar definido.
• El algoritmo de ser finito.
Un algoritmo describe la transformación de una entrada en la salida
La entrada se refiere a algo que existe y es utilizado por el algoritmo para transformarlo en los
resultados que uno planifica.
Lenguaje de algorítmica y Programación
• Lenguaje máquina: Todo se programa con 1 y 0, que es lo único que entiende el ordenador.
PÁGINA 3
Ventaja: No necesita ser traducido.
Inconveniente: La dificultad, la confusión, para corregir errores, es propia de cada máquina.
• De bajo nivel o ensamblador: Se utilizan mnemotécnicos (abreviaturas).
Ventaja: No es tan difícil como el lenguaje máquina.
Inconvenientes: Cada máquina tiene su propio lenguaje, necesitamos un proceso de traducción.
• El programa escrito en ensamblador se llama programa fuente y el programa que se obtiene
al ensamblarlo se llama programa objeto.
• Lenguajes de alto nivel: Los más cercanos al lenguaje humano.
Partes de un algoritmo
Todo algoritmo debe obedecer a la estructura básica de un sistema, es decir: entrada, proceso y
salida.
• Entrada:
Corresponde al insumo, a los datos necesarios que requiere el proceso para ofrecer los
resultados esperados.
• Proceso
Pasos necesarios para obtener la solución del problema o la situación planteada.
• Salida
Resultados arrojados por el proceso como solución.
En el ejemplo del algoritmo de la sumatoria de los dos números, tenemos:
Entrada: Valores de de las variables A y B.
Proceso: Asignar a la variable Suma, el valor de A mas el valor de B.
Salida: Impresión del valor de la variable Suma, que contiene la sumatoria de los valores de A y B.
Características y elementos para construir un algoritmo
• Variables
Son elementos que toman valores específicos de un tipo de datos concreto. La declaración de
una variable puede realizarse comenzando con var. Principalmente, existen dos maneras de
otorgar valores iniciales a variables:
• Mediante una sentencia de asignación.
• Mediante un procedimiento de entrada de datos (por ejemplo: 'read').
Ejemplo:
...
I:=1;
PÁGINA 4
Read(n);
While i < n do begin
(* Cuerpo del bucle *)
I:= i + 1
End;
...
• Estructuras secuenciales
La estructura secuencial es aquella en la que una acción sigue a otra en secuencia. Las
operaciones se suceden de tal modo que la salida de una es la entrada de la siguiente y así
sucesivamente hasta el fin del proceso. La asignación de esto consiste, en el paso de valores o
resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable
que recibe el valor. La asignación se puede clasificar de la siguiente forma:
• Simples: Consiste en pasar un valor constante a una variable (a ← 15)
• Contador: Consiste en usarla como un verificador del número de veces que se realiza un
proceso (a ← a + 1)
• Acumulador: Consiste en usarla como un sumador en un proceso (a ← a + b)
• De trabajo: Donde puede recibir el resultado de una operación matemática que involucre
muchas variables (a ← c + b*2/4).
Un ejemplo de estructura secuencial, como obtener el área de un triángulo:
Inicio
...
Float b, h, a;
Printf ("Diga la base");
Scanf ("%f", &b);
Printf ("Diga la altura");
Scanf ("%f", &h);
a = (b*h)/2;
Printf ("El área del triángulo es %f", a)
...
Fin
Formas de representar un algoritmo: Lenguaje Natural, pseudocódigo y diagrama de flujo
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
PÁGINA 5
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. Dichas expresiones son
formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes
de un lenguaje de programación específico.
La descripción de un algoritmo usualmente se hace en tres niveles:
• 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.
• Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que
encuentran la solución.
• 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.
• Diagrama de flujo
Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número x
Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con
flechas para indicar la secuencia de instrucciones y están regidos por ISO.
Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho
espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción
PÁGINA 6
a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la
computación.
• Pseudocódigo
El pseudocódigo (falso lenguaje, el prefijo pesado significa falso) es una descripción de alto nivel
de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintácticas
propias de lenguajes de programación, como asignaciones, ciclos y condicionales, aunque no
está regido por ningún estándar. Es utilizado para describir algoritmos en libros y publicaciones
científicas, y como producto intermedio durante el desarrollo de un algoritmo, como los |diagramas
de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos
en pseudocódigo requieren menos espacio para representar instrucciones complejas.
El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y
por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación.
Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en la
sintaxis de lenguajes de programación concretos. Sin embargo, el pseudocódigo, en general, es
comprensible sin necesidad de conocer o utilizar un entorno de programación específico, y es a la
vez suficientemente estructurado para que su implementación se pueda hacer directamente a
partir de él.
Así el pseudocódigo cumple con las funciones antes mencionadas para representar algo abstracto
los protocolos son los lenguajes para la programación. Busque fuentes más precisas para tener
mayor comprensión del tema.
• Sistemas formales
La teoría de autómatas y la teoría de funciones recursivas proveen modelos matemáticos que
formalizan el concepto de algoritmo. Los modelos más comunes son la máquina de
Turing, máquina de registro y funciones μ-recursivas. Estos modelos son tan precisos como
un lenguaje máquina, careciendo de expresiones coloquiales o ambigüedad, sin embargo se
mantienen independientes de cualquier computadora y de cualquier implementación.
• Implementación
Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos
pueden ser implementados en otros medios, como una red neuronal, un circuito eléctrico o un
aparato mecánico y eléctrico. Algunos algoritmos inclusive se diseñan especialmente para
implementarse usando lápiz y papel. El algoritmo de multiplicación tradicional, el algoritmo de
Euclides, la criba y muchas formas de resolver la raíz cuadrada son sólo algunos ejemplos.
Traza de un algoritmo (corrida en frío)
La traza de un algoritmo (o programa) indica la secuencia de acciones (instrucciones) de su
ejecución, así como, el valor de las variables del algoritmo (o programa) después de cada acción
(instrucción).
PÁGINA 7
Ejercicios
Inicio =
Elementos Decimales sal, des, salario-neto;
Constantes 550 = 0,05
Escribir (“ingrese el salario del trabajador”);
Leer sal;
Hacer des = sal * 550;
Salario-neto = des – sal;
Escribir (“salario neto es “salario-neto””)
Escribir (“descuento es des”);
Fin
PÁGINA 8
Se desea calcular el salario neto de un trabajador tomando en cuenta lo siguiente:
- Si el trabajador labora más de 12 horas se le asignara un bono de 500 bs.F
- Si labora menos de 12 horas se le asignara un bono de 100 bs.F
Inicio
Elementos Decimales suel, total, extra, normal, hor, bono;
Escribir (“ingrese su salario”)
Leer suel;
Escribir (“ingrese horas trabajadas”)
Leer hor;
Si (hor > 12) Hacer
Bono = suel + 500;
Escribir (“el salario neto más bono es = bono”);
Si no
Extra = suel + 100;
Escribir (“el salario neto más bono es = extra”);
Fin si
Fin.
PÁGINA 9
Se desea calcular el salario neto de un trabajador tomando en cuenta lo siguiente:
- Si el trabajador labora más de 12 horas se le asignara un bono de 500 bs.F
- Si labora menos de 12 horas se le asignara un bono de 100 bs.F
Inicio
Elementos Decimales suel, total, extra, normal, hor, bono;
Escribir (“ingrese su salario”)
Leer suel;
Escribir (“ingrese horas trabajadas”)
Leer hor;
Si (hor > 12) Hacer
Bono = suel + 500;
Escribir (“el salario neto más bono es = bono”);
Si no
Extra = suel + 100;
Escribir (“el salario neto más bono es = extra”);
Fin si
Fin.
PÁGINA 9

Más contenido relacionado

La actualidad más candente

Medidas de seguridad e higiene para dar mantenimiento preventivo al equipo de...
Medidas de seguridad e higiene para dar mantenimiento preventivo al equipo de...Medidas de seguridad e higiene para dar mantenimiento preventivo al equipo de...
Medidas de seguridad e higiene para dar mantenimiento preventivo al equipo de...Jennifer Guadalupe Collazo Guillen
 
Introducción al análisis de algoritmos
Introducción al  análisis de algoritmosIntroducción al  análisis de algoritmos
Introducción al análisis de algoritmosAlvaro Enrique Ruano
 
Incompatibilidad Hardware y Software
Incompatibilidad Hardware y SoftwareIncompatibilidad Hardware y Software
Incompatibilidad Hardware y SoftwareJunnuel Santana
 
CUESTIONARIO 5 PREGUNTAS DE LOS 6 TEMAS
CUESTIONARIO 5 PREGUNTAS  DE LOS 6 TEMASCUESTIONARIO 5 PREGUNTAS  DE LOS 6 TEMAS
CUESTIONARIO 5 PREGUNTAS DE LOS 6 TEMASValeriaBerrones
 
Conclusiones importancia del mantenimiento preventivo y corectivo de equipos ...
Conclusiones importancia del mantenimiento preventivo y corectivo de equipos ...Conclusiones importancia del mantenimiento preventivo y corectivo de equipos ...
Conclusiones importancia del mantenimiento preventivo y corectivo de equipos ...yury alejandra
 
Lenguajes regulares
Lenguajes regularesLenguajes regulares
Lenguajes regularesKenia Adams
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosSergio Sanchez
 
Sistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosSistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosJesús Navarro
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de ContextoBrayhan Acosta
 
Operaciones entre lenguajes
Operaciones entre lenguajesOperaciones entre lenguajes
Operaciones entre lenguajesJean Bernard
 
Controles básicos y controles de selección
Controles básicos y controles de selecciónControles básicos y controles de selección
Controles básicos y controles de selecciónAlberto Paillao Farias
 
Estándar IEEE 830-1998 - Especificacón de requisitos de Software
Estándar IEEE 830-1998 - Especificacón de requisitos de SoftwareEstándar IEEE 830-1998 - Especificacón de requisitos de Software
Estándar IEEE 830-1998 - Especificacón de requisitos de SoftwareDaniel Guaycha
 
Administración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueosAdministración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueosjocuva101
 

La actualidad más candente (20)

4. fragmentación vertical
4. fragmentación vertical4. fragmentación vertical
4. fragmentación vertical
 
Medidas de seguridad e higiene para dar mantenimiento preventivo al equipo de...
Medidas de seguridad e higiene para dar mantenimiento preventivo al equipo de...Medidas de seguridad e higiene para dar mantenimiento preventivo al equipo de...
Medidas de seguridad e higiene para dar mantenimiento preventivo al equipo de...
 
Introducción al análisis de algoritmos
Introducción al  análisis de algoritmosIntroducción al  análisis de algoritmos
Introducción al análisis de algoritmos
 
Incompatibilidad Hardware y Software
Incompatibilidad Hardware y SoftwareIncompatibilidad Hardware y Software
Incompatibilidad Hardware y Software
 
CUESTIONARIO 5 PREGUNTAS DE LOS 6 TEMAS
CUESTIONARIO 5 PREGUNTAS  DE LOS 6 TEMASCUESTIONARIO 5 PREGUNTAS  DE LOS 6 TEMAS
CUESTIONARIO 5 PREGUNTAS DE LOS 6 TEMAS
 
Conclusiones importancia del mantenimiento preventivo y corectivo de equipos ...
Conclusiones importancia del mantenimiento preventivo y corectivo de equipos ...Conclusiones importancia del mantenimiento preventivo y corectivo de equipos ...
Conclusiones importancia del mantenimiento preventivo y corectivo de equipos ...
 
Lenguajes regulares
Lenguajes regularesLenguajes regulares
Lenguajes regulares
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
 
Estructura secuencial
Estructura secuencialEstructura secuencial
Estructura secuencial
 
Stand alone
Stand aloneStand alone
Stand alone
 
Diagrama de componentes
Diagrama de componentesDiagrama de componentes
Diagrama de componentes
 
Sistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosSistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidos
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de Contexto
 
Operaciones entre lenguajes
Operaciones entre lenguajesOperaciones entre lenguajes
Operaciones entre lenguajes
 
Aplicaciones n capas en visual net
Aplicaciones n capas en visual netAplicaciones n capas en visual net
Aplicaciones n capas en visual net
 
Formato ieee830(srs lleno)
Formato ieee830(srs lleno)Formato ieee830(srs lleno)
Formato ieee830(srs lleno)
 
Controles básicos y controles de selección
Controles básicos y controles de selecciónControles básicos y controles de selección
Controles básicos y controles de selección
 
Estándar IEEE 830-1998 - Especificacón de requisitos de Software
Estándar IEEE 830-1998 - Especificacón de requisitos de SoftwareEstándar IEEE 830-1998 - Especificacón de requisitos de Software
Estándar IEEE 830-1998 - Especificacón de requisitos de Software
 
Diseño a Nivel de Componentes
Diseño a Nivel de ComponentesDiseño a Nivel de Componentes
Diseño a Nivel de Componentes
 
Administración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueosAdministración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueos
 

Destacado

Guia primer periodo de 8 modificada
Guia primer periodo de 8 modificadaGuia primer periodo de 8 modificada
Guia primer periodo de 8 modificadaJovanni Patiño
 
Institución educativa ciudadela del sur 11 1 4 periodo
Institución educativa ciudadela del sur 11 1 4 periodoInstitución educativa ciudadela del sur 11 1 4 periodo
Institución educativa ciudadela del sur 11 1 4 periodoJovanni Patiño
 
Institución educativa ciudadela del sur grado 10
Institución educativa ciudadela del sur grado 10Institución educativa ciudadela del sur grado 10
Institución educativa ciudadela del sur grado 10Jovanni Patiño
 
Institución educativa ciudadela del sur 9 1 3 periodo
Institución educativa ciudadela del sur 9 1 3 periodoInstitución educativa ciudadela del sur 9 1 3 periodo
Institución educativa ciudadela del sur 9 1 3 periodoJovanni Patiño
 
Institución educativa ciudadela del sur 1 guia (5)
Institución educativa ciudadela del sur 1 guia (5)Institución educativa ciudadela del sur 1 guia (5)
Institución educativa ciudadela del sur 1 guia (5)Jovanni Patiño
 
Analisis y diseño de algoritmos
Analisis y diseño de algoritmosAnalisis y diseño de algoritmos
Analisis y diseño de algoritmosYulyana López
 
Guia tecnología e informática grado once segundo periodo
Guia tecnología e informática grado once segundo periodoGuia tecnología e informática grado once segundo periodo
Guia tecnología e informática grado once segundo periodoJovanni Patiño
 
Ejercicios de algoritmos
Ejercicios de algoritmosEjercicios de algoritmos
Ejercicios de algoritmosjhonshebax
 
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 asignacionBoris Salleg
 
Grado 7° ( i periodo guia (1) para modificat (autoguardado)
Grado 7° ( i periodo guia  (1) para modificat (autoguardado)Grado 7° ( i periodo guia  (1) para modificat (autoguardado)
Grado 7° ( i periodo guia (1) para modificat (autoguardado)Maria Norence Ruiz
 
EJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOSEJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOS1002pc3
 
Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)luzenith_g
 

Destacado (20)

Ciclo 3 a 2 periodo
Ciclo 3 a 2 periodoCiclo 3 a 2 periodo
Ciclo 3 a 2 periodo
 
Guia 1 tecnologia
Guia 1 tecnologiaGuia 1 tecnologia
Guia 1 tecnologia
 
Guia 9 4 periodo
Guia 9 4 periodoGuia 9 4 periodo
Guia 9 4 periodo
 
Guia primer periodo de 8 modificada
Guia primer periodo de 8 modificadaGuia primer periodo de 8 modificada
Guia primer periodo de 8 modificada
 
Institución educativa ciudadela del sur 11 1 4 periodo
Institución educativa ciudadela del sur 11 1 4 periodoInstitución educativa ciudadela del sur 11 1 4 periodo
Institución educativa ciudadela del sur 11 1 4 periodo
 
Institución educativa ciudadela del sur grado 10
Institución educativa ciudadela del sur grado 10Institución educativa ciudadela del sur grado 10
Institución educativa ciudadela del sur grado 10
 
Institución educativa ciudadela del sur 9 1 3 periodo
Institución educativa ciudadela del sur 9 1 3 periodoInstitución educativa ciudadela del sur 9 1 3 periodo
Institución educativa ciudadela del sur 9 1 3 periodo
 
Guia n°4 de 7° modificada
Guia n°4 de 7° modificadaGuia n°4 de 7° modificada
Guia n°4 de 7° modificada
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Institución educativa ciudadela del sur 1 guia (5)
Institución educativa ciudadela del sur 1 guia (5)Institución educativa ciudadela del sur 1 guia (5)
Institución educativa ciudadela del sur 1 guia (5)
 
Circuitos electricos
Circuitos electricosCircuitos electricos
Circuitos electricos
 
Analisis y diseño de algoritmos
Analisis y diseño de algoritmosAnalisis y diseño de algoritmos
Analisis y diseño de algoritmos
 
Guia tecnología e informática grado once segundo periodo
Guia tecnología e informática grado once segundo periodoGuia tecnología e informática grado once segundo periodo
Guia tecnología e informática grado once segundo periodo
 
La bombilla
La bombillaLa bombilla
La bombilla
 
Ejercicios de algoritmos
Ejercicios de algoritmosEjercicios de algoritmos
Ejercicios de algoritmos
 
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
 
Diagrama de flujo
Diagrama de flujoDiagrama de flujo
Diagrama de flujo
 
Grado 7° ( i periodo guia (1) para modificat (autoguardado)
Grado 7° ( i periodo guia  (1) para modificat (autoguardado)Grado 7° ( i periodo guia  (1) para modificat (autoguardado)
Grado 7° ( i periodo guia (1) para modificat (autoguardado)
 
EJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOSEJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOS
 
Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)
 

Similar a Algoritmo

Similar a Algoritmo (20)

Algoritmo00
Algoritmo00Algoritmo00
Algoritmo00
 
Algoritmos y programacion en C++
Algoritmos y programacion en C++Algoritmos y programacion en C++
Algoritmos y programacion en C++
 
Algoritmojulio
AlgoritmojulioAlgoritmojulio
Algoritmojulio
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Fundamentos de p
Fundamentos de pFundamentos de p
Fundamentos de p
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoAlgoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujo
 
Qué es un algoritmo 10
Qué es un algoritmo 10Qué es un algoritmo 10
Qué es un algoritmo 10
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfU1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
 
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfU1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
 
Unidad i-guia1
Unidad i-guia1Unidad i-guia1
Unidad i-guia1
 
Programación
ProgramaciónProgramación
Programación
 
Private
PrivatePrivate
Private
 
algoritmos y fundamentos de programacion
algoritmos y fundamentos de programacionalgoritmos y fundamentos de programacion
algoritmos y fundamentos de programacion
 
Evaluacion de algoritmo
Evaluacion de algoritmoEvaluacion de algoritmo
Evaluacion de algoritmo
 

Algoritmo

  • 1. Concepto En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus y este a su vez del matemático persa Al-Juarismi1 ) es un conjunto Informática ALGORITMO
  • 2. prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.1 En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos en matemática son el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema. Tipos de algoritmo Cualitativos:Sonaquellosenlosquesedescribenlospasosutilizandopalabras. • Son todos aquellos pasos o instrucciones descritos por medio de palabras que sirven para llegar a la obtención de una respuesta o solución de un problema cualquier Cuantitativos: Sonaquellosenlosqueseutilizancálculosnuméricosparadefinirlospasosdelproceso. • Son aquellos pasos o instrucciones que involucran cálculos numéricos para llegar a un resultado satisfactorio Tiposdealgoritmosderazonamiento: AlgoritmosEstáticos: sonlosquefuncionansiempreigual,independientementedeltipodeproblematratado. AlgoritmosAdaptativos:algoritmosconciertacapacidaddeaprendizaje. Algoritmos Probabilísticos: son algoritmos que no utilizan valores de verdad booleanos sino continuos. Existen varios tipos de algoritmos probabilísticos dependiendo de su funcionamiento, pudiéndose distinguir: § Algoritmos numéricos: que proporcionan una solución aproximada del problema. § Algoritmos de Montecarlo: que pueden dar la respuesta correcta o respuesta erróneas (con probabilidad baja). § Algoritmos de Las Vegas: que nunca dan una respuesta incorrecta: o bien dan la respuesta correcta o informan del fallo. Algoritmo Cotidiano: es la serie de pasos que realizamos en nuestra vida diaria para realizar las diferentes tareas y actividades comunes, desde los pasos al levantarnos, así como ir de compras, etc. Algoritmo Voraz: un algoritmo voraz es aquel que, para resolver un determinado problema, sigue una heurística consistente en elegir la opción óptima en cada paso local con la esperanza de llegar a una solución general óptima. PÁGINA 2
  • 3. Algoritmo Determinista: es un algoritmo que, en términos informales, es completamente predictivo si se conocen sus entradas. Algoritmo Heurístico: es un algoritmo que abandona uno o ambos objetivos; por ejemplo, normalmente encuentran buenas soluciones, aunque no hay pruebas de que la solución no pueda ser arbitrariamente errónea en algunos casos; o se ejecuta razonablemente rápido, aunque no existe tampoco prueba de que siempre será así. Las heurísticas generalmente son usadas cuando no existe una solución óptima bajo las restricciones dadas (tiempo, espacio, etc.), o cuando no existe del todo. Algoritmo de escalada: la idea básica consiste en comenzar con una mala solución a un determinado problema y, repetidamente, aplicar optimizaciones a la misma hasta que esta sea óptima o satisfaga algún otro requisito. CARACTERISTICAS DE LOS ALGORITMOS Las principales características de los algoritmos son: • El algoritmo debe ser sencillo e indicar el orden de realización de cada paso • Un algoritmo debe estar definido. • El algoritmo de ser finito. Un algoritmo describe la transformación de una entrada en la salida La entrada se refiere a algo que existe y es utilizado por el algoritmo para transformarlo en los resultados que uno planifica. Lenguaje de algorítmica y Programación • Lenguaje máquina: Todo se programa con 1 y 0, que es lo único que entiende el ordenador. PÁGINA 3
  • 4. Ventaja: No necesita ser traducido. Inconveniente: La dificultad, la confusión, para corregir errores, es propia de cada máquina. • De bajo nivel o ensamblador: Se utilizan mnemotécnicos (abreviaturas). Ventaja: No es tan difícil como el lenguaje máquina. Inconvenientes: Cada máquina tiene su propio lenguaje, necesitamos un proceso de traducción. • El programa escrito en ensamblador se llama programa fuente y el programa que se obtiene al ensamblarlo se llama programa objeto. • Lenguajes de alto nivel: Los más cercanos al lenguaje humano. Partes de un algoritmo Todo algoritmo debe obedecer a la estructura básica de un sistema, es decir: entrada, proceso y salida. • Entrada: Corresponde al insumo, a los datos necesarios que requiere el proceso para ofrecer los resultados esperados. • Proceso Pasos necesarios para obtener la solución del problema o la situación planteada. • Salida Resultados arrojados por el proceso como solución. En el ejemplo del algoritmo de la sumatoria de los dos números, tenemos: Entrada: Valores de de las variables A y B. Proceso: Asignar a la variable Suma, el valor de A mas el valor de B. Salida: Impresión del valor de la variable Suma, que contiene la sumatoria de los valores de A y B. Características y elementos para construir un algoritmo • Variables Son elementos que toman valores específicos de un tipo de datos concreto. La declaración de una variable puede realizarse comenzando con var. Principalmente, existen dos maneras de otorgar valores iniciales a variables: • Mediante una sentencia de asignación. • Mediante un procedimiento de entrada de datos (por ejemplo: 'read'). Ejemplo: ... I:=1; PÁGINA 4
  • 5. Read(n); While i < n do begin (* Cuerpo del bucle *) I:= i + 1 End; ... • Estructuras secuenciales La estructura secuencial es aquella en la que una acción sigue a otra en secuencia. Las operaciones se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. La asignación de esto consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma: • Simples: Consiste en pasar un valor constante a una variable (a ← 15) • Contador: Consiste en usarla como un verificador del número de veces que se realiza un proceso (a ← a + 1) • Acumulador: Consiste en usarla como un sumador en un proceso (a ← a + b) • De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a ← c + b*2/4). Un ejemplo de estructura secuencial, como obtener el área de un triángulo: Inicio ... Float b, h, a; Printf ("Diga la base"); Scanf ("%f", &b); Printf ("Diga la altura"); Scanf ("%f", &h); a = (b*h)/2; Printf ("El área del triángulo es %f", a) ... Fin Formas de representar un algoritmo: Lenguaje Natural, pseudocódigo y diagrama de flujo 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 PÁGINA 5
  • 6. 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. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico. La descripción de un algoritmo usualmente se hace en tres niveles: • 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. • Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución. • 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. • Diagrama de flujo Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número x Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO. Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción PÁGINA 6
  • 7. a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación. • Pseudocódigo El pseudocódigo (falso lenguaje, el prefijo pesado significa falso) es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes de programación, como asignaciones, ciclos y condicionales, aunque no está regido por ningún estándar. Es utilizado para describir algoritmos en libros y publicaciones científicas, y como producto intermedio durante el desarrollo de un algoritmo, como los |diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos en pseudocódigo requieren menos espacio para representar instrucciones complejas. El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación. Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en la sintaxis de lenguajes de programación concretos. Sin embargo, el pseudocódigo, en general, es comprensible sin necesidad de conocer o utilizar un entorno de programación específico, y es a la vez suficientemente estructurado para que su implementación se pueda hacer directamente a partir de él. Así el pseudocódigo cumple con las funciones antes mencionadas para representar algo abstracto los protocolos son los lenguajes para la programación. Busque fuentes más precisas para tener mayor comprensión del tema. • Sistemas formales La teoría de autómatas y la teoría de funciones recursivas proveen modelos matemáticos que formalizan el concepto de algoritmo. Los modelos más comunes son la máquina de Turing, máquina de registro y funciones μ-recursivas. Estos modelos son tan precisos como un lenguaje máquina, careciendo de expresiones coloquiales o ambigüedad, sin embargo se mantienen independientes de cualquier computadora y de cualquier implementación. • Implementación Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito eléctrico o un aparato mecánico y eléctrico. Algunos algoritmos inclusive se diseñan especialmente para implementarse usando lápiz y papel. El algoritmo de multiplicación tradicional, el algoritmo de Euclides, la criba y muchas formas de resolver la raíz cuadrada son sólo algunos ejemplos. Traza de un algoritmo (corrida en frío) La traza de un algoritmo (o programa) indica la secuencia de acciones (instrucciones) de su ejecución, así como, el valor de las variables del algoritmo (o programa) después de cada acción (instrucción). PÁGINA 7
  • 8. Ejercicios Inicio = Elementos Decimales sal, des, salario-neto; Constantes 550 = 0,05 Escribir (“ingrese el salario del trabajador”); Leer sal; Hacer des = sal * 550; Salario-neto = des – sal; Escribir (“salario neto es “salario-neto””) Escribir (“descuento es des”); Fin PÁGINA 8
  • 9. Se desea calcular el salario neto de un trabajador tomando en cuenta lo siguiente: - Si el trabajador labora más de 12 horas se le asignara un bono de 500 bs.F - Si labora menos de 12 horas se le asignara un bono de 100 bs.F Inicio Elementos Decimales suel, total, extra, normal, hor, bono; Escribir (“ingrese su salario”) Leer suel; Escribir (“ingrese horas trabajadas”) Leer hor; Si (hor > 12) Hacer Bono = suel + 500; Escribir (“el salario neto más bono es = bono”); Si no Extra = suel + 100; Escribir (“el salario neto más bono es = extra”); Fin si Fin. PÁGINA 9
  • 10. Se desea calcular el salario neto de un trabajador tomando en cuenta lo siguiente: - Si el trabajador labora más de 12 horas se le asignara un bono de 500 bs.F - Si labora menos de 12 horas se le asignara un bono de 100 bs.F Inicio Elementos Decimales suel, total, extra, normal, hor, bono; Escribir (“ingrese su salario”) Leer suel; Escribir (“ingrese horas trabajadas”) Leer hor; Si (hor > 12) Hacer Bono = suel + 500; Escribir (“el salario neto más bono es = bono”); Si no Extra = suel + 100; Escribir (“el salario neto más bono es = extra”); Fin si Fin. PÁGINA 9