Вы находитесь на странице: 1из 7

3.

ENSAYO SOBRE ALGORITMICA.

Como estudiante de Ingeniera en Sistemas, a lo largo de la carrera he tenido que resolver problemas
usando algoritmos, pero muy pocas veces nos detenemos a verificar si dicho algoritmo es el ms
conveniente para resolver el problema, como tpicos estudiantes pensamos que si el programa
funciona es que ya est resuelto.
Una vez que ya tenemos el algoritmo que funciona de manera correcta, primero debemos definir
algunos criterios para verificar el rendimiento y comportamiento de dicho algoritmo.
Algunos de los criterios a evaluar es que tan simple puede ser usarlo y la manera en que tan
eficientemente utiliza los recursos.
Ahora bien Cmo determinamos cual es el mejor algoritmo para resolver un problema?; La mejor
estrategia seria programas varios algoritmos y ejecutarlos sobre problemas de prueba. Se puede
afirmar que un algoritmo es eficiente cuando logra completar la tarea planteada utilizando para ello
la menor cantidad de recursos posibles, como minimizar el uso de memoria, el nmero de pasos y
el esfuerzo humano, adems el tiempo que tarda en resolver el problema.
La eficiencia de un algoritmo tiene dos bases importantes y fundamentales: espacio y tiempo: La
eficiencia en espacio puede medirse en funcin de la cantidad de memoria que se requiere para
ejecutar un programa, por otro lado la eficiencia en tiempo se puede medir en trminos del tiempo
de ejecucin del programa, si bien ambas bases dependen en gran medida del tipo y capacidad de
la computadora y compilador, trataremos de explicar la eficiencia de los algoritmos y no las
limitantes de estos.
Como ya hemos mencionado la calidad de un algoritmo puede ser demostrada utilizando varios
criterios, uno de los ms importantes es el tiempo utilizado en la ejecucin del programa,
normalmente un problema se puede resolver por mtodos distintos, con diferentes grados de
eficiencia. En el caso de usar una computadora es importante administrar y limitar el consumo
de recursos.
Recurso de Tiempo: En el caso de aplicaciones que trabajan en tiempo real es necesario que los
clculos se realicen en el menor tiempo posible, si una aplicacin maneja una gran cantidad de
informacin y no se administra adecuadamente pueden necesitar tiempos de ejecucin muy largos.
Recurso de Memoria: Al trabajar en una computadora se debe tener en cuenta que se tiene un
espacio de memoria limitado.
Como se mencion antes el tiempo de ejecucin puede depender de diversos factores como son:
los datos de entrada que se ingresen, la calidad del cdigo generado, la naturaleza y rapidez
del procesador, adems de la capacidad del programador para generar el cdigo.
El comportamiento de un algoritmo puede cambiar drsticamente para diferentes tipos de entradas
de prueba, es decir que el tiempo de ejecucin no solo est dado por el tamao de los datos de
entrada. As suelen estudiarse tres casos para un mismo algoritmo: peor caso, mejor caso y caso
medio.

El mejor caso puede interpretarse como el algoritmo que llega a concluir la tarea con el menor
nmero de instrucciones, en el menor tiempo y con la mayor eficiencia en el uso de recursos.
El peor caso representa al algoritmo que puede o no haber llegado a resolver el problema, con el
tiempo de ejecucin ms prolongado y utilizando una gran cantidad de recursos.
La conclusin es que para poder crear una aplicacin que satisfaga las necesidades del usuario,
debemos utilizar el un algoritmo que tenga el menor tiempo de ejecucin y que resuelva el problema
con el menor nmero de instrucciones.

3.3 De dos ejemplos de algoritmos, paso a paso que usted entienda.


