Está en la página 1de 12

INTITUTO SUPERIOR TECNOLOGICO TENA

________________________________________________

FUNDAMENTOS DE PROGRAMACIÓN

ENSAYO

ALGORITMO

ALUMNO:

Joel Alvarado Yumbo

Docente

ING. Italo Lara

TENA 13 DE NOVIEMBRE 2023


Docente

Introducción
En el siguiente trabajo les voy a presentar sobre las funciones que hace un algoritmo y
sus características básicas de un algoritmo. Y algunas definiciones acerca de los
estudios del algoritmo, análisis y diseño

Definición

Un algoritmo es una secuencia finita y predefinida de operaciones que se utiliza para

resolver un problema. En otras palabras, se utilizan para realizar una tarea

específica utilizando una secuencia fija de pasos o convirtiendo valores de

entrada en valores de salida. Estos pasos están predeterminados y se realizan

en secuencia. Los algoritmos son independientes de un lenguaje específico y

por tanto funcionan con o sin máquina. Sin embargo, los algoritmos no sólo se

encuentran en las matemáticas y la informática, sino que están en todas partes:

desde los semáforos hasta las funciones de llamada de ascensor.

Características

● Precisos. Objetivos, sin ambigüedad.


● Ordenados. Presentan una secuencia clara y precisa para poder llegar a la
solución.
● Finitos. Contienen un número determinado de pasos.

● Concretos. Ofrecen una solución determinada para la situación o problema


planteados.
● Definidos. El mismo algoritmo debe dar el mismo resultado al recibir la misma
entrada.
Partes de un algoritmo

• Todo algoritmo debe constar de las siguientes partes:

•Input o entrada. El ingreso de los datos que el algoritmo necesita para operar.

•Proceso. Se trata de la operación lógica formal que el algoritmo emprenderá con


lo
recibido del input.

•Output o salida. Los resultados obtenidos del proceso sobre el input, una vez
terminada la ejecución del algoritmo.

Tipos

● Cuantitativos y cualitativos: si funcionan a través de cálculos matemáticos o


secuencias lógicas.
●Computacionales o no
computacionales: si requieren o no del uso de un ordenador para la solución o
ejecución de una determinada tarea.

Según su función y estrategia, es decir, qué hacen y cómo lo hacen, existen cinco
tipos de algoritmos:

● Algoritmos de búsqueda: aquellos que encuentran uno o varios elementos que


presenten un conjunto de propiedades dentro de una determinada estructura de
datos. Las búsquedas pueden ser:
o Secuenciales: comparan el elemento a buscar con cada elemento del conjunto,
hasta encontrarlo.
o Binarias: comparan el elemento de búsqueda con un elemento ubicado en el
medio de una serie ordenada para determinar si son iguales.

● Algoritmo de ordenamiento: son los que se utilizan para reorganizar


elementos de un listado, siguiendo unas pautas de orden numérico o
alfanumérico. Pueden ser:
o De burbuja: comparan cada elemento de la lista a ordenar, intercambiando
posiciones si no están ordenados correctamente.
o Por selección: ordenan a partir del elemento más pequeño de forma
consecutiva.
o Rápido: eligen un elemento del conjunto y reubican el resto en torno a este en
función de si son menores o mayores respecto a él.

● Algoritmos voraces: se trata de un tipo de algoritmo aplicado a problemas de


optimización y se utiliza para la toma de decisiones lógicas para llegar a una
solución final global. Estos algoritmos no son reversibles una vez que se toma la
decisión de ejecutarlos.

● Programación dinámica: este tipo de algoritmo está asociado al método con el


que se procesa el resultado. La solución de un elemento depende de la solución
de una serie de problemas más pequeños, por lo que conforme se van
solucionando sus problemas, se van almacenando las soluciones para que no
sea necesario calcularlas nuevamente. Con la programación dinámica se reduce
el tiempo de ejecución del algoritmo.

● Algoritmos probabilísticos: este tipo de algoritmos basa sus resultados en el azar, de


manera que, en líneas generales, se pueda obtener una buena solución para cualquier
distribución aleatoria de inputs de entrada. El azar representa una optimización de
tiempo respecto a si se determinara la mejor alternativa para cada caso individual. Se
obtiene, en consecuencia, una buena solución a
un problema para cualquier distribución de
datos de entrada.

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:

