[Curso] Introducción a la programación en C (VIII)

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, m0skit0, LnD, ka69, zacky06

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (VIII)

Mensaje por m0skit0 »

Dark Pallacus escribió:Que chungo! Es que si reduzco los casos concretos tendré que aumentar mucho los números que comprobar, lo que se traduce en mucho mas uso del procesador.

Usa ese dark coco que tus progenitores te han dado :lol:

Dark Pallacus escribió:Por cierto: He estado buscando información para que el usuario introduzca un número y no aparezca en pantalla, pero no he encontrado nada. :tongue:

Eso se puede hacer de varias formas, pero la verdad no aporta nada nuevo ni interesante. Ya irás viendo cosas por el estilo más adelante y posiblemente lo puedas hacer por ti mismo.
Imagen

Avatar de Usuario
flood
Enteradillo
Enteradillo
Mensajes: 53
Registrado: 10 Ene 2011, 01:41

Re: [Curso] Introducción a la programación en C (VIII)

Mensaje por flood »

Lección terminada teacher :D
Spoiler:
Ejercicio 1.

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char* argv[])
{
   int num;

   printf("Escribe un numero menor que 20 y par: ");
   scanf("%d", &num);

   if(num < 20 && (num % 2) == 0)
   {
      printf("El numero es menor que 20 y es par, bien echo");
   }

   else
   {
      printf("El numero no es menor que 20 o no es par");
   }

   return 0;
}


Ejercicio 2.

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, int argv[])
{
   float num1, num2;

   printf("Introduce un numero: ");
   scanf("%f", &num1);

   printf("\nIntroduce otro numero: ");
   scanf("%f", &num2);

   if((num1 + num1) / 2 > 20)
   {
      printf("\nLa media es mayor que 20.\n");
   }
   else
   {
      printf("\nLa media es menor que 20.\n");
   }

   if((num1 + num2) > 20)
   {
      printf("\nLa suma de los dos numero es mayor que 20\n");
   }
   else
   {   
   printf("\nLa suma de los dos numero no es mayor que 20\n");
   }

   if((num1 * num2) > 20)
   {
      printf("\nEl resultado de la multiplicacion es mayor que 20\n");
   }
   else
   {
      printf("\nEl resultado de la multiplicacion no es mayor que 20\n");
   }

   return 0;
}


Ejercicio 3.

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char* argv[])
{
   int num1, num2, i;

   printf("Introduce un numero: ");
   scanf("%d", &num1);

   printf("\nIntroduce otro numero: ");
   scanf("%d", &num2);

   if((num1 + num2) % 2 == 0)
   {
      i = 0;
   }

   else
   {
      i= 1;
   }

   for(i;i<=(num1+num2);i = i+2)
   {
      printf("%d\n", i);
   }

   return 0;
}


Ejercicio 4.

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char* argv[])
{
   int num;

   printf("Introduce un numero: ");
   scanf("%d", &num);

   if((num-1) % 2 == 0 && !num % 3 == 0 || num == 2)
   {
      printf("El numero es primo\n");
   }

   else
   {
      printf("El numero no es primo\n");
   }

   return 0;
}


Ejercicio 5.

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char* argv[])
{
   int num1, num2, i=4;

   printf("Introduce un numero secreto: ");
   scanf("%d", &num1);
   do
   {
      printf("\nIntroduce el numero que creas que es el correcto: ");
      scanf("%d", &num2);
   
      if(num1 == num2)
      {
         printf("\nAcertaste, ese es el numero secreto.\n");
         break;
      }
   
      else
      {
         printf("El numero es incorrecto, tienes %d intento(s) restantes.\n", i);
         i--;
      }
   }
   while(i > -1);

   return 0;
}

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (VIII)

Mensaje por m0skit0 »

flood escribió:Ejercicio 1.

:oki:

flood escribió:Ejercicio 2.

¿Para qué calculas la suma y la multiplicación 2 veces cuando con una vale? Es el mismo error que ya hiciste en una parte anterior si recuerdo bien.

flood escribió:Ejercicio 3.

Te digo lo mismo que para el ejercicio 2. El resto perfecto.

flood escribió:Ejercicio 4.

Obviamente mal. Desgraciadamente saber si un número es primo o no no es tan fácil. Aparte, esas condiciones que usas son confusas y mal escritas:

Código: Seleccionar todo

(num-1) % 2 == 0
:?

Código: Seleccionar todo

num % 2 != 0
:oki:

Código: Seleccionar todo

!num % 3 == 0

Ojo con esto. Supongo que querías decir que !(num % 3 == 0), o más limpiamente, num % 3 != 0, es decir, que num no sea divisble entre 3.. Tal y como lo has puesto, estás negando num solamente, y no num % 3.

flood escribió:Ejercicio 5.

Si el número de intentos son 5, ¿para qué pones i = 4 y while(i > -1)? ¿No es más lógico i = 5 y while i > 0? Hagamos las cosas fáciles y entendibles ;)
Imagen

Avatar de Usuario
flood
Enteradillo
Enteradillo
Mensajes: 53
Registrado: 10 Ene 2011, 01:41

