Você está na página 1de 51

Sintaxis Bsica del Lenguaje

Prof. Renny Batista Octubre, 2015 Programacin III


Sintaxis Bsica

Lenguaje sensible a maysculas y minsculas.


Las sentencias finalizan con punto y coma ;.
Los bloques de instrucciones se delimitan con llaves { }.
Comentario de una lnea y multilnea.
Para comentar una lnea // Texto a comentar
Para comentar varias lneas /* Texto en
varias lneas a
comentar */
Secuencias de escape

Una secuencia de escape est conformada por el carcter \


seguido de una letra, en el caso de ciertos caracteres no
imprimibles o del carcter especial.
Tipos de datos

Toda la informacin que se maneja en un programa Java puede


estar representada bien por un objeto o bien por un dato de tipo
primitivo
Tipos de datos primitivos

Los tipos de datos primitivos se pueden


organizar en cuatro grupos:
Numricos enteros: Son los tipo byte,
short, int, long. Los cuatro
representan nmeros enteros con signo.
Carcter: El tipo char representa un
carcter codificado en el sistema unicode.
Numrico decimal: Los tipos float y
double representan nmeros decimales
con coma flotante.
Lgicos: El tipo boolean es el tipo de dato
lgico; los dos nicos posibles valores que
puede representar un dato lgico son true y
false.
Tipos de datos primitivos
Tipos de datos primitivos (clases envoltorio)

Java proporciona una clase envoltorio (wrappers) correspondiente a cada tipo de dato
primitivo. Las clases envoltorio tienen nombres similares a los tipos: Integer, Long,
Float, Double, Short, Byte, Character y Boolean.

La clase envoltorio Integer se utiliza para envolver valores int en objetos Integer
para que dichos valores se consideren objetos; de modo similar, Long se utiliza para
envolver valores long en objetos Long y as sucesivamente.

Double.parseDouble("123.456"); /*Convierte la cadena a un


nmero de punto flotante*/

Integer.parseInt ("63"); /*Convierte la cadena a un


nmero de entero*/
Variables

Una variable es un espacio fsico de memoria dnde un


programa puede almacenar un dato para su posterior
utilizacin.
Memoria Direcciones
00..00
int x = 10; .
10 00AAFF
x 00AAFF
.
.
.
FF..FF
Declaracin de variables

Una variable se declara de la siguiente forma:


tipo_de_dato nombre_variable;
Un nombre de variable debe cumplir las siguientes reglas:
Debe comenzar por un carcter alfabtico.
No puede contener espacios, signos de puntuacin o secuencia de escape.
No puede utilizarse como nombre de variable una palabra reservada del
lenguaje Java.
Tambin es posible declarar en una misma instruccin varias variables de
igual tipo.
Ejemplos:
int x;
char a, opcion,letra;
double estatura;
Asignacin

Una vez declara una variable se le puede asignar un valor siguiendo el


formato:
variable = expresin;
variable identificador vlido en Java, declarado como variable.
expresin valor, constante, otra variable con un valor previamente
asignado o una frmula evaluada de tipo variable.
Ejemplo:
int a,b,c;
a=30;
b=a+20;
c=b;
Literales

Un literal es un valor constante que se puede asignar directamente a una variable o


puede ser utilizado en una expresin. A la hora de utilizar literales en una expresin
debemos considerar:
Los literales numricos enteros se consideran como tipo int. Excepto el tipo
long:
long num = 1000000000000L;
Los literales numricos decimales se consideran como tipo double. Si vamos a realizar
una asignacin con decimales a una variable de tipo float la forma correcta es:
float x = 3.23f;
Los literales boolean son: true y false.
boolean encontrado = true;
Los literales de tipo carcter (char) se escriben entre comillas simples.
char letra = 'A';
Conversiones de tipos

En java es posible realizar conversiones entre todos los tipos


bsicos, con excepcin de boolean, que es incompatible con el
resto de tipos.

Las conversiones de tipos se clasifican en:


Conversiones Implcitas (automticas)
Conversiones Explcitas (Casting)
Conversiones Implcitas

Estas se realizan de manera automtica, es decir, el


