Punteros en C, armando una calculadora

Punteros en C, armando una calculadora

En esta ocasión resolveremos el ejercicio de un subscriptor, el cual esta basado en el lenguaje C.


Por cierto, ¿aun no estas registrado en Thewhitecode.com?, crea ahora tu perfil y no te pierdas de nada!  


El enunciado es el siguiente:


Ejercicio #1 Calculadora

La implementacion de la calculadora es la siguiente:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
void calculadora(){
    printf("\nBienvenido a la calculadora!\n");
    printf("Escoge las operaciones: \n");
    printf("1 para Suma\n2 para restar\n3 para dividir\n4 para multiplicar\n5 para calcular potencia\n6 para calcular la raiz\n\n");

    int op;
    scanf("%d", &op);
    
    double a,b;
    printf("Ingresa cada operando: \n");
    scanf("%lf", &a);
    fflush(stdout );
    scanf("%lf", &b);

    switch (op) {
        case 1:
            printf("%lf + %lf = %lf ", a,b,suma(a,b));            
            break;
        case 2:
            printf("%lf - %lf = %lf ", a,b,restar(a,b));   
            break;
        case 3:
            printf("%lf /%lf = %lf ", a,b,dividir(a,b));   
            break;
        case 4:
            printf("%lf * %lf = %lf ", a,b,multiplicar(a,b));   
            break;
        case 5:
            printf("%lf, elevado al exponente %lf = %lf ", a,b,potencia_V1(a,b));   
            break;
        case 6:  
            printf("Raiz %lf de %lf = %lf ", b,a,RaizCuadrada(a,b));   
            break;
        default:
            printf("%lf + %lf = %lf ", a,b,suma(a,b)); 
            break;
    }
    
}

Utilizamos un switch case para clasificar la operacion en base a el numero ingresado por el usuario y en cada caso imprimimos el resultado en la consola.


Ejercicio #2 Cuadrado y cubo de cada numero en un rango dado

Aqui se da a entender que el usuario debe ingresar un rango de numeros, en ese caso es mas sencillo que el usuario ingrese el largo de ese rango y a partir de alli, calcular los valores:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void ejercicio_2(){
    printf("\n");
    printf("Ingresa un limite n: \n");

    int n;
    scanf("%d", &n);

    printf("\nLos numeros del rango son: \n");
    for (int i = 1; i <= n; i++)
    {
        printf("%d, ",i);
    }

    printf("\nLos cuadrados son: \n");
    for (int i = 1; i <= n; i++)
    {
        printf("%lf, ",potencia_V1(i,2));
    }
    
    printf("\nLos cubos son: \n");
    for (int i = 1; i < n; i++)
    {
        printf("%lf, ",potencia_V1(i,3));
    }

    printf("\n------------------\n");
}

Ejercicio #3 Multiplicacion de matrizes usando punteros

En este ejercicio, el usuario no necesita ingresar ningun valor, entonces podemos crear 2 Arrays, cada una de 2 dimensiones y posteriormente calcular el resultado de su multiplicacion.
Un punto importante es el utilizar la aritmetica de punteros para solucionar este problema.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
void ejercicio_3(){
    printf("\n");
    int size = 2;
	int A[size][size] = { { 1,2 },{ 3,4 } }, B[size][size] = { { 1,2 },{ 3,4 } }, C[size][size];
	for (int i = 0; i < size; i++)
	{
		for (int j = 0; j < size; j++)
		{
			C[i][j] = 0;
			for (int k = 0; k < size; k++)
			{
				//C[i][j] += A[i][k] * B[k][j];
				*(*(C + i) + j) += (*(*(A + i) + k)) * (*(*(B + k) + j));
			}
		}
	}

    printf("La matrix A es: \n");
    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
        {
            printf("%d ", A[i][j]);
        }
        printf("\n");        
    }

    printf("La matrix B es: \n");
    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
        {
            printf("%d ", B[i][j]);
        }
        printf("\n");        
    }

    printf("La matrix resultante de A + B = C es: \n");
    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
        {
            printf("%d ", C[i][j]);
        }
        printf("\n");        
    }
    
    printf("\n------------------\n");
}

El Resultado

Los numerales 1, 2 y 3 corresponden cada uno a una funcion que los implementa. Al ejecutar el main, se ejecutan las funciones ejercicio_1( );, ejercicio_2( );ejercicio_3( );


El usuario comienza usando la calculadora, donde escoje con base a un numero la operacion a ejecutar. En este caso el usuario ingreso el numero 4, el cual representa a lla funcion multiplicar.


Para el ejercicio #2, el usuario ingresa el largo n de un rango desde 1 hasta n, el programa crea una lista de valores y para cada uno de estos valores, calcula el cubo y el cuadrado.


En ultimo lugar y para el ejercicio #3, se crean las Matrices A y B, y se calcula posteriormente el resultado de su multiplicacion. 


El output impreso en la consola se ve de la siguiente manera:


¿Te ha gustado el desarrollo de este ejercicio?

¿Quisieras más publicaciones como esta?

¡Coméntanos tus dudas y dinos que podríamos haber hecho mejor!, tal vez tengas una solución más sencilla a este ejercicio, ¡enséñanosla!


Por cierto, ¿aun no estas registrado en Thewhitecode.com?, crea ahora tu perfil y no te pierdas de nada!


Un Abrazo!
Master
https://thewhitecode.com/


Master

Professional Title

Reactions

0

0

0

0

Access hereTo be able to comment

TheWhiteCode.com is not the creator or owner of the images shown, references are: