1.
Escriba un programa que solicite al usuario ingresar un número en base hexadecimal
y que muestre su representación en base decimal.
#include <stdio.h>
#include <math.h>
#include <string.h>
int main() {
char* hexadecimal; //Se declara la variable de tipo carácter que contendrá al número
hexadecimal a convertir.
int decimal = 0; //Se declara la variable de tipo entero que contendrá al número decimal
convertido.
printf("Ingrese el número hexadecimal: ");
scanf("%s", hexadecimal); //Se guarda el número hexadecimal ingresado en la variable.
int longitud = strlen(hexadecimal); //Se calcula la longitud de la cadena.
for(int i = 0; i < longitud; i++) { //En el bucle for se recorre el número ingresado y se
multiplica por la base 16 elevada al número de su posición.
char num = hexadecimal[longitud - 1 - i];
if(num >= '0' && num <= '9')
decimal += (num - '0') * pow(16, i); //Si el valor hexadecimal es un
número, se convertirá individualmente en decimal y se sumará a la variable que contiene el
número convertido.
else
decimal += (num - 'A' + 10) * pow(16, i); //Si el valor hexadecimal es una
letra, se transformará en su equivalente decimal y se sumará a la variable que contiene el
número convertido.
}
printf("El número decimal obtenido es: %d ", decimal);
return 0;
}
2. Escriba un programa que solicite al usuario el ingreso del número de patas y cabezas
que hay en una granja de patos y conejos. El programa debe mostrar el número de
animales de cada tipo.
# include <stdio.h>
// Para resolver el problema se debe establecer un sistema de ecuaciones lineales de 2x2.
// x + y = c
// 2x + 4y = f
// En donde x será el número de patos, y será el número de conejos, c será el número de
cabezas y f será el número de patas.
int main(void) {
//Se declaran las variables
int x, y;
int a=1, b=1, c, d=2, e=4, f;
//Se solicitan el número de cabezas y patas para resolver el sistema.
printf("Ingrese el número de cabezas: ");
scanf("%d", &c);
printf("Ingrese el número de patas: ");
scanf("%d", &f);
//Para resolver el sistema de 2x2 se usa el determinante (como el sistema tiene una
solución única)
int determinante=(a*e)-(d*b);
x=((e*c)-(b*f))/determinante; //Si se entregan valores inconsistentes de cabezas y patas,
el sistema tendrá solución, pero no será un resultado lógico
y=((a*f)-(d*c))/determinante;
//Finalmente, se obtienen los resultados
printf("El número de patos es %d\n", x);
printf("El número de conejos es %d", y);
}
3. Crear un programa que pida al usuario los coeficientes a, b y c de la ecuación 𝑎𝑥 2 +
𝑏𝑥 + 𝑐 = 0 y muestre las soluciones de la misma. Asuma que las soluciones siempre
son reales.
#include <stdio.h>
#include <math.h>
int main() {
//Se crean las variables que servirán para almacenar los datos de la ecuación.
float a, b, c;
float disc;
float x1, x2;
//En esta parte se le asignan los valores de los coeficientes
printf("Ingrese el valor del coeficiente a: ");
scanf("%f", &a);
printf("Ingrese el valor del coeficiente b: ");
scanf("%f", &b);
printf("Ingrese el valor del coeficiente c: ");
scanf("%f", &c);
//Se calcula el discriminante, de modo que, si es negativo, x no tendrá una solución en los
números reales.
disc = (pow(b, 2))-(4*a*c);
//Se crea un condicional que retorna los valores de x si el discriminante es positivo, y
retorna un error cuando el discriminante es negativo.
if(disc >= 0) {
x1 = ((-b) + sqrt(disc))/(2*a);
x2 = ((-b) - sqrt(disc))/(2*a);
printf("Los valores de x son %f, %f", x1, x2);
}
else {
printf("La ecuación no tiene solución en los números reales");
}
}