Re: [Curso] Introducción a la programación en C (VIII)

Mensaje por flood »

Esta vez solo dejo unas correcciones, haber como lo hice. Para el ejercicio 4 ocupo echarle un pensadita :D .

Spoiler:
Ejercicio 2.

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, int argv[])
{
   float num1, num2, suma;

   printf("Introduce un numero: ");
   scanf("%f", &num1);

   printf("\nIntroduce otro numero: ");
   scanf("%f", &num2);

   suma = num1 + num2;

   if((suma) / 2 > 20)
   {
      printf("\nLa media es mayor que 20.\n");
   }
   else
   {
      printf("\nLa media es menor que 20.\n");
   }

   if((suma) > 20)
   {
      printf("\nLa suma de los dos numero es mayor que 20\n");
   }
   else
   {   
   printf("\nLa suma de los dos numero no es mayor que 20\n");
   }

   if((num1 * num2) > 20)
   {
      printf("\nEl resultado de la multiplicacion es mayor que 20\n");
   }
   else
   {
      printf("\nEl resultado de la multiplicacion no es mayor que 20\n");
   }

   return 0;
}


Ejercicio 3.

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char* argv[])
{
   int num1, num2, suma, i;

   printf("Introduce un numero: ");
   scanf("%d", &num1);

   printf("\nIntroduce otro numero: ");
   scanf("%d", &num2);

   suma = num1 + num2;

   if((suma) % 2 == 0)
   {
      i = 0;
   }

   else
   {
      i= 1;
   }

   for(i;i<=(suma);i = i+2)
   {
      printf("%d\n", i);
   }

   return 0;
}


Ejercicio 4
Próximamente...

Ejercicio 5

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char* argv[])
{
   int num1, num2, i=5;

   printf("Introduce un numero secreto: ");
   scanf("%d", &num1);
   do
   {
      printf("\nIntroduce el numero que creas que es el correcto: ");
      scanf("%d", &num2);
   
      if(num1 == num2)
      {
         printf("\nAcertaste, ese es el numero secreto.\n");
         break;
      }
   
      else
      {
         i--;   
         printf("El numero es incorrecto, tienes %d intento(s) restantes.\n", i);
         
      }
   }
   while(i > 0);

   return 0;
}


Ya fin de semana!!!, y como dice mi calendario... no se debe trabajar los fines de semana :lol: nos vemos hasta el lunes 8-)

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (VIII)

Mensaje por m0skit0 »

flood escribió:haber como lo hice

"A ver", no "haber" :D

flood escribió:Ejercicio 2.

:oki:

flood escribió:Ejercicio 3.

:oki:

flood escribió:Ejercicio 5

No uses break en bucles while y for. Intenta encontrar una forma alternativa.

flood escribió:como dice mi calendario... no se debe trabajar los fines de semana

Buf, con esa mentalidad mal empezamos... Que tengas un buen finde ;)
Imagen

Avatar de Usuario
flood
Enteradillo
Enteradillo
Mensajes: 53
Registrado: 10 Ene 2011, 01:41

Re: [Curso] Introducción a la programación en C (VIII)

Mensaje por flood »

Bueno dejo mis ejercicios pendientes... perdón por el retraso.
Spoiler:
Ejercicio 4.

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char* argv[])

{

   int num, i = 2;

   printf("Introduce un numero mayor que 1: ");
   scanf("%d", &num);

   while(num % i !=0) /*Se que puede ser lento comparar numero por numero pero no se me ocurrio otra cosa*/
   {
      i++;
   }

   if (num==i)
   {     
      printf("El numero es primo.\n");
   }
   else
   {
      printf("El numero no es primo ya que es divisible entre %d.\n", i);
   }

   return 0;

}


Ejercicio 5 sin break

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char* argv[])
{
   int num1, num2, i=5;

   printf("Introduce un numero secreto: ");
   scanf("%d", &num1);
   do
   {
      printf("\nIntroduce el numero que creas que es el correcto: ");
      scanf("%d", &num2);
   
      if(num1 == num2)
      {
         printf("\nAcertaste, ese es el numero secreto.\n");
         i = 0;   
      }
   
      else
      {
         i--;   
         printf("El numero es incorrecto, tienes %d intento(s) restantes.\n", i);
         
      }
   }
   while(i > 0);

   return 0;
}

Avatar de Usuario
cripii5
Experto
Experto
Mensajes: 1948
Registrado: 14 Dic 2010, 03:15
Gamertag Xbox Live: cripii5
Steam ID: cripii5
Twitter: cripii5
Ubicación: Uruguay

Re: [Curso] Introducción a la programación en C (VIII)

Mensaje por cripii5 »

