0% encontró este documento útil (0 votos)
20 vistas16 páginas

Algoritmos Computacionales en Programación

Este documento presenta cinco problemas de algoritmos computacionales con sus respectivas soluciones. Cada problema incluye un pseudocódigo, diagrama de flujo y código en C para calcular áreas, realizar operaciones matemáticas, conversiones de unidades y más. El documento también discute conceptos clave como la eficiencia y análisis de algoritmos.

Cargado por

Juany Zamarrón
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
20 vistas16 páginas

Algoritmos Computacionales en Programación

Este documento presenta cinco problemas de algoritmos computacionales con sus respectivas soluciones. Cada problema incluye un pseudocódigo, diagrama de flujo y código en C para calcular áreas, realizar operaciones matemáticas, conversiones de unidades y más. El documento también discute conceptos clave como la eficiencia y análisis de algoritmos.

Cargado por

Juany Zamarrón
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD AUTONOMA

DE NUEVO LEON
________________________
FACULTAD DE INGENIERIA
MECANICA Y ELECTRICA

ALGORITMOS COMPUTACIONALES

M.A. SELENE GUADALUPE PINAL GOMEZ

ACTIVIDAD FUNDAMENTAL 1

Grupo 005
Equipo 5
Matricula Nombre
1933863 Yuliana Dayanifer Ortiz Salazar
1946884 Juan Antonio Martínez García
1947037 Alan Fernando Puente Alvarado
1954135 Marvin Eduardo Zarate Pacheco
1960987 Alexis Fernando Ávila Peña
2077820 José Manuel Tongo Aldana

San Nicolas de los Garza, Nuevo Leon a 7 de marzo del 2021.


Algoritmos Computacionales

Para comenzar, un “algoritmo” se puede definir como una secuencia de


instrucciones que representan un modelo de solución para determinado tipo de
problemas. O bien como un conjunto de instrucciones que realizadas en orden
conducen a obtener la solución de un problema.

Los algoritmos son independientes de los lenguajes de programación. En cada


problema el algoritmo puede escribirse y luego ejecutarse en un lenguaje de
diferente programación. El algoritmo es la infraestructura de cualquier solución,
escrita luego en cualquier lenguaje de programación.

Entonces, podríamos decir que un “algoritmo computacional” son aquellos que


utilizan las aplicaciones y el software de computadoras para realizar las tareas
que les pedimos o las acciones automáticas que realizan los dispositivos sin que
lo solicitemos. Básicamente el uso de un algoritmo en computación nos ofrece la
posibilidad de hallar una solución genérica a un determinado problema, y nos va
a permitir reutilizarlo cada vez que sea necesario para lograr el objetivo deseado.

Las reglas básicas de las partes que deben conformar un algoritmo para ser
considerado como tal. Básicamente, los algoritmos deben estar compuestos por
tres partes principales que son entrada, proceso y salida, independientemente
de tratarse de algoritmos computacionales, algoritmos no computacionales,
algoritmos cualitativos o algoritmos cuantitativos.
Eficiencia de los Algoritmos Computacionales

Raramente existe un único algoritmo para resolver un problema determinado.


Cuando se comparan dos algoritmos diferentes que resuelven el mismo
problema, por lo general se encontrará que un algoritmo es un orden de magnitud
más eficiente que el otro. En este sentido, lo importante es que el programador
sea capaz de reconocer y elegir el algoritmo más eficiente.

Un buen algoritmo es correcto, pero un gran algoritmo es correcto y


además eficiente. El algoritmo más eficiente es aquel que toma el mínimo
tiempo de ejecución y uso de memoria posibles, y todavía produce una respuesta
correcta.

Uno de los métodos más sobresalientes para medir la eficiencia de un algoritmo,


es el análisis de algoritmos, permite medir la dificultad inherente de un problema.
Esta característica permite comprar algoritmos para la resolución de problemas
en términos de eficiencia.

Existen diferentes métodos con los que se trata de medir la eficiencia de los
algoritmos; entre ellos, los que se basan en el número de operaciones que debe
efectuar un algoritmo para realizar una tarea; otros métodos se centran en tratar
de medir el tiempo que se emplea en llevar a cabo una determinada tarea, ya
que lo importante para el usuario final es que ésta se efectúe de forma correcta
y en el menor tiempo posible. Sin embargo, estos métodos presentan varias
dificultades, ya que cuando se trata de generalizar la medida hecha, ésta
depende de factores como la máquina en la que se efectuó, el ambiente del
procesamiento y el tamaño de la muestra, entre otros factores.

El tiempo, para las personas que se dedican a la programación, es


indispensable, pues para el programa hacer las cosas en menos tiempo y que el
usuario haga más rápido y más fácil las cosas, cuanto menos tiempo pasen los
usuarios esperando, más tiempo dedicarán a hacer cosas útiles con su producto
o servicio.

El término que usamos para describir cómo funciona nuestro algoritmo en


diferentes tamaños de entrada es su complejidad de tiempo. La complejidad del
tiempo es una forma de etiquetar, en un lenguaje sencillo, cómo aumenta el
tiempo de ejecución de una función a medida que aumenta el tamaño de nuestra
entrada. Algunos ejemplos de etiquetas de complejidad de tiempo son tiempo
constante, tiempo logarítmico, tiempo lineal y tiempo cuadrático (solo por
nombrar algunos). Estas etiquetas describen la relación entre el tamaño de
nuestra entrada y nuestro tiempo de ejecución, y es posible que observe que
también describen la forma de varios tipos de líneas en una gráfica
bidimensional. Esto nos brinda una manera excelente y fácil de visualizar cómo
cambia nuestro tiempo de ejecución con respecto al tamaño de entrada. Más
sobre esto en un momento.

