Universidad Abierta y a Distancia
de México
División de Ciencias Exactas, Ingeniería y Tecnología
Matemáticas
Semestre: Cuarto
Asignatura: Computación I
Unidad 2. Algoritmos
Evidencia de aprendizaje
Nombre del estudiante: Jhonatan Alonso Montalvo
Adrián
Matrícula: ES221104716
Grupo: MT-MCOM1-2302-B2-001
Docente: Inés Chávez Acosta
Fecha de entrega:
Ciudad de México, a 6 de Noviembre de 2023
ÍNDICE
INTRODUCCIÓN..................................................................................................................1
DESARROLLO DE LA ACTIVIDAD.....................................................................................2
CONCLUSIONES.................................................................................................................7
REFERENCIAS BIBLIOGRÁFICAS....................................................................................8
INTRODUCCIÓN
El lenguaje de programación C fue creado por Brian Kernighan y Dennis Ritchie a
mediados de los años 70. La primera implementación de este la realizó Dennis Ritchie
sobre un computador DEC PDP-11 con sistema operativo UNIX. C es el resultado de un
proceso de desarrollo que comenzó con un lenguaje anterior, el BCPL, el cual influyó en
el desarrollo por parte de Ken Thompson de un lenguaje llamado B, el cual es el
antecedente directo del lenguaje C. El lenguaje C es un lenguaje para programadores en
el sentido de que proporciona una gran flexibilidad de programación y una muy baja
comprobación de incorrecciones, de forma que el lenguaje deja bajo la responsabilidad
del programador acciones que otros lenguajes realizan por sí mismos. Así, por ejemplo, C
no comprueba que el índice de referencia de un vector (llamado array en la literatura
informática) no sobrepase el tamaño de este; que no se escriba en zonas de memoria que
no pertenecen al área de datos del programa, etc. (Brian W. Kernighan & Dennis M.
Ritchie, 1991, pp. 2-3)
Todo programa de C consta, básicamente, de un conjunto de funciones, y una función
llamada main, la cual es la primera que se ejecuta al comenzar el programa, llamándose
desde ella al resto de funciones que compongan nuestro programa. Desde su creación,
surgieron distintas versiones de C, que incluían unas u otras características, palabras
reservadas, etc. Este hecho provoco la necesidad de unificar el lenguaje C, y es por ello
por lo que surgió un standard de C, llamado ANSI-C, que declara una serie de
características, etc., que debe cumplir todo lenguaje C. Por ello, y dado que todo
programa que se desarrolle siguiendo el standard ANSI de C será fácilmente portable de
un modelo de ordenador a otro modelo de ordenador, y de igual forma de un modelo de
compilador a otro.
1
DESARROLLO DE LA ACTIVIDAD
Descripción de la actividad
A) Analiza los siguientes planteamientos y realiza al algoritmo correspondiente mediante
un diagrama de flujo y pseudocódigo en el software de tu preferencia.
1) Dados los datos enteros x, n que representan los parámetros x y n de una serie de Taylor
para calcular el valor de e x , desarrolla un programa en C que calcule el valor de e x para los
datos capturados por el usuario.
La fórmula de la serie de Taylor para ex es:
2 3
x x x x
e = + + + … ,−∞ < x <∞
1 ! 2 ! 3!
Para crear el código en C, se utilizo el entorno de desarrollo Eclipse, asimismo, para calcular la
aproximación de e x usando la serie de Taylor, se necesita sumar todos los términos de la serie
hasta el término n. el código en C es el siguiente:
#include <stdio.h>
#include <math.h>
int main() {
int n;
float x, e = 1.0;
printf("Ingresa el valor de x:\n");
scanf("%f", &x);
printf("Ingresa el número de términos (n) en la serie de Taylor:\n");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
float term = pow(x, i) / factorial(i);
e += term;
}
printf("El resultado de la función es: %f\n", e);
2
return 0;
}
int factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
3
En la imagen anterior, se puede observar el código compilado en Eclipse, además se logra
apreciar el resultado del polinomio de Taylor de e x para n=2 y x=8
2) Realiza un programa en C que calcule e imprima el valor de PI (3.14159…) mediante la serie
de Leibniz donde el usuario introducirá el número de términos de la serie.
La serie de Leibniz es:
En matemáticas la fórmula de Leibniz sirve para el cálculo de π , nombrada así en honor de
Gottfried Leibniz, dice que:
1 1 1 1 π
1− + − + −…=
3 5 7 9 4
π
La expresión anterior es una serie infinita denominada serie de Leibniz, que converge a .
4
También se le denomina serie de Gregory-Leibniz para reconocer el trabajo de James Gregory,
contemporáneo de Leibniz. Usando el símbolo de suma, la serie se puede expresar como:
∞
(−1 )n π
∑ 2 n+1 = 4
n=0
El código en lenguaje C es el siguiente:
#include<stdio.h>
#include<math.h>
int main() {
float i;
int n;
float num_pi;
float terminosumando;
num_pi = 0;
printf("Ingrese el número de términos para calcular Pi (cuantos más términos, más
preciso):\n");
/* Inicializamos pi en 0 */
scanf("%i", &n);
4
for (i=0; i<=n-1; ++i) {
terminosumando = pow((-1), i)/(2*i+1);
num_pi = num_pi+terminosumando;
}
num_pi = num_pi*4;
printf("El valor estimado de Pi con %i términos es: %f\n", n, num_pi);
/* Multiplicamos por 4 según la fórmula de Leibniz */
return 0;
}
El código compilado en Eclipse se muestra en la siguiente ilustración
en la ilustración se puede ver que se compiló un código que calcula la serie de Leibniz para
aproximar π con n=80
5
Primero se inicializa en num_pi: se establece inicialmente en 0, ya que se utilizará para
acumular la suma de los términos de la serie.
Luego el programa solicita al usuario que ingrese la cantidad de términos que desea utilizar en
la aproximación de Pi. Cuantos más términos se utilicen, más precisa será la estimación.
Cabe señalar el codigo usa un Bucle para calcular los términos de la serie de Leibniz y
acumularlos en num_pi. El bucle se ejecuta desde i = 0 hasta i = n - 1, y en cada iteración,
calcula el término y lo suma a num_p
6
CONCLUSIONES
El lenguaje C es conocido por su capacidad de proporcionar un control preciso sobre la
computadora y su hardware. Esto significa que, al programar en C, podemos
comunicarnos directamente con la máquina, lo que lo convierte en un lenguaje poderoso
para el desarrollo de software de sistemas, aplicaciones de alto rendimiento y sistemas
embebidos. Su importancia radica en su versatilidad y su capacidad para realizar tareas
complejas de manera eficiente.
En el contexto de las matemáticas, la programación en C se convierte en una herramienta
invaluable. Las matemáticas son una parte esencial de la ciencia y la ingeniería, y los
problemas matemáticos a menudo requieren cálculos tediosos y precisos. Aquí es donde
la programación en C entra en juego. Podemos escribir programas que automatizan estos
cálculos, lo que no solo ahorra tiempo, sino que también reduce la probabilidad de
errores. Por ejemplo, la programación en C es esencial en la resolución numérica de
ecuaciones diferenciales, la optimización matemática y el análisis de datos complejos.
Aprender C no solo abre las puertas a una variedad de oportunidades en el mundo de la
tecnología, sino que también mejora nuestra capacidad para abordar y resolver problemas
matemáticos de manera eficiente y efectiva
7
REFERENCIAS BIBLIOGRÁFICAS
Brian W. Kernighan & Dennis M. Ritchie. (1991). El Lenguaje de Programación C.:
Pearson Education.
Lahoz-Beltrá, R. (2012). Turing, la computación: pensando en máquinas que
piensan.RBA.
Mano, M.(1982). Lógica digital y Diseño de Computadores. (1ª. Impres.). España:
Prentice-Hall International.
Mano, M. M., & Gonzalez, J. F. (2003). Diseño digital. Pearson Educación.
Pressman, R.S., Ingeniería del Software. Un enfoque práctico, quinta edición, 2002,
España. Parte 2
Stair, R., & Reynolds, G. (2012). Principles of Information Systems. (10th ed.). Boston:
Cengage Learning.
Stallings, W. (2010). Computer Organization and Architecture: Designing for Performance.
Prentice Hall.
Tanenbaum, A.(2000). Organización de Computadoras -Un Enfoque Estructurado. (7ª.
Ed.). México: Prentice Hall Hispanoamericana, S.A.
The Editors of Encyclopaedia Britannica. (2023, 1 septiembre). Data Structure |
Algorithms, Trees & Arrays. Encyclopedia Britannica. Recuperado el 20 de Octubre de
2023 de https://www.britannica.com/technology/data-structure