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

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

Avatar de Usuario
finfantasy
Habitual
Habitual
Mensajes: 153
Registrado: 15 Oct 2009, 19:00

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

Mensaje por finfantasy »

En el último caso convendría que pusieses else if, y además, la última comprobación es redundante, sabes que si un número no es ni mayor ni menor a otro, es igual xD.

Avatar de Usuario
hiddenotebook
Experto
Experto
Mensajes: 634
Registrado: 28 Dic 2009, 14:56
Ubicación: En un lugar de la mancha...

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

Mensaje por hiddenotebook »

gracias amigo pero me di cuenta que no es lo único que tengo mal si te das cuenta:
Spoiler:

Código: Seleccionar todo

 int numero_secreto;

   printf("Introduce un número a adivinar entre 0 y 9: ");
   scanf("%d", &numero_secreto);

   int numero_introducido;
   
   printf("Adivina el número secreto: ");
   scanf("%d", &numero_introducido);

   // Si es mayor...
   if (numero_secreto < numero_introducido)

Spoiler:

Código: Seleccionar todo

// Si es mayor...
 if (numero_secreto < numero_introducido)

Lo tengo del revés :oops: lo he corregido y queda así:
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

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

   int numero_secreto;

   printf("\nIntroduce un número a adivinar entre 0 y 9: ");
   scanf("%d", &numero_secreto);

   int numero_introducido;
   
   printf("\nAdivina el número secreto: ");
   scanf("%d", &numero_introducido);

   // Si es mayor...
   if (numero_introducido > numero_secreto)
{
   printf("\nTe has pasado...\n");
}
   // Si es menor...
   else if (numero_introducido < numero_secreto)

   printf("\nTe quedaste corto...\n");

   // Si es igual...
   else if (numero_introducido == numero_secreto)

   printf("\nSi señor eres un genio, lo adivinaste!!!\n");

   return 0;
}


Ahora lo que no entiendo es porque es redundante, la palabra la entiendo perfectamente pero no se porque lo dices.
Última edición por hiddenotebook el 14 Feb 2010, 18:29, editado 1 vez en total.

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 (VI)

Mensaje por m0skit0 »

Formateo del código:

Código: Seleccionar todo

#include <stdio.h>

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

   int numero_secreto;

   printf("\nIntroduce un número a adivinar entre 0 y 9: ");
   scanf("%d", &numero_secreto);

   int numero_introducido;
   
   printf("\nAdivina el número secreto: ");
   scanf("%d", &numero_introducido);

   // Si es mayor...
   if (numero_introducido > numero_secreto)
       printf("\nTe has pasado...\n");

   // Si es menor...
   else if (numero_introducido < numero_secreto)
      printf("\nTe quedaste corto...\n");

   // Si es igual...
   else if (numero_introducido == numero_secreto)
      printf("\nSi señor eres un genio, lo adivinaste!!!\n");

   return 0;
}


hiddenotebook escribió:Ahora lo que no entiendo es porque es redundante, la palabra la entiendo perfectamente pero no se porque lo dices.
finfantasy escribió:si un número no es ni mayor ni menor a otro, es igual

Es decir, te sobra comparar numero_introducido == numero_secreto.
Imagen

Avatar de Usuario
finfantasy
Habitual
Habitual
Mensajes: 153
Registrado: 15 Oct 2009, 19:00

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

Mensaje por finfantasy »

En el ejercicio que pusiste primero, ya tenías bien las condiciones, lo que pasa es que ponías los nombres de los números al revés, pero ya estaba bien.

Avatar de Usuario
hiddenotebook
Experto
Experto
Mensajes: 634
Registrado: 28 Dic 2009, 14:56
Ubicación: En un lugar de la mancha...

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

Mensaje por hiddenotebook »

Muchas gracias finfantasy!! pero si te fijas bien el símbolo < esta al revés de lo que debe, en mayor estaba < porque tenia el nombre de los números del revés ¡que lio! jajajaja :oki:

m0skit0 escribió:Formateo del código:

¿Qué quieres decir con formateo profe?