1. Simples: Consiste en pasar un valor constante a una variable (a 15


2.
Contador: Consiste en usarla como un verificador del número de veces que se realiza un proceso

3. Acumulador: Consiste en usarla como un sumador en un proceso (a a + b)


4.
De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas

Ejemplos

Selectivos o Condicionantes

Las estructuras alternativas se utilizan para tomar decisiones lógicas, por lo que
también suelen denominarse estructuras de decisión o estructuras alternativas y se
utilizan en todos los lenguajes de programación. En este ejemplo, veremos las
construcciones selectivas del lenguaje de
programación Ruby, creado por el programador
japonés Yukihiro "Matz" Matsumoto, quien comenzó a trabajar con Ruby en 1993 y lo
demostró públicamente en 1995. En el círculo de amigos de Matsumoto la llamaban
"Ruby" (Rubí en español) en broma alusiva al lenguaje de programación "Perl" (Perla).
En una estructura selectiva se evalúan las condiciones y se toma una u otra opción en
función de sus resultados. Utilice expresiones lógicas para especificar condiciones. La
representación de la estructura de elección se realiza con palabras pseudocódigo (si,
entonces, él se o en español si, entonces, sino) y la estructura de elección pueden ser:

Simples

Se identifican porque están compuestos únicamente de una condición. La estructura si-


entonces evalúa la condición y en tal caso:
Si la condición es verdadera, entonces ejecuta la acción Si (o acciones si son varias).
Si la condición es falsa no se hace nada.
Su sintaxis es la siguiente en pseudocódigo:
Español
Si<condición> Entonces
<Acción S1>
Fin _ si
Ingles
if <condición>
then
<Acción S1>
End_if

Dobles

Son estructuras lógicas que permiten controlar la ejecución de varias acciones y se


utilizan cuando se tienen dos opciones de acción, por la naturaleza de estas se debe
ejecutar una o la otra, pero no ambas a la vez, es decir, son mutuamente excluyentes.
Su sintaxis es la siguiente en pseudocódigo:
Español
Si <condición> entonces
<Acción S1>
Sino
<Acción S2>
Fin_Si
Ingles
if <condición> then
<Acción S1 > else
<Acción S2>
End_if

Multiples

Aplicando la estructura de decisión múltiples se evaluará una expresión que podrá


tomar n valores distintos, 1, 2, 3, n y según que elija uno de estos valores en la
condición, se realizara una de las n acciones o lo que es igual, el flujo del algoritmo
seguirá solo un determinado camino ente los n posibles. Esta estructura se representa
por un selector el cual si toma el valor 1 ejecutará la acción 1, si toma el valor 2
ejecutará la acción 2, si toma el valor n realizará la acción n.
Su sintaxis es la siguiente:
Español
En caso (variable) hacer
Caso 1: Acción 1
Caso2: Acción 2
Caso N: Acción N
En caso contrario:Acción
Fin_caso
Ingles
switch (selector)
{
case 1: Acción 1
break;
case 2: Acción 2
break;
case n: Acción n
break;
default: Excepción;
break;
}

Cíclicos o Repetitivos

-While (Mientras): La estructura cíclica MIENTRAS, permite ejecutar una serie de


instrucciones un número indeterminado de veces. La cantidad de veces que se repite el
ciclo MIENTRAS depende del cumplimiento de una condición, por esta razón es
frecuente que el programador no conozca de antemano cuántas veces el ciclo será
ejecutado y esta es la principal diferencia con el Ciclo PARA. ¿Qué pasaría si no
quisiéramos que nuestro Robot Cíclico realice su recorrido de manera automática un
número determinado de veces, sino que lo hiciera hasta que una condición suceda, por
ejemplo, una orden del usuario? La estructura cíclica MIENTRAS soluciona esta
necesidad, configurando un ciclo que evalúa entre ciclo y ciclo una condición para
saber si se debe realizar un nuevo ciclo o no.

Ejemplo

-Do while ( Hacer mientras): Los cuales nos permiten ejecutar una o varias líneas de
código de forma repetitiva sin necesidad de tener un valor inicial e incluso a veces sin
siquiera conocer cuándo se va a dar el valor final, hasta aquí son similares a los ciclos
while, sin embargo el ciclo do-while nos permite añadir cierta ventaja adicional y esta
consiste que nos da la posibilidad de ejecutar primero el bloque de instrucciones antes
de evaluar la condición necesaria, de este modo los ciclos do-while, son más efectivos
para algunas situaciones específicas. En resumen, un ciclo do-while, es una estructura
de control cíclica que permite ejecutar de manera repetitiva un bloque de instrucciones
sin evaluar de forma inmediata una condición específica, sino evaluándola justo
después de ejecutar por primera vez el bloque de
instrucciones.

Ejemplo

For (Para): El ciclo for es una estructura de control cíclica, también conocida
como ciclo controlado por contador. Este ciclo es muy sencillo, ya que se conoce con
exactitud cuántas veces se va a llevar a cabo la misma tarea.
Se define una variable de control, el contador, a la que se le incrementa o decrementa
de uno en uno. La acción o acciones dentro del cuerpo del ciclo se repiten hasta que la
variable de control llegue al valor final determinado en el encabezado del ciclo.

En español, la palabra for suele ser traducida como “para “, pero considero que, por su
funcionamiento, y para usarlo dentro de un seudocódigo, la traducción más adecuada
es “desde “. Y esto debido a que precisamente el comportamiento del ciclo se puede
describir así: repetir n acciones desde que la variable de control tome el valor
inicial hasta el valor final.
El ciclo for está disponible en casi todos los lenguajes de programación imperativa,
pero con diferencias sustanciales en su sintaxis.

Ejemplo
Diagrama de flujo

El diagrama de flujo se caracteriza principalmente por el uso dado a los símbolos, los
cuales tienen significados definidos que llegan a mostrar los pasos del algoritmo y a la
vez llegan a representar el flujo con el cual se ha de ejecutar el proceso a través de
flechas que llegan a conectar el punto de comienzo y de término del proceso. Un
diagrama de flujo se presenta como un gráfico lógico que representa un plan de
trabajo, el cual se lleva a cabo para dar solución a un problema. Por medio de este se
planifica la mejor solución ante un problema sin depender del lenguaje de computación
que se implementará.

● Debe ser fácil de leer.


● Su interpretación debe ser visual.
● La información debe ser sintetizada.
● Utiliza simbología.
● De fácil análisis.
● Debe identificar procesos rápidamente.
● Debe integrar todos los aspectos de los procesos.

Simbología
Problemas resueltos con diagramas de flujo

1. Crear un diagrama de flujo de procesos en el que se almacenen 3 números en 3


variables A, B y C. El diagrama debe decidir cuál es el mayor y cuál es menor.

2. Modificar el anterior para que permita sumar N números. El valor de N se debe


leerpreviamente por teclado.
Conclusión

Cómo podemos ver en este ensayo de algoritmo, los algoritmo son de mucha
ayuda para poder programar como hemos visto los algoritmos son una de las
herramientas más complejas y aplicables en el área de la informática y el mundo
de los computadoras.

También podría gustarte