Anda di halaman 1dari 62

Lenguajes de programacin

Java

Caractersticas del lenguaje Java


z

Orientado a objetos. La funcionalidad del sistema


se organiza en objetos que colaboran entre si
mediante el envo de mensajes. La funcionalidad
crece fcilmente aadiendo ms objetos al sistema.
Compilado. Se generan ficheros con las clases
compiladas, los cuales son interpretados por la
mquina virtual de java (JVM). Siendo sta la
responsable de la ejecucin.
Multiplataforma. El mismo cdigo java funciona en
distintos sistemas operativos, siempre que tengan
instalada la mquina virtual java (JVM).

Programa
z

Secuencia de instrucciones que llevan a


cabo una tarea.
instruccin1
instruccin2
Tarea
instruccin4
instruccin3

Programa

Tarea sumar dos nmeros

Pedir primer nmero


Pedir segundo nmero
Realizar operacin

System.out.println("Teclea el primer nmero");


numero1=leer.nextInt();
System.out.println("Teclea el segundo nmero");
numero2=leer.nextInt();
resultado=numero1+numero2;

Programa
z

Variable: almacena informacin que se


modifica durante la ejecucin de un
programa.
Constante: almacena informacin que no se
modifica a la largo de la ejecucin. Deben
ser inicializadas.
Sentencias: comandos que pueden ser
interpretados por el ordenador. Condicional y
seleccin, iterativas, asignacin.

Tipos de datos

Enteros. Se usan para representar nmeros enteros con signo


byte
short
int
long

8 bits

-128..127

16 bits

-32.768..32.767

32 bits

-2.147.483.648..2.147.483.647

64 bits

-9.223.372.036.854.775.808..9.223.372.036.854.775.807

Tipos de datos
Reales. Se usan para representar nmeros con partes fraccionarias

z
z

float

32 bits

IEEE 754

3.4e-038..3.4e+038

double

64 bits

IEEE 754

1.7e-308..1.7e+308

Booleanos. valores true y false. Si no son inicializados toman el


valor de false.
Char. Unicode simples de 16 bits, el tipo de datos char es un
entero sin signo de 16 bits.

Declaracin y asignacin de variables


z
z
z
z
z
z
z

Empezar con una letra


Contener cualquier nmero de letras o dgitos
Incluir _ o $.
Sensible al uso de maysculas.
No hay limitacin de longitud.
Variables empiezan por minscula-> las siguientes van en
mayscula.
Ejemplos:

miNombre
sueldoBase
anchoVentana_1
sueldo_2001
paga_Extra$

Declaracin y asignacin de variables


z
z

Tipo nombre_variable [= valor];


Ejemplos:

int ciclo;
long numeroLargo;
float temperatura=0.0f;
double miPi;
boolean reciboPagado;
char s;
int ciclo=0;
long numeroLargo = 5263;
float temperatura = 36.6f;
double miPi = 314.16e-2 ;
boolean reciboPagado = false;

Declaracin y asignacin de
constantes
z
z
z

Modificadores tipo nombre_constante=valor;


Letra mayscula.
Ejemplos:
final static int CERO =0;

final static int PRIMERO =1;


final static double PI =3.14159;
final char POSITIVO= s;

abstact

boolean

break

byte

byvalue

case

cast

catch

char

class

const

continue

default

do

double

else

extends

false

final

finally

float

for

future

generic

goto

if

implements

import

inner

instanceof

int

interface

long

native

new

null

operator

outer

package

private

protected

public

rest

return

short

static

super

switch

syncroniced

this

throw

throws

transient

true

try

var

void

volatile

while

/**
* @author (Fundamentos de Programacin)
* @version (1.0)
*/
import java.util.Scanner;
public class Suma
{
public static void main(String[] args)
{
Scanner leer = new Scanner(System.in);
int numero1,numero2,resultado;
System.out.println("Programa de suma");
System.out.println("Teclea el primer nmero");
numero1=leer.nextInt();
System.out.println("Teclea el segundo nmero");
numero2=leer.nextInt();
resultado=numero1+numero2;
System.out.println("El resultado de"+numero1+"+"+numero2+"es"+ resultado );
leer.close();
}
}

