Lenguajes_1 java

download Lenguajes_1 java

of 62

Transcript of Lenguajes_1 java

  • 8/17/2019 Lenguajes_1 java

    1/62

    Lenguajes de programación

    Java

  • 8/17/2019 Lenguajes_1 java

    2/62

    Características del lenguaje Java

    Orientado a objetos. La funcionalidad del sistemase organiza en objetos que colaboran entre simediante el envío de mensajes. La funcionalidadcrece fácilmente añadiendo más objetos al sistema.

    Compilado. Se generan ficheros con las clasescompiladas, los cuales son interpretados por lamáquina virtual de java (JVM). Siendo ésta la

    responsable de la ejecución. Multiplataforma. El mismo código java funciona endistintos sistemas operativos, siempre que tenganinstalada la máquina virtual java (JVM).

  • 8/17/2019 Lenguajes_1 java

    3/62

    Programa

    Secuencia de instrucciones que llevan acabo una tarea.

    instrucción1

    instrucción2

    instrucción3

    instrucción4

    Tarea

  • 8/17/2019 Lenguajes_1 java

    4/62

    Tarea sumar dos números

    Pedir primer número

    Pedir segundo número

    Realizar operación

    System.out.println("Teclea el primer número");numero1=leer.nextInt();

    System.out.println("Teclea el segundo número");

    numero2=leer.nextInt();resultado=numero1+numero2;

    Programa

  • 8/17/2019 Lenguajes_1 java

    5/62

    Programa

    Variable: almacena información que semodifica durante la ejecución de unprograma.

    Constante: almacena información que no semodifica a la largo de la ejecución. Debenser inicializadas.

    Sentencias: comandos que pueden serinterpretados por el ordenador. Condicional y

    selección, iterativas, asignación.

  • 8/17/2019 Lenguajes_1 java

    6/62

    Tipos de datos

     Enteros. Se usan para representar números enteros con signo

     byte 8 bits -128..127

    short16 bits -32.768..32.767

    int32 bits -2.147.483.648..2.147.483.647

    long

    64 bits -9.223.372.036.854.775.808..9.223.372.036.854.775.807

  • 8/17/2019 Lenguajes_1 java

    7/62

    Tipos de datos

    Booleanos. valores true y false. Si no son inicializados toman elvalor de false.

    Char . Unicode simples de 16 bits, el tipo de datos char es unentero sin signo de 16 bits.

     Reales. Se usan para representar números con partes fraccionarias

    float 32 bits IEEE 754 3.4e-038..3.4e+038

    double 64 bits IEEE 754 1.7e-308..1.7e+308

  • 8/17/2019 Lenguajes_1 java

    8/62

    Declaración y asignación de variables

    Empezar con una letra Contener cualquier número de letras o dígitos Incluir “_” o “$”. Sensible al uso de mayúsculas. No hay limitación de longitud. Variables empiezan por minúscula-> las siguientes van en

    mayúscula.

    Ejemplos: –  miNombre –  sueldoBase –  anchoVentana_1

     –  sueldo_2001 –  paga_Extra$

  • 8/17/2019 Lenguajes_1 java

    9/62

    Declaración y asignación de variables

    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;

  • 8/17/2019 Lenguajes_1 java

    10/62

    Declaración y asignación deconstantes

    Modificadores tipo nombre_constante=valor;

    Letra mayúscula.

    Ejemplos: –  final static int CERO =0; –  final static int PRIMERO =1;

     –  final static double PI =3.14159; –  final char POSITIVO= ‘s’;

  • 8/17/2019 Lenguajes_1 java

    11/62

     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

  • 8/17/2019 Lenguajes_1 java

    12/62

    /*** @author (Fundamentos de Programación)

    * @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 número");numero1=leer.nextInt();System.out.println("Teclea el segundo número");numero2=leer.nextInt();

    resultado=numero1+numero2;System.out.println("El resultado de"+numero1+"+"+numero2+"es"+ resultado );leer.close();

    }}

  • 8/17/2019 Lenguajes_1 java

    13/62

    Operadores

    Caracteres que indican al compilador que se

    desea realizar una operación.

     –  Unico operando ->operadores unarios.

     –   Antes del operando ->operadores prefijo

     –  Después -> operadores sufijo.

    Operadores aritméticos

    Operadores relacionales

    Operadores lógicos

    Operadores a nivel de bit

  • 8/17/2019 Lenguajes_1 java

    14/62

    Operadores aritméticos

    Operador Significado Operador Significado

    + Suma += suma y asignación

    - resta (también el menosunario)

    -= resta y asignación

    * Multiplicación *= Multiplicación y asignación

     / División /= división y asignación

    % Módulo %= módulo y asignación

    ++ Incremento -- Decremento

  • 8/17/2019 Lenguajes_1 java

    15/62

    Operadores relacionales

    Operador Significado

    = = igual a

    != distinto de

    > mayor que

    < menor que

    >= mayor o igual que

  • 8/17/2019 Lenguajes_1 java

    16/62

    Operadores lógicos

    Operador Significado Operador Significado

    & AND lógico &= Asignación AND

    | OR lógico |= Asignación OR

    ^XOR lógico (OR

    exclusivo)^= Asignación XOR

    || OR inmediato = = igual a

    && AND inmediato != distinto de

    ! NOT unariológico ?: if-then-elseternario

  • 8/17/2019 Lenguajes_1 java

    17/62

    La más alta

    ( ) [ ] .

    ++ -- ~ !

    * / %

    + -

    >> >>> >= <

  • 8/17/2019 Lenguajes_1 java

    18/62

    Precedencia

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

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

  • 8/17/2019 Lenguajes_1 java

    19/62

    Clase

    Todo en Java forma parte de una clase. Las instrucciones de los programas Java se colocan

    dentro del bloque de una clase. Los métodos sedefinen dentro

    import puede colocarse al principio de un fichero,fuera del bloque de la clase. El compilador

    reemplazará esa sentencia con el contenido delfichero que se indique, que consistirá, como es desuponer, en más clases.

  • 8/17/2019 Lenguajes_1 java

    20/62

    Clase

    /**** Clase Hola.*/class Hola //{

    /*** Método main*/public static void main(String[] args){

    System.out.println("Hola mundo");}

    }

  • 8/17/2019 Lenguajes_1 java

    21/62

    Método main

    Principal o punto de entrada del programa Es el que primero se ejecuta.

    Cada clase puede tener su propio método. En una aplicación con varias clases lo

    habitual es que sólo una de ellas cuente conmétodo main.

    public static void main(String[] args)

  • 8/17/2019 Lenguajes_1 java

    22/62

    Separadores

    () - paréntesis. –  Listas de parámetros en la definición y llamada a métodos. –  definir precedencia en expresiones. –  expresiones para control de flujo. –  rodear las conversiones de tipo.

    {} - llaves. –  valores de matrices. –  bloque de código, para clases, métodos y ámbitos locales.

    [] - corchetes. –  tipos matriz.

     –  referenciar valores de matriz. ; - punto y coma. Separa sentencias

    , - coma. –  identificadores consecutivos en una declaración de variables. –  Encadenar sentencias dentro de una sentencia for .

    . - punto. –  Separar nombres de paquete de subpaquetes y clases. –  Separar una variable o método de una variable de referencia.

  • 8/17/2019 Lenguajes_1 java

    23/62

    Clase Scanner 

    Leer datos de la entrada estándar. Paquete util.

     –  import java.util.Scanner 

    Crear un objeto –  Scanner leer = new Scanner(System.in);

    nextByte Byte

    nextDouble Double

    nextFloat Float

    nextInt Entero

    nextBoolean Boléanos

    nextLine Siguiente línea

    toString Representación string

    close Cierra el Scanner  

  • 8/17/2019 Lenguajes_1 java

    24/62

    Control del flujo

    La ejecución avanza y se ramifica en funciónde los cambios de estado de los datos.

     –  selección, –  condicional, –  iteración y

     –  llamadas a métodos.

  • 8/17/2019 Lenguajes_1 java

    25/62

    Sentencia condicional if/else

    En función de una expresión se decide la siguiente sentencia aejecutar.

    La expresión produce un resultado boolean (verdadero o falso).

    Sintaxis

    if(expresión condicional ) {sentencias;

    } o

    if(expresión condicional ) {sentencias;

    }else {

    sentencias;}

  • 8/17/2019 Lenguajes_1 java

    26/62

    Sentencia condicional if/else

    if (nota>5)System.out.println("Aprobado");

    elseSystem.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(ab).(b= =’s’)

  • 8/17/2019 Lenguajes_1 java

    27/62

    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é opción desea (1-2)==> ");

    respuesta=leer.nextByte();if (respuesta==1)System.out.println("Ha escogido la opción 1");

    else if (respuesta==2)

    System.out.println("Ha escogido la opción 2");elseSystem.out.println("Ha escogido un número no válido");leer.close();

    }}

  • 8/17/2019 Lenguajes_1 java

    28/62

    Operadores lógicos

    Las expresiones pueden unirse medianteoperadores lógicos.

    A B 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

  • 8/17/2019 Lenguajes_1 java

    29/62

    Operadores lógicos

    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 ");

  • 8/17/2019 Lenguajes_1 java

    30/62

    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é opción desea (1-2)==> ");respuesta=leer.nextByte();

    if (respuesta==1)System.out.println("Ha escogido la opción 1");else if (respuesta==2)System.out.println("Ha escogido la opción 2");

    elseSystem.out.println("Ha escogido un número no válido");leer.close();

    }

    }

    import java.util.Scanner;

  • 8/17/2019 Lenguajes_1 java

    31/62

    public class AND{

    public static void main(String[] args)

    {

    Scanner leer = new Scanner(System.in);float temperatura;float humedad;System.out.println("¿Cuál es la humedad ?");humedad=leer.nextFloat();System.out.println("¿Cuál 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");elseSystem.out.println("No es necesario encender nada");

    leer.close();}

    }

  • 8/17/2019 Lenguajes_1 java

    32/62

    Ejercicio

    Determinar si un año es bisiesto o no. Un añoes bisiesto si cumple con las siguientescondiciones: –  Es múltiplo de 4, pero no es múltiplo de 100. –  Múltiplo de 400.

    El programa debe: –  Pedir un año al usuario –  Imprimir por pantalla si el año es bisiesto

  • 8/17/2019 Lenguajes_1 java

    33/62

    Ejercicio

    Calcular la ecuación cuadrática con unaincógnita (ax2+ bx + c=0) recibiendo comoparámetros de entrada las constantes: a, b yc.

    • =–b+sqrt(b2-4ac)/2ac.• Si b2-4ac

  • 8/17/2019 Lenguajes_1 java

    34/62

    switch

    Forma limpia de dirigir la ejecución a partes diferentes delcódigo en base al valor de una variable o expresión

    Sintaxis

    switch(expresión) {case expresión1:sentencias;break;

    case expresión2:sentencias;break;

    default:sentencias;

    }La expresión evalúa valores enteros o que puedan transformarse a enteros

    import java.util.Scanner;

  • 8/17/2019 Lenguajes_1 java

    35/62

    p j ;public class SWITCH{

    public static void main(String[] args){

    Scanner leer = new Scanner(System.in);byte dia;System.out.print("Indique un día 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("Miércoles"); break;case 4:System.out.println("Jueves"); break;case 5:System.out.println("Viernes"); break;case 6:System.out.println("Sábado"); break;case 7:System.out.println("Domingo"); break;default: System.out.println("La semana tiene 7 días");

    }leer.close();

    }}

  • 8/17/2019 Lenguajes_1 java

    36/62

    break

    Salirse de un bloque de código. Se retoma la ejecución pasado el final del

    bloque actual. Se utiliza comúnmente en los switch

    Se puede utilizar para forzar la salida de losciclos.

  • 8/17/2019 Lenguajes_1 java

    37/62

    Secuencia de escape

    \n Salto de línea

    \t Tabulador  

    \b Retorno\r Retorno de carro

    \f Avance de línea

    \\ Barra invertida

    \' comilla

    \" comillas

    System.out.println("\tNombre:\tAntonio\n\tEdad:\t18" );

    Nombre: AntonioEdad: 18

  • 8/17/2019 Lenguajes_1 java

    38/62

    Sentencias de iteración o bucles

    Ejecutar repetidamente el mismo bloque decódigo hasta que se cumpla una condiciónde terminación. –  Inicialización: condiciones iniciales –  Cuerpo: Sentencias que se quieren repetir. –  Iteración: Incrementar o decrementar contadores

    e índices. –  Condición de terminación: Expresión condicional

    que comprueba cada vez a lo largo de un bucle.

    while, do-while y for.

  • 8/17/2019 Lenguajes_1 java

    39/62

    for 

    Sentencia más compactaSintaxis

    for(inicialización; condición de terminación; iteración ) {

    cuerpo;}

    inicialización se ejecuta una sola vez, cuando se empieza el bucle.

    variable de control, en función de su valor se detiene o repite el bucle.

    condición de terminación, expresión que debe evaluarse al principio yen cada repetición. Mientras sea verdadera se ejecuta el cuerpo.

    Iteración, actualizar la variable de control.

    cuerpo sentencias que se desea repetir, si es más de una deben irencerradas entre llaves {}.

  • 8/17/2019 Lenguajes_1 java

    40/62

    Ejemplo

    public class FOR{

    public static void main(String[] args){

    int contador;for(contador=0;contador

  • 8/17/2019 Lenguajes_1 java

    41/62

    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

  • 8/17/2019 Lenguajes_1 java

    42/62

    for 

    Inicialización –  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.

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

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

  • 8/17/2019 Lenguajes_1 java

    43/62

    for 

    Condición de terminación –  Única expresión con un resultado booleano. –  Operadores relacionales. –  Mientras sea verdadera. –  Evaluar al principio y en cada repetición

     –  0 hasta for(x=1;x1;y=y-1)

    for(int y=10;y= =1;y=y-1)

  • 8/17/2019 Lenguajes_1 java

    44/62

    for 

    Iteración –  actualiza la variable de control.

     –  Se ejecuta hasta el final.

     –  Puede cambiarse el valor de la variable en las sentencias(No es recomendable).

     –  Múltiples expresiones separadas por coma. Izquierda aderecha.

     –  Incrementos. Forma completa x=x+1. Forma abreviada x++. for( z=0; z < 100; z++,c+=2 )

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

  • 8/17/2019 Lenguajes_1 java

    45/62

    while

    Ejecuta el cuerpo mientras la condición de terminación seaverdadera.

    Las cláusulas de inicialización e iteración no forman parte de lapropia estructura del bucle. [son opcionales].

    0 hasta

    Sintaxis:

    [inicialización;]while(condición de terminación) {cuerpo;[iteración;]}

  • 8/17/2019 Lenguajes_1 java

    46/62

    while

    La condición de terminación es una expresióncondicional->operadores relaciones.

    Unir más de una expresión -> operadores lógicos.

    se evalúa antes de ejecutar cualquiera de lassentencias situadas en el cuerpo del bucle. Mientras la evaluación sea positiva el cuerpo se

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

    import java.util.Scanner;

  • 8/17/2019 Lenguajes_1 java

    47/62

    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

  • 8/17/2019 Lenguajes_1 java

    48/62

    do-while

    Variación del while. La evaluación de la expresión condicional se hace después de

    ejecutar el cuerpo. 1 hasta. Evaluar la expresión de terminación al final. Las cláusulas de inicialización e iteración no forman parte de la

    propia estructura del bucle. Responsabilidad del programador.

    Sintaxis:[inicialización;]

    do {cuerpo;

    [iteración;]}while(condición de terminación );

    import java util Scanner;

  • 8/17/2019 Lenguajes_1 java

    49/62

    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

  • 8/17/2019 Lenguajes_1 java

    50/62

    Ejercicio

    Modificar el programa para calcular la tablade multiplicar para que se muestren solo losnúmeros pares. 2 opciones diferentes.

  • 8/17/2019 Lenguajes_1 java

    51/62

    Ejercicio

    Sumas: Esta clase suma todos los númerosdesde el 1 hasta llegar al número indicadopor el usuario (número final). Primero se pide

    el número final al usuario, el programarealiza la suma y muestra el resultado de lamisma por pantalla: Ejemplo:

     –  Número del usuario =7. –  Sumar: 1+2+3+4+5+6+7. –  Mostrar en pantalla el resultado=28.

  • 8/17/2019 Lenguajes_1 java

    52/62

    Ejercicio

    • Factorial. Calcular el factorial y mostrarlo porpantalla. El factorial de un número enteropositivo se define como el producto de todoslos números naturales anteriores o iguales aél. Por definición el factorial de 0 es 1: 0!=1.

    Por ejemplo, 5! = 5.4.3.2.1 = 120.

  • 8/17/2019 Lenguajes_1 java

    53/62

    Sentencia break y continue

    break. Salir de un bloque de código. Dentro delcuerpo de cualquiera de los bucles ocasionasu terminación independientemente que se

    cumpla o no la condición.

    continue. Interrumpir la secuencia normal delbucle. La iteración en que se encuentra elbucle finaliza y se inicia la siguiente.

    Tablas de multiplicar

  • 8/17/2019 Lenguajes_1 java

    54/62

    for(ciclo=1;ciclo 5

    1 X 5 = 52 X 5 = 103 X 5 = 154 X 5 = 20

    for(ciclo=1;ciclo 51 X 5 = 52 X 5 = 103 X 5 = 154 X 5 = 20

    6 X 5 = 307 X 5 = 358 X 5 = 409 X 5 = 4510 X 5 = 50

  • 8/17/2019 Lenguajes_1 java

    55/62

    Comentarios en Java

    Información a los programadores. Tres tipos de comentarios:Sintaxis:// comentarios de una sola línea/*

    comentarios de una o más líneas*//**comentario de documentación, de una o más líneas*/

    Los de documentación se colocan antes de una declaración (variable o método).Indican que ese comentario ha de ser colocado en la documentación que segenera con la herramienta javadoc.•@version: versión.•@author: autor.•@param: parámetros recibidos por el método.•@return: significado del valor de retorno del método.

    /*** Descripción de la clase

  • 8/17/2019 Lenguajes_1 java

    56/62

    Descripción de la clase*

    * @author (Nombre del autor)* @version (versión o fecha)*/

    public class t

    {

    /*** Descripción del método** @param y contiene el valor central* @return regresa el valor central +5*/

    public int sampleMethod(int y)

    {// comentario de una líneareturn 5 + y; //puede ir en cualquier sitio

    }

    }

  • 8/17/2019 Lenguajes_1 java

    57/62

    Resumen

    Tipos de datos Operadores Variables

     –  Acumuladores

     –  Contadores Constantes Método main Clase Scanner 

    Impresión por pantalla Bucles, if-else, switch break; continue Comentarios

  • 8/17/2019 Lenguajes_1 java

    58/62

    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 año= => ");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)

  • 8/17/2019 Lenguajes_1 java

    59/62

    p ( g[] g ){

    Scanner leer = new Scanner(System.in);float a,b,c;System.out.println("Calculo de la ecuación 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 ecuación que se calcula es "+a+" x^2 +"+b+" x +"+c);if(a==0.0)System.out.println("No es una ecuación de segundo grado");

    elseif(Math.pow(b,2)

  • 8/17/2019 Lenguajes_1 java

    60/62

    Respuesta multiplicación

    public static void main(String[] args){for(int ciclo=0;ciclo

  • 8/17/2019 Lenguajes_1 java

    61/62

    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 número ==>");

    factorial=leer.nextByte();resultado=1;for(ciclo=1;ciclo

  • 8/17/2019 Lenguajes_1 java

    62/62

    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 número quieres sumar ===> ");

    tope=leer.nextInt();for(indice=1;indice