[C con Clase] Formato de fecha y simbolo !
Gastón Borysiuk
gaston.borysiuk en gmail.com
Jue Jul 7 00:44:32 CEST 2011
No esta bien escrito el ejemplo pero en caso de que la contraseña sea
igual te va a decir que es incorrecta. Solo para que entiendas el
concepto.
No podes asignar un valor de cadena a un char a no ser que lo declares
como array ej char contrasena[] = "1234"
Luego no podes comparar así el char contra una cadena.
Por otro lado en caso de que la condición fuera if (!contraseña ==
"1234") /* aclaro lo del doble igual, no te olvides que sino harías algo
así como asignar un valor 1234 que seguido de eso le asigna un false a
un char jeje obvio no te dejaría compilarlo por que esta mal escrito */
Pero volviendo al tema del !
es invertir lo que hace la condición
if (!pepe)
{
se ejecuta en caso de que pepe sea falso
}
else
{
se ejecuta en caso de que pepe sea verdadero
}
if (pepe)
{
se ejecuta si pepe es verdadero
}
else
{
se ejecuta si pepe es falso
}
Básicamente para los true y false se aplican bien.
Luego si miras en algún manual de C++ o en la web de la lista mira las
condiciones.
if (condicion)
{
esto se ejecuta si es verdadero
}
else
{
esto se ejecuta si es falso
}
Por ejemplo en el caso de comparar un string
string contrasena = "1234";
if (contrasena == "1234")
{
// verdadero
cout << "La contraseña es correcta" << endl;
}
else
{
//falso
cout << "La contraseña es inválida" << endl;
}
En cambio con el operador
string contrasena = "1234";
if (!(contrasena == "1234"))
{
cout << "La contraseña es inválida" << endl;
}
else
{
cout << "La contraseña es válida" << endl;
}
Ok por partes, vos decis contrasena es igual a 1234 y la estas
comparando con 1234, entonces la condición de la comparación entre
contrasena y 1234 es verdadera PERO al poner el ! negas o invertis la
condición. sería algo así para que veas como se interpretaría con el !
delante.
Sería lo mismo que hacer algo así:
if (contrasena != "1234")
{
cout << "La contraseña no es válida" << endl;
}
else
{
cout << "la contraseña es inválida << endl;
}
No hace esto obviamente pero sería la explicación mas sencilla para el
caso.
Espero que te haya ayudado un poco jeje.
El mié, 06-07-2011 a las 21:14 +0200, Antonio Cascales escribió:
> Hola:
>
> me parece que ya entiendo el concepto, asociandolo a la
> expresión... "si * no..." Por ejemplo:
>
> char contraseña = "1234";
>
> if (!contraseña = "1234")
> {
> printf("La contraseña es incorrecta.\n");
> else
> printf("¡Contraseña correcta! Accediendo al programa...\n");
> }
>
> Lo que querría decir... Si la contraseña no es 1234, te doy el
> mensaje que la contraseña es incorrecta, si lo es, te dejo accceder al
> programa. ¿no?
>
> Espero haberlo entendido. Muchas gracias por la ayuda. Un saludo,
>
> Antonio
>
> ----- Original Message -----
> From: carlos loureda parrado
> To: Lista de correo sobre C y C++
> Sent: Wednesday, July 06, 2011 6:27 PM
> Subject: Re: [C con Clase] Formato de fecha y simbolo !
>
>
> Se me fue la olla en la ultima linea: " ... numeros menores de
> 1 o mayores de 9".
> Perdón
>
> El 6 de julio de 2011 18:24, carlos loureda parrado
> <balanzeneto en gmail.com> escribió:
> Buenas con lo de la fecha no te puedo ayudar porque ni
> me suena esa función, soy novatillo sorry. con
> respecto al ! que ya te respondia josep te pongo algún
> ejemplo por si no lo acabas de entender.
>
> -> Primero en C/C++ se considera por convenio que un
> valor es CIERTO si es != 0 y FALSO si su valor es =
> 0.
> Supongo que tu los ifs los haces de la siguiente
> manera:
>
> int x = 2;
>
> if( 0 == x) cout<<"x vale 0";
> else cout<<"valor de x: "<<x;
>
> ---> Pero si usas solo if( x ) o if ( ! x) estas
> expresiones tambien son válidas:
>
> if( x ) se cumplirá siempre que X sea CIERTO, y como
> hemos dicho esto por norma es cuando su valor sea !=
> 0.
> if ( ! x) se cumplirá siempre que X sea falso, es
> decir cuando X valga 0. Así el ejemplo anterior lo
> podrías poner así:
>
> int x = 2;
>
> if( !x) cout<<"x vale 0";
> else cout<<"valor de x: "<<x;
>
> -> Una vez que entiendas esto te veras negando
> expresiones complejas sin darte cuenta: Ejemplo:
>
> !(x > 0 && x < 10) es equivalente a (x <= 0 || x >=
> 10). Porque lo que queremos son numeros que NO estén
> entre 1 y 9, o lo que es lo mismo numeros menores de 1
> o mayores de 10.
>
> Un saludo!
>
> El 6 de julio de 2011 01:17, Antonio Cascales
> <antonio.cascales en gmail.com> escribió:
>
> Hola a todos:
>
> Muchas gracias por los diferentes mensajes
> con las respuestas, ya parece que empiezo a
> entender los conceptos de arrays y punteros,
> aunque hasta que no haga algunos ejemplos,
> practique un poco, y vea que me salen bien, no
> podré decir que lo tengo dominado.
>
> ahora me gustaría haceros una preguntita no
> muy complicada. He visto un ejemplo,
> relativamente sencillo para mostrar la fecha
> actual, pero me surge un inconveniente, y es
> que cuando voy a mostrarla con asctime(fecha),
> me la muestra con el formato inglés, y yo
> quiero modificar el formato, para que me diga
> por ejemplo, Miércoles 6 de Junio de 2011.
> ¿podéis indicarme de que manera podría
> hacerlo?
>
> Y otra consultita, bastante sencilla pero
> que no termino de entender, es el símbolo '!'
> cuando se utiliza en if, do-while, while, etc.
>
> Muchas gracias a quien responda. Un saludo,
>
> Antonio
>
>
>
> _______________________________________________
> Lista de correo Cconclase
> Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas:
> http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>
>
>
>
>
> ______________________________________________________________
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Más información sobre la lista de distribución Cconclase