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

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

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

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

Mensaje por flood »

Una recomendación JeF-G,
JeF-G escribió: if (numIntroducido > numSecreto)
printf ("Te has pasado...\n");

if (numIntroducido == numSecreto)
printf ("Haz dado en el clavo! !Adivinaste el numero!\n");

if (numIntroducido < numSecreto)
printf ("Te haz quedado corto\n");


En estas ocasiones no es necesario usar if en todas las condiciones, al usar else ahorras comprobaciones.

Debería quedar algo como esto:
Spoiler:

Código: Seleccionar todo

if (numIntroducido > numSecreto)
      printf ("Te has pasado...\n");

   else if (numIntroducido == numSecreto)
      printf ("Haz dado en el clavo! !Adivinaste el numero!\n");

   else
      printf ("Te haz quedado corto\n");

Así en todos lo ejercicios, de este modo el código es mas rápido. También deberías tratar de usar variable con un nombre poco mas corto, ahora como el código es muy pequeño no hay problema, pero cuando sea mas largo vas a ver lo que te ahorras, pero eso ya es a tu gusto :D .

Supongo que cuando el profe se pase te dirá algo parecido.

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 »

Buena recomendación flood, pero el if (y todo) siempre con llaves:

Código: Seleccionar todo

if (numIntroducido > numSecreto)
{
    printf ("Te has pasado...\n");
}
else if (numIntroducido == numSecreto)
{
    printf ("Haz dado en el clavo! !Adivinaste el numero!\n");
}
else
{
    printf ("Te haz quedado corto\n");
}


flood escribió:También deberías tratar de usar variable con un nombre poco mas corto, ahora como el código es muy pequeño no hay problema, pero cuando sea mas largo vas a ver lo que te ahorras

Aquí sí que estoy totalmente en desacuerdo. La claridad prima sobre la longitud. De todas formas, los entornos de desarrollo hoy en día tienen autocompletar (Ctrl+Espacio en Eclipse por ejemplo), que te terminan de escribir la variable/función/loquesea o te muestran las posibilidades que hay de autocompletado.
Imagen

JeFNDZ
Habitual
Habitual
Mensajes: 378
Registrado: 11 Sep 2009, 06:44

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

Mensaje por JeFNDZ »

Comenze utilizando llaves pero el compilador <gcc> me daba muchos problemas de compilación... pero aún así tratare de usarlas :oki: .

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 »

Eso es porque las usas mal. No veo por qué te tiene que dar errores GCC al usar llaves. Jamás me ha pasado eso. Si pones qué error te da, te explico por qué es.
Imagen

JeFNDZ
Habitual
Habitual
Mensajes: 378
Registrado: 11 Sep 2009, 06:44

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

Mensaje por JeFNDZ »

Este es el error:
Spoiler:
/home/jef-g/codigos de C/ejercicio1.c: In function ‘main’:
/home/jef-g/codigos de C/ejercicio1.c:8: warning: missing terminating " character
/home/jef-g/codigos de C/ejercicio1.c:8: error: missing terminating " character
/home/jef-g/codigos de C/ejercicio1.c:9: error: expected ‘)’ before ‘;’ token
/home/jef-g/codigos de C/ejercicio1.c:38: warning: passing argument 1 of ‘printf’ makes pointer from integer without a cast
/usr/include/stdio.h:359: note: expected ‘const char * __restrict__’ but argument is of type ‘int’
/home/jef-g/codigos de C/ejercicio1.c:38: warning: format not a string literal and no format arguments
/home/jef-g/codigos de C/ejercicio1.c:38: error: expected ‘;’ before ‘}’ token


¿Alguien me puede decir como insertar tabulación en "gedit"?
Última edición por JeFNDZ el 29 Ene 2011, 04:16, 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 »

¿Y el fuente? :roll: :lol:
Imagen

JeFNDZ
Habitual
Habitual
Mensajes: 378
Registrado: 11 Sep 2009, 06:44

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

Mensaje por JeFNDZ »

m0skit0 escribió:¿Y el fuente? :roll: :lol:

Es que la verdad era close source :laughing: pero lo pensé mejor y ya lo libere :lol: , aquí esta:
Spoiler:
#include "stdio.h"

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

int numSecreto , numIntroducido;

printf ("<Adivina el numero Secreto>\n***********************\n\");
printf ("\n");

//para pedir y almacenar los numeros
printf ("El primer jugador escriba el numero Secreto: <Con rango del 0 al 9> \n");
scanf ("%d", &numSecreto);

printf ("El segundo jugador Trate de adivinar el numero -Escriba cualquier numero de 0 al 9\n");
scanf ("%d", &numIntroducido);


//muestra el resultado

if (numIntroducido > numSecreto)
{
printf ("Te has pasado...\n");
}
else if (numIntroducido == numSecreto)
{
printf ("Haz dado en el clavo! !Adivinaste el numero!\n");
}
else
{
printf ("Te haz quedado corto\n");
}

//Linea en blanco
printf ("\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 »

Te sobra un \ al final de

Código: Seleccionar todo

printf ("<Adivina el numero Secreto>\n***********************\n\");

Si miras el error te darás cuenta que ya te lo dice el compilador:

Código: Seleccionar todo

/home/jef-g/codigos de C/ejercicio1.c:8: warning: missing terminating " character

Línea 8: atención: falta el carácter teminador ". En printf los caracteres precedidos de \ se tratan como caracteres especiales.

Hay que aprender a leer lo que nos dice el compilador...

Y para insertar tabulación, pues pulsas la tecla tabulación :?
Imagen

JeFNDZ
Habitual
Habitual
Mensajes: 378
Registrado: 11 Sep 2009, 06:44

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

Mensaje por JeFNDZ »

Tienes razón ya se pudo compilar el source :o . Disculpa por preguntar de tabulación (habiendo una tecla)...Pero pregunte por que el <Dev c++> la insertaba automaticamente y yo jamas había utilizado tabulación antes.

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 »

Ok np :oki:
Imagen

Responder