También quiero pedirte perdón MoSkiTo, porque otra vez Esto ya lo explicaste:
Fijaos que de los dos printf del final, sólo se va a imprimir en pantalla uno de los dos. Jamás se imprimirán ambos. Esto es debido a que uno responde a una condición y el otro a la falta de dicha condición. Es como decir "si llueve coge el paraguas, si no, no lo cojas". Jamás se va a cumplir que llueva y no llueva a la vez :lol:


Ejercicio 1 Lección VI terminado:
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

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

   int numero_secreto;

   printf("\nIntroduce un número a adivinar entre 0 y 9: ");
   scanf("%d", &numero_secreto);
   system("clear");// Puse esto para quitar el numero y funciona

   int numero_introducido;
   
   printf("\nAdivina el número secreto: ");
   scanf("%d", &numero_introducido);

   // Si es mayor...
   if (numero_introducido > numero_secreto)

   printf("\nTe has pasado...\n");

   // Si es menor...
   else if (numero_introducido < numero_secreto)

   printf("\nTe quedaste corto...\n");

   // Si es igual...
   else
   printf("\nSi señor eres un genio, lo adivinaste!!!\n");

   return 0;
}


Por otra parte ¿hay alguna forma de ocultar el número a adivinar, despues de intruducirlo?
Spoiler:

Código: Seleccionar todo

alber@alber-laptop:~/C LINUX/19numsecret$ gcc -o 19numsecret numsecret.c
alber@alber-laptop:~/C LINUX/19numsecret$ ./numsecret

Introduce un número a adivinar entre 0 y 9: 3

Adivina el número secreto: 3

Si señor eres un genio, lo adivinaste!!!


Edito: vi en un ejercicio de Mirlo_PJ que uso

Código: Seleccionar todo

System("CLS");
Al usarlo me di cuenta que es para windowseros y probé con

Código: Seleccionar todo

system("clear");
y funciona lo que no se es... ¿si es correcto?

Perdonar por ser tan pregunton pero son mis primeros pasos en este mundo :adora:
Ejercicio 2 Lección VI terminado:
Spoiler:

Código: Seleccionar todo

#include<stdio.h>

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

   printf("\nHola si tú me das 2 números, yo te diré cual es mayor, menor o si son iguales\n");

   printf("\nAhora introduce el primer numero...");
   scanf("%d", &numero1);

   printf("\nIntroduce el segundo número...");
   scanf("%d", &numero2);

   //Si es mayor:
   if (numero1 > numero2)
{
   printf("El primer número es mayor\n");
}
   //Si es menor:
   else if (numero1 < numero2)
   printf("El primer numero es menor\n");

   //Si son iguales:
   else
   printf("Los dos numeros son iguales\n");

   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 (VI)

Mensaje por m0skit0 »

Muy bien los 2 ejercicios, salvo el formateo.

hiddenotebook escribió:¿Qué quieres decir con formateo profe?

El estilo en programación tiene 2 variantes: 1) encontrar el código más rápido y que menos memoria consuma para solucionar el problema, y 2) presentar el código fuente de manera que sea fácil para otros programadores entenderlo. Pues con formato me refiero a que hay unas reglas de presentación del código: http://es.wikipedia.org/wiki/Estilo_de_ ... aci%C3%B3n. Existen varios estilos, cada uno que escoja el que más le guste siempre y cuando esté bien presentado. Los comentarios también tienen un papel muy importante en este segundo punto.

Intenta volver a escribirlo con un buen estilo ;)
Imagen

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

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

Mensaje por arisma »

No es correcto.

Al igual que system("cls") no lo es, tampoco System("clear").

Actualmente, hasta el nivel de curso que llevamos el metodo sería con un bucle de printf("\n");

Un saludo.

Avatar de Usuario
hiddenotebook
Experto
Experto
Mensajes: 634
Registrado: 28 Dic 2009, 14:56
Ubicación: En un lugar de la mancha...

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

Mensaje por hiddenotebook »

Muchas gracias por tu respuesta arisma, me ayudas mucho :oki: :oki:

Senor profe, te posteo mis ejercicios formateados.

