Ejercicios del curso de programación

Topic created · 135 Mensajes · 13458 Visitas
  • Ejercicio 20(M)

        #include 
        
    int main() {
    int n1;
    int n2;
    int i;
    printf ("Introduce un numero: ");
    scanf ("%i", &n1);
    fflush(stdin);
    if(n1 < 0) {
             n2 = 0;
             while(n2 < 15) {
             n2++;
             printf ("Hola\n");} 
             } else {
                    for (i = 4; i > -9; i--) {
                        printf ("%i\n", i);
                        }
                        }
                        system("pause >null");
                        return 0;
                        }
  • Ejercicio 17 (B)

    #include 
    
    int main() {
        int num1;
        int num2;
        int num3;
        printf("Inserta un numero: ");
        scanf("%i", &num1);
        fflush(stdin);
        printf("sorry otr numero XD: ");
        scanf("%i", &num2);
        fflush(stdin);
        printf("Xd otro plxx: ");
        scanf("%i", &num3);
        int i;
        
        for(i = num1+num2+num3*4; i > 500; i*=i) {
              printf("%i\n",i);
        }
        system("pause > null");
        return 0;
    }
  • Ejercicio 19 (B)

    #include 
    
    int main() {
        int i;
        for(i = 1; i < 11; i++) {
              printf("%i\n",i);
        }
        system("pause > null");
        return 0;
    }
  • @danibonilla1: el 16 ya lo tienes bien :wiii: aunque mal tabulado. Cuando cierras una llave, todas las líneas a partir de ahí incluyendo la línea en la que está la llave de cierre, tienen una tabulación menos. El 20 también está mal tabulado, pero funciona. Además cuando te pido que pongas hola 15 veces lo suyo es hacerlo con un bucle for, como ves con un while también funciona pero el for se usa cuando conocemos el número de repeticiones normalmente.

    @Anghios: el 17 está mal. Tú lo que haces es un bucle que empieza con el contador valiendo "n1 + n2 + (n3*4)" (recuerda que las multiplicaciones tienen prioridad sobre las sumas, también en programación) y le va sumando uno cada vez. Lo que tienes que hacer, es que el valor de cada una de las tres variables, sea 4 veces el valor anterior hasta que uno de los valores sea mayor que 500 (ojo tu pones 200). Lee el enunciado detenidamente y piensa bien cómo hacerlo. Necestiarás varios ifs encadenados o usar el operador && (te recomiendo que uses este último).
    @Anghios said:

    a i le puse 1, para que empiece a contar desde 1, y le puse que sea menor que 11, hasta que llegue a 10, para que se quede bien en pantalla, y salga del 1 al 10 perfecto, no de 0 a 9 xD

    Gracias, se leer _xD_ Sí, se hace así, el 19 lo tienes bien.
    Todos los ejercicios hasta ahora estaban bien tabulados menos el 20, que lo tienes MUY parecido a como lo hizo danibonilla1
    [attachment=0]
    Está bien, pero te digo lo mismo que a dani, no me gusta mucho que uses un bucle while para mostrar hola un numero determinado de veces, ahí vendría al pelo un for.

    @dantox: el 15 bien, el 16 bien, el 17 mal, el 19 bien y el doblepost mal _xD_ No hagas doblepost. En el 17 tienes mal exactamente lo mismo que anghios, lee lo que le digo a él sobre el 17.

  • ejercicio 20(M):

    #include  //declarando biblioteca stdio del compilador
    
    int main() //funcion principal
    {
        int num1; //declaramos una variable
        printf("Ingrese un numero: ");
        scanf("%d",&num1); //guardamos el valor que pedimos en nuestra variable
        fflush(stdin);
    
        printf("\n\n"); //dejando espacio para mostrar resultados
    
        if(num1 < 0) //si el numero es negativo
        {
            int i; //declarando contador
            for(i=0;i
    

    ejercicio 18 (A):

    #include 
    
    int main()
    {
        int num1,num2; //declaramos dos variables
        int condicion=0; //declaramos la variable de repeticion
        int alternador=0; //declaramos la variable de condicon alternadora
    
        printf("Ingrese un numero: ");
        scanf("%d",&num1);
        fflush(stdin);
    
        printf("Ingrese otro numero: ");
        scanf("%d",&num2);
        fflush(stdin);
    
        while(condicion < 51)
        {
            if(alternador == 0)
            {
                condicion += num1;
                alternador += 1;
            }
            else
            {
                condicion += num2;
                alternador -= 1;
            }
        }
    
        if(alternador == 1)
        {
            printf("\n\nUltimo numero sumado a la tercera variable fue: %d",num1);
        }
        else
        {
            printf("\n\nUltimo numero sumado a la tercera variable fue: %d",num2);
        }
    
        system("pause > null");
        return 0;
    }
    

    ejercicio 17(B):

    #include 
    
    int main()
    {
        int valor1,valor2,valor3;
    
        printf("Ingrese un numero: ");
        scanf("%d",&valor1);
        fflush(stdin);
    
        printf("Ingrese otro numero: ");
        scanf("%d",&valor2);
        fflush(stdin);
    
        printf("Ingrese un tercer numero: ");
        scanf("%d",&valor3);
        fflush(stdin);
    
    
        while(valor1 null");
        return 0;
    }
  • @freak7z: tienes bine hechos los 3, pero no me gusta mucho cómo has hecho el 20. La variable i hubiera preferido que la crearas al principio, pero todavía me podrías decir que si el número no es negativo no hace falta crearla. La que no me gusta ni un pelo es numInicial. Si declaras una variable dentro de un bucle que se repita 10 veces crearás 10 variables. La primera vez que entre en el bucle se creará una, y al terminar esa vez se destruirá. Volverá a repetirse y se creará otra, y al terminar esa repetición se destruye otra vez. Así se va repitiendo hasta salir del bucle. Si se repite solo 15 veces como en tu caso no se nota demasiado, pero si hicieras un programa en el que algo tiene que repetirse 1.000.000 de veces, hacer esto sería tremendamente ineficiente. Además, aunque esto ya es completamente secundario, en C se suelen poner los nombres de variables en vez de cuando quieras poner espacio poner la siguiente mayuscula, poniendo enmedio _ con lo que quedaria num_inicial. Esto ya me da un poco igual, pero es para que lo sepas.

  • Ejercicio 17 (B): Crea un programa que pida al usuario tres números y vaya multiplicando los tres números por 4 hasta que uno de ellos sea mayor que 500.

    #include 
    
    int main() {
        int num1, num2, num3;
        printf("Introduce un numero: ");
        scanf("%i", &num1);
        fflush(stdin);
        
        printf("Introduce otro numero: ");
        scanf("%i", &num2);
        fflush(stdin);
        
        printf("Introduce otro numero mas: ");
        scanf("%i", &num3);
        fflush(stdin);
        
        while(num1 < 500)  {
                   num1 *= 4;
                   }
                   
        while(num2 < 500)  {
                   num2 *= 4;
                   }
                   
        while(num3 < 500)  {
                   num3 *= 4;
                   }
                   
        if(num1 > 500)  {
                printf("Num1= ""%i\n", num1);
                }
                
        if(num2 > 500)  {
                printf("Num2= ""%i\n", num2);
                }
                
        if(num3 > 500)  {
                printf("Num3= ""%i\n", num3);
                }
        system("pause > null");
        return 0;
    }
    

    Ejercicio 20 (M): Crea un programa que pida al usuario un número. Si el número es negativo dirá hola 15 veces y terminará. Si el número es positivo el programa contará de 4 a -8 de uno en uno.

    #include 
    
    int main() {
        int num1;
        printf("Introduce un numero: ");
        scanf("%i", &num1);  //Guarda el numero escrito por el usuario en la variable num1
        fflush(stdin);
        
        if(num1 < 0) {  // Si num1 es menor que 0,  obligatoriamente va a ser un numero negativo
        int i;     //Creo la variable i
        for(i = 0; i < 15; i++) { // Se mostrara por pantalla Hola, si i es menor que 15
              printf("Hola\n");  // Se muestra Hola
              }
              }
        
        else {    // De lo contrario que el numero sea mayor que 0 (sera positivo)
        int num2;  //Se crea la variable num2
        for(num2 = 4; num2 >= -8; num2 -= 1) { //Repetirà la acion hasta que num2 sea igual a -8
               printf(" %i\n", num2);  //Mostrara por pantalla el valor de num2
               }
               }
    system("pause > null");
    return 0;
    }
  • El 30 está bien pero el 17 no. Una pista, tienes que usar solo un bucle, no 3. Cuando una de las 3 variables sea mayor que 500 ya no aumentará ninguna de las 3, simplemente terminará. Usa && al poner la condición del for 😉

  • ejercicio 23(M):

    #include 
    
    int main() //inicio del programa
    {
        int valores[6], contValor; //declarando un array y una variable-contador de tipo entero
    
        printf("Deber\xA0 ingresar 6 numeros: \n\n"); //muestra una premisa //usando la a con tilde
    
        for(contValor=0 ; contValornull"); //detiene al programa hasta presionar una tecla
        return 0; //fin del programa devolviendo 0
    }
    

    lo hize a las 2 de la mañana, y me parece que mucho 'for' XD, ahi lo veo mañana y me hechas una ojeada aer como esta.
    las posiciones para la condicional, lo hize contando posiciones, osea desde 1, no tomando el valor del indice del array, que comenzaria desde 0. por eso en la condicional, si es 'par' el indice, divide y si se 'impar' multiplica. (espero se entienda XD)

    pd: trabaje con enteros, por eso no muestra decimales, y no lo digo por ti, que ya lo sabes 😛

    saludos

  • @freak7z said:

    lo hize a las 2 de la mañana, y me parece que mucho 'for' XD, ahi lo veo mañana y me hechas una ojeada aer como esta.
    las posiciones para la condicional, lo hize contando posiciones, osea desde 1, no tomando el valor del indice del array, que comenzaria desde 0. por eso en la condicional, si es 'par' el indice, divide y si se 'impar' multiplica. (espero se entienda XD)

    pd: trabaje con enteros, por eso no muestra decimales, y no lo digo por ti, que ya lo sabes 😛

    saludos

    El programa está bien, pero si quieres ahorrarte un bucle puedes hacerlo perfectamente. Además puedes mostrar decimales sin usar variables de tipo float, y sin hacer tampoco ningún cast a float, que no lo hemos dado aún en el curso. Piénsalo un poco que te veo capaz de arreglarlo. Si no lo consigues postea en el post de dudas.

    Un saludo.