Es obligatorio que use un while para el primer ejercicio? yo lo hice asi:
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char* argv[])
{
    int num, exp;
   
    //Pedimos los enteros
    printf ("Introduzca un numero entero: ");
    scanf ("%d", &num);
    printf ("El numero %d ", num);
   
    //Calculamos si el numero introducido es par o impart
    exp = num % 2;
   
    //Condiciones
   
    //Menor y par
    if ((num < 20) && (exp == 0))
    {
            printf ("es menor que 20 y es ");
    }
    else
    {
        printf ("no es menor que 20 y ");
    }
   
    //Esta vez si saque la palabra comun jaja
    printf ("par\n");
   
    system ("PAUSE");
    return 0;
}


ejercicio 2 (sigo sin usar while... no se que utilidad le puedo dar aca)
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char* argv[])
{
    float num1, num2, media, suma, mult;
   
    //Pedimos los numeros
    printf ("Introduzca el primer numero: ");
    scanf ("%f", &num1);
    printf ("Introduzca el segundo numero: ");
    scanf ("%f", &num2);
   
    //Realizamos las operaciones
    suma = num1 + num2;
    media = suma / 2;
    mult = num1 * num2;
   
    //Verificamos la suma
    printf ("La suma de los numeros");
    if (suma <= 20)
    {
             printf (" no");
    }
    printf (" es mayor que 20\n");
   
    //Verificamos la multiplicacion
    printf ("La multiplicacion de los numeros");
    if (mult <= 20)
    {
             printf (" no");
    }
    printf (" es mayor que 20\n");
   
    //Verificamos la media
    printf ("La media de los dos numeros");
    if (media <= 20)
    {
              printf (" no");
    }
    printf (" es mayor que 20\n");
   
    system ("PAUSE");
    return 0;
}


ejercicio 3:
Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    int num1, num2, result, modulo, cont=0;
   
    //Pedimos los valores
    printf ("Introduzca el primer numero: ");
    scanf ("%d", &num1);
    printf ("Introduzca el segundo numero: ");
    scanf ("%d", &num2);
   
    //Realizamos la suma y verificamos si es par o impar
    result = num1 + num2;
    modulo = result % 2;
   
    //Usamos while para mostrar todos los valores correspondientes
    if (modulo == 0)
    {
    while (cont < result)
          {
                cont = cont + 2;
                printf ("%d ", cont);
          }
    }
    if (modulo == 1)
    {
         cont = -1;
        while (cont < result)
        {
              cont = cont + 2;
              printf ("%d ", cont);
        }
    }
       
  return 0;
}


ejercicio 4:
Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    int num, pro1, pro2, modulo;
   
    printf ("Introduzca un numero: ");
    scanf ("%d", &num);
    printf ("El numero %d ", num);
   
    modulo = num % 2;
   
    if (modulo |= 0 || num == 2)
    {
               printf ("es ");
    }
    else
    {
        printf ("no es ");
    }
    printf ("primo\n");
   
  return 0;
}


ejercicio 5:
Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    int num1, num2, cont=5;
   
    printf ("Jugador 1, introduzca el numero secreto, un numero que sea entre 0 y 10: ");
    scanf ("%d", &num1);
    while (num1 > 10 || num1 < 0)
    {
          printf ("Tiene que ser entre 0 y 10: ");
          scanf ("%d", &num1);
    }
    printf ("Jugador 2, intente adivinar el numero secreto: ");
    scanf ("%d", &num2);
    while (num2 > 10 || num2 < 0)
    {
          printf ("Tiene que ser entre 0 y 10: ");
          scanf ("%d", &num2);
    }
   
    while (cont != 1 && num1 != num2)
    {
          cont--;
          printf ("Ese no es el numero correcto, te quedan %d intentos: ", cont);
          scanf ("%d", &num2);
    }
   
    if (cont == 1)
    {
             printf ("Lo siento, has perdido, el numero secreto era %d\n", num1);
    }
    if (num1 == num2)
    {
             printf ("Has adivinado el numero secreto, felicitaciones\n");
    }

  return 0;
}

Sigo sin saber como ocultar el numero secreto cuando es introducido por el primer usuario...
Última edición por cripii5 el 23 May 2011, 15:12, editado 5 veces en total.
Yo

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (VIII)

Mensaje por m0skit0 »

El primero no necesita while. Pero otra vez vuelves a engordar el código con cosas que no se te han pedido ;)

En el segundo, no veo a qué viene

Código: Seleccionar todo

if (suma > 20)
{
         printf ("");
}

Para no imprimir nada, pues no llames a printf :lol:
Imagen

Avatar de Usuario
cripii5
Experto
Experto
Mensajes: 1948
Registrado: 14 Dic 2010, 03:15
Gamertag Xbox Live: cripii5
Steam ID: cripii5
Twitter: cripii5
Ubicación: Uruguay

Re: [Curso] Introducción a la programación en C (VIII)

Mensaje por cripii5 »

Ando pasado de mongo... recien ahora me doy cuenta lo que quizo decir el "(Debe cumplir ambas condiciones)"

En cuanto al segundo.... :lol: lo se, me parecio estupido, pero no sabia como hacer un if que directamente no hiciera nada
Yo

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (VIII)

Mensaje por m0skit0 »

¿Para qué quiero poner una condición para no hacer nada? Si un if no hace, pues no se pone :o
Imagen

Responder