valor o expresin que va a asignar la variable es
convertido de forma automtica por el compilador.
Para que una conversin pueda realizarse de forma
automtica, el tipo de la variable destino debe ser de
igual tamao o superior al tipo de origen.
Ejemplos:
int a;
short b=10;
float c;
a = b; //conversin de short a int
c = a; //conversin de int a float
Conversiones Explicitas

Cuando no se cumplen la condiciones para una conversin implcita,


esta se puede realizar explcitamente usando la expresin:
variable_destino = (tipo)dato_origen;
A esta operacin se le conoce como casting o estrechamiento ya que al
convertir un dato de un tipo en otro tipo de tamao inferior, en
algunos casos, se puede provocar una prdida de datos.

Ejemplo:
int p;
double num = 34.23;
p = (int) num; //Se elimina la parte decimal
Conversiones

byte short int long float double

char

Requiere conversin

Conversin automtica
Constante

Una constante es una variable cuyo valor no puede ser


modificado. Para definir una constante en Java se utiliza la
palabra final, delante de la declaracin del tipo:

final tipo nombre_variable = valor;


Ejemplo:
final double pi=3.1416;
final int maximo = 100;
Palabras reservadas del lenguaje
Operadores aritmticos

Aritmticos Explicacin
+ Suma
- Resta
* Multiplicacin
/ Divisin
% Devuelve el resto de la divisin
++ Incrementa en 1
-- Decrementa en 1
= Asignacin
Operadores relacionales

Relacionales Explicacin
== Igual
< Menor
> Mayor
<= Menor o igual
>= Mayor o igual
!= Distinto
Operadores lgicos

Lgicos Explicacin
&& Operador lgico AND. Devuelve verdadero si los dos
operandos son true, en cualquier otro caso
devuelve false.
|| Operador lgico OR. El resultado es verdadero si
alguno de los operando es true.

! Operador lgico NOT. Acta sobre un nico


operando boolean, dando como resultado el valor
contrario al que tenga el operando.
^ Or exclusivo deriva en verdadero si ambos
operandos son distintos: verdadero-falso o falso-
verdadero, y produce falso slo si ambos operandos
son iguales: verdadero-verdadero o falso-falso.
El operador condicional (?:)

El operador condicional ?: es ternario y devuelve un resultado que depende de la


condicin comprobada, tiene asociatividad a la derecha y, al ser ternario, requiere
tres operandos; reemplaza a la sentencia if-else en algunas circunstancias y su
formato es:

expresion_c ? expresion_v : expresion_f;

Se evala expresion_c y su valor, verdadero o falso, determina cul es la expresin a


efectuar. Si la condicin es verdadera se ejecuta expresion_v; si es falsa se ejecuta
expresion_f.

n > 0 ? 1 : -1 //1 si n es positivo, -1 si es negativo o cero

m >= n ? m : n //devuelve el mayor valor de m y n


Salida de datos

El envo de datos al exterior se gestiona a travs de la clase PrintStream, utilizndose un


objeto de la misma para acceder al dispositivo de salida. Posteriormente con los
mtodos proporcionados por esta clase, podemos enviar la informacin al exterior.

Ejemplo:

int ancho=30; double alto = 34.6776;


System.out.println(El ancho es: +ancho);
System.out.printf("El alto es: %.2f",alto);
Salida con formato: printf

La sentencia System.out.printf tiene un primer argumento cadena, conocido como


especificador de formato; el segundo argumento es el valor de salida en el formato
establecido

Ejemplo:
double precio = 25.4;
System.out.printf("$");
System.out.printf("%6.2f",precio);
System.out.printf(" unidad");

Al ejecutar este cdigo se visualiza $ 25.40. El formato especifica el tipo (f de float), el


ancho total (6 posiciones) y los dgitos de precisin (2).
Cada uno de los especificadores de formato que comienza con un carcter % se
reemplaza con el argumento correspondiente; el carcter de conversin con el que
terminan indica el tipo de valor a dar formato: f es un nmero en coma flotante, s una
cadena y d un entero decimal.
Entrada (lectura de datos)

En la versin 5.0, Java incluy una clase para simplificar la entrada de datos por el
teclado llamada Scanner, que se conecta a System.in; para leer la entrada a la
consola se debe construir primero un objeto de Scanner pasando el objeto
System.in al constructor Scanner.

