Sei sulla pagina 1di 16

Taller Algoritmos I Variables JAVA

CARLOS ALBERTO GUTIERREZ RODAS


#

OPERACION

1
2
3
4
5
6
7
8
9
10
11

X=100;Y=200;Z=300;
X=100;Y=2*X
W=100;X=200;Z=W+X
X=150;Y=2*X;Z=X+Y;
X=Y;Y=200;Z=5*X;W=100-Y;
X=400;W=X+500;Y=3*W;
X=100;Y=X+Z;Z=3*X;W=3*Y
W=140;X=3*W;Y=W*1000;Z=X+Y;
X=100;W=X+100;X=W+100;W=X+100;
W=100;X=W+150;Y=2*W;W=W+Y;Z=W+Y;
W=10;X=2*W;Y=2*X;
W=W+X+Y;X=W+X+Y;Y=W+X+Y;Z=W+X+Y
W=10;X=2*W;Y=2*X;
Z=W+X+Y;Y=W+X+Y;X=W+X+Y;W=W+X+Y;
W=10;Y=2*X; X=2*W
Z=W+X+Y;Y=W+X+Y;X=W+X+Y;W=W+X+Y;
W=10;X=2*W;Y=2*X;
Z=W+X+Y; W=W+X+Y;Y=W+X+Y;X=W+X+Y;
W=10;X=2*W;Y=2*X;
Y=W+X+Y; W=W+X+Y;Z=W+X+Y;X=W+X+Y;
X=100;X=X+100;X=X-100;2*X-100;
W=10;X=2*W;Y=2*X;W=W+X;X=W+X;Y=W+X;
W=10;X=2*W;Y=2*X;W=W+X; Y=W+X;X=W+X;
W=10;X=2*W;Y=2*X; Y=W+X;W=W+X;X=W+X;
W=10;X=2*W; Y=W+X;Y=2*X;W=W+X;X=W+X;
W=10;A=false;B=true;
W=10;X=50; W=X; X=W; A=(X==W);
W=10;X=50; W=X; X=W; A=(X!=W);B=(W>10)
X=10;Y=20;A=(X==Y) || (X*2>20)
X=10;Y=20;A=(X==Y) && (X*2>20);
X=10;Y=20;A=(X<=(y-9)) && (X*2 > 20);
X=10;Y=20;A=(X<=(y-9)) && (X*2 >= 20);B=(A || !A)
X=10;Y=20;X=X+Y;Y=Y+X;A=(X==Y);B=(A && (X<=Y))
W=10;X=50;A=false;B=true;A=A && (X==W);B=B && A;
A=false;B=true;A=A && B;B=B && A;
A=false;B=true;A=A && B;B=B && A;A=A || B;B=A || B
Intercambiar el valor de dos variables X,Y y puede usar
una tercera variable
Intercambiar dos variables sin usar una tercera variable
Escribir los resultados en java.
Leer los valores de las variables por teclado

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

Bool

Bool

byte

int

int

int

Hola Mundo
Hola Mundo Java con NetBeans
El IDE NetBeans es un entorno de desarrollo Open Source escrito en Java. Como este ser el entorno de desarrollo
utilizado durante el curso, es conveniente realizar el ya clebre programa Hola Mundo para saber como

crear un nuevo proyecto


crear un nuevo paquete
crear una nueva Clase
compilar una Clase
ejecutar una Clase

Crear un nuevo proyecto


NetBeans al igual que la mayora de los entornos de desarrollo, aloja sus aplicaciones en proyectos

estos proyectos slo tienen sentido cuando estamos desarrollando


o cuando una aplicacin pasa a produccin, el concepto de proyecto del entorno de desarrollo se
pierde

En nuestro caso, crearemos un proyecto llamado proholamundo siguiendo los siguientes pasos
elegimos File | New Project...

en el cuadro de dialogo New Project elegimos Java y Java Application y seguidamente hacemos clic sobre el botn

en el cuadro de dilogo New Java Application tenemos que rellenar los siguientes campos

Project Name: proholamundo


o durante el curso seguiremos una convencin a nivel didctico que va a consistir en poner el prefijo
pro a todos los nombres de los proyectos que crearemos
Project Location: C:\isg\j2se\prosjava

o
o

vamos a hacer clic sobre el botn


para indicar que queremos que nuestro proyecto se
aloje por debajo de los directorios C:\isg\j2se\prosjava
durante el curso iremos aadiendo todos los diferentes proyectos debajo de esta jerarqua de
directorios

Set as main project:


o lo dejamos marcado

Create Main Class:


o lo desmarcamos

seguidamente hacemos clic sobre el botn

Crear un nuevo paquete


Cuando estamos realizando aplicaciones de cierta envergadura, tenemos que incluir las Clases de nuestra aplicacin
en paquetes (packages) para poder obtener una serie de ventajas que ya veremos ms adelante

estos paquetes tienen sentido tanto en el proceso de desarrollo como en el de produccin


los paquetes no estn ligados a un entrono de desarrollo, sino que es una parte integral y esencial del
lenguaje Java

En nuestro caso, crearemos un paquete llamado paqholamundo siguiendo los siguientes pasos
nos situamos en la ventana Projects y con el botn derecho del ratn seleccionamos la carpeta Source Packages
correspondiente al proyecto proholamundo que acabamos de crear.
elegimos new | Java Package...

y en el cuadro de dilogo New Java Package introducimos el nombre del paquete paqholamundo y hacemos clic
sobre el botn

Crear una nueva Clase


En Java los programas o aplicaciones se escriben en ficheros que tienen la extensin .java

una aplicacin puede tener uno o ms ficheros con extensin .java


cada uno de estos ficheros .java contiene una Clase
o cada vez que se crea una nueva Clase, se crea su correspondiente fichero con el nombre de la
Clase y con extensin .java

En nuestro caso, vamos a crear una Clase que la vamos a llamar HolaMundo siguiendo los siguientes pasos
nos situamos en la ventana Projects y con el botn derecho del ratn seleccionamos el paquete paqholamundo
elegimos new | Other...

en el cuadro de dilogo New File elegimos la categoria Java y el tipo de fichero Java Main Class y hacemos clic sobre
el botn

en el campo de Texto Class Name indicamos que la Clase se va a llamar HolaMundo y hacemos clic sobre el botn

Este es el cdigo generado por el Asistente de NetBeans

package paqholamundo;
public class HolaMundo {
public static void main(String[] args) {
// TODO code application logic here
}

package paqholamundo;
o en esta primera lnea de cdigo, estamos indicando que la clase HolaMundo pertenece al paquete
paqholamundo

public class HolaMundo { }


o aqu estamos declarando el nombre de la Clase
o es muy importante mencionar que todo cdigo Java que se escriba tiene que estar obligatoriamente
incluido dentro de una Clase
es decir el cdigo java siempre estar dentro del bloque (indicado entre llaves {}) de esa
Clase
public static void main(String[] args) { }
o aqu estamos declarando el mtodo main(...)
o de momento saber que la MVJ (Mquina virtual Java) cuando tiene que ejecutar la aplicacin
HolaMundo, lo primero que hace es buscar este mtodo como punto de entrada a la aplicacin

Y para que nos muestre el mensaje Hola Mundo..., tenemos que aadir el siguiente cdigo al mtodo main(...)
Nota: Podemos ahorrarnos toda la escritura de la lnea System.out.println(""); escribiendo sout y
seguidamente presionando la tecla tabulador
public static void main(String[] args) {
System.out.println("Hola Mundo...");
}

System.out.prinln("Hola Mundo...");
o de momento slo saber que "Hola Mundo.." es un String que se muestra como mensaje de salida

Compilar una Clase


En Java, las Clases compiladas se encuentran en ficheros que tienen la extensin .class

al contenido de estas clases se le denomina cdigo byte


si no tuviramos un IDE como NetBeans tendramos que ejecutar el comando javac

En nuestro caso, compilaremos la Clase HolaMundo situndonos en la ventana Projects. Seguidamente


seleccionamos con el botn derecho del ratn la Clase HolaMundo.java y elegimos Compile File F9. Esta accin
hace que Netbeans ejecute de forma transparente para nosotros el comando javac

Ejecutar una Clase


A diferencia de los lenguajes compilados que ejecutamos ficheros con la extensin .exe, en java se ejecutan los
ficheros con extensin .class

si no tuviramos un IDE como NetBeans tendramos que ejecutar el comando java, cuya utilizacin ya
veremos ms adelante

Para ejecutar la Clase HolaMundo nos vamos a situar en la ventana Projects. Seguidamente seleccionamos con el
botn derecho del ratn la Clase HolaMundo.java y elegimos Run File Maysculas+F6

y finalmente ya vemos el mensaje "Hola Mundo..." en la ventana Output

Variables y Tipos
Una variable en Java es un identificador que representa una palabra de memoria que contiene
informacin. El tipo de informacin almacenado en una variable slo puede ser del tipo con que se
declar esa variable.
Una variable se declara usando la misma sintaxis de C. Por ejemplo la siguiente tabla indica una
declaracin, el nombre de la variable introducida y el tipo de informacin que almacena la
variable:
Declaracin identificador

tipo

int i;

entero

String s;

referencia a string

int a[];

referencia a arreglo de enteros

int[] b;

referencia a arreglo de enteros

Java posee dos grandes categoras de tipos para las variables:


Tipos Primitivos

referencias a Objetos

int, short, byte, long Strings


char, boolean

Arreglos

float, double

otros objetos

Las variables de tipos primitivos almacenan directamente un valor que siempre pertenece al rango
de ese tipo. Por ejemplo una variable int almacena un valor entero como 1, 2, 0, -1, etc.
Esto significa que al asignar una variable entera a otra variable entera, se copia el valor de la
primera en el espacio que ocupa la segunda variable.
Las variables de tipo referencia a objetos en cambio almacenan direcciones y no valores
directamente. Una referencia a un objeto es la direccin de un rea en memoria destinada a
representar ese objeto. El rea de memoria se solicita con el operador new.
Al asignar una variable de tipo referencia a objeto a otra variable se asigna la direccin y no el
objeto referenciado por esa direccin. Esto significa que ambas variables quedan refenciando el
mismo objeto.
La diferencia entre ambas asignaciones se observa en la siguiente figura:

Esto tiene implicancias mayores ya que si se modifica el objeto referenciado por r, entonces
tambin se modifica el objeto referenciado por s, puesto que son el mismo objeto.
En Java una variable no puede almacenar directamente un objeto, como ocurre en C y C++.
Por lo tanto cuando se dice en Java que una variable es un string, lo que se quiere decir en realidad
es que la variable es una referencia a un string.

Tipos primitivos
En la siguiente tabla se indica para cada tipo primitivo el nmero de bits que se emplea en su
representacin y el rango de valores que se puede almacenar en las variables de estos tipos.
Tipo

Bits

Rango

Ejemplos

int

32

-2**31 .. 2**31-1 0, 1, 5, -120, ...

short

16

-2**15 .. 2**15-1 0, 1, 5, -120, ...

byte

-2**7 .. 2**7-1

long

64

-2**63 .. 2**63-1 0, 1, 5, -120, ...

0, 1, 5, -120, ...

boolean 1

n/a

false, true

char

16

n/a

'a', 'A', '0', '*', ...

float

32

IEEE

1.2

double

64

IEEE

1.2

Se dice que un tipo A es de mayor rango que un tipo B si A es un superconjunto de B. Esto quiere
decir que las variales de tipo B siempre se pueden asignar a variables de tipo A (eventualmente con
prdida de significancia).
Por ejemplo int es de mayor rango que short, que a su vez es de mayor rango que byte. Float y
double son de mayor rango que int. Double es de mayor rango que float.
Esto se puede resumir en:
double > float > long > int > short > byte

Expresiones
En Java cada expresin tiene un tipo que se determina durante la compilacin, es decir es
independiente del valor durante la ejecucin. Una expresin puede ser:

Una constante: 1, 1.0, true, etc.


El tipo de esta expresin es el tipo de la constante. En el ejemplo los tipos son int, double y
boolean respectivamente.

Una variable: i, s, a
El tipo de esta expresin es el tipo con que se declar aquella variable. En el ejemplo los
tipos son entero, referencia a string y referencia a arreglo.

El resultado de una operacin: i+1, a[1], etc.


El tipo se determina en funcin de los tipos de las expresiones que se indican como
argumentos de la operacin.

Java tiene prcticamente los mismos operadores de C y C++. Cada operador acepta una, dos o tres
expresiones de diversos tipos. A veces un operador no est definido para argumentos de ciertos
tipos. Por ejemplo la resta entre strings no esta definida. Pero la suma de strings esta definida como
la concatenacin. A continuacin veremos los operadores ms frecuentes en Java.
Operadores binarios entre expresiones numricas
Smbolo

Operacin

Suma

Resta

Multiplicacin

Divisin

Resto

Los operandos y el resultado de estos operadores pueden ser:


Dominio

Rango

int*int

int

long*long

long

float*float

float

double*double double

Al operar con byte y short, estos se convierten implcitamente a int.


Cuando los tipos de los operandos no coinciden, el operando de menor rango se convierte
implcitamente al tipo de mayor rango. El resultado de la operacin es del tipo de mayor
rango.

Ejemplos:
int a=1, b=2;
int c= a + b;
short s= 1;
int d= s + c; // s se convierte a int
float f= 1.0 + a; // a se convierte a float

Operadores unarios sobre expresiones numricas


Smbolo

Operacin

Argumento

+ exp

nada

int | long | float | double

- exp

cambio de signo int | long | float | double

El resultado de estas operaciones es siempre del mismo tipo del operando.


Si el operando es byte o short entonces se convierte a int, se realiza la operacin y el resultado es
un int.
Operadores sobre variables enteras
Smbolo

Operacin

Argumento

++ var

preincremento

int | short | byte | long

-- var

predecremento

int | short | byte | long

var ++

postincremento

int | short | byte | long

var --

postdecremento int | short | byte | long

El resultado de estas operaciones es siempre del mismo tipo del operando.


Ejemplos:
int a=1, b=2;
int c= +a;
int d= -(c+1);
b= a++; // b= 1, a=2
a= --b; // a=b= 0
(a+1)++; // error a+1 no es una variable
float f= a;
f++;
// error f no es entero

Operadores binarios relacionales


Smbolo

Operacin

>

mayor

<

menor

>=

mayor igual

<=

menor igual

==

igual

!=

distinto

Los operandos y el resultado de estos operadores pueden ser:


Dominio

Rango

int*int

boolean

long*long

boolean

float*float

boolean

double*double boolean

Operadores entre valores booleanos


Operacin

Significado

exp && exp y-lgico


exp || exp

o-lgico

! exp

negacin

Los operandos y el resultado de estos operadores son siempre booleanos.


Los operadores && y || evalan la expresin del lado derecho slo si es necesario.
Ejemplos:
int a=1, b=2;
boolean v= ! a<=b && a==5 || b!=4;
boolean w= ((! a<=b) && a==5) || b!=4;
boolean w2= a<=b && a; // error a no es boolean

Conversiones: cast

Java realiza conversiones implcitas de menor a mayor rango.


Eventualmente hay prdida de significacia al convertir enteros a punto flotante.
Todas las conversiones de mayor a menor rango deben ser explcitas por medio del
operador de cast:
(tipo)expresin

Ejemplos:
int i= 1;
short s= 2;
int j= i+s;
s= a; // error short < int
s= (short)a; // Ok
i= 1.0; // error int < double
i= (int)1.0; // Ok
f= 1.0; // error float < double
f= (float)1.0; // Ok
f= 1.0f; // Ok
boolean v=(boolean)a; // error no existe conversin

Scanner class
Hola, talvez algunos estan buscando informacin de como introducir datos para un programa en
Java. Pues para los que an no lo saben, hay muchas formas de hacerlo, pero una de las ms
simples es utilizando las propiedades de la clase Scanner.
Scanner es una clase que hereda de la clase Object e implementa la interfase Iterator, que nos
permite la lectura de datos desde distintas fuentes como la entrada estndar de datos, o desde
ficheros.
Nota: La clase Scanner esta solamente disponible desde el JDK1.5 o superior.
Lo primero que debes hacer para utilizar Scanner, es importarla desde la cabecera de la clase que
va ha utilizar un objeto Scanner, y la sintaxis sera as:
import java.util.Scanner;
class Miprograma{
//aqui van tus instrucciones
}

Ahora, dentro de la clase MiPrograma, debes crear un objeto del tipo Scanner, por ejemplo:
?

import java.util.Scanner;
class Miprograma{
Scanner lector = new Scanner(System.in);
}

La instruccin Scanner lector = new Scanner(System.in);, crea un objeto de tipo Scanner, y el


parametro System.in que se le pasa a el contructor de la clase Scanner, hace referencia a la entrada
estndar (en este caso, la consola), desde donde tu vas ha introducir datos.
Listo, ya puedes hacer la lectura de datos !
A continuacin, los siguientes mtodos pueden ser tiles para la lectura de datos simples:
?[Copiar

al portapapeles]Ver cdigo JAVA

int n1 = lector.nextInt(); //lee un numero entero


double n2 = lector.nextDouble();//lee un numero de tipo double
float n3 = lector.nextFloat();//lee un nmero de tipo flotante
String p1 = lector.next();//lee una cadena de texto
String p2 = lector.nextLine();//lee una cadena de texto hasta fin de linea

Potrebbero piacerti anche