SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

Entidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosEntidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosMary Sanchez
 
Diferencia entre pseudocodigo y algoritmo
Diferencia entre pseudocodigo y algoritmoDiferencia entre pseudocodigo y algoritmo
Diferencia entre pseudocodigo y algoritmojohan stoker
 
3. Elementos basicos de un programa
3.  Elementos basicos de un programa3.  Elementos basicos de un programa
3. Elementos basicos de un programamartell024
 
Elementos basicos de un programa Grupo 2
Elementos basicos de un programa Grupo 2Elementos basicos de un programa Grupo 2
Elementos basicos de un programa Grupo 2David Tuarez
 
Programacion lenguaje-c
Programacion lenguaje-cProgramacion lenguaje-c
Programacion lenguaje-cClariza
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la ProgramaciónJeckson Loza
 
Algoritmos Conceptos Basicos - www.ingfiis.tk
Algoritmos Conceptos Basicos - www.ingfiis.tkAlgoritmos Conceptos Basicos - www.ingfiis.tk
Algoritmos Conceptos Basicos - www.ingfiis.tkLaurence HR
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacionneyvajms
 
estructuras algoritmicas ciclicas mientras
estructuras algoritmicas ciclicas mientrasestructuras algoritmicas ciclicas mientras
estructuras algoritmicas ciclicas mientrasJohan Velandia
 
Conceptos de algoritmo, programa y lenguaje de
Conceptos de algoritmo, programa y lenguaje deConceptos de algoritmo, programa y lenguaje de
Conceptos de algoritmo, programa y lenguaje de'Felipe Lozada
 
Fundamentos de programación
Fundamentos de programaciónFundamentos de programación
Fundamentos de programaciónEdison Morales
 

Tendances (19)

Entidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosEntidades Primitivas Para Algoritmos
Entidades Primitivas Para Algoritmos
 
Lógica y Algoritmos
Lógica y AlgoritmosLógica y Algoritmos
Lógica y Algoritmos
 
Conceptos basicos algoritmos
Conceptos basicos algoritmosConceptos basicos algoritmos
Conceptos basicos algoritmos
 
Algoritmos y programas
Algoritmos y programasAlgoritmos y programas
Algoritmos y programas
 
Diferencia entre pseudocodigo y algoritmo
Diferencia entre pseudocodigo y algoritmoDiferencia entre pseudocodigo y algoritmo
Diferencia entre pseudocodigo y algoritmo
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
3. Elementos basicos de un programa
3.  Elementos basicos de un programa3.  Elementos basicos de un programa
3. Elementos basicos de un programa
 
Conceptos de algoritmos
Conceptos de algoritmosConceptos de algoritmos
Conceptos de algoritmos
 
Elementos basicos de un programa Grupo 2
Elementos basicos de un programa Grupo 2Elementos basicos de un programa Grupo 2
Elementos basicos de un programa Grupo 2
 
Anexo1
Anexo1Anexo1
Anexo1
 
Programacion lenguaje-c
Programacion lenguaje-cProgramacion lenguaje-c
Programacion lenguaje-c
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la Programación
 
Algoritmos Conceptos Basicos - www.ingfiis.tk
Algoritmos Conceptos Basicos - www.ingfiis.tkAlgoritmos Conceptos Basicos - www.ingfiis.tk
Algoritmos Conceptos Basicos - www.ingfiis.tk
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacion
 
Estructura secuencial
Estructura secuencialEstructura secuencial
Estructura secuencial
 
estructuras algoritmicas ciclicas mientras
estructuras algoritmicas ciclicas mientrasestructuras algoritmicas ciclicas mientras
estructuras algoritmicas ciclicas mientras
 
Conceptos de algoritmo, programa y lenguaje de
Conceptos de algoritmo, programa y lenguaje deConceptos de algoritmo, programa y lenguaje de
Conceptos de algoritmo, programa y lenguaje de
 
Fundamentos de programación
Fundamentos de programaciónFundamentos de programación
Fundamentos de programación
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 

En vedette

Seminário sobre ferramentas de gerenciamento de software
Seminário sobre ferramentas de gerenciamento de softwareSeminário sobre ferramentas de gerenciamento de software
Seminário sobre ferramentas de gerenciamento de softwareDiógenes Fernandes
 
Estilos de vida saludable y obesidad
Estilos de vida saludable y obesidadEstilos de vida saludable y obesidad
Estilos de vida saludable y obesidadsiyaloka
 
A methodology to evaluate object oriented software systems using change requi...
A methodology to evaluate object oriented software systems using change requi...A methodology to evaluate object oriented software systems using change requi...
A methodology to evaluate object oriented software systems using change requi...ijseajournal
 
PROGRAMACION DE COMUNICACION CON RUTAS DE CUARTO GRADO DE SECUNDARIA 2015Prog...
PROGRAMACION DE COMUNICACION CON RUTAS DE CUARTO GRADO DE SECUNDARIA 2015Prog...PROGRAMACION DE COMUNICACION CON RUTAS DE CUARTO GRADO DE SECUNDARIA 2015Prog...
PROGRAMACION DE COMUNICACION CON RUTAS DE CUARTO GRADO DE SECUNDARIA 2015Prog...Rosana Quispe Guerra
 
Estilosdevidasaludableyenfermedadescrnicas250208 121119054353-phpapp01
Estilosdevidasaludableyenfermedadescrnicas250208 121119054353-phpapp01Estilosdevidasaludableyenfermedadescrnicas250208 121119054353-phpapp01
Estilosdevidasaludableyenfermedadescrnicas250208 121119054353-phpapp01aura ramos prado
 
Identités numériques des bibliothèques
Identités numériques des bibliothèquesIdentités numériques des bibliothèques
Identités numériques des bibliothèquesRenaud AIOUTZ
 
Tie juvetude e sindicatos-09 2010- po
Tie juvetude e sindicatos-09 2010- poTie juvetude e sindicatos-09 2010- po
Tie juvetude e sindicatos-09 2010- poTIE-Netherlands
 
Arquitectura organizacional diferenciacion entre horizontal y vertical
Arquitectura organizacional diferenciacion entre horizontal y verticalArquitectura organizacional diferenciacion entre horizontal y vertical
Arquitectura organizacional diferenciacion entre horizontal y verticalFernando Ramirez
 
NG BB 53 Process Control [Compatibility Mode]
NG BB 53 Process Control [Compatibility Mode]NG BB 53 Process Control [Compatibility Mode]
NG BB 53 Process Control [Compatibility Mode]Leanleaders.org
 
2º ano EM - Apostila de Química
2º ano EM - Apostila de Química2º ano EM - Apostila de Química
2º ano EM - Apostila de QuímicaRafael Schetz
 
La historia de las cosas (cuestionario gh23)
La historia de las cosas (cuestionario gh23)La historia de las cosas (cuestionario gh23)
La historia de las cosas (cuestionario gh23)geohistoria23
 
Diferencia entre etica y moral
Diferencia entre etica y moralDiferencia entre etica y moral
Diferencia entre etica y moralRAIMERUPT
 
Reconocimiento de los rasgos fundamentales Diego R.
Reconocimiento de los rasgos fundamentales Diego R.Reconocimiento de los rasgos fundamentales Diego R.
Reconocimiento de los rasgos fundamentales Diego R.Carlos Andres Garzon
 

En vedette (20)

Infoalgoritmo
InfoalgoritmoInfoalgoritmo
Infoalgoritmo
 
Seminário sobre ferramentas de gerenciamento de software
Seminário sobre ferramentas de gerenciamento de softwareSeminário sobre ferramentas de gerenciamento de software
Seminário sobre ferramentas de gerenciamento de software
 
Estilos de vida saludable y obesidad
Estilos de vida saludable y obesidadEstilos de vida saludable y obesidad
Estilos de vida saludable y obesidad
 
A methodology to evaluate object oriented software systems using change requi...
A methodology to evaluate object oriented software systems using change requi...A methodology to evaluate object oriented software systems using change requi...
A methodology to evaluate object oriented software systems using change requi...
 
PROGRAMACION DE COMUNICACION CON RUTAS DE CUARTO GRADO DE SECUNDARIA 2015Prog...
PROGRAMACION DE COMUNICACION CON RUTAS DE CUARTO GRADO DE SECUNDARIA 2015Prog...PROGRAMACION DE COMUNICACION CON RUTAS DE CUARTO GRADO DE SECUNDARIA 2015Prog...
PROGRAMACION DE COMUNICACION CON RUTAS DE CUARTO GRADO DE SECUNDARIA 2015Prog...
 
Estilosdevidasaludableyenfermedadescrnicas250208 121119054353-phpapp01
Estilosdevidasaludableyenfermedadescrnicas250208 121119054353-phpapp01Estilosdevidasaludableyenfermedadescrnicas250208 121119054353-phpapp01
Estilosdevidasaludableyenfermedadescrnicas250208 121119054353-phpapp01
 
Barreras de la comunicación
Barreras de la comunicaciónBarreras de la comunicación
Barreras de la comunicación
 
Identités numériques des bibliothèques
Identités numériques des bibliothèquesIdentités numériques des bibliothèques
Identités numériques des bibliothèques
 
Organizacion y control de obras
Organizacion y control de obrasOrganizacion y control de obras
Organizacion y control de obras
 
Subneteo
SubneteoSubneteo
Subneteo
 
Tie juvetude e sindicatos-09 2010- po
Tie juvetude e sindicatos-09 2010- poTie juvetude e sindicatos-09 2010- po
Tie juvetude e sindicatos-09 2010- po
 
Arquitectura organizacional diferenciacion entre horizontal y vertical
Arquitectura organizacional diferenciacion entre horizontal y verticalArquitectura organizacional diferenciacion entre horizontal y vertical
Arquitectura organizacional diferenciacion entre horizontal y vertical
 
NG BB 53 Process Control [Compatibility Mode]
NG BB 53 Process Control [Compatibility Mode]NG BB 53 Process Control [Compatibility Mode]
NG BB 53 Process Control [Compatibility Mode]
 
02 Fuente-Párrafo
02 Fuente-Párrafo02 Fuente-Párrafo
02 Fuente-Párrafo
 
2º ano EM - Apostila de Química
2º ano EM - Apostila de Química2º ano EM - Apostila de Química
2º ano EM - Apostila de Química
 
La historia de las cosas (cuestionario gh23)
La historia de las cosas (cuestionario gh23)La historia de las cosas (cuestionario gh23)
La historia de las cosas (cuestionario gh23)
 
Impuestos
ImpuestosImpuestos
Impuestos
 
Diferencia entre etica y moral
Diferencia entre etica y moralDiferencia entre etica y moral
Diferencia entre etica y moral
 
Guia Rapida2009
Guia Rapida2009Guia Rapida2009
Guia Rapida2009
 
Reconocimiento de los rasgos fundamentales Diego R.
Reconocimiento de los rasgos fundamentales Diego R.Reconocimiento de los rasgos fundamentales Diego R.
Reconocimiento de los rasgos fundamentales Diego R.
 

Similaire à Algoritmo

Similaire à 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
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
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
 
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
 
Algoritmos y diagramas de flujos
Algoritmos y diagramas de flujosAlgoritmos y diagramas de flujos
Algoritmos y diagramas de flujos
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDesarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
 
Algoritmo , MATEMÁTICA
Algoritmo ,  MATEMÁTICAAlgoritmo ,  MATEMÁTICA
Algoritmo , MATEMÁTICA
 

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