Scanner entrada = new Scanner(System.in);


Una vez creado el objeto Scanner, se pueden utilizar diferentes mtodos de su
clase para leer la entrada: nextInt() o nextDouble() leen enteros o de coma
flotante.
El mtodo nextLine() lee una lnea de entrada.
El mtodo next() se emplea cuando se desea leer una palabra sin espacios.
Entrada (lectura de datos)
La clase java.util.Scanner proporciona una serie de mtodos para realizar la
lectura de datos desde un dispositivo de entrada o archivo, tanto en forma de
cadena de caracteres como en cualquier tipo bsico.
package paquete; 1 Importamos la clase Scanner
import java.util.Scanner; del paquete java.util
public class Principal {
public static void main(String[] args) {
String nombre; Creamos una variable
2 llamada teclado de tipo
int edad;
Scanner
Scanner teclado = new Scanner(System.in);
System.out.print("Escriba su nombre:");
nombre = teclado.nextLine(); Asignamos el valor de las lecturas
System.out.print("Escriba su edad:"); a las variables para que lo
3 almacenen
edad = teclado.nextInt();
System.out.println("Hola "+nombre+" tienes "+edad+" aos");
} //fin del void main
} //fin de la clase Principal
Ejercicios

Escriba un programa que pida un tiempo en segundos y lo muestre convertido a minutos


y segundos.
Un alumno desea saber cual ser su calificacin final en la materia de Programacin.
Dicha calificacin se compone de los siguientes porcentajes:
55% del promedio de sus tres calificaciones parciales.
30% de la calificacin del examen final.
15% de la calificacin de un trabajo final.
En un hospital existen tres reas: Ginecologa, Pediatra, Traumatologa. El presupuesto
anual del hospital se reparte conforme a la siguiente tabla:
rea Porcentaje del presupuesto
Ginecologa 40%
Traumatologa 30%
Pediatra 30%
Obtener la cantidad de dinero que recibir cada rea, para cualquier monto
presupuestal.
Estructuras de decisin

Los programas para un mejor funcionamiento y poder realizar un nmero


mayor de tareas deben permitir:
Ejecutar una serie de sentencias o instrucciones
Poder repetir una serie de sentencias hasta que se cumpla o deje de
cumplirse una serie de condiciones.
Emplear acciones alternativas para poder elegir una de ellas cuando la
situacin lo requiera.

Las estructuras de decisin permite realizar acciones alternativas; por tanto, la


ejecucin de una lnea o grupo de lneas de programa depende de si se
cumplen o no una o varias condiciones.
Estructuras de decisin (if else)

Instruccin ifelse if (condicin) {


Es una sentencia de tipo alternativa simple que
permite comprobar una condicin dentro de un sentencia_1;
programa. En caso de que la condicin se sentencia_2;
.
.
cumpla se ejecutar un determinado grupo de .
sentencias, mientras que si no se cumple, se sentencia_n;
podr ejecutar otro conjunto diferentes de }
instrucciones.
else {

sentencia_alterna_1;
sentencia_alterna_2;
.
.
.
sentencia_alterna_n;
}
Estructuras de decisin (if else)

A la hora de utilizar esta instruccin hay que tener en cuenta lo siguiente:


La condicin de comprobacin puede ser cualquier expresin cuyo
resultado sea de tipo boolean (true o false).
El bloque else es opcional. En este caso, si la condicin no se cumple el
programa continuar su ejecucin en la siguiente lnea despus de la
llave de cierre.
Cuando el bloque de sentencias, bien del if o bien del else, esta
formado nicamente por una sola sentencia, el uso de las llaves
delimitadoras es opcional. No obstante, para una mayor claridad del
cdigo, se recomienda su uso en cualquier caso.
Las instrucciones if se pueden anidar.
Ejercicios (if else)

Determinar la cantidad de dinero que recibir un trabajador por concepto de


las horas extras trabajadas en una empresa, sabiendo que cuando las horas de
trabajo exceden de 40, el resto se consideran horas extras y que estas se pagan
al doble de una hora normal cuando no exceden de 8; si las horas extras
exceden de 8 se pagan las primeras 8 al doble de lo que se pagan las horas
normales y el resto al triple.
Elabore un programa en Java que lea como dato de entrada un nmero entero,
determine e imprima por pantalla si el numero ledo es positivo, negativo o
nulo.
Escriba un programa que lea la longitud los lados A, B y C de un tringulo.
Utilizando las instrucciones ifelse determine si el triangulo es Equiltero,
Issceles o Escaleno.
Estructuras de decisin (switch)

