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

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

Avatar de Usuario
Bright Julen
Experto
Experto
Mensajes: 843
Registrado: 03 Sep 2009, 11:34
PSN ID: BrightJulen
Contactar:

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

Mensaje por Bright Julen »

Aquí traigo los ejercicios (el cuarto no lo he hecho por que los números primos iban a terminar con mi sesera xD :? ). Creo que estan bien, excepto el último, que tengo un fallo que no consigo solucionar, y los otros tal vez necesite optimizar :)
1º Ejercicio:
Spoiler:

Código: Seleccionar todo

//Ejercicio 1, lección VIII
#include<stdio.h>

int main()
{
    int numero_introducido;
   
    //Introducimos un número entero...
   
    printf("Introduzca un numero entero: ");
    scanf("%d", &numero_introducido);
   
    //Si es menor de 20 y par...
   
    if((numero_introducido<20)&&(numero_introducido%2==0))
    {
    printf("El numero introducido es menor de 20 y par.\n");
    }
    else
    {
    printf("El numero introducido es mayor de 20 o impar (o las dos XD).\n");
    }
       
    getch();
    return 0;
   
}


2º Ejercicio:
Spoiler:
He hecho la primera, y luego la he intentado optimizar:

Código: Seleccionar todo

//Ejercicio 2, lección VIII
#include<stdio.h>

int main()
{
    int numero_introducido1, numero_introducido2, suma, multiplicacion;
    float media;
   
    //Introducimos un número...
   
    printf("Introduzca un numero: ");
    scanf("%d", &numero_introducido1);
   
    //Introducimos otro número...
   
    printf("\nIntroduzca otro numero: ");
    scanf("%d", &numero_introducido2);
   
    suma=numero_introducido1+numero_introducido2;
    multiplicacion=numero_introducido1*numero_introducido2;
    media=(float) (numero_introducido1+numero_introducido2)/2;
   
    if(suma>20) printf("La suma de los dos numeros es mayor que 20.\n");
    else printf("La suma de los dos numeros es menor o igual que 20.\n");
   
    if(multiplicacion>20) printf("La multiplicacion de los dos numeros es mayor que 20.\n");
    else printf("La multiplicacion de los dos numeros es menor o igual que 20.\n");
   
    if(media>20) printf("La media de los dos numeros es mayor que 20.\n");
    else printf("La media de los dos numeros es menor o igual que 20.\n");
   
    getch();
    return 0;
   
}


           

Código: Seleccionar todo

//Ejercicio 2, lección VIII (optimizado)
#include<stdio.h>

int main()
{
    float numero_introducido1, numero_introducido2;
   
    //Introducimos un número...
   
    printf("Introduzca un numero: ");
    scanf("%d", &numero_introducido1);
   
    //Introducimos otro número...
   
    printf("\nIntroduzca otro numero: ");
    scanf("%d", &numero_introducido2);
   
    if(numero_introducido1+numero_introducido2>20) printf("La suma de los dos numeros es mayor que 20.\n");
    else printf("La suma de los dos numeros es menor o igual que 20.\n");
   
    if(numero_introducido1*numero_introducido2>20) printf("La multiplicacion de los dos numeros es mayor que 20.\n");
    else printf("La multiplicacion de los dos numeros es menor o igual que 20.\n");
   
    if((float)(numero_introducido1+numero_introducido2)/2>20) printf("La media de los dos numeros es mayor que 20.\n");
    else printf("La media de los dos numeros es menor o igual que 20.\n");
   
    getch();
    return 0;
   
}


3º Ejercicio:
Spoiler:

Código: Seleccionar todo

//Ejercicio 3, lección VIII
#include<stdio.h>

int main()
{
    int numero_introducido1, numero_introducido2, numero_mayor, contador, suma;
    //Introducimos un número...
    printf("Introduzca un numero: ");
    scanf("%d", &numero_introducido1);
    //Introducimos otro número...
    printf("\nIntroduzca otro numero: ");
    scanf("%d", &numero_introducido2);
   
    if(numero_introducido1<numero_introducido2)
    {
    numero_mayor=numero_introducido2;
    }
    else
    {
    numero_mayor=numero_introducido1;
    }

    //Si la suma de ambos números es par...
    if((numero_introducido1+numero_introducido2)%2==0)
    {
         contador=0;
         while(contador<numero_mayor) printf("\n%d\n", contador+=2);
    }
    //Si la suma de ambos es impar...
    else
    {
         contador=1;
         while(contador<=numero_introducido1+numero_introducido2) printf("%d\n", contador+=2);
    }
   
    getch();
    return 0;
   
}


5º Ejercicio (no logro hacerlo funcionar bien):
Spoiler:

Código: Seleccionar todo

//Ejercicio 5, lección VIII
#include<stdio.h>

int main()
{
    int numero_secreto, intentos, numero_introducido;
    //Introducimos el número secreto...
    printf("Jugador A, introduzca el numero secreto del 0 al 10: ");
    scanf("%d", &numero_secreto);
   
    //El otro jugador intenta adivinarlo...
    printf("\nJugador B, intente adivinar el numero (solo tienes 5 intentos): ");
    scanf("%d", &numero_introducido);
    while(numero_introducido!=numero_secreto)
    {
    intentos=5;                                         
    printf("\nLo siento, vuelve a intentarlo: ", intentos--);
    scanf("%d", &numero_introducido);
    }
    if(intentos==0);
    {
    printf("\nLo siento, se termina el juego.\n");
    }
    if(numero_introducido==numero_secreto);
    {
    printf("\nEnhorabuena, has acertado.\n");
    }   
    getch();
    return 0;
   
}

Imagen

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 »

:oki: Intenta no utilizar getch(). Sobra. Fíjate en mis programas, ninguno lleva nada al final ;)

Bright Julen escribió:1º Ejercicio:
Bright Julen escribió:printf("El numero introducido es mayor de 20 o impar (o las dos XD).\n");

O igual a 20 xD

Bright Julen escribió:2º Ejercicio:
Bright Julen escribió:media=(float) (numero_introducido1+numero_introducido2)/2;

Nop. Nada de casting xD Corrige eso y asigna a las variables el tipo que les corresponda.

Bright Julen escribió:3º Ejercicio:

  • Sólo necesitas averiguar cuál es el mayor si la suma es par, no siempre.
  • El 0 no es un número par.
  • Bright Julen escribió:while(contador<=numero_introducido1+numero_introducido2)

    Calculas la suma por cada vuelta del bucle cuando siempre es la misma.

Bright Julen escribió:5º Ejercicio (no logro hacerlo funcionar bien):

Fíjate que la inicialización del número de intentos lo tienes dentro del bucle, por tanto cada vez que se repite el bucle, el número de intentos vuelve a ser 5... Aparte, ten en cuenta que no se puede cumplir que se adivine el número y se agoten los intentos al mismo tiempo ;)

El de los números primos es bastante fácil (aunque optimizarlo no lo es tanto). Piénsalo un poco con una hoja y un boli :)
Imagen

Avatar de Usuario
Bright Julen
Experto
Experto
Mensajes: 843
Registrado: 03 Sep 2009, 11:34
PSN ID: BrightJulen
Contactar:

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

Mensaje por Bright Julen »

A ver si encuentro algún hueco para seguir con los cursos, por que ahora no tengo mucho tiempo libre.
Saludos :oki:
Imagen

Avatar de Usuario
dark_sasuke
Moderador Global
Moderador Global
Mensajes: 3379
Registrado: 03 Sep 2009, 02:13
Twitter: D4rkyt0

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

Mensaje por dark_sasuke »

cuarto:

Código: Seleccionar todo

#include <stdio.h>

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

{

int variable;
   

   printf("bienvenido a este programa :)\n");
   printf("por favor inserte un numero entero\n");
   scanf("%d", &variable);
   //bienvenida al programa y escaneo del numero

          
   if((variable%2==0)||(variable%3==0))
   printf("tu numero NO es primo");

   else
   printf("\ntu numero es primo");
   //determinando las condiciones

   return 0;
      
}   


puedo que parezca facil, pero para los inexpertos esto es medio enreversado, asi que lo hicimos entre wf19 y yo :D .... el primer team que sale de aqui jejeje
Imagen

Avatar de Usuario
brujitosexy
Experto
Experto
Mensajes: 1097
Registrado: 03 Sep 2009, 19:30

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

Mensaje por brujitosexy »

Joderr, me he descuidado un poquito en estos, hoy en españa, mañana en mi pais como es dias de fiesta me pongo en esto. :oops:
Linus Torvalds:
“El Software es como el sexo; es mejor cuando es gratis…”

Avatar de Usuario
dark_sasuke
Moderador Global
Moderador Global
Mensajes: 3379
Registrado: 03 Sep 2009, 02:13
Twitter: D4rkyt0

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

Mensaje por dark_sasuke »

y el 5:

Código: Seleccionar todo

#include <stdio.h>

int main()


