[C con Clase] Formato de fecha y simbolo !

Antonio Cascales antonio.cascales en gmail.com
Jue Jul 7 14:50:48 CEST 2011


Hola:

  Uff, jejeje, la verdad esque este operador es más complicado de lo que 
pensaba. Me está costando mucho entender su funcionamiento. Eso no quiere 
decir que no entienda nada, pero creo que no consigo hacerme a la idea de a 
que casos se puede asociar. En fín, no pasa nada, supongo que leyendo, 
releyendo, y a base de practicar, lograré comprenderlo en su totalidad.

   Imagino que el ejemplo que puse estaría mal, de hecho, lo raro es que lo 
hubiese estado.

   Muchas gracias por las aclaraciones, a todos. Seguiré repasando todos los 
conceptos, antes de meterme a hacer ningún ejemplo más. :)

   Un saludo,

          Antonio

----- Original Message ----- 
From: "Gastón Borysiuk" <gaston.borysiuk en gmail.com>
To: "Lista de correo sobre C y C++" <cconclase en listas.conclase.net>
Sent: Thursday, July 07, 2011 12:44 AM
Subject: Re: [C con Clase] Formato de fecha y simbolo !





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



_______________________________________________
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