Instruccin switch
switch (expresin) {
Se trata de una instruccin de tipo
alternativa mltiple. Permite ejecutar case valor_1:
diferentes bloques de sentencias en sentencias;
funcin del resultado de una expresin
break;
case valor_2:
sentencias;
break;
.
.
.
default:
otras sentencias;
}
Estructuras de decisin (switch)

Sobre el uso de esta instruccin hay que tener en cuenta lo siguiente:


Los nicos valores que puede evaluar switch son nmeros enteros de
tipo int. Esto incluye a aquellos que puedan ser promocionados a dicho
tipo (byte, char y short) .
Un switch puede contener cualquier nmero de case, aunque no
pueden haber dos cases con el mismo valor.
La sentencia break es opcional y se emplea para provocar la finalizacin
del switch al terminar la ejecucin de un case. En caso de que un case
no incluya esta sentencia, el programa continuar con la ejecucin del
siguiente case, independiente de que el resultado de la expresin
coincida o no con el valor indicado del mismo.
El bloque default se ejecutara si el resultado de la expresin no coincide
con ningn case. Su uso es opcional.
Caso particular de case

Est permitido tener varias expresiones case en una alternativa dada en


switch; por ejemplo, se puede escribir:

switch(c) {
case '0':case '1': case '2': case '3': case '4':
case '5':case '6': case '7': case '8': case '9':
num_digitos++; // se incrementa en 1 el valor de num_digitos
break;
case '': case '\t': case '\n':
num_blancos++; // se incrementa en 1 el valor de num_blancos
break;
default:
num_distintos++;
}
Ejercicios (switch)

Escribir un programa que reciba un nmero de una carta de una baraja espaola e
imprima por pantalla: As si es un 1, Sota, si es un 10, Caballo si es un 11 y Rey si
es un 12. Para nmeros de cartas entre 2 y 9 (incluidos) debe imprimir: "No es as ni
figura". Para otros nmeros debe imprimir: "este no es un nmero de una carta de la
baraja espaola".

Escriba un programa en java que lea un carcter y utilizando la instruccin switch


determine si es o no una vocal. Realice el mismo ejercicio utilizando la sentencia if
Qu opcin es mejor?

Escriba un programa que pida al usuario un nmero entre el uno y el siete y muestre
un mensaje con el nombre del da correspondiente
Estructuras de Repetitivas (Ciclos)

Llamamos bucle o ciclo a todo proceso que se repite un nmero de veces


dentro de un programa. Un ciclo requiere de una condicin para poder
ejecutarse.
Lo primero que hace el computador es examinar la condicin y da como
resultado dos posibilidades:
Se cumple: va a realizar todas las instrucciones que estn dentro del ciclo, las estar
repitiendo hasta que deje de cumplirse la condicin. Entonces sale del ciclo y
contina ejecutando las instrucciones que hay fuera de l.
No se cumple: no entrar en el ciclo. Ejecuta las instrucciones, que estn fuera de l.
Mientras (condicin) {
La condicin del bucle no tiene por que
sentencia interna1;
ser nica, puede haber ms de una sentencia interna2;
siempre y cuando estn unidas por los .
.
operadores lgicos. sentencia internan;
}
Sentencia externa;
Los contadores

Un contador es una variable destinada a contener diferentes valores, que se va


incrementando o decrementando cada vez que el computador ejecuta la instruccin
que lo contiene.
El incremento; o decremento si es negativo, llamado tambin paso de contador, es
siempre constante.
Ejemplo: En un partido de ftbol cada vea que un equipo marca un gol, su casillero
siempre aumenta en una unidad. En las carreras de autos, cada vez que un vehculo
pasa por la lnea de meta, se incrementa en una unidad el nmero de vueltas dadas al
circuito o se decrementa en una unidad el nmero de vueltas que le quedan por
realizar.
Local Visitante Local Visitante

2 1 3 1