Operadores
z

Caracteres que indican al compilador que se


desea realizar una operacin.

z
z
z
z

Unico operando ->operadores unarios.


Antes del operando ->operadores prefijo
Despus -> operadores sufijo.

Operadores aritmticos
Operadores relacionales
Operadores lgicos
Operadores a nivel de bit

Operadores aritmticos
Operador

Significado

Operador

Significado

Suma

+=

suma y asignacin

resta (tambin el menos


unario)

-=

resta y asignacin

Multiplicacin

*=

Multiplicacin y asignacin

Divisin

/=

divisin y asignacin

Mdulo

%=

mdulo y asignacin

++

Incremento

--

Decremento

Operadores relacionales
Operador

Significado

==

igual a

!=

distinto de

>

mayor que

<

menor que

>=

mayor o igual que

<=

menor o igual que

Operadores lgicos
Operador

Significado

Operador

Significado

&

AND lgico

&=

Asignacin AND

OR lgico

|=

Asignacin OR

XOR lgico (OR


exclusivo)

^=

Asignacin XOR

||

OR inmediato

==

igual a

&&

AND inmediato

!=

distinto de

NOT unario
lgico

?:

if-then-else
ternario

La ms alta
()

[]

++

--

>>

>>>

<<

>

>=

<

==

!=

&
^
|
&&
||
?:
=
La ms baja

op=

<=

Precedencia
z

Z=p * r % q + w / x - y

A* ( b + c ) + c * ( d + e )

Clase
z
z

Todo en Java forma parte de una clase.


Las instrucciones de los programas Java se colocan
dentro del bloque de una clase. Los mtodos se
definen dentro
import puede colocarse al principio de un fichero,
fuera del bloque de la clase. El compilador
reemplazar esa sentencia con el contenido del
fichero que se indique, que consistir, como es de
suponer, en ms clases.

Clase
/**
*
* Clase Hola.
*/
class Hola //
{
/**
* Mtodo main
*/
public static void main(String[] args)
{
System.out.println("Hola mundo");
}
}

Mtodo main
z
z
z
z

Principal o punto de entrada del programa


Es el que primero se ejecuta.
Cada clase puede tener su propio mtodo.
En una aplicacin con varias clases lo
habitual es que slo una de ellas cuente con
mtodo main.
public static void main(String[] args)

Separadores
z

() - parntesis.

{} - llaves.

tipos matriz.
referenciar valores de matriz.

; - punto y coma. Separa sentencias


, - coma.

valores de matrices.
bloque de cdigo, para clases, mtodos y mbitos locales.

[] - corchetes.

Listas de parmetros en la definicin y llamada a mtodos.


definir precedencia en expresiones.
expresiones para control de flujo.
rodear las conversiones de tipo.

identificadores consecutivos en una declaracin de variables.


Encadenar sentencias dentro de una sentencia for.

. - punto.

Separar nombres de paquete de subpaquetes y clases.


Separar una variable o mtodo de una variable de referencia.

Clase Scanner

z
z

Byte

nextDouble

Double

nextFloat

Float

nextInt

Entero

nextBoolean

Bolanos

nextLine

Siguiente lnea

toString

Representacin string

close

Cierra el Scanner

Leer datos de la entrada estndar.


Paquete util.

nextByte

import java.util.Scanner

Crear un objeto

Scanner leer = new Scanner(System.in);

Control del flujo


z

La ejecucin avanza y se ramifica en funcin


de los cambios de estado de los datos.

seleccin,
condicional,
iteracin y
llamadas a mtodos.

Sentencia condicional if/else


z
z

En funcin de una expresin se decide la siguiente sentencia a


ejecutar.
La expresin produce un resultado boolean (verdadero o falso).
Sintaxis
if(expresin condicional ) {
sentencias;
}o
if(expresin condicional ) {
sentencias;
}
else {
sentencias;
}

Sentencia condicional if/else


