/* Copyright: Free Use Descripción: Compilacion de funciones Fecha: 22/05/2025 */ #include #include #define MAX_STRING_SIZE 51 #include int signo (float num); void primera_letra(char texto[]); char ultima_letra(char palabra[]); int esPar (int num); int esPrimo (int n); int cuenta_letras (char a, char b[]); int sumar_digitos(int n); void triangulo(int x, char c); int potencia(int a, int b); float seno(float x); float raizcuadrada(int x); float factorial (float x); void contar_digitos(int x); float serie_armonica(int x); int invertir_numero(int x); void suma_digitos_pares_impares(int x); int numero_perfecto (int x); int transformar_binario(int x); void palindromo(int x); void estrellas(char a); void calculadora_2do_grado(float a, float b, float c); int main(){ int x; printf("Elija que función desea utilizar marcando el número que corresponde:\n"); printf("1. Conocer el signo de un número\n"); printf("2. Determina la primera letra de una palabra\n"); printf("3. Determina la última letra de una palabra \n"); printf("4. Calcula si un número es par\n"); printf("5 Calcula si un número es primo.\n"); printf("6. Saber cuantas veces aparece una letra en una palabra\n"); printf("7. Sumar los dígitos de un número\n"); printf("8. Crear un triángulo\n"); printf("9. Calcula potencias\n"); printf("10. Calcula seno\n"); printf("11. COntar los dígitos de un número\n"); printf("12. Calcula la suma de una serie armónica\n"); printf("13. Invertir un número natural\n"); printf("14. Saber si las cifras pares de un numero suman lo mismo que las impares\n"); printf("15. Calcular si un numero es perfecto\n"); printf("16. Convertir numeros binarios a decimales\n"); printf("17. Saber si un numero es palindromo\n"); printf("18. Crear un fondo estrellado\n"); printf("19. Resolver ecuaciones cuadráticas\n"); scanf("%d",&x); switch(x){ case 1:; printf("Inserte un número"); float num; scanf("%d",num); signo(num); break; case 2: ; char palabra[20]; printf("Inserte tu palabra: "); scanf("%s",&palabra); primera_letra(palabra); break; case 3:; char texto[25]; printf("Ingrese una cadena de texto: "); gets(texto); printf("La ultima letra de nuestra cadena es: %c \n", ultima_letra(texto)); break; case 4:; int x; printf("Inserte un número \n"); scanf("%d",&num); printf("%d",esPar(x)); break; case 5:; float y; printf("Inserte un número\n"); scanf("%f",&y); printf("Si el número asignado es 1, es primo\n si es 0, es compuesto.\n"); printf ("%d",esPrimo(y)); break; case 6:; char letra; char p[MAX_STRING_SIZE]; printf("Ingrese una letra: "); scanf("%c",&letra); printf("Ingrese una palabra: "); scanf("%s",p); cuenta_letras(letra,p); printf("la letra '%c' aparece %d vez(ces)",letra,cuenta_letras(letra,p)); break; case 7:; int entrada; printf("Inserte un número\n"); scanf("%d",&entrada); printf("La suma de los dígitos de %d es %d",num, sumar_digitos(entrada)); break; case 8:; int lineas; char caracter; printf("Ingresar la cantidad de líneas para el triángulo: "); scanf("%d", &lineas); fflush(stdin); printf("Ahora el caracter: "); scanf("%c", &caracter); triangulo(lineas,caracter); break; case 9:; int base; int exponente; printf("Ingrese la base: "); scanf("%d",&base); printf("\nAHora, ingrese el exponente: "); scanf("%d",&exponente); printf("%d elevado a %d es: %d", base, exponente, potencia(base,exponente)); break; case 10:; float angulo; printf("Ingrese un ángulo en grados: "); scanf("%f", &angulo); angulo = (angulo*3.1415926536)/180; printf("El seno del angulo es: %f \n", seno(angulo)); break; case 11:; int numero_; printf("inserte un número natural: "); scanf("%d",&numero_); if (numero_ < 0){ printf("EL número debe ser natural >:("); system("pause"); } else contar_digitos(numero_); break; case 12:; int n; printf("Inserte el término hasta el cual llegará la serie: "); scanf("%d",&n); if (n <= 0) system("pause"); serie_armonica(n); break; case 13:; int num_a_invertir; printf("Inserte un número mayor a 0: "); scanf("%d",&num_a_invertir); if(num < 0) system("pause"); printf("%d",invertir_numero(num_a_invertir)); break; case 14:; int t; printf("Inserte un número :"); scanf("%d",&t); suma_digitos_pares_impares(t); break; case 15:; int num_perfecto; printf("Inserte un número: "); scanf("%d",&num_perfecto); numero_perfecto(num_perfecto); break; case 16:; int binario; printf(" Inserte un número: "); scanf("%d",&binario); if (num < 0){ printf("EL número debe ser mayor a 0"); system("pause"); } transformar_binario(num); break; case 17:; int num_palin; printf("Inserte un número: "); scanf("%d",&num_palin); if (num < 0){ printf("EL número debe ser mayor a 0"); system("pause"); } palindromo(num_palin); break; case 18:; char s; printf("Inserte un caracter: "); scanf("%c", &s); estrellas(s); break; case 19:; float a; float b; float c; printf("\nInserte el primer coeficiente: "); scanf("%f",&a); printf("\nInserte el segundo coeficiente: "); scanf("%f",&b); printf("\nInserte el término independiente: "); scanf("%f",&c); calculadora_2do_grado(a,b,c); break; } return 0; } int signo (float num){ if (num < 0){ printf("Es negativo"); return -1; } else if (num > 0){ printf("Es positivo"); return 1; } else{ printf("Es 0"); return 0; } } void primera_letra(char texto[]){ char letra[512]; strncpy(letra,texto,1); printf("\nLa primera letra es: %s",letra); } char ultima_letra(char palabra[]){ int indice = strlen(palabra)-1; return palabra[indice]; } int esPar (int num){ if (num % 2 == 0){ return 1; } else{ return 0; } } int esPrimo (int n){ int i; for(i = 2; i < n/2; i++){ n%i; if (n % i == 0 || n == 0 || n == 1 || n == 4) { return 0; } } return 1; } int cuenta_letras (char a, char b[]){ int i; size_t cuenta = 0; for(i = 0; b[i] !='\0';i++){ if (b[i] == a){ cuenta++; } } return cuenta; } int sumar_digitos(int n){ int suma; int i; while (n != 0){ suma += n%10; n = n/10; if(n < 10){ suma += n; n = 0; return suma; } } } void triangulo(int x, char c){ int i; for (i = x; i >= 1; i--){ int j; for (j = 0; j < i; j++) { printf("%c",c); } printf("\n"); } } int potencia(int a, int b){ int resultado = 1; int i; for ( i = 1; i <= b; i++){ resultado *= a; } return resultado; } float seno(float x) { return sin(x); } float factorial (float x){ float factorial = 1; int i; for (i = 1; i <= x; i++) factorial *= i; return factorial; } void contar_digitos(int x){ int n = x; int temp = 0; int contador; while(n>0){ temp = temp*10 + (n%10); n /= 10; contador++; } printf("EL número tiene %d digito(s)", contador); } float serie_armonica(int x){ double i; double suma = 0; for(i = 1; i<= x; i++) suma += 1/i; printf("la suma vale %1f\n",suma); return suma; } int invertir_numero(int x){ int n = x; int invertido = 0; while (n > 0){ invertido = invertido*10 + (n%10); n /=10; } return invertido; } void suma_digitos_pares_impares(int x){ int n = x; int temp = 0; int suma_pares = 0; int suma_impares = 0; while (n > 0){ temp = n%10; if (temp%2 == 0) suma_pares += temp; else suma_impares +=temp; n/=10; } if(suma_pares == suma_impares) printf("La suma de los dígitos pares es igual a la de los impares"); else printf("No cumple con la propiedad"); } int numero_perfecto (int x){ int i; int resto; int suma = 0; for(i = 1; i < x; i++){ resto = x%i; if (resto == 0) suma += i; } if (suma == x){ printf("!%d es un número perfecto¡",x); } else{ printf("%d NO es un número perfecto",x); } } int transformar_binario(int x){ int n = x; int decimal = 0; int i; for(i = 0;n > 0;i++){ decimal = decimal + n%10 * pow(2,i); n/=10; } printf("%d es %d en base decimal", x, decimal); return decimal; } void palindromo(int x){ int n = x; int almacen = 0; while(n>0){ almacen = almacen*10 + (n%10); n /= 10; } if(almacen == x) printf("Es palindromo"); else printf ("No es palindromo"); } void estrellas(char a){ int num; int i; int j; for(i = 1; i <=24; i++){ for(j = 2; j<=78;j++){ num = (rand()%78)+1; if(j == num)printf("%c",a); else printf(" "); } } } void calculadora_2do_grado(float a, float b, float c){ float x1; float x2; float discriminante; discriminante = pow(b,2) - 4*a*c; if (discriminante < 0){ printf("Esta ecuación no tiene soluciones reales"); system("pause"); } else{ x1 = (-b + sqrt(discriminante))/2*a; x2 = (-b - sqrt(discriminante))/2*a; printf("Las soluciones :\n"); printf("x1 = %f\n", x1); printf("x2 = %f", x2); } }