Marcador en un Marcador luego de conseguir


instante determinado un gol el equipo local
Los contadores

Sintaxis
VARIABLE = VARIABLE VALOR_CONSTANTE;
El computador primero evala la expresin situada a la derecha del signo
igual, realiza la suma o la resta y su resultado lo asigna a lo que hay a la
izquierda del igual.
El valor de la constante no tiene por qu ser la unidad; puede ser cualquier
nmero, pero en todo el programa se debe conservar siempre dicho valor.
Ejemplos:
vueltas = vueltas + 1;
goles = goles + 1;
final = final 1;
numero = numero + 5;
Los acumuladores

Es una variable que nos va a permitir guardar un valor que se incrementa o


decrementa de forma no constante durante el proceso. En un instante
determinado tendr un valor y al siguiente tendr otro valor igual o distinto.
Sintaxis:
ACUMULADOR = ACUMULADOR + VALOR_VARIABLE;
ACUMULADOR es la variable que almacena el resultado fr la suma
VALOR_VARIABLE almacena el nmero que estamos sumando
Ejecuta en primer lugar lo que hay a la derecha del signo igual. Realiza la
operacin ACUMULADOR + VALOR_VARIABLE, para el ltimo caso; el
resultado lo guarda en la variable ACUMULADOR.
Ejemplo:
saldo = saldo + deposito;
saldo = saldo retiro;
suma = suma + numero;
Estructura de Repetitiva (while)

Un bucle while tiene una condicin, una expresin lgica que controla la
secuencia de repeticin; su posicin es delante del cuerpo del bucle y significa
que while es un bucle pretest, de modo que cuando ste se ejecuta, se
evala la condicin antes de ejecutarse el cuerpo del bucle.
Estructura de Repetitiva (dowhile)

La sentencia dowhile se utiliza para especificar un bucle condicional que se


ejecuta al menos una vez; cuando se desea realizar una accin determinada al
menos una o varias veces, se recomienda este bucle.

La construccin do comienza ejecutando sentencia; en seguida se evala


expresin; si sta es verdadera, entonces se repite la ejecucin de sentencia;
continuando hasta que expresin sea falsa.
Ciclos controlados por centinelas

Por lo general, puede que no se conozca con precisin cuntos elementos de


datos se procesarn antes de comenzar su ejecucin debido a que hay muchos
ms por contar, o bien, porque el nmero de datos a procesar depende de la
secuencia del proceso de clculo.

Un medio para manejar esta situacin es que el usuario introduzca, al final, un


dato nico, definido y especfico en el llamado valor centinela; al hacerlo, la
condicin del bucle comprueba cada dato y termina al leer dicho valor. El
centinela sirve para terminar el proceso del bucle.
Ciclos controlados por centinelas

/* entrada de datos numricos, centinela 1 */


final int centinela = -1;
System.out.print("Introduzca primera nota:");
double nota = entrada.nextInt();
while (nota != centinela){
cuenta++;
suma = suma + nota;
System.out.print("Introduzca siguiente nota: ");
nota = entrada.nextInt();
} // fin de while
System.out.println("Final");
Ciclos controlados por indicadores o banderas

Con frecuencia se utilizan variables de tipo boolean como indicadores o


banderas de estado para controlar la ejecucin de un bucle; su valor se
inicializa normalmente como falso y, antes de la entrada al bucle, se redefine
cuando un suceso especfico ocurre dentro de ste. Un bucle controlado por un
indicador o bandera se ejecuta hasta que se produce el suceso anticipado y se
cambia el valor del indicador.

digito_leido = false; // no se ha ledo ningn dato


while (!digito_leido) {
System.out.print("Introduzca un carcter: ");
car = System.in.read(); // lee siguiente carcter
System.in.skip(1); // salta 1 carcter(fin de lnea)
digito_leido = (('0'<= car) && (car <= '9'));
...
} // fin de while
Estructura de Repetitiva for

Instruccin for
Permite ejecutar un conjunto de instrucciones un
nmero determinado de veces. Este tipo de ciclo es
la mejor forma de programar la ejecucin de un
bloque de sentencias un nmero fijo de veces; ste
sita las operaciones de control del bucle en la
cabecera de la sentencia. Su formato es el siguiente:
Estructuras de Repetitivas Salidas forzadas