Algoritmo de Fibonacci:
Es una secuencia numrica compuesta de la suma de sus dos nmeros predecesores, ejemplo 1, 1,
2, 3, 5. Son los primeros dgitos de la secuencia.
Primero, se comprueba que el nmero de entrada sea mayor a 0, ya que esta secuencia solo aplica
para nmeros mayores a 0, en caso de ser 1 o 0 devuelve 1. (Este es el caso base para la recursividad)
En caso de ser diferente devuelve la suma de la funcin misma evaluada para el numero de entrada
-1 y el nmero de entrada -2, dando como resultado la recursividad, comenzando por sus casos base.
Algoritmo de ordenamiento sobre arreglos variables:
Primero que todo se recorre el arreglo a organizar y si es el primer elemento, se agrega a un nuevo
arreglo que va a ser el organizado en primera posicin, luego para el segundo elemento se compara
si es menor al elemento que se agreg, si es menor se agrega antes, y si es mayor se agrega despus,
para el tercer elemento en adelante se hace lo mismo, con la diferencia que puede ir en medio de
2 elementos y se repite hasta que se termine de recorrer el arreglo original, y el arreglo respuesta
tenga el mismo nmero de elementos que el original.
2. Cules son los grficos que se utilizan para los diagramas de flujo?
Un diagrama de flujo es una representacin grfica de un algoritmo o de una parte del mismo. Los
diagramas de flujo ayudan en la comprensin de la operacin de las estructuras de control (Si,
Mientras).
La ventaja de utilizar un algoritmo es que se lo puede construir independiente mente de un lenguaje
de programacin, pues al momento de llevarlo a cdigo se lo puede hacer en cualquier lenguaje.
Dichos diagramas se construyen utilizando ciertos smbolos de uso especial como son rectngulos,
diamantes, valos, y pequeos crculos, estos smbolos estn conectados entre s por flechas,
conocidas como lneas de flujo. A continuacin se detallarn estos smbolos.

Nombre

Smbolo

Funcin

Terminal

Representa el inicio y fin de un


programa. Tambin puede representar
una parada o interrupcin programada
que sea necesaria realizar en un
programa.

Entrada / salida

Cualquier tipo de introduccin de


datos en la memoria desde los
perifricos o registro de informacin
procesada en un perifrico.

Proceso

Cualquier tipo de operacin que pueda


originar cambio de valor, formato o
posicin de la informacin almacenada
en memoria, operaciones aritmticas,
de transformaciones, etc.

Decisin

Indica operaciones lgicas o de


comparacin
entre
datos
(normalmente dos) y en funcin del
resultado de la misma determina
(normalmente si y no) cual de los
distintos caminos alternativos del
programa se debe seguir

Conector Misma
Pgina

Sirve para enlazar dos partes


cualesquiera de un diagrama a travs
de un conector en la salida y otro
conector en la entrada. Se refiere a la
conexin en la misma pagina del
diagrama

Indicador
de
direccin o lnea
de flujo

Indica el sentido de la ejecucin de las


operaciones

Salida

Se utiliza en ocasiones en lugar del


smbolo de salida. El dibujo representa
un pedazo de hoja. Es usado para
mostrar datos o resultados.

3. Haga los siguientes ejercicios en pseudocdigo y diagramas de flujo.


a. Leer dos valores y mostrar la suma, la resta, la multiplicacin y la divisin de los dos nmeros.
Tenga en cuenta que la divisin por cero es imposible.
Proceso EjercicioUno
Escribir "Ingrese el primer numero:"
Leer A

Escribir "Ingrese el segundo numero:"


Leer B

C <- A+B
D <- A-B
E <- A*B

Escribir "El resultado de la suma es: ",C


Escribir "El resultado de la resta es: ",D
Escribir "El resultado de la multiplicacion es: ", E

Si B == 0 Entonces
Escribir "No fue posible hacer la division ya que el segundo operando es 0"
Sino
Escribir "El resultado de la division es: ", A/B
Fin Si
FinProceso

b. Solicite dos valores y decir cul es el nmero mayor.


Proceso Ejercicio2
Escribir "Ingrese el primer numero:"
Leer A

Escribir "Ingrese el segundo numero:"


Leer B

Si A>B Entonces
Escribir "A es mayor que B"
FinSi
SI A<B Entonces
Escribir "A es menor que B"

Sino
Escribir "A es igual que B"
FinSi
FinProceso

c. Leer un valor y decir si el nmero es mayor que 100, menor que 100 o igual a 100.
Proceso Ejercicio2
Escribir "Ingrese el primer numero:"
Leer A

Si A>100 Entonces
Escribir "A es mayor que 100"
FinSi
SI A<100 Entonces
Escribir "A es menor que 100"

Sino
Escribir "A es igual que 100"
FinSi

FinProceso

Вам также может понравиться