diff --git a/P1U3_EQUIPO8.pdf b/P1U3_EQUIPO8.pdf new file mode 100644 index 0000000..f002441 Binary files /dev/null and b/P1U3_EQUIPO8.pdf differ diff --git a/README.md b/README.md new file mode 100644 index 0000000..f2efc45 --- /dev/null +++ b/README.md @@ -0,0 +1,39 @@ +# FUNCIONES EN C +## Problemario 4 - Programacion 1 + + 1. Escriba un programa que imprima los coeficientes de un binomio a la n-ésima potencia. +Ejemplo: + + Entrada: ð‘›=4 Salida: 1 4 6 4 1 + Entrada: ð‘›=6 Salida: 1 6 15 20 15 6 1 + Utilice números combinatorios: + $$\binom{m}{n}=\frac{m!}{n!(m-n)!}$$ + + 2. Escriba un programa que imprima el triángulo de Pascal. Utilice números combinatorios. + 3. Cree un programa en C que solicite números naturales hasta que el usuario desee terminar. Por cada número dado se deberá visualizar: + a. Si el numero es primo: su factorial. + b. Si el numero no es primo: sus múltiplos menores que 1000 + c. Nota: El programa debe estar diseñado con funciones utilizando parámetros y variables locales. + + 4. El desarrollo en serie de Taylor de la función coseno es: + $$cos(x)=1-\frac{x^{2}}{2!}+\frac{x^{4}}{4!}-\frac{x^{6}}{6!}+...$$ Donde el ángulo ð‘¥ viene expresado en radianes. + Escriba un programa que calcule el valor aproximado de cos(ð‘¥), utilizando para ellos los ð‘› primeros términos de la serie de Taylor. +Nota: No utilice la función ð‘ð‘œð‘¤() de la biblioteca math.h para calcular la potencia, Implemente su propia versión. + + 5. Escriba un programa que mediante dos funciones convierta de grados centígrados a Fahrenheit y de Fahrenheit a Centígrados, dependiendo de la opción que proporcione el usuario. + + 6. Escriba un programa que solicite el peso (Kg) y la altura (mts) de una persona y calcule su índice de masa corporal (IMC). Con base en este resultado, el programa deberá informar que clasificación pertenece dicha persona:$$IMC=\frac{Peso(kg)}{Estatura^{2}(Mts.)}$$ + +|Indice de Masa Corporal (IMC)|Clasificación| +|--|--| +| Menor a 18 |Peso bajo. Necesario valorar signos de desnutrición| +| 18 a 24.9 |Normal| +| 25 a 26.9 |**Sobrepeso**| +| Mayor a 27 | **Obesidad** | +| 27 a 29.9 | **Obesidad grado I.** Riesgo relativo alto para desarrollar enfermedades cardiovasculares | +| 30 a 39.9 | **Obesidad grado II.** Riesgo relativo muy alto para el desarrollo de enfermedades cardiovasculares | +| Mayor a 40| **Obesidad grado III Extrema O Mórbida.** Riesgo relativo extremadamente alto para el desarrollo de enfermedades cardiovasculares | + + Nota: Escriba una función para calcular el IMC y otra que muestre la clasificación. + + 7. Modifique el programa anterior de tal forma que el proceso termine hasta que el usuario desee salir. diff --git a/problema 1.c b/problema 1.c new file mode 100644 index 0000000..7a6161c --- /dev/null +++ b/problema 1.c @@ -0,0 +1,61 @@ +/* 1. Programa que imprime los coeficientes de un binomio +elevado a la n-�sima potencia usando n�meros combinatorios*/ + +//Cargar libreria/s +#include + +//Prototipo +long factorial(int); + +//Principal +int main(){ + + //Declarar variables + int error, n, c; + + //Nota + printf ("\n\t NOTA: Este programa SOLO acepta entradas por debajo de 13\n"); + + //Bucle do while + do{ + + //Ingreso de datos por teclado + printf ("\nIngrese un n%cmero para obtener sus coeficientes:\n",163,160); + scanf ("%d",&n); + + //Fuera de rango + if (n < 0){ + printf ("\n[!] ERROR: Verifica tu informaci%cn [!]\n",162); + error = 1; + } + + //Fuera del l�mite + if (n >= 13){ + printf ("\n[!] ERROR: Constante supera el l%cmite [!]\n",161); + error = 1; + } + printf ("\n"); + } while (error != 0); + + //Salida de datos + printf ("\tSalida:\n"); + for (c = 0 ; c <= n; c++){ + printf("[%ld] ", factorial(n)/(factorial(c)*factorial(n-c))); + } + printf ("\n"); + //Cerrar programa + system ("pause"); + return 0; +} + +//Factorial +long factorial(int n){ + int c; + long result = 1; + + for (c = 1; c <= n; c++){ + result *= c; + } + + return result; +} \ No newline at end of file diff --git a/problema 2.c b/problema 2.c new file mode 100644 index 0000000..0d3fb1c --- /dev/null +++ b/problema 2.c @@ -0,0 +1,68 @@ +// 2. Programa que imprime el triángulo de Pascal + +//cargar libreria/s +#include + +//Prototipo +long factorial(int); + +//Principal +int main(){ + + //Declarar variables + int error,i, n, c; + + //Nota + printf ("\n\t NOTA: Este programa SOLO acepta entradas por debajo de 13\n"); + + //Bucle do while + do{ + + //Ingreso de datos por teclado + printf ("\nIngrese el n%cmero de fila para imprimir el tri%cngulo de Pascal:\n",163,160); + scanf ("%d",&n); + + //Fuera de rango + if (n < 0){ + printf ("\n[!] ERROR: Verifica tu informaci%cn [!]\n",162); + error = 1; + } + + //Fuera del límite + if (n >= 13){ + printf ("\n[!] ERROR: Constante supera el l%cmite [!]\n",161); + error = 1; + } + printf ("\n"); + } while (error != 0); + n+=1; + + printf ("Salida:\n"); + //Forma de trángulo + for (i = 0; i < n; i++){ + for (c = 0; c <= (n - i - 2); c++){ + printf(" "); + } + //Salida de datos + for (c = 0 ; c <= i; c++){ + printf("[%ld]", factorial(i)/(factorial(c)*factorial(i-c))); + } + + printf("\n"); + } + //Cerrar programa + system ("pause"); + return 0; +} + +//Factorial +long factorial(int n){ + int c; + long result = 1; + + for (c = 1; c <= n; c++){ + result *= c; + } + + return result; +} diff --git a/problema 3.c b/problema 3.c new file mode 100644 index 0000000..8d9d109 --- /dev/null +++ b/problema 3.c @@ -0,0 +1,66 @@ +//Jesús Huerta Aguilar, Javier de La Luz Ruiz, Ernesto Flores Cesareo +//Programación I - "Programa: Lectura de numeros naturales con casos determinados" +#include +#include +//PROTOTIPOS +int primo(int x); +void fact(int n); +void mult(int n); +//PRINCIPAL +int main(){ + int n; + printf("Ingrese un numero natural (n >= 0)"); + printf("\nNOTA: Para salir ingrese cualquier numero negativo.\n\n"); + do{ + scanf("%d",&n); + if (n >= 0){ + if (primo(n) == 1){ + fact(n); + } + else{ + mult(n); + } + } + } while (n >= 0); + //system("PAUSE"); + printf("\n\tGracias por usar nuestros servicios."); + getch(); + return 0; +} +//DETECTAR PRIMOS +int primo(int x){ + int i,con; + for ( i = 1; i <= x; i++) + { + if(x%i==0){ + con++; + } + } + if (con > 2){ + return 0; + } + else{ + return 1; + } +} +//FACTORIAL +void fact(int n){ + int i; + double f=1; + for (i = 1; i <= n; i++){ + f = f*i; + } + printf(" -> PRIMO: %d! = %.lf\n",n,f); +} +//MULTIPLOS +void mult(int n){ + int i; + printf(" -> NO PRIMO: M(%d) = {",n); + for (i = 1; i <= 1000; i++) + { + if (i%n==0){ + printf("%d,",i); + } + } + printf("}\n"); +} \ No newline at end of file diff --git a/problema 4.c b/problema 4.c new file mode 100644 index 0000000..61283db --- /dev/null +++ b/problema 4.c @@ -0,0 +1,88 @@ +//Jesús Huerta Aguilar, Javier de La Luz Ruiz, Ernesto Flores Cesareo +//Programación I - "Programa: Serie de Taylor de la funcion coseno" +#include +#include +#include +//PROTOTIPOS +void rad(float *x); +int fact(int n); +float pwr(int dpon,float x); +//PRINCIPAL +int main(){ + //DECLARAR VARIABLES + int n,i,dpon,error,band=1,dera=1,cont=0; + float x,res,val; + dpon = 0; + //ENTRADAS GENERALES + do + { + error = 0; + printf("Catidad de terminos de la serie de Taylor: "); + scanf("%d",&n); + printf("Valor de x: "); + scanf("%f",&x); + if (n <= 0 || x <= 0){ + printf("\n[!] ERROR: Verifica tu informacion [!]\n\n"); + error = 1; + } + + } while (error != 0); + //GRADOS A RADIANES + printf("\n%f%c = ",x,248); + // printf("\nValor Xi: %f",x); + rad(&x); + //printf("\nValor Xf: %f\n",x); + + printf("%0.10frad [aprox]\n",x); + //SERIE DE TAYLOR + do{ + //CASO PRIMER VALOR + if (band == 1){ + res = 1; + band = 0; + } + else{ + //OTROS VALORES + for (i = 2; i <= n; i++){ + dpon = dpon + 2; + val = pwr(dpon,x)/fact(dpon); + if (dera == 1){ + res = res - val; + dera = 0; + } + else{ + res = res + val; + dera = 1; + } + } + } + cont++; + } while (cont <= 1); + //SALIDAS + printf("\nValor aploximado con %d terminos: \n\n\tCos(%f) = %0.15f\n",n,x,res); + printf("\nGracias por usar nuestros servicios."); + getch(); + return 0; +} +//GRADOS A RADIANES +void rad(float *x){ + *x = (*x * M_PI)/180; +} +//FACTORIAL +int fact(int n){ + int i; + float f=1; + for (i = 1; i <= n; i++){ + f = f*i; + } + return f; +} +//POTENCIADOR +float pwr(int dpon,float x){ + int j; + float power=1; + for (j = 1; j <= dpon; j++){ + power = power*x; + } + return power; +} \ No newline at end of file diff --git a/problema 5.c b/problema 5.c new file mode 100644 index 0000000..0471144 --- /dev/null +++ b/problema 5.c @@ -0,0 +1,45 @@ +//Jesús Huerta Aguilar, Javier de La Luz Ruiz, Ernesto Flores Cesareo +//Programación I - Grados +#include + + float CelciusAFarenheit(float celcius){ + return (celcius * 1.8) + 32; + } + + float FarenheitACelcius(float farenheit){ + return (farenheit - 32) / 1.8; + } + +int main(){ + + float farenheit, celcius, total; + char op; + + printf( "\n >>> MENU GRADOS <<<" ); + printf( "\n Escoger la opcion que desee (1-2), se muestra a continuacion: "); + printf( "\n (1) Para Celcius a Farenheit."); + printf( "\n (2) Para Farenheit a Celcius. \n"); + scanf( "%c", &op); + + switch (op){ + case '1': + printf("\n Introduzca los grados Celcius para convertir: "); + scanf("%f",&celcius); + total = CelciusAFarenheit(celcius); + printf("\n Su conversion a Grados Farenheit es: %f ºF", total ); + break; + + case '2': + printf("\n Introduzca los grados Farenheit a convertir."); + scanf("%f", &farenheit); + total = FarenheitACelcius(farenheit); + printf("\n Su conversion a Grados Celcius es: %f ºC", total ); + break; + + default: printf("\n Operador no definido, intente de nuevo."); +} + getch(); + return 0; + +} + diff --git a/problema 6.c b/problema 6.c new file mode 100644 index 0000000..ce4c246 --- /dev/null +++ b/problema 6.c @@ -0,0 +1,67 @@ +//Jesús Huerta Aguilar, Javier de La Luz Ruiz, Ernesto Flores Cesareo +//Programación I - Inice De Masa Corporal IMC +#include + + float IndiceMasaCorporal(float peso, float estatura){ + return peso/(estatura*estatura); + } + + void Clasificacion(float IMC){ + if (IMC <= 18) + { + printf("\n Usted se encuentra en PESO BAJO:"); + }else + { + if (IMC > 18 && IMC <= 24.9) + { + printf("\n Usted se encuentra en NORMAL"); + }else + { + if (IMC >= 25 && IMC <= 26.9) + { + printf("\n Usted se encuentra en SOBREPESO"); + }else + { + if (IMC >= 27 && IMC <= 29.9) + { + printf("\n Usted se encuentra en OBESIDAD GRADO I"); + }else + { + if (IMC >= 30 && IMC <= 39.9) + { + printf("\n Usted se encuentra en OBESIDA GRADO II"); + }else + { + if (IMC >= 40) + { + printf("\n Usted se encuentra en OBESIDAD GRADO III"); + } + + } + + } + + } + + } + + } + + } + +int main(){ + + float IMC, peso, estatura; + + printf("\n Introduzca su peso (kg): "); + scanf("%f", &peso); + printf("\n Introduzca su estatura (mt): "); + scanf("%f", &estatura); + IMC = IndiceMasaCorporal(peso,estatura); + printf("\n Su indice de masa coporal es: %f ", IMC ); + Clasificacion(IMC); + + getch(); + return 0; + +} \ No newline at end of file diff --git a/problema 7.c b/problema 7.c new file mode 100644 index 0000000..26b1c69 --- /dev/null +++ b/problema 7.c @@ -0,0 +1,104 @@ +//Jesús Huerta Aguilar, Javier de La Luz Ruiz, Ernesto Flores Cesareo +//Programación I - Inice De Masa Corporal IMC +#include + + float IndiceMasaCorporal(float peso, float estatura){ + return peso/(estatura*estatura); + } + + void Clasificacion(float IMC){ + if (IMC <= 18) + { + printf("\n Usted se encuentra en PESO BAJO:"); + }else + { + if (IMC > 18 && IMC <= 24.9) + { + printf("\n Usted se encuentra en NORMAL"); + }else + { + if (IMC >= 25 && IMC <= 26.9) + { + printf("\n Usted se encuentraa en SOBREPESO"); + }else + { + if (IMC >= 27 && IMC <= 29.9) + { + printf("\n Usted se encuentra en OBESIDAD GRADO I"); + }else + { + if (IMC >= 30 && IMC <= 39.9) + { + printf("\n Usted se encuentra en OBESIDA GRADO II"); + }else + { + if (IMC >= 40) + { + printf("\n Usted se encuentra en OBESIDAD GRADO III"); + } + + } + + } + + } + + } + + } + + } + +int main(){ + + float IMC, peso, estatura; + char op, op2; + + do + { + printf("\n Escoger la opcion que desea (1-3):"); + printf("\n [1] Saber su Indice De Masa Corporal (IMC)."); + printf("\n [2] Solicitar tabla de clasificacion con mayor detalle."); + printf("\n [3] Salir. \n"); + fflush(stdin); + scanf("%c", &op); + + switch (op) + { + case '1': + printf("\n Introduzca su masa corporal: "); + scanf("%f", &peso); + printf("\n Introduzca su estatura ej(1.70): "); + scanf("%f", &estatura); + IMC = IndiceMasaCorporal(peso,estatura); + printf("\n Su indice de masa coporal es: %f ", IMC ); + Clasificacion(IMC); + printf("\n"); + break; + + case '2': + printf("\n IMC || Casificacion "); + printf("\n Menor a 18 || Peso bajo. Necesrio valorar signos de desnutricion. "); + printf("\n 18 a 24.9 || Normal "); + printf("\n 25 a 16.9 || Sobrepeso "); + printf("\n Mayor a 27 || Obesidad "); + printf("\n 27 a 29.9 || Obesidad Grado I. Riesgo relativo 'Alto' para desarrollar enfermedades cardiovasculares."); + printf("\n 30 a 39.9 || Obesidad Grado II. Riesto relativo 'Muy alto' para desarrollar enfermedades cardiovasculares. "); + printf("\n Mayor a 40 || Obesidad Grado III Extrema o Morbida. Riesto relativo 'Extremadamente alto' para desarrollar enfermedades cardiovasculares."); + printf("\n"); + break; + + case '3': + printf("\n ¿Desea salir del programa (s/n)?"); + fflush(stdin); + scanf("%c", &op2); + + break; + + default:printf("\n Operador no definido, intente de nuevo."); + printf("\n"); + } + } while (op2!= 's' && op2!= 'S'); + + return 0; +}