{
   int numero1, numero2, bucle = 0;

   //bienvenida, explicacion y posterior escaneo del numero del jugador A
   printf("bievenido a este juego,");
   printf("explicare el juego a continuacion\n");
   printf("es un juego para dos jugadores, el jugador A inserta un numero\ndespues el jugador B debe adivinarlo\nen maximo 5 intentos");
   printf("\njugador A por favor inserte un numero entero: ");
   scanf("%d",&numero1);
   
   //condiciones, escaneos y bucle
   printf("jugador B intente adivinar el numero del jugador A,\nrecuerde que tiene maximo 5 intentos\ninserte el numero por favor : ");
   scanf("%d",&numero2);
   
   if(numero1==numero2)
   printf("adivinaste eres un crack :), eres el ganador jugador 2!\n");
   
   while((numero1 !=numero2)&&(bucle++ <=3))
   {printf("no adivinaste que mal :(, intentalo de nuevo\ninserta de nuevo e intenta adivinar : ");
   scanf("%d",&numero2);
   printf("eres el ganador jugador 1\n");}
      
   return 0;
}
Imagen

arisma
Habitual
Habitual
Mensajes: 497
Registrado: 18 Sep 2009, 08:41

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

Mensaje por arisma »

dark_sasuke escribió:cuarto:

Spoiler:

Código: Seleccionar todo

#include <stdio.h>

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

{

int variable;
   

   printf("bienvenido a este programa :)\n");
   printf("por favor inserte un numero entero\n");
   scanf("%d", &variable);
   //bienvenida al programa y escaneo del numero

          
   if((variable%2==0)||(variable%3==0))
   printf("tu numero NO es primo");

   else
   printf("\ntu numero es primo");
   //determinando las condiciones

   return 0;
      
}   

puedo que parezca facil, pero para los inexpertos esto es medio enreversado, asi que lo hicimos entre wf19 y yo :D .... el primer team que sale de aqui jejeje


Muy bien, basandose en Eratóstenes para reducir y hacer el codigo más sencillo.

PERO, está mal. Os habeis saltado una cosita. Repasarlo(con un número bajo).

Respecto al quinto. Lo siento, está mal.

Como warning :laughing: , diré que cuando aciertan o no, debería decir A o B y no 1 ó 2, para utilizar la misma forma de nombrar que en la pregunta.

Como error, repasa lo que ocurre cuando aciertan en el quinto intento ;)

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_sasuke escribió:cuarto:

Como dice arisma, está mal. Por ejemplo: 25. Según vuestro código es primo (no es divisible entre 2 ni entre 3), pero en realidad no lo es (es divisible entre 5) ;) Además, los comentarios deben ir antes de los cachos de código, no después. También comentarios del tipo //determinando las condiciones no vienen a cuento. Si es un if, ya sabemos que son condiciones. Hay que detallar más qué pretendes hacer.

dark_sasuke escribió:lo hicimos entre wf19 y yo :D .... el primer team que sale de aqui jejeje

Un futuro GEN :lol: es broma, ánimo con ello :oki:

dark_sasuke escribió:y el 5:

Primero, recuerdo: viewtopic.php?f=45&t=1049&p=21662#p21662 (donde pone bien grande "Para todos")
Aparte, está mal prácticamente todo, y te sobra el if, ya que la condición que compruebas ya la estás comprobando en el while. Piénsatelo con calma ;)
Imagen

Avatar de Usuario
dark_sasuke
Moderador Global
Moderador Global
Mensajes: 3379
Registrado: 03 Sep 2009, 02:13
Twitter: D4rkyt0

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

Mensaje por dark_sasuke »

corrijo el 4:
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

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

{

int variable;
   
   //bienvenida al programa y escaneo del numero
   printf("bienvenido a este programa :)\n");
   printf("por favor inserte un numero entero\n");
   scanf("%d", &variable);


          
   if((variable%2==0)||(variable%3==0)&&(variable%5==1)||(variable%5==0)&&(variable%3==1))
   printf("tu numero NO es primo");

   else
   printf("\ntu numero es primo\n");


   return 0;
      
}   
Imagen

arisma
Habitual
Habitual
Mensajes: 497
Registrado: 18 Sep 2009, 08:41

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

Mensaje por arisma »

dark_sasuke escribió:corrijo el 4:
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

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

{

int variable;
   
   //bienvenida al programa y escaneo del numero
   printf("bienvenido a este programa :)\n");
   printf("por favor inserte un numero entero\n");
   scanf("%d", &variable);


          
   if((variable%2==0)||(variable%3==0)&&(variable%5==1)||(variable%5==0)&&(variable%3==1))
   printf("tu numero NO es primo");

   else
   printf("\ntu numero es primo\n");


   return 0;
      
}   



No sigas por ahí.

Ya que y el 35?, no me añadas a la lista el 7 por favor.
Y el 123?
Y el número que yo decía era el 2, lo marca como no primo.

Responder