15 de febrer de 2013

7 de febrer de 2013

0

Java, Manipulació bàsica de dades

Avui ens endinsarem una mica més en el món de Java. Ens iniciarem amb
la manipulació bàsica de dades, i en aquest cas en les operacions booleanes.

El propòsit de tot programa d'ordinador, és processar dades. Per assolir
 aquesta tasca, l'ordinador ha d'emmagatzemar les dades a la memòria, 
de manera que posteriorment el processador les poguí llegir i transformar
segons els propòsits del programa. Per tant, el conjunt d'ordres en tot
llenguatge de programació és molt important. Un cop ja sabem gestionar
les dades a la memòria podem veure algunes de les transformacions 
bàsiques que permet fer el processador.

  • Una dada, ens indica tota la informació que fa servir l'ordinador en les
    execucions dels programes.
Per tant, una dada individual dins d'un programa pot ser un document de text, 
una imatge, un plànol d'un edifici, una cançó, etc... . 

Les dades es poden classificar en diverses categories o tipus de dades.
  • Tipus de dades: és la definició del conjunt de valors vàlids que poden
    prendre unes dades i el conjunt de transformacions que s'hi pot fer. 
    Les dades de tipus primitius són els que ja estan incorporats directament
    dins d'un llenguatge de programació, i són usats com a peces bàsiques
    per construir-ne de més complexos. Dins d'aquest tenim quatre grups de dades.
  1. Booleà : representa un valor de tipus lògic per tal d'establir la certesa o 
    falsedat d'una afirmació. Per exemple : true (cert) o false (fals).
  2. Enter : representa un valor numèric, positiu o negatiu, sense cap decimal. 
    Per exemple : 3, 0, -345, 138764, etc...
  3. Real : representa un valor numèric, positiu o negatiu, amb decimals. 
    Per exemple : 2.25, 4.0, -9653.333, etc...
  4. Caràcter : representa una unitat fonamental de text usada en qualsevol 
    alfabet, un nombre o un signe de puntuació o exclamació. 
    Per exemple : 'a', 'A', '4', '?', etc...    

Operacions entre booleans

Aquest tipus de dada deu el seu nom a l'àlgebra de boole, que és el conjunt de normes i operacions que regeixen de quina manera es poden combinar els valors true i false.

Les operacions bàsiques que es poden fer són de dos tipus: lògiques i relacionals. Els operadors lògics són : la negació ( ! ), la conjunció ( && ) i la disjunció( || ).
  • La negació dóna com a resultat el valor contrari.
  • La conjunció és certa si tots dos operands són certs.
  • La disjunció és certa si algun dels operands ho és.
Les operacions relacionals, són : igual ( == ) i diferent ( != ).

Exemple d'operacions entre booleans :  ( el resultat en negreta.)

public class OperacionsBoolea{
public static void main (String[]args){
    //Operacions lògiques.
    System.out.println(!true);           //false
    System.out.println(true && true);    //true
    System.out.println(true && false);   //false
    System.out.println(true || false);   //true 
    System.out.println(false || false);  //false
    //Operacions relacionals.
    System.out.println(false == false);  //true
    System.out.println(false != true);   //true
  }
}

Un altre exemple més complex pot ser al següent:

public class OperacionsBoolea{
public static void main (String[]args){   
  System.out.println(((3+4)== 7)&& !(12.3>2.11)||('a'=='b'));
 }
} 

En aquest cas el resultat d'aquesta operació booleana és : false.  Però per tal
d'arribar aquest resultat cal anar desgranant cada una de les operacions.
Esquemàticament seria :

            ( ( ( 3 + 4 ) == 7 ) && !( 12.3 > 2.11 ) || ( 'a' == 'b' ) )
           ( ( (     7    ) == 7 ) && !( 12.3 > 2.11 ) || ( 'a' == 'b' ) )
           ( (            true      ) && !(       true       ) || (     false   ) )
           ( (            true      ) &&          false         || (     false   ) )
          ( (                           false                         || (     false   ) )
 
                                                           false