En computación, la notación asintótica nos permite representar la complejidad, y


por ende la eficiencia, de un algoritmo, de tal manera que podemos proyectar el
aumento de operaciones requeridas al aumentar el tamaño de la entrada.

Desde este punto de vista, el algoritmo más eficiente posible sería aquel en el
que el número de operaciones llevadas a cabo no varíe según crezca la entrada.
Esto es lo que sería una función constante.

Los científicos de la computación prefieren llevar esta técnica de análisis un poco


más allá. Resulta que el número exacto de operaciones no es tan importante
como determinar la parte más dominante de la función T(n). En otras palabras,
a medida que el problema se hace más grande, una parte de la
función T(n) tiende a dominar la parte restante. Este término dominante es lo
que, al final, se utiliza para la comparación. La función orden de
magnitud describe la parte de T(n) que más rápido crece a medida que aumenta
el valor de n. El orden de magnitud es a menudo llamado notación O-grande (por
“orden”) y se escribe como O(f(n)). Esta notación proporciona una aproximación
útil al número real de pasos en el cálculo. La función f(n) brinda una
representación sencilla de la parte dominante de la función T(n) original.
Problema 1
Diseñe un DF que calcule el área de un trapecio, considerando que la fórmula
es: A=((B+b)*H)/2 e imprima el resultado en pantalla. Con su respectivo
algoritmo.
Pseudocódigo:
Inicio
1. Indicar el valor de la base mayor
2. Indicar el valor de la base menos
3. Indicar el valor de la altura
4. Sumar base mayor con base menos, multiplicar por altura y dividir entre
dos
5. Imprimir el área del trapecio es de:
Fin

Diagrama de Flujo (Raptor):


Código (Dev C):
Problema 2
Diseñe el DF de un programa que al recibir como datos de entrada dos números,
imprima la suma, la resta, la multiplicación, la división de estos números, al final
imprima los resultados de las 4 operaciones y la suma total de todos los
resultados obtenidos en una sola variable. Con su respectivo algoritmo.
Pseudocódigo:
Inicio
1. Introducir operaciones entre 2 numeros
2. determinar el primer numero A
3. determinar el segundo numero B
4. sumar A y B
5. Restar A y B
6. Dividir A y B
7. Multiplicar A y B
8. Sumar el total de las 4 operaciones anteriores
9. Imprimir El resultado de la suma es:
10. imprimir le resultado de la resta es:
11. imprimir el resultado de la division es:
12. imprimir el resultado de la multiplicacion es:
13. imprimir la suma total de los resultados es:
Fin
Diagrama de Flujo (Raptor):
Código (Dev C):
Problema 3
Diseñe el DF de un programa que al recibir tres valores los sume, si la suma de
los tres números es mayor a 100 entonces réstele 20, sino termine el programa.
Pseudocódigo:
Inicio
1. Indicar el numero A
2. Indicar el numero B
3. Indicar el numero C
4. Sumar los valores A, B y C
5. En caso de que la suma exceda 100, restar al resultado dado 20
6. En caso de que no exceda, mantener el resultado como esta
7. Imprimir la suma total es:
Fin
Diagrama de Flujo (Raptor):

Código (Dev C):


Problema 4
Diseñe el DF de un programa que al recibir como entrada una medida en litros
los convierta a mililitros (entre 1000), centilitros (entre 100) y decilitros (entre 10).
Con su respectivo algoritmo.
Pseudocódigo:
Inicio
1. Imprimir Programa para convertir litros a mililitros,ccentilitros y decilitros
2. Indicar la cantidad de litros a convertir
3. multiplicar los litros por 1000
4. multiplicar los litros por 100
5. multiplicar los litros por 10
6. imrpimir la cantidad de mililitros son:
7. imprimir la cantidad de centilitros son:
8. imprimir la cantidad de decilitros son:
Fin
Diagrama de Flujo (Raptor):

Código (Dev C):


Problema 5
Diseñe el DF de un programa que al recibir como entrada una medida en
kilogramos los convierta a gramos y libras. Con su respectivo algoritmo.
Pseudocódigo:
Inicio
1. imprimir Programa para convertir kilogramos a gramos y libras
2. Indicar el valor de kilogramos a convertir
3. multiplicar los kilogramos por 1000
4. multiplicar los kilogramos por 2.20462
5. imprimir La cantidad de gramos son:
6. imprimir La cantidad de libras son:
Fin

Diagrama de Flujo (Raptor):


Código (Dev C):
Referencias

Fox P.. (2016). Medir la eficiencia de un algoritmo. Febrero 24, 2021, de


Khan Academy Sitio web: [Link]
computer-science-principles/algorithms-101/evaluating-
algorithms/a/measuring-an-algorithms-efficiency
Cormen T. & Balkcom D.. (2017). Notación asintótica. Febrero 24, 2021,
de Khan Academy Sitio web:
[Link]
science/algorithms/asymptotic-notation/a/asymptotic-notation
Cormen T. & Balkcom D.. (2017). Notación O grande (Big-O). Febrero 24,
2021, de Khan Academy Sitio web: Cormen T. & Balkcom D.. (2017).
Notación asintótica. Febrero 24, 2021, de Khan Academy Sitio web:
[Link]
science/algorithms/asymptotic-notation/a/asymptotic-notation

También podría gustarte