if (nota>5)
System.out.println("Aprobado");
else
System.out.println("Suspenso");
Las sentencias pueden ser simples o compuestas,
pueden ser a su vez otras expresiones condicionales.
Cuando es igual se pone doble igual en el condicional
Ejemplo de expresiones condicionales
(a<=7)
(a!=4)
(a>b).
(b= =s)

import java.util.Scanner;
public class Condicional{
public static void main(String[] args)
{
Scanner leer = new Scanner(System.in);
byte respuesta;
System.out.print("Qu opcin desea (1-2)==> ");
respuesta=leer.nextByte();
if (respuesta==1)
System.out.println("Ha escogido la opcin 1");
else if (respuesta==2)
System.out.println("Ha escogido la opcin 2");
else
System.out.println("Ha escogido un nmero no vlido");
leer.close();
}
}

Operadores lgicos
z

Las expresiones pueden unirse mediante


operadores lgicos.

OR(||)

AND(&&)

XOR(^)

NOT(!)

falso

falso

falso

falso

falso

verdadero

verdadero

falso

verdadero

falso

verdadero

Falso

falso

verdadero

verdadero

falso

verdadero

verdadero

verdadero

verdadero

verdadero

verdadero

falso

falso

Operadores lgicos
if (nota>5 && asistencia=='s')
System.out.println("No es necesario hacer examen");
If (nota>5 || asistencia==s)
System.out.println(Al menos un apartado es correcto");
If (!(nota>5) && asistencia=='s')
System.out.println(Con nota suspensa no se puede aprobar ");

import java.util.Scanner;
public class Condicional{
public static void main(String[] args)
{
Scanner leer = new Scanner(System.in);
byte respuesta;
System.out.print("Qu opcin desea (1-2)==> ");
respuesta=leer.nextByte();
if (respuesta==1)
System.out.println("Ha escogido la opcin 1");
else if (respuesta==2)
System.out.println("Ha escogido la opcin 2");
else
System.out.println("Ha escogido un nmero no vlido");
leer.close();
}
}

import java.util.Scanner;
public class AND{
public static void main(String[] args)
{
Scanner leer = new Scanner(System.in);
float temperatura;
float humedad;
System.out.println("Cul es la humedad ?");
humedad=leer.nextFloat();
System.out.println("Cul es la temperatura ?");
temperatura=leer.nextFloat();
if (humedad>=60.0 && temperatura>=32.0)
System.out.println("Se recomienda encender el aire acondidicionado a potencia alta");
else if (humedad>=50 && temperatura>=27.5)
System.out.println("Se recomienda encender el aire acondidicionado a potencia media");
else if (temperatura>=23.5)
System.out.println("Puede encender el aire acondidicionado a potencia baja");
else
System.out.println("No es necesario encender nada");
leer.close();
}
}

Ejercicio
Determinar si un ao es bisiesto o no. Un ao
es bisiesto si cumple con las siguientes
condiciones:

Es mltiplo de 4, pero no es mltiplo de 100.


Mltiplo de 400.

El programa debe:

Pedir un ao al usuario
Imprimir por pantalla si el ao es bisiesto

Ejercicio
z

Calcular la ecuacin cuadrtica con una


incgnita (ax2+ bx + c=0) recibiendo como
parmetros de entrada las constantes: a, b y
c.
=b+sqrt(b2-4ac)/2ac.
Si b2-4ac<0, las races son complejas.

switch
z

Forma limpia de dirigir la ejecucin a partes diferentes del


cdigo en base al valor de una variable o expresin
Sintaxis
switch(expresin) {
case expresin1:
sentencias;
break;
case expresin2:
sentencias;
break;
default:
sentencias;
}

La expresin evala valores enteros o que puedan transformarse a enteros

import java.util.Scanner;
public class SWITCH{
public static void main(String[] args)
{
Scanner leer = new Scanner(System.in);
byte dia;
System.out.print("Indique un da de la semana (1-7)==> ");
dia=leer.nextByte();
switch(dia){
case 1:System.out.println("Lunes"); break;
case 2:System.out.println("Martes"); break;
case 3:System.out.println("Mircoles"); break;
case 4:System.out.println("Jueves"); break;
case 5:System.out.println("Viernes"); break;
case 6:System.out.println("Sbado"); break;
case 7:System.out.println("Domingo"); break;
default: System.out.println("La semana tiene 7 das");
}
leer.close();
}
}

break
z
z
z
z

Salirse de un bloque de cdigo.


Se retoma la ejecucin pasado el final del
bloque actual.
Se utiliza comnmente en los switch
Se puede utilizar para forzar la salida de los
ciclos.

Secuencia de escape
\n

Salto de lnea

\t

Tabulador

\b

Retorno

\r

Retorno de carro

\f

Avance de lnea

\\

Barra invertida

\'

comilla

\"

comillas

System.out.println("\tNombre:\tAntonio\n\tEdad:\t18" );
Nombre: Antonio
Edad: 18

Sentencias de iteracin o bucles


z

Ejecutar repetidamente el mismo bloque de


cdigo hasta que se cumpla una condicin
de terminacin.

Inicializacin: condiciones iniciales


Cuerpo: Sentencias que se quieren repetir.
Iteracin: Incrementar o decrementar contadores
e ndices.
Condicin de terminacin: Expresin condicional
que comprueba cada vez a lo largo de un bucle.

while, do-while y for.

for
z

Sentencia ms compacta

Sintaxis
for(inicializacin; condicin de terminacin; iteracin ) {
cuerpo;
}
inicializacin se ejecuta una sola vez, cuando se empieza el bucle.
variable de control, en funcin de su valor se detiene o repite el bucle.
condicin de terminacin, expresin que debe evaluarse al principio y
en cada repeticin. Mientras sea verdadera se ejecuta el cuerpo.
Iteracin, actualizar la variable de control.
cuerpo sentencias que se desea repetir, si es ms de una deben ir
encerradas entre llaves {}.

Ejemplo
public class FOR
{
public static void main(String[] args)
{
int contador;
for(contador=0;contador<5;contador++)
System.out.println("Este es el valor de contador ==> "+contador);
}
}

Ejemplo
import java.util.Scanner;
public class FOR1
{
public static void main(String[] args)
{
Scanner leer = new Scanner(System.in);
int tabla;
System.out.println("Tablas de multiplicar");
System.out.print("Tabla=====> ");
tabla=leer.nextInt();
for(int ciclo=1;ciclo<=10;ciclo=ciclo+1)
System.out.println(""+tabla+" * "+ciclo+" = "+ciclo*tabla);
leer.close();
}
}

for
z

Inicializacin

Generalmente se inicializa la variable de control


La variable de control se puede declarar e inicializar
Puede omitirse
Varias expresiones separadas mediante el operador
coma (,). Izquierda a derecha.
z
z
z
z
z

for( x=0; x < 2; x++ )


for( int x=0; x < 2; x++ )
for(;x<2;x=x+1)
for( a=0,b=0; a < 7; a++,b+=2 )
for( x=0,x < 5; x++,y+=2 )

for
z

Condicin de terminacin

nica expresin con un resultado booleano.


Operadores relacionales.
Mientras sea verdadera.
Evaluar al principio y en cada repeticin
0 hasta
z
z
z

for(x=1;x<10;x=x+1)
for(int y=10;y>1;y=y-1)
for(int y=10;y= =1;y=y-1)

for
z

Iteracin

actualiza la variable de control.


Se ejecuta hasta el final.
Puede cambiarse el valor de la variable en las sentencias
(No es recomendable).
Mltiples expresiones separadas por coma. Izquierda a
derecha.
Incrementos. Forma completa x=x+1. Forma abreviada x++.
z
z

for( z=0; z < 100; z++,c+=2 )


for( z=0; z < 100; z=z+1,c=c+2 )

while
z
z
z

Ejecuta el cuerpo mientras la condicin de terminacin sea


verdadera.
Las clusulas de inicializacin e iteracin no forman parte de la
propia estructura del bucle. [son opcionales].
0 hasta
Sintaxis:
[inicializacin;]
while(condicin de terminacin) {
cuerpo;
[iteracin;]
}

while
z
z
z
z

La condicin de terminacin es una expresin


condicional->operadores relaciones.
Unir ms de una expresin -> operadores lgicos.
se evala antes de ejecutar cualquiera de las
sentencias situadas en el cuerpo del bucle.
Mientras la evaluacin sea positiva el cuerpo se
ejecuta.

while(x>10)
while(x>5 || b>6)
while(carac!=s && opcion>5)

import java.util.Scanner;
public class WHILE

public static void main(String[] args)


{
Scanner leer =new Scanner(System.in);
int tabla;
int ciclo;
System.out.println("Tablas de multiplicar ");
System.out.print("Tabla=====>");
tabla=leer.nextInt();
ciclo=1;
while(ciclo<=10){
System.out.println(ciclo +" X "+tabla + " = " + tabla*ciclo );
ciclo=ciclo+1;
}
}
}

do-while
z
z
z
z
z

Variacin del while.


La evaluacin de la expresin condicional se hace despus de
ejecutar el cuerpo.
1 hasta.
Evaluar la expresin de terminacin al final.
Las clusulas de inicializacin e iteracin no forman parte de la
propia estructura del bucle. Responsabilidad del programador.
Sintaxis:
[inicializacin;]
do {
cuerpo;
[iteracin;]
}while(condicin de terminacin );

import java.util.Scanner;
public class DO {
public static void main(String[] args)
{
Scanner leer =new Scanner(System.in);
int tabla;
int ciclo;
System.out.println("Tablas de multiplicar);
System.out.print("Tabla=====>");
tabla=leer.nextInt();
ciclo=1;
do{
System.out.println(ciclo +" X "+tabla + " = " + tabla*ciclo );
ciclo++;
} while(ciclo<=10);
}
}

Ejercicio
z

Modificar el programa para calcular la tabla


de multiplicar para que se muestren solo los
nmeros pares. 2 opciones diferentes.

Ejercicio
z

Sumas: Esta clase suma todos los nmeros


desde el 1 hasta llegar al nmero indicado
por el usuario (nmero final). Primero se pide
el nmero final al usuario, el programa
realiza la suma y muestra el resultado de la
misma por pantalla: Ejemplo:

Nmero del usuario =7.


Sumar: 1+2+3+4+5+6+7.
Mostrar en pantalla el resultado=28.

Ejercicio

Factorial. Calcular el factorial y mostrarlo por


pantalla. El factorial de un nmero entero
positivo se define como el producto de todos
los nmeros naturales anteriores o iguales a
l. Por definicin el factorial de 0 es 1: 0!=1.
Por ejemplo, 5! = 5.4.3.2.1 = 120.

Sentencia break y continue


break. Salir de un bloque de cdigo. Dentro del
cuerpo de cualquiera de los bucles ocasiona
su terminacin independientemente que se
cumpla o no la condicin.
continue. Interrumpir la secuencia normal del
bucle. La iteracin en que se encuentra el
bucle finaliza y se inicia la siguiente.

for(ciclo=1;ciclo<=10;ciclo++){
if(ciclo==5)
break;
System.out.println(ciclo +" X "+tabla + " = " + tabla*ciclo );
}

Tablas de multiplicar
Tabla=====> 5
1X5=5
2 X 5 = 10
3 X 5 = 15
4 X 5 = 20
6 X 5 = 30
7 X 5 = 35
8 X 5 = 40
9 X 5 = 45
10 X 5 = 50

Tablas de multiplicar
Tabla=====> 5
1X5=5
2 X 5 = 10
3 X 5 = 15
4 X 5 = 20

for(ciclo=1;ciclo<=10;ciclo++){
if(ciclo==5)
continue;
System.out.println(ciclo+" X "+tabla + " = " +tabla*ciclo );
}

Comentarios en Java
Informacin a los programadores. Tres tipos de comentarios:
Sintaxis:
// comentarios de una sola lnea
/*
comentarios de una o ms lneas
*/
/**comentario de documentacin, de una o ms lneas
*/
Los de documentacin se colocan antes de una declaracin (variable o mtodo).
Indican que ese comentario ha de ser colocado en la documentacin que se
genera con la herramienta javadoc.
@version: versin.
@author: autor.
@param: parmetros recibidos por el mtodo.
@return: significado del valor de retorno del mtodo.

/**
* Descripcin de la clase
*
* @author (Nombre del autor)
* @version (versin o fecha)
*/
public class t
{
/**
* Descripcin del mtodo
*
* @param y contiene el valor central
* @return regresa el valor central +5
*/
public int sampleMethod(int y)
{
// comentario de una lnea
return 5 + y; //puede ir en cualquier sitio
}
}

Resumen
z
z
z

Tipos de datos
Operadores
Variables

z
z
z
z
z
z
z

Acumuladores
Contadores

Constantes
Mtodo main
Clase Scanner
Impresin por pantalla
Bucles, if-else, switch
break; continue
Comentarios

Respuesta bisiesto
import java.util.Scanner;
public class Bisiesto{
public static void main(String[] args)
{
Scanner leer = new Scanner(System.in);
int fecha;
System.out.print("Escribe el ao= => ");
fecha=leer.nextInt();
if ((( fecha % 4 == 0 ) && ( fecha % 100 != 0 )) || ( fecha % 400 == 0 ))
System.out.println(fecha +" Es bisiesto");
else
System.out.println(fecha + " No es bisiesto");
leer.close();
}
}

import java.util.Scanner;
public class Ecuacion
{
public static void main(String[] args)
{
Scanner leer = new Scanner(System.in);
float a,b,c;
System.out.println("Calculo de la ecuacin de segundo grado ax^2+bx+c");
System.out.print("a ===> ");
a=leer.nextFloat();
System.out.print("b ===> ");
b=leer.nextFloat();
System.out.print("c ===> ");
c=leer.nextFloat();
System.out.println("La ecuacin que se calcula es "+a+" x^2 +"+b+" x +"+c);
if(a==0.0)
System.out.println("No es una ecuacin de segundo grado");
else
if(Math.pow(b,2)<4*a*c){
System.out.println("Resultados complejos");
System.out.println("x1=" + -b/(2*a) + " - "+ Math.sqrt(Math.abs(Math.pow(b,2)-4*a*c))/(2*a)+ "i");
System.out.println("x2=" + -b/(2*a) + " + "+ Math.sqrt(Math.abs(Math.pow(b,2)-4*a*c))/(2*a)+ "i");
}
else{
System.out.println("x1="+((-b+Math.sqrt(Math.pow(b,2)-4*a*c))/(2*a)));
System.out.println("x2="+((-b-Math.sqrt(Math.pow(b,2)-4*a*c))/(2*a)));
}
}
}

Respuesta multiplicacin

public static void main(String[] args){


for(int ciclo=0;ciclo<=10;ciclo+=2){
System.out.println(ciclo +" X 6" + " = " + 6*ciclo );
}
for(int ciclo=0;ciclo<=10;ciclo++){
if (ciclo%2==0)
System.out.println(ciclo +" X 6" + " = " + 6*ciclo );
}

Respuesta factorial
import java.util.Scanner;
public class Factorial
{
public static void main(String[] args)
{
Scanner leer = new Scanner(System.in);
int factorial,resultado,ciclo;
System.out.println("\nCalculo del Factorial");
System.out.print("Indique el nmero ==>");
factorial=leer.nextByte();
resultado=1;
for(ciclo=1;ciclo<=factorial;ciclo++)
resultado=resultado*ciclo;
System.out.println(factorial+"!="+resultado);
}
}

Respuesta suma
import java.util.Scanner;
public class Sumas {
public static void main(String[] args)
{
Scanner leer =new Scanner(System.in);
int suma, indice,tope;
do{
suma=0;
System.out.print("Hasta que nmero quieres sumar ===> ");
tope=leer.nextInt();
for(indice=1;indice<=tope;indice++)
suma=suma+indice;
System.out.println("sumatorio(0-"+tope+")="+suma);
}while(tope!=0);
}
}

Anda mungkin juga menyukai