[C con Clase] Método de la burbuja (era: problemas con la posicion del puntero en un fichero, funciones fread, frwite, fseek etc.)

Albert Montolio albert.montolio en gmail.com
Mie Mar 21 21:06:15 CET 2012


genial! muchas gracias por la teoria!

El 21 de marzo de 2012 20:38, Salvador Pozo <salvador en conclase.net>escribió:

> El pasado 2012-03-21 19:12:37, Albert_Munich escribió:
>
> A> Hola, una pregunta corta, que no he encontrado por internet.
> A> trabajando con booleanas, que diferencia hay entre = y == ?
>
> Hola:
>
> En todos los lenguajes de programación existen diferencias entre
> asignaciones y comparaciones. C y C++ no son una excepción.
>
> En algunos lenguajes, para diferenciar mejor las dos operaciones, se usan
> operadores diferentes. Este es el caso por el que preguntas.
>
> El operador = es el de asignación. Se asigna al operando a la izquierda el
> valor de la expresión a la derecha, por ejemplo:
> a = 10+2;
> Asigna a "a" el resultado de evaluar la expresión 10+2, es decir, 12.
>
> El operador == es el de comparación, el resultado de aplicar este operador
> a las expresiones a la derecha e izquierda de él es un valor booleano: true
> o false. Si las expresiones son equivalentes, el resultado es true, en caso
> contrario, false. Por ejemplo:
> (10+2) == 12
> Da como resultado true.
> 0 == 232
> Da como resultado false.
>
> A> es que dependiendo lo que pongo, mi programa se comporta muy diferente
> A> palabraencontrada = false, o palabraencontrada == false?
>
> Por supuesto que el resultado es diferente.
>
> Si usas la primera expresión dentro de un if pasa lo siguiente:
> 1) Se asigna a palabraencontrada el valor false
> 2) La expresión obtenida se evalúa como un booleano, en este caso ya lo
> es, si no lo fuera se hace un casting (conversión de tipo). En este caso,
> el valor es false, siempre, independientemente del valor previo de
> palabraencontrada.
>
> Si usas la segunda expresión dentro de un if, pasa esto:
> 1) Se compara el valor de palabraencontrada con false. Si son iguales, es
> decir, si palabraencontrada es false, el resultado es true, ya que son
> iguales, y la sentencia if se ejecuta. Si palabraencontrada es true, el
> resultado es false, ya que son distintas.
>
> A> y dentro los while y if, que se ha de poner?
> A> if (palabraencontrada=false) o if(palabraencontrada==false)
> A> dependiendo si pongo 1 o 2 iguales el programa me cambia mucho, y como
> A> tengo muchas booleanas, no puedo encontrar el error. alguien me lo
> podria
> A> aclarar?
>
> Eso es decisión tuya :)
> Seguramente tendrás que usar la segunda.
>
> Algunas notas y "trucos" más sobre este tema:
>
> Cuando hagas comparaciones, si una de las expresiones es constante, es
> mejor ponerla en primer lugar. Por ejemplo:
> a == 10 equivale a 10 == a
> Sin embargo la segunda tiene una ventaja. Si por error ponemos sólo un
> "=", la segunda dará un error al compilar, ya que no es posible asignar
> valores a una constante.
>
> Cuando compares con true o false, puedes ahorrarte la comparación, por
> ejemplo:
>
> (a == true) equivale a usar (a)
> (a == false) equivale a usar (!a)
> (a != true) equivale a (!a)
> (a != false) equivale a (a)
>
> Hasta pronto.
>
> --
> Salvador Pozo (Administrador)
> mailto:salvador en conclase.net
> _______________________________________________
> 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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20120321/1ac9c489/attachment.html>


Más información sobre la lista de distribución Cconclase