Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: pedro,, en 23 de Mayo 2016, 13:05

Título: C (LenguajeC) Uso de bucle for ciclos iteraciones calcular resto mod CU00533F
Publicado por: pedro,, en 23 de Mayo 2016, 13:05
Hola, dejo una posible solución al ejercicio CU00533F.

Citar
EJERCICIO Nº 1
Escribe un programa que use un bucle for para mostrar el resultado de multiplicar los números del 1 al 20 por el resultado de obtener el módulo (resto de la división que se obtiene usando el operador % de C) de dicho número con un número elegido por el usuario.
Ejemplo: el usuario elige el número tres. Los cálculos a realizar serán: resto de 1 entre 3 es 1, por pantalla se mostrará un 1, resto de 2 entre 3 es 2, por pantalla se mostrará un 2, resto de 3 entre 3 es cero, por pantalla se mostrará un cero, resto de 4 entre 3 es 1, por pantalla se mostrará un 1… así hasta terminar con resto de 20 entre 3 es 2, por pantalla se mostrará un 2.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
int main(){
    int num = 0;
    int i = 0;
    printf("Introduzca un n\xA3mero entero: ");
    scanf("%d", &num);
    for (i = 0; i <= 20; i++) {
        printf("resto de %d entre %d es %d\n", i, num, i % num);
    }
    return 0;
}

Citar
EJERCICIO Nº 2
Escribe un programa que use un bucle for para calcular la potencia de un número al que denominaremos base sobre otro número al que denominaremos exponente, ambos elegidos por el usuario.
Ejemplo: el usuario elige como base el 4 y como exponente el 3. El programa debe mostrar el resultado de multiplicar la base por sí misma 3 veces, en este ejemplo 4*4*4 = 64.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
int main() {
    int numBase = 0;
    int numExponente = 0;
    int i = 0;
    int resultado = 0;
    puts("Programa que calcula la potencia de un n\xA3mero me diante un bucle for.");
    printf("Introduzca el n\xA3mero base: ");
    scanf("%d", &numBase);
    printf("Introduzca el exponente: ");
    scanf("%d", &numExponente);
    for (i = 1; i <= numExponente; i++) {
        if (i==1){
            resultado = numBase;
        } else {
            resultado = resultado * numBase;
        }
    }
    printf("El resultado es: %d", resultado);
    return 0;
}

Saludos.  ;D
Título: Re: C (LenguajeC) Uso de bucle for. CU00533F
Publicado por: César Krall en 30 de Mayo 2016, 22:36
Hola! Viendo tu respuesta al primer ejercicio se me plantea la duda ¿Haces lo que pide el enunciado referente a ir desde 1 a 20, o vas desde cero a 20? Tampoco es de gran importancia pero creo que vas de 0 a 20 aunque no lo he ejecutado.

Saludos!
Título: Re:C (LenguajeC) Uso de bucle for ciclos iteraciones calcular resto mod CU00533F
Publicado por: pedro,, en 30 de Mayo 2016, 23:07
Hola César, tienes razón, el código ejecuta desde 0 hasta 20, ahora lo corrijo.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
int main(){
    int num = 0;
    int i = 0;
    printf("Introduzca un n\xA3mero entero: ");
    scanf("%d", &num);
    for (i = 1; i <= 20; i++) {
        printf("resto de %d entre %d es %d\n", i, num, i % num);
    }
    return 0;
}

Saludos y gracias por corregir.
Título: Re:C (LenguajeC) Uso de bucle for ciclos iteraciones calcular resto mod CU00533F
Publicado por: Daniloboy en 31 de Mayo 2016, 14:43
El segundo ejercicio de las potencias se puede realizar así también:
Código: [Seleccionar]
#include <stdio.h>

int main() {

int base, exp, potencia = 1, i;

printf("Base aqui: ");
scanf("%d", &base);

printf("Exponente aqui: ");
scanf("%d", &exp);

for(i=1; i<=exp; i++){
    if (exp == 0){
        printf("Resultado de potencia: %d", potencia);
    }
    else {
potencia = potencia*base;
    }

}
  printf ("El resultado de la potencia  %d elevado a %d es: %d\n\n\n", base,exp,potencia );

return 0;
}

Lo que no consigo realizar es mostrar la base tantas veces como el exponente indica en plan: El resultado de la potencia 2^4 >>> 2*2*2*2 = 16

Un saludo
Título: Re:C (LenguajeC) Uso de bucle for ciclos iteraciones calcular resto mod CU00533F
Publicado por: pedro,, en 31 de Mayo 2016, 15:50
Prueba añadir esto al final de tu código.

Código: [Seleccionar]
    printf ("El resultado de la potencia  %d elevado a %d es: %d", base,exp, base );
    for (i=1; i<exp; i++)
    {
        printf (" X %d ", base);
    }
    printf ("= %d\n\n\n", potencia );

Saludos.
Título: Re:C (LenguajeC) Uso de bucle for ciclos iteraciones calcular resto mod CU00533F
Publicado por: Daniloboy en 31 de Mayo 2016, 20:26
¡Hey, gracias! No se me ocurrio volver a usar el bucle for, estaba en todo el curso cegado a solo usar un bucle para mostrarlo todo y en mi mente "bloquee" la opción de volver a utilizarlo en otro lugar.

Una cosa que corregí es que en la linea que escribiste donde muestras la base se me muestra como X4 X4 etc... es mejor poner el %d antes de la X para que se muestren los numeros así: 4X4X4X etc...

Código: [Seleccionar]
printf("%dX", base);
Gracias y un saludo  8)