Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lecturas Complementarias - Lectura 3 - S1 PDF
Lecturas Complementarias - Lectura 3 - S1 PDF
Elementos
formales
del
lenguaje
Java
(I)
En
este
documento
podrás
encontrar
información
relacionada
con
la
sintaxis
general
necesaria
para
la
construcción
de
programas
en
Java
basados
en
asignaciones.
Notación
En
todos
los
documentos
de
sintaxis
se
usará
una
notación
sencilla
que
usted
debe
conocer
para
entender
rápidamente
la
estructura
de
los
elementos
descritos.
Elementos
obligatorios:
son
elementos
que
deben
ser
especificados
para
construir
una
estructura.
Se
representan
usando
‘<’
y
’>’
Elementos
opcionales:
son
elementos
que
es
posible
definir,
pero
no
son
de
uso
obligatorio.
Se
representan
usando
‘(’
y
’)’
Uso
de
fuentes
de
texto:
al
usar
esta fuente,
nos
referimos
a
que,
para
que
el
proceso
de
compilación
sea
exitoso,
el
texto
se
debe
escribir
exactamente
igual
a
como
se
presenta.
Con
esta fuente
escribiremos
el
código
en
Java.
Aclaración
importante:
Java
es
un
lenguaje
sensible
al
uso
de
mayúsculas
y
minúsculas,
por
lo
tanto
“Float”
es
diferente
a
“float”.
Muchas
veces
como
en
este
ejemplo,
las
dos
palabras
tienen
usos
y
una
connotación
distinta.
Por
eso,
es
importante
usar
cada
elemento
del
lenguaje
tal
y
como
es
definido
en
este
documento.
3.1. Tipos de datos
En
Java
existen
tipos
de
datos
básicos
orientados
a
la
construcción
de
expresiones
que
nos
sirven
para
hallar
el
resultado
de
operaciones.
Estos
tipos
de
datos
se
basan
en
los
tipos
definidos
para
las
expresiones
que
conocemos
(Enteros,
Reales
etc)
y
se
diferencian
de
acuerdo
con
su
uso
y
su
precisión
o
el
rango
de
valores
que
permiten
almacenar.
POLITÉCNICO GRANCOLOMBIANO EN ALIANZA CON WHITNEY INTERNATIONAL UNIVERSITY SYSTEM
Adrian
Nicolás
Malaver
Barrera
1
El
número
más
pequeño
que
se
puede
float representar
es
±1.40129846432481707e‐45.
El
32
bits
más
grande
es
±3.40282346638528860e+38
Real
El
número
más
pequeño
que
se
puede
double representar
es
±4.94065645841246544e‐324.
El
64
bits
más
grande
es
±1.79769313486231570e+308.
De
0
a
65535,
donde
cada
valor
representa
un
Carácter
char carácter
de
texto
de
acuerdo
con
la
codificación
16
bits
usada.
Tabla 1. Tipos de datos básicos en Java
3.2. Definición de variables
De
acuerdo
con
la
necesidad,
es
posible
definir
variables
que
almacenarán
el
resultado
de
operaciones,
parámetros
y
otros
valores
que
se
requieran
para
la
solución
algorítmica
de
problemas.
La
sintaxis
es
la
siguiente:
<Tipo de dato> <Nombre de la variable> (=<Valor inicial>);
Por
ejemplo:
float f;
int i;
int y, z, t, w;
Nombres
de
variables:
los
nombres
son
una
secuencia
de
caracteres
de
texto
que
pueden
comenzar
con
letras,
con
el
signo
‘$’
o
con
el
signo
‘_’.
Hay
palabras
que
no
pueden
usarse
para
definir
nombres
de
variables,
dado
que
son
palabras
que
usa
el
lenguaje
Java
para
Adrian
Nicolás
Malaver
Barrera
2
definir
sus
propias
estructuras.
Estas
palabras
son
llamadas
palabras
reservadas
y
son
las
siguientes:
Valor
inicial:
Al
definir
una
variable
es
posible
asignarle
un
valor
inicial,
de
acuerdo
con
el
tipo
de
dato.
Nota
importante:
Las
variables
definidas
dentro
de
métodos,
en
este
caso,
dentro
del
método
main,
en
el
que
definimos
la
lógica
de
los
programas,
requieren
de
un
valor
inicial,
ya
que
Java
no
les
asigna
uno.
• Datos
enteros:
Valores
numéricos
enteros
positivos
o
negativos.
Por
defecto
están
en
base
decimal.
Para
definir
valores
en
base
octal
se
antepone
un
‘0’
al
valor.
Para
definir
valores
en
base
hexadecimal
se
antepone
‘0x’.
int x = 12;
long personas = 94674242;
byte dato = -123;
int h = 0x19fe; //6654 en base hexadecimal
• Datos
reales:
valores
numéricos
reales
positivos
y
negativos.
La
parte
decimal
se
separa
de
la
entera
con
punto
‘.’.
Para
definir
valores
de
tipo
flotante
es
necesario
colocar
‘f’
al
final
del
número.
Es
posible
usar
notación
científica.
Por
ejemplo,
el
número
4326.783
puede
ser
escrito
como
4.326783
x
103.
En
Java:
4.326783e3;
float valor = 1.452f;
double dato = 1.45e-6;
double numeroGrande = 9.87e230;
• Datos
booleanos:
false
o
true.
boolean llueve = true;
boolean cieloRojo = false;
double resultado = true;
• Caracteres
de
texto:
se
definen
entre
comillas
sencillas
('
').
Es
posible,
además,
usar
el
código
unicode
específico:
‘\u00F1’
es
igual
a
‘ñ’.
Adrian
Nicolás
Malaver
Barrera
3
Unico
de
es
un
estándar
internacional
que
asigna
un
valor
numérico
a
cada
uno
de
los
posibles
símbolos
que
podemos
representar;
no
solo
en
español,
sino
en
muchos
otros
idiomas.
char letra = 'A';
char arroba = '\u0041';
char otraLetra = 65;
En este caso, se presentan tres formas posibles de hacer referencia al símbolo 'A'.
• Cadenas
de
texto:
se
definen
entre
comillas
dobles
("
").
Las
utilizaremos
inicialmente
para
mostrar
información
al
usuario
de
nuestras
aplicaciones.
String palabra = “Hola”;
String otraPalabra = “Hola mundo”;
3.3 Asignaciones
Para
asignar
una
variable,
se
usa
el
operador
de
asignación
'='
de
forma
similar
a
la
asignación
de
valor
inicial.
<Nombre de la variable> =<Valor>;
Siempre
que
escribamos
asignaciones
en
el
lenguaje
Java,
usaremos
punto
y
coma
(;)
para
definir
su
finalización.
No
solo
al
definir
asignaciones,
sino
también
al
definir
variables
o
hacer
llamado
a
métodos
específicos.
Por
ejemplo:
f = 1.45f;
i = 23;
letra = 'W';
Las
reglas
para
los
valores
usados
son
las
mismas
que
para
los
valores
iniciales.
Las
variables
deben
haber
sido
definidas
previamente.
3.4 Expresiones
La
escritura
de
las
expresiones
en
Java
sigue
las
mismas
reglas
definidas
para
las
expresiones
en
pseudocódigo.
A
continuación
se
relacionan
los
operadores
principales
que
usaremos
a
lo
largo
del
curso.
Una
lista
más
detallada
puede
encontrarse
aquí
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html.
Los
operadores
se
presentan
en
orden
de
prioridad
(del
más
importante
al
menos
importante
en
el
orden
de
evaluación).
Adrian
Nicolás
Malaver
Barrera
4
Operador
Descripción
Incrementan
(++)
o
disminuyen
(--)
el
valor
de
una
variable
después
de
Operadores
la
evaluación
de
la
expresión
que
los
contiene.
Por
ejemplo:
unitarios
de
1 int x = 10, y;
incremento
2 y = 15 + x++;
postfijos
(x++, x--)
La
variable
x
vale
inicialmente
10.
El
resultado
de
la
línea
2
es
25
y
luego
se
hace
el
incremento.
Esto
significa
que
en
las
líneas
siguientes,
x
vale
16.
Operadores
Cumplen
la
misma
función
que
los
anteriores,
con
la
excepción
de
que
unitarios
de
primero
modifican
el
valor
antes
del
cálculo
de
la
expresión
incremento
correspondiente.
infijos
Para
el
ejemplo
anterior,
el
valor
almacenado
en
la
variable
y
sería
26
y
(x++, x--)
no
25.
Operadores
Operadores
binarios
de
multiplicación,
división
y
módulo.
Este
último
multiplicativos
funciona
de
manera
equivalente
al
operador
“MOD”
usado
previamente
(*, /, %)
en
expresiones.
Operadores
aditivos
Operadores
binarios
de
resta
y
suma
usados
en
tipos
de
datos
numéricos.
(+,-)
Operadores
Operadores
aplicados
a
tipos
de
datos
que
definen
relaciones
de
orden,
relacionales
como
tipos
numéricos
y
caracteres
de
texto.
El
resultado
de
estos
(<,>,<=,>=)
operadores
es
de
tipo
booleano.
Operadores
Operadores
de
equivalencia.
El
resultado
de
estos
operadores
es
de
tipo
de
igualdad
booleano.
(==,!=)
Operador
lógico
Y
Permite
realizar
la
operación
lógica
'Y'
vista
en
expresiones
booleanas.
Se
(&&)
puede
aplicar
a
operandos
de
tipo
booleano.
Operador
lógico
O
Permite
realizar
la
operación
lógica
'O'
vista
en
expresiones
booleanas.
Se
(||)
puede
aplicar
a
operandos
de
tipo
booleano
Permiten
realizar
operaciones
aritméticas
y
asignación
al
mismo
tiempo.
Por
ejemplo:
Operadores
de
asignación
1 int x = 10;
(=,+=,- 2 x += 15;
=,*=,/=)
3 x *= 3;
La
línea
2
es
equivalente
a
x = x + 15;
La
línea
3
es
equivalente
a
x = x * 3;
4 Referencia
de
operaciones
de
lectura
y
escritura
por
consola
Adrian
Nicolás
Malaver
Barrera
5
Con
el
objetivo
de
capturar
información
de
un
usuario
o
de
presentar
información
en
pantalla,
se
han
definido
operaciones
en
Java
que
permiten
realizar
esta
tarea
en
forma
sencilla.
Presentación de información en la consola de texto
Cuando
sea
necesario
presentar
el
resultado
de
una
operación
o
cualquier
información
al
usuario,
usaremos
los
métodos
print
y
println que
pertenecen
a
la
funcionalidad
básica
que
ofrece
Java.
Por
ejemplo:
1 int x = 10;
2 float f = 1.45f;
3 long l = 34543566;
4 String s = “Hola”;
5 System.out.println(f);
6 System.out.println(l);
7 System.out.println(x);
8 System.out.println(s);
9 System.out.println(“El resultado es: ” + f);
Al
ejecutar
este
código,
la
salida
en
la
consola
de
texto
sería:
1.45
34543566
10
Hola
El resultado es: 1.45
Las
líneas
5,
6,
7
y
8
muestran
el
contenido
de
las
variables
en
pantalla.
También
es
posible
mostrar
cadenas
de
texto
que
acompañen
al
contenido
de
las
variables,
como
sucede
en
la
línea
9.
Cuando
se
usa
el
método
print
en
vez
de
println,
no
se
baja
la
línea
después
de
escribir
cada
variable.
Si
se
usara
print
la
salida
sería:
1.453454356610HolaEl resultado es: 1.45
Lectura
de
información
de
consola
Cuando
sea
necesario
capturar
información
del
usuario,
por
ejemplo
para
establecer
valores
para
las
variables
de
entrada
de
un
algoritmo,
debemos
hacer
lo
siguiente:
1. Definir
un
objeto
Scanner,
que
cuenta
con
métodos
para
leer
información
de
teclado:
Scanner scanner = new Scanner(System.in);
2. Definir
y
asignar
valores
para
las
variables
que
sean
necesarias,
usando
los
métodos
adecuados
del
objeto
de
la
clase
Scanner:
n = scanner.nextInt(); //Para leer valores enteros
f = scanner.nextFloat(); //Para leer valores de tipo float
d = scanner.nextDouble(); //Para leer valores de tipo double
Adrian
Nicolás
Malaver
Barrera
6
b = scanner.nextBoolean(); //Para leer valores de tipo boolean
Después
de
la
ejecución
de
cada
línea,
quedará
almacenado
el
valor
leído
en
cada
variable.
Para
más
información,
puede
consultarse
la
documentación
de
la
clase
scanner
de
Java:
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Scanner.html.
5 Invocación
de
métodos
Es
posible
construir
expresiones
que
involucren
la
realización
de
tareas
comunes
como
raíces
cuadradas,
valores
absolutos,
entre
otras.
Lo
haremos
de
la
siguiente
forma:
<Variable de tipo adecuado> = <Nombre del método>(<Parámetros>);
Es
necesario
identificar
el
tipo
de
variable
que
debería
ser
usado,
de
acuerdo
con
el
tipo
de
dato
que
retorna
un
método
particular.
De
igual
manera,
hay
métodos
que
no
tienen
valor
de
retorno
y,
por
lo
tanto,
no
podrían
ser
usados
para
asignar
valores
a
variables.
Los
métodos
relacionados
con
funciones
matemáticas,
pueden
ser
encontrados
en
la
clase
“Math”
y
se
usan
de
acuerdo
con
los
parámetros
que
requieren1.
Por
ejemplo,
si
se
requiere
calcular
la
raíz
cuadrada
de
95738,
lo
que
se
haría
es
lo
siguiente:
double x = 0.0f;
x = Math.sqrt(95738);
Siempre,
al
usar
métodos
como
este,
es
recomendable
leer
la
referencia
sobre
el
uso,
parámetros
y
valor
de
retorno
para
estar
seguros
de
que
es
el
método
más
adecuado.
Es
posible
usar
este
tipo
de
métodos
en
expresiones
que
permitan
realizar
operaciones
más
complejas:
d = x*x + Math.sqrt(y * y) + 98 * z;
6 Comentarios
En
Java,
como
en
la
mayoría
de
lenguajes
de
programación,
es
posible
hacer
comentarios
para
explicar
secciones
de
código,
o
agregar
anotaciones
para
futuras
modificaciones.
Los comentarios pueden hacerse para una sola línea o para un bloque de texto.
Comentarios
de
una
línea:
Se
hacen
usando
"//".
Todo
el
texto
subsiguiente
hasta
el
final
de
la
línea
no
se
tiene
en
cuenta
al
compilar
el
código
presente
en
el
archivo.
1
Para
información
sobre
los
métodos
definidos
en
la
clase
Math:
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Math.html
[Recuperado:
15
de
Enero
de
2010]
Adrian
Nicolás
Malaver
Barrera
7
int x = 8; //x almacenará el número de personas que inicialmente es 8
float t = 3.45; //La temperatura t será inicialmente 3.45ºC
//x = 10;
Comentarios
de
bloque:
Se
hacen
usando
"/*"
y
"*/".
Cualquier
texto
encerrado
entre
estos
dos
elementos
no
será
tenido
en
cuenta
al
compilar
el
código
presente
en
el
archivo.
/*El propósito del siguiente bloque de código es calcular la ruta óptima
para llegar del punto (x,y) al punto (x1,y1) en coordenadas planas*/
int x = 10, y = 30;
int x1 = 100, y1 = 54;
.
.
.
/*
Código generado por: nmalaver
Fecha: 30-02-08
*/
.
.
.
Usando
comentarios,
además,
es
posible
ocultar
temporalmente
un
bloque
de
código
que
no
requerimos
o
que
no
está
listo
para
su
ejecución:
/*
y = 17 * 1.6180 + z;
x = 100*34 + 18*(45+5)/y
*/
Adrian
Nicolás
Malaver
Barrera
8