Ejercicio 1 Lección VI:
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

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

   int numero_secreto;

      //Introducimos un número secreto...
      printf("\nIntroduce un número a adivinar entre 0 y 9... ");
      scanf("%d", &numero_secreto);
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");
      printf("\n");//Siguiendo el consejo de arisma ¡¡GraciassSSss!!
     
   int numero_introducido;

      //Intentamos adivinar el número secreto
      printf("\nAdivina el número secreto: ");
      scanf("%d", &numero_introducido);

   // Si es mayor...
   if (numero_introducido > numero_secreto)

      printf("\nTe has pasado...\n");


   // Si es menor...
   else if (numero_introducido < numero_secreto)

      printf("\nTe quedaste corto...\n");


   // Si es igual...
   else

      printf("\nSi señor eres un genio, lo adivinaste!!!\n");

   return 0;
}


Ejercicio 2 Lección VI:
Spoiler:

Código: Seleccionar todo

#include<stdio.h>

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

   printf("\nHola si tú me das 2 números, yo te diré cual es mayor, menor o si son iguales\n");

   //Intruducimos el primer número
   printf("\nAhora introduce el primer numero... ");
   scanf("%d", &numero1);

   //Introducimos el segundo número
   printf("\nIntroduce el segundo número... ");
   scanf("%d", &numero2);

   //Si es mayor:
   if (numero1 > numero2)
   
      printf("El primer número es mayor\n");
   

   //Si es menor:
   else if (numero1 < numero2)
   
      printf("El primer numero es menor\n");
   

   //Si son iguales:
   else
   
      printf("Los dos numeros son iguales\n");
   
   return 0;
}



Ejercicio 3 Lección VI:
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

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

   //Función principal:
   printf("\nHola, dame un número y te dire si es par o impar... ");
   scanf("%d", &numero_tipo);

   //Definimos el par:
   if(numero_tipo % 2 == 0)

      printf("El número introducido es par.\n");

   //Si no es par...
   else

      printf("\nEl número introducido es impar.\n");

   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 (VI)

Mensaje por m0skit0 »

arisma escribió:Actualmente, hasta el nivel de curso que llevamos el metodo sería con un bucle de printf("\n");

A estas alturas aún no han visto bucles, arisma.

@hiddenotebook: tu formateo no está mal, pero puede estar mejor.

hiddenotebook escribió:Ejercicio 1 Lección VI:

Las declaraciones de variables todas juntas, no desperdigadas por el código

Ejercicio 3 Lección VI:


Código: Seleccionar todo

//Definimos el par:

Fíjate que en ambos casos (par/impar) el texto es muy parecido y sólo cambia una palabra. Intenta modificarlo para que no tengas que escribir toda la frase 2 veces prácticamente igual ;)

Aparte de estos pequeños apuntes, soberbio.
Imagen

Avatar de Usuario
hiddenotebook
Experto
Experto
Mensajes: 634
Registrado: 28 Dic 2009, 14:56
Ubicación: En un lugar de la mancha...

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

Mensaje por hiddenotebook »

Corregido, y de paso te agradezco que te preocupes de que no solo lo haga, si no que lo haga correctamente eres muy grande!!! Si algún día pasas por Azuqueca (Guadalajara) y necesitas algo dímelo.

Ejercicio 1 Lección VI:
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

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

   int numero_secreto;
   int numero_introducido;

      //Introducimos un número secreto...
      printf("\nIntroduce un número a adivinar entre 0 y 9... ");
      scanf("%d", &numero_secreto);
      printf("\n");
   
      //Intentamos adivinar el número secreto
      printf("\nAdivina el número secreto: ");
      scanf("%d", &numero_introducido);

   // Si es mayor...
   if (numero_introducido > numero_secreto)

      printf("\nTe has pasado...\n");


   // Si es menor...
   else if (numero_introducido < numero_secreto)

      printf("\nTe quedaste corto...\n");


   // Si es igual...
   else

      printf("\nSi señor eres un genio, lo adivinaste!!!\n");

   return 0;
}



Ejercicio 3 Lección VI:
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

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

   //Función principal:
   printf("\nHola, dame un número y te dire si es par o impar... ");
   scanf("%d", &numero_tipo);

   //Definimos el par:
   if(numero_tipo % 2 == 0)

      printf("El número introducido es par.\n");
   //Si no es par, Tiene que ser impar...
   else

      printf("\nEl número introducido es impar.\n");

   return 0;
}


Y me voy a la camita que mañana a las 5 en pie!! :(

Responder