Skip to content

Commit

Permalink
Problemario 4 Programacion 1
Browse files Browse the repository at this point in the history
  • Loading branch information
KPlanisphere committed Mar 9, 2024
0 parents commit 751f158
Show file tree
Hide file tree
Showing 9 changed files with 538 additions and 0 deletions.
Binary file added P1U3_EQUIPO8.pdf
Binary file not shown.
39 changes: 39 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -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.
61 changes: 61 additions & 0 deletions problema 1.c
Original file line number Diff line number Diff line change
@@ -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 <stdio.h>

//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;
}
68 changes: 68 additions & 0 deletions problema 2.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
// 2. Programa que imprime el triángulo de Pascal

//cargar libreria/s
#include <stdio.h>

//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;
}
66 changes: 66 additions & 0 deletions problema 3.c
Original file line number Diff line number Diff line change
@@ -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 <conio.h>
#include <stdio.h>
//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");
}
88 changes: 88 additions & 0 deletions problema 4.c
Original file line number Diff line number Diff line change
@@ -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 <conio.h>
#include <stdio.h>
#include <math.h>
//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;
}
45 changes: 45 additions & 0 deletions problema 5.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
//Jesús Huerta Aguilar, Javier de La Luz Ruiz, Ernesto Flores Cesareo
//Programación I - Grados
#include <stdio.h>

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;

}

Loading

0 comments on commit 751f158

Please sign in to comment.