Instruccin break
El uso de esta instruccin provoca una salida forzada del bucle, continuando
la ejecucin del programa en la primera sentencia situada despus del
mismo.

Instruccin continue
Esta instruccin provoca que el bucle detenga la iteracin actual y pase, en
el caso del for, a ejecutar la instruccin de incremento o, en el caso de
while, a comprobar la condicin de entrada.
Estructura de Repetitiva for each

Instruccin foreach
A partir de Java 5.0 se incorpora una construccin de bucles que permite al programador
iterar a travs de cada elemento de una coleccin o de un array sin tener que
preocuparse por los valores de los ndices; dnde se establece una variable dada a cada
elemento de la coleccin y a continuacin ejecuta las sentencias del bloque.
for (Tipo_Coleccion variable : Coleccion) {
//Sentencias
...
}

La expresin coleccin debe ser un arreglo o un objeto de una clase que implemente la
interfaz Iterable, tal como lista de arreglos ArrayList u otras; por ejemplo, se visualiza
cada elemento del arreglo m
PorPagar objetosPorPagar[] = new PorPagar[4];
...
for(PorPagar porpagar: objetosPorPagar ){
System.out.println(porpagar);
}
Ejercicios (while - for)

Supngase que en una reciente eleccin hubo tres candidatos (con identificadores 1, 2,
3). Usted habr de encontrar, mediante un programa java, el nmero de votos
correspondiente a cada candidato y el porcentaje que obtuvo con respecto al total de
votantes. El usuario teclear los votos de manera desorganizada (1, 2 o 3), tal y como se
obtuvieron en la eleccin. La cantidad de electores es de 10. Observe como ejemplo la
siguiente lista: 1 3 1 2 2 1 1 2 1 3. Dnde 1 representa un voto para el Candidato
1; el 2 un voto para el candidato 2 y el 3 un voto para el candidato 3.
El total de votos: 10
Votos para el Candidato 1: 5 - Porcentaje: 50%
Votos para el Candidato 2: 3 - Porcentaje: 30%
Votos para el Candidato 3: 2 - Porcentaje: 20%

En un supermercado un cajero captura los precios de los artculos que los clientes
compran e indica a cada cliente cual es el monto de lo que deben pagar. Al final del da
le indica a su supervisor cuanto fue lo que cobro en total a todos los clientes que
pasaron por su caja.
Arreglos (arrays)

Un array es un objeto en el que se puede almacenar un conjunto de datos de


un mismo tipo. Cada uno de los elementos del array tiene asignado un ndice
numrico segn su posicin, siendo 0 el ndice primero.
Declaracin:
tipo [] variable_array; A

tipo variable_array[]; B
Ejemplo:
int [] k;
char cadena[];
Arreglos (arrays)

Para asignar un tamao a un array (Dimensionar) se utiliza la expresin:


variable_array = new tipo[tamao];
Ejemplo:
k = new int[5];
cadena = new char[10];
Tambin se puede asignar un tamao al array en la misma lnea de
declaracin de la variable:
String [] nombres = new String[10];
Existe una forma de declarar, dimensionar e inicializar un array en una
misma sentencia:
Ejemplo:
int [] numeros = {10,23,5,12,6};
Ejercicio Arreglos

En un arreglo unidimensional se ha almacenado el nmero total de


toneladas de cereales cosechadas durante cada mes del ao anterior.
Elabore un programa en java que proporcione la siguiente informacin:
El promedio anual de toneladas cosechadas.
Cuntos meses tuvieron una cosecha superior al promedio?.
Cuntos meses tuvieron una cosecha inferior al promedio?.
Cul fue el mes en que se produjeron mayor numero de toneladas.

Hacer un programa que llene una matriz de 5 x 5. Sumar las columnas e


imprimir que columna tuvo la mxima suma y la suma de esa columna.
Bibliografas

Martn, Antonio. Programador Certificado Java 2. Curso Prctico. Editorial


RA-MA. 2da Edicin.

Joyanes L., Zahonero I. Programacin en Java 6. Algoritmos, programacin


orientada a objetos e interfaz grfica de usuarios. McGRAW-HILL, 1ra Edicin.

Você também pode gostar