guia 1 daniel bastidas betancourt
DESCRIPTION
Ensayo algoritmicaTRANSCRIPT
![Page 1: Guia 1 Daniel Bastidas Betancourt](https://reader035.vdocuments.pub/reader035/viewer/2022080105/577c829a1a28abe054b17920/html5/thumbnails/1.jpg)
3.2 ENSAYO SOBRE ALGORITMICA.
Como estudiante de Ingeniería 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 más
conveniente para resolver el problema, como típicos 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 ¿Cómo 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 número de pasos y
el esfuerzo humano, además 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 función de la cantidad de memoria que se requiere para
ejecutar un programa, por otro lado la eficiencia en tiempo se puede medir en términos del tiempo
de ejecución 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 más importantes es el tiempo utilizado en la ejecución del programa,
normalmente un problema se puede resolver por métodos 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
cálculos se realicen en el menor tiempo posible, si una aplicación maneja una gran cantidad de
información y no se administra adecuadamente pueden necesitar tiempos de ejecución 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 ejecución puede depender de diversos factores como son:
los datos de entrada que se ingresen, la calidad del código generado, la naturaleza y rapidez
del procesador, además de la capacidad del programador para generar el código.
El comportamiento de un algoritmo puede cambiar drásticamente para diferentes tipos de entradas
de prueba, es decir que el tiempo de ejecución no solo está dado por el tamaño de los datos de
entrada. Así suelen estudiarse tres casos para un mismo algoritmo: peor caso, mejor caso y caso
medio.
![Page 2: Guia 1 Daniel Bastidas Betancourt](https://reader035.vdocuments.pub/reader035/viewer/2022080105/577c829a1a28abe054b17920/html5/thumbnails/2.jpg)
El mejor caso puede interpretarse como el algoritmo que llega a concluir la tarea con el menor
número 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 ejecución más prolongado y utilizando una gran cantidad de recursos.
La conclusión es que para poder crear una aplicación que satisfaga las necesidades del usuario,
debemos utilizar el un algoritmo que tenga el menor tiempo de ejecución y que resuelva el problema
con el menor número de instrucciones.
3.3 De dos ejemplos de algoritmos, paso a paso que usted entienda.
Algoritmo de Fibonacci:
Es una secuencia numérica compuesta de la suma de sus dos números predecesores, ejemplo 1, 1,
2, 3, 5. Son los primeros dígitos de la secuencia.
Primero, se comprueba que el número de entrada sea mayor a 0, ya que esta secuencia solo aplica
para números 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 función misma evaluada para el numero de entrada
-1 y el número 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 posición, 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 después,
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 número de elementos que el original.
2. ¿Cuáles son los gráficos que se utilizan para los diagramas de flujo?
Un diagrama de flujo es una representación gráfica de un algoritmo o de una parte del mismo. Los
diagramas de flujo ayudan en la comprensión de la operación 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 programación, pues al momento de llevarlo a código se lo puede hacer en cualquier lenguaje.
Dichos diagramas se construyen utilizando ciertos símbolos de uso especial como son rectángulos,
diamantes, óvalos, y pequeños círculos, estos símbolos están conectados entre sí por flechas,
conocidas como líneas de flujo. A continuación se detallarán estos símbolos.
![Page 3: Guia 1 Daniel Bastidas Betancourt](https://reader035.vdocuments.pub/reader035/viewer/2022080105/577c829a1a28abe054b17920/html5/thumbnails/3.jpg)
Nombre Símbolo Función
Terminal
Representa el inicio y fin de un
programa. También puede representar
una parada o interrupción programada
que sea necesaria realizar en un
programa.
Entrada / salida
Cualquier tipo de introducción de
datos en la memoria desde los
periféricos o registro de información
procesada en un periférico.
Proceso
Cualquier tipo de operación que pueda
originar cambio de valor, formato o
posición de la información almacenada
en memoria, operaciones aritméticas,
de transformaciones, etc.
Decisión
Indica operaciones lógicas o de
comparación entre datos
(normalmente dos) y en función del
resultado de la misma determina
(normalmente si y no) cual de los
distintos caminos alternativos del
programa se debe seguir
Conector Misma
Página
Sirve para enlazar dos partes
cualesquiera de un diagrama a través
de un conector en la salida y otro
conector en la entrada. Se refiere a la
conexión en la misma pagina del
diagrama
Indicador de
dirección o línea
de flujo
Indica el sentido de la ejecución de las
operaciones
Salida
Se utiliza en ocasiones en lugar del
símbolo de salida. El dibujo representa
un pedazo de hoja. Es usado para
mostrar datos o resultados.
![Page 4: Guia 1 Daniel Bastidas Betancourt](https://reader035.vdocuments.pub/reader035/viewer/2022080105/577c829a1a28abe054b17920/html5/thumbnails/4.jpg)
3. Haga los siguientes ejercicios en pseudocódigo y diagramas de flujo.
a. Leer dos valores y mostrar la suma, la resta, la multiplicación y la división de los dos números.
Tenga en cuenta que la división 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
![Page 5: Guia 1 Daniel Bastidas Betancourt](https://reader035.vdocuments.pub/reader035/viewer/2022080105/577c829a1a28abe054b17920/html5/thumbnails/5.jpg)
b. Solicite dos valores y decir cuál es el número 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"
![Page 6: Guia 1 Daniel Bastidas Betancourt](https://reader035.vdocuments.pub/reader035/viewer/2022080105/577c829a1a28abe054b17920/html5/thumbnails/6.jpg)
Sino
Escribir "A es igual que B"
FinSi
FinProceso
c. Leer un valor y decir si el número 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"
![Page 7: Guia 1 Daniel Bastidas Betancourt](https://reader035.vdocuments.pub/reader035/viewer/2022080105/577c829a1a28abe054b17920/html5/thumbnails/7.jpg)
Sino
Escribir "A es igual que 100"
FinSi
FinProceso