SlideShare una empresa de Scribd logo
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

PDF
Algoritmos TECNICO EN DESARROLLO DE SOFTWARE
PDF
Unidad 1
PPTX
2. escritura de algoritmos
PPTX
Fundamentos de p
PPT
Algoritmos diagrama-de-flujo
PDF
EJERCICIOS BUCLES REPETITIVOS LENGUAJE C
PDF
Unidad i-guia1
PDF
Resolución de problemas y algoritmo
Algoritmos TECNICO EN DESARROLLO DE SOFTWARE
Unidad 1
2. escritura de algoritmos
Fundamentos de p
Algoritmos diagrama-de-flujo
EJERCICIOS BUCLES REPETITIVOS LENGUAJE C
Unidad i-guia1
Resolución de problemas y algoritmo

La actualidad más candente (19)

PPT
Entidades Primitivas Para Algoritmos
PPTX
Lógica y Algoritmos
PDF
Conceptos basicos algoritmos
PPTX
Algoritmos y programas
DOCX
Diferencia entre pseudocodigo y algoritmo
PPTX
Algoritmos
PPTX
3. Elementos basicos de un programa
PPTX
Conceptos de algoritmos
PPTX
Elementos basicos de un programa Grupo 2
PDF
Anexo1
DOCX
Programacion lenguaje-c
PPTX
Introducción a la Programación
PPT
Algoritmos Conceptos Basicos - www.ingfiis.tk
PPT
Fundamentos de Programacion
PPSX
Estructura secuencial
PDF
estructuras algoritmicas ciclicas mientras
PPTX
Conceptos de algoritmo, programa y lenguaje de
PPTX
Fundamentos de programación
DOC
Algoritmo
Entidades Primitivas Para Algoritmos
Lógica y Algoritmos
Conceptos basicos algoritmos
Algoritmos y programas
Diferencia entre pseudocodigo y algoritmo
Algoritmos
3. Elementos basicos de un programa
Conceptos de algoritmos
Elementos basicos de un programa Grupo 2
Anexo1
Programacion lenguaje-c
Introducción a la Programación
Algoritmos Conceptos Basicos - www.ingfiis.tk
Fundamentos de Programacion
Estructura secuencial
estructuras algoritmicas ciclicas mientras
Conceptos de algoritmo, programa y lenguaje de
Fundamentos de programación
Algoritmo
Publicidad

Destacado (20)

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

Similar a Infoalgoritmo (20)

PDF
Algoritmos y programacion en C++
DOCX
Algoritmojulio
PPTX
Algoritmos
PPTX
Algoritmo
DOCX
Algoritmos y diagramas_de_flujo
DOCX
Qué es un algoritmo 10
PPTX
PPTX
PPT
Introducción a la Informática - Los Algoritmos
PPTX
Algoritmos
PDF
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
PDF
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
PPT
Programación
PDF
PPTX
algoritmos y fundamentos de programacion
PPTX
Evaluacion de algoritmo
DOCX
Algoritmos y diagramas de flujos
DOCX
Desarrollo de habilidades de pensamiento
Algoritmos y programacion en C++
Algoritmojulio
Algoritmos
Algoritmo
Algoritmos y diagramas_de_flujo
Qué es un algoritmo 10
Introducción a la Informática - Los Algoritmos
Algoritmos
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
Programación
algoritmos y fundamentos de programacion
Evaluacion de algoritmo
Algoritmos y diagramas de flujos
Desarrollo de habilidades de pensamiento

Infoalgoritmo

  • 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