Clase 4 Metodos

96
Algoritmia y Programación FUNCIONES O MÉTODOS

Transcript of Clase 4 Metodos

  • Algoritmia y Programacin

    FUNCIONES O MTODOS

  • Slide 2

    Algoritmia y programacinUniversidad del Valle

    CONTENIDO Funciones/mtodos

    Definicin

    Partes de una funcin

    Ejemplos

    mbito de variables

    Variables Locales

    Variables Globales

  • Slide 3

    Algoritmia y programacinUniversidad del Valle

    DEFINICIN

    Una funcin mtodo es una porcin de cdigo(subalgoritmo) que forma parte de un algoritmoprincipal y el cual se encarga de resolver una tareaespecfica.

  • Slide 4

    Algoritmia y programacinUniversidad del Valle

    DEFINICIN

    Una funcin mtodo es una porcin de cdigo(subalgoritmo) que forma parte de un algoritmoprincipal y el cual se encarga de resolver una tareaespecfica.

    Divide y vencers: Es una estrategia pararesolver problemas grandes, dividindolo enproblemas ms pequeos

  • Slide 5

    Algoritmia y programacinUniversidad del Valle

    Los mtodos reciben datos del programa principal,realizan operaciones y le devuelven los resultados.

    Es como una oficina: El programa principal es eljefe, que da instrucciones a sus subordinados(mtodos), ellos realizan una tarea, y cuandoterminan le devuelven el resultado y control al jefe.

    DEFINICIN

  • Slide 6

    Algoritmia y programacinUniversidad del Valle

    VENTAJAS DE USAR MTODOS

    Los problemas pequeos son ms fciles de entender,de desarrollar y de mantener (localizar errores).

    Se evita cdigo innecesario, pues los mtodos seescriben una sola vez, y pueden ser utilizados(llamados) desde diferentes partes del programa, lasveces que sea necesario

  • Slide 7

    Algoritmia y programacinUniversidad del Valle

    PROBLEMA Desarrolle un programa que lea los datos de 2 catetos (a,b)

    y determine cual de los 2 es mayor y muestre su hipotenusa.

  • Slide 8

    Algoritmia y programacinUniversidad del Valle

    PROBLEMA Desarrolle un programa que lea los datos de 2 catetos (a,b)

    y determine cual de los 2 es mayor y muestre su hipotenusa.

    1. Anlisis del problema

    Entrada: a, b

  • Slide 9

    Algoritmia y programacinUniversidad del Valle

    PROBLEMA Desarrolle un programa que lea los datos de 2 catetos (a,b)

    y determine cual de los 2 es mayor y muestre su hipotenusa.

    1. Anlisis del problema

    Entrada: a, b

    Salidas : hipotenusa, mayor

    Proceso: ??

  • Slide 10

    Algoritmia y programacinUniversidad del Valle

    PROBLEMA Desarrolle un programa que lea los datos de 2 catetos (a,b)

    y determine cual de los 2 es mayor y muestre su hipotenusa.

    1. Anlisis del problema

    Entrada: a, b

    Salidas : hipotenusa, mayor

    Proceso: calcular hipotenusa

    determinar mayor de 2 nmeros

  • Slide 11

    Algoritmia y programacinUniversidad del Valle

    PROBLEMA Desarrolle un programa que lea los datos de 2 catetos (a,b)

    y determine cual de los 2 es mayor y muestre su hipotenusa.

    1. Anlisis del problema

    Entrada: a, b

    Salidas : hipotenusa, mayor

    Proceso: real calcularHipotenusa(a, b :entero)

  • Slide 12

    Algoritmia y programacinUniversidad del Valle

    PROBLEMA Desarrolle un programa que lea los datos de 2 catetos (a,b)

    y determine cual de los 2 es mayor y muestre su hipotenusa.

    1. Anlisis del problema

    Entrada: a, b

    Salidas : hipotenusa, mayor

    Proceso: real calcularHipotenusa(a, b :entero)

    a y b son datos necesariospara calcular la hipotenusa

  • Slide 13

    Algoritmia y programacinUniversidad del Valle

    PROBLEMA Desarrolle un programa que lea los datos de 2 catetos (a,b)

    y determine cual de los 2 es mayor y muestre su hipotenusa.

    1. Anlisis del problema

    Entrada: a, b

    Salidas : hipotenusa, mayor

    Proceso: real calcularHipotenusa(a, b :entero) {

    h: real

    h=( a2+b2)

    }

  • Slide 14

    Algoritmia y programacinUniversidad del Valle

    PROBLEMA Desarrolle un programa que lea los datos de 2 catetos (a,b)

    y determine cual de los 2 es mayor y muestre su hipotenusa.

    1. Anlisis del problema

    Entrada: a, b

    Salidas : hipotenusa, mayor

    Proceso: entero determinarMayor(a, b :entero) {

    m: entero

    SI a>b

    m= a

    SINO

    m=b

    }

  • Slide 15

    Algoritmia y programacinUniversidad del Valle

    PROBLEMA Desarrolle un programa que lea los datos de 2 catetos (a,b)

    y determine cual de los 2 es mayor y muestre su hipotenusa.

    1. Anlisis del problema

    Entrada: a, b

    Salidas : hipotenusa, mayor

    Proceso: real calcularHipotenusa(a, b :entero) {

    h: real

    h= ( a2+b2)

    }

    Cmo se escribe unmtodo en Java?

  • Slide 16

    Algoritmia y programacinUniversidad del Valle

    Tiene un nombre,

    Recibe unos parmetros o argumentos (opcionalmente),

    Contiene sentencias o instrucciones para realizar algo, y

    Devuelve un valor de algn Tipo de dato conocido (opcionalmente).

    Tiene un modificador de acceso

    PARTES DE UN MTODO

    Modificador_de_acceso Tipo_de_retorno nombre(parmetros,)

    {

    declaracin_variables_locales

    cuerpo_del_mtodo

    valor_de_retorno

    }

    Sintaxis global es:

  • Slide 17

    Algoritmia y programacinUniversidad del Valle

    public static double calcularHipotenusa(int a, int b)

    {

    double calculo;

    calculo = Math.sqrt((a*a)+(b*b));

    return calculo;

    }

    PARTES DE UN MTODO

  • Slide 18

    Algoritmia y programacinUniversidad del Valle

    public static double calcularHipotenusa(int a, int b)

    {

    double calculo;

    calculo = Math.sqrt((a*a)+(b*b));

    return calculo;

    }

    Modificador de acceso:

    public cualquiera puede acceder usar e invocar almtodoprivate Slo puede acceder invocarse el mtododesde otro mtodo de la clase.protected - proporciona acceso pblico para las clasesderivadas y acceso privado (prohibido) para el resto declases.

    PARTES DE UN MTODO

  • Slide 19

    Algoritmia y programacinUniversidad del Valle

    public static double calcularHipotenusa(int a, int b)

    {

    double calculo;

    calculo = Math.sqrt((a*a)+(b*b));

    return calculo;

    }

    Tipo de Retorno

    Corresponde al tipo de dato del valor que el mtododebe retornar, que puede ser:int, float, double, char, String. etcvoid Indica que el mtodo no retorna ningnvalor

    PARTES DE UN MTODO

  • Slide 20

    Algoritmia y programacinUniversidad del Valle

    public static double calcularHipotenusa(int a, int b)

    {

    double calculo;

    calculo = Math.sqrt((a*a)+(b*b));

    return calculo;

    }

    Tipo de dato del valor que devuelve

    Valor que devuelve

    PARTES DE UN MTODO

  • Slide 21

    Algoritmia y programacinUniversidad del Valle

    public static double calcularHipotenusa(int a, int b)

    {

    double calculo;

    calculo = Math.sqrt((a*a)+(b*b));

    return calculo;

    }

    Nombre

    Es el nombre con el que se har referencia almtodo dentro del programa. El cual debe estarrelacionado con las operaciones que va a realizar

    PARTES DE UN MTODO

    sqrt es el nombre del mtodo queretorna el valor de la raz cuadrada.

  • Slide 22

    Algoritmia y programacinUniversidad del Valle

    public static double calcularHipotenusa(int a, int b)

    {

    double calculo;

    calculo = Math.sqrt((a*a)+(b*b));

    return calculo;

    }

    Parmetros / argumentos

    Hay mtodos que reciben algunos valores para poderhacer operaciones con ellos. Si son varios se separancon comas ( , ).

    PARTES DE UN MTODO

    Parmetro del mtodo sqrt.

  • Slide 23

    Algoritmia y programacinUniversidad del Valle

    public static double calcularHipotenusa(int a, int b)

    {

    double calculo;

    calculo = Math.sqrt((a*a)+(b*b));

    return calculo;

    }

    PARTES DE UN MTODO

    Este mtodo recibe 2 argumentos de tipo entero

  • Slide 24

    Algoritmia y programacinUniversidad del Valle

    public static double calcularHipotenusa(int a, int b)

    {

    double calculo;

    calculo = Math.sqrt((a*a)+(b*b));

    return calculo;

    }

    PARTES DE UN MTODO

    Cmo llamar a un mtodo desde el programa principal?

  • Slide 25

    Algoritmia y programacinUniversidad del Valle

    Desarrolle un programa que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa

    2. Disear el algoritmo y escribirlo en pseudocdigo

    Inicioa,b,mayor : enterohipotenusa : real

    leer (a)leer (b)

    hipotenusa = calcularHipotenusa(a,b)mayor = determinarMayor(a,b)

    imprimir(hipotenusa, mayor)

    Fin

    La variable hipotenusa va a tomar el valor que le devuelva el mtodo calcularHipotenusa(a,b)

    LLAMADO DE MTODOS

  • Slide 26

    Algoritmia y programacinUniversidad del Valle

    LLAMADO DE MTODOS

    import javax.swing.JOptionPane;

    public class Hipotenusa{

    public static double calcularHipotenusa(int a, int b){

    double h;

    h= Math.sqrt((a*a)+(b*b));

    return h;

    }

    public static int determinarMayor(int a,int b){

    int m;

    if(a>b){

    m=a;}

    else{

    m=b;}

    return m;

    }

  • Slide 27

    Algoritmia y programacinUniversidad del Valle

    LLAMADO DE MTODOS

    public static void main (String args[]){

    int a, b, mayor;

    double hipotenusa;

    a=Integer.parseInt(JOptionPane.showInputDialog(

    Digite el valor de a: ));

    b=Integer.parseInt(JOptionPane.showInputDialog(

    Digite el valor de b: ));

    hipotenusa = calcularHipotenusa(a,b);

    mayor= determinarMayor(a,b);

    JOptionPane.showMessageDialog(null,Hipotenusa: + hipotenusa +

    \n Mayor:+ mayor );

    }

    }

    Inicioa,b,mayor : enterohipotenusa : real

    leer (a)leer (b)

    hipotenusa = calcularHipotenusa(a,b)mayor = determinarMayor(a,b)

    imprimir(hipotenusa, mayor)

    Fin

  • Slide 28

    Algoritmia y programacinUniversidad del Valle

    Desarrollar una aplicacin en Java (usando mtodos), quereciba un entero correspondiente a una categora y el totalde ventas de un empleado y retorne la comisin que recibe.

    Tome en cuenta la siguiente tabla.

    categora Comisin

    1 10%

    2 20%

    3 35%

    4 45%

    5 50%

    6 60%

    EJEMPLO

  • Slide 29

    Algoritmia y programacinUniversidad del Valle

    EJEMPLO1. Anlisis del problema

    Entradas: categoria, ventas

    Salidas: comision

    Proceso: determinar Comisin

  • Slide 30

    Algoritmia y programacinUniversidad del Valle

    EJEMPLO2. Disear el algoritmo y escribirlo en pseudocdigo

    real determinarComision(int cat, real ven){

    com: real;

    Segn sea cat

    opcion 1: com = ven * 0.1

    opcion 2: com = ven * 0.2

    opcion 3: com= ven * 0.35

    opcion 4: com= ven * 0.45

    opcion 5: com = ven * 0.5

    opcion 6: com = ven * 0.6

    }

    inicio

    categoria: entero

    ventas, comision: real

    leer(categoria)

    leer(ventas)

    comision = determinarComision(categoria, ventas)

    Imprimir (comision)

    Fin

  • Slide 31

    Algoritmia y programacinUniversidad del Valle

    EJEMPLOpublic class ComisionEmpleado{

    public static double determinarComision(int cat, double ven){

    double com =0;

    switch(cat) {

    case 1: com = ven * 0.1; break;

    case 2: com = ven * 0.2; break;

    case 3: com = ven * 0.35; break;

    case 4: com = ven * 0.45; break;

    case 5: com= ven * 0.5; break;

    case 6: comi= ven * 0.6; break;

    }

    return com;

    }

    real determinarComision(int cat, real ven)

    {

    com: real;

    Segn sea cat

    opcion 1: com = ven * 0.1

    opcion 2: com = ven * 0.2

    opcion 3: com= ven * 0.35

    opcion 4: com= ven * 0.45

    opcion 5: com = ven * 0.5

    opcion 6: com = ven * 0.6

    }

  • Slide 32

    Algoritmia y programacinUniversidad del Valle

    EJEMPLO

    public static void main(String args[])

    {

    int categoria;

    double ventas, comision;

    categoria =Integer.parseInt(JOptionPane.showInputDialog(Ingrese categora:));

    ventas =Double.parseDouble(JOptionPane.showInputDialog(Ingrese venta:));

    comision= determinarComision(categoria, ventas);

    JOptionPane.showMessageDialog(null,la comision es + comision);}

    }

    inicio

    categoria: entero

    ventas, comision: real

    leer(categoria)

    leer(ventas)

    comision = determinarComision(categoria, ventas)

    Imprimir (comision)

    Fin

  • Slide 33

    Algoritmia y programacinUniversidad del Valle

    PROBLEMASe dese reforestar un bosque que mide un nmero n de hectreas. Si lasuperficie del terreno excede a 1000.000m2, entonces se siembra as:

    Si la superficie del terreno es menor o igual a 1000.000m2 entonces sesiembra as:

    Se desea saber el nmero de pinos, oyameles y cedros que se debensembrar, si se sabe que en 10m2 caben 8 pinos; en 15m2 caben 15oyameles, y en 18m2 caben 10 cedros.

    % superficie Tipo de rbol

    70% Pino

    20% Oyamel

    10% Cedro

    % superficie Tipo de rbol

    50% Pino

    30% Oyamel

    20% Cedro

  • Slide 34

    Algoritmia y programacinUniversidad del Valle

    1. Anlisis del problema

    Entrada: n (nmero de hectreas)

    Salidas : cantidad_pinos, cantidad_oyameles, cantidad_cedros

    Proceso: hallarCantidades

    EJEMPLO

  • Slide 35

    Algoritmia y programacinUniversidad del Valle

    1. Disear el algoritmo y escribirlo en pseudocdigo

    hallarCantidades(n: entero){

    cant_pino,cant_oyamel,cant_cedro, hectarea=10000 : entero

    SI (n*hectarea) > 1000000

    cant_pino= (((n*hectarea) *0.7)/10)*8

    cant_oyamel = (((n*hectarea) *0.2)/15)*15

    cant_cedro= (((n*hectarea) *0.1)/18)*10

    SINO

    cant_pino= (((n*hectarea) *0.5)/10)*8

    cant_oyamel = (((n*hectarea) *0.3)/15)*15

    cant_cedro= (((n*hectarea) *0.2)/18)*10

    Imprimir (cant_pino, cant_oyamel, cant_cedro);

    }

    EJEMPLO

  • Slide 36

    Algoritmia y programacinUniversidad del Valle

    1. Disear el algoritmo y escribirlo en pseudocdigo

    Inicio

    n: entero

    leer(n)

    hallarCantidades( n)

    Fin

    EJEMPLO

  • Slide 37

    Algoritmia y programacinUniversidad del Valle

    EJEMPLOpublic class Reforestacion{

    public static void hallarCantidades(int n){

    int cant_pino, cant_oyamel, cant_cedro;

    final int hectarea=10000;

    if ( (n*hectarea) > 1000000){

    cant_pino= (((n*hectarea) *0.7)/10)*8;

    cant_oyamel = (((n*hectarea) *0.2)/15)*15;

    cant_cedro= (((n*hectarea) *0.1)/18)*10;

    }

    else{

    cant_pino= (((n*hectarea) *0.5)/10)*8;

    cant_oyamel = (((n*hectarea) *0.3)/15)*15;

    cant_cedro= (((n*hectarea) *0.2)/18)*10;

    }

    JOptionPane.showMessageDialog(null, cantidad de pinos+ cant_pino+ \n cantidad de pinos+cant_oyamel+\n cantidad de pinos+ cant_cedro);

    }

    hallarCantidades(n: entero){

    cant_pino,cant_oyamel,cant_cedro: entero

    SI (n*hectarea) > 1000000

    cant_pino= (((n*hectarea) *0.7)/10)*8

    cant_oyamel = (((n*hectarea) *0.2)/15)*15

    cant_cedro= (((n*hectarea) *0.1)/18)*10

    SINO

    cant_pino= (((n*hectarea) *0.5)/10)*8

    cant_oyamel = (((n*hectarea) *0.3)/15)*15

    cant_cedro= (((n*hectarea) *0.2)/18)*10

    Imprimir (cant_pino, cant_oyamel, cant_cedro);

    }

  • Slide 38

    Algoritmia y programacinUniversidad del Valle

    EJEMPLOpublic class Reforestacion{

    public static void hallarCantidades(int n){int cant_pino, cant_oyamel, cant_cedro;

    final int hectarea=10000;

    if ( (n*hectarea) > 1000000){

    cant_pino= (((n*hectarea) *0.7)/10)*8;

    cant_oyamel = (((n*hectarea) *0.2)/15)*15;

    cant_cedro= (((n*hectarea) *0.1)/18)*10;

    }

    else{

    cant_pino= (((n*hectarea) *0.5)/10)*8;

    cant_oyamel = (((n*hectarea) *0.3)/15)*15;

    cant_cedro= (((n*hectarea) *0.2)/18)*10;

    }

    JOptionPane.showMessageDialog(null, cantidad de pinos+ cant_pino+ \n cantidad de pinos+cant_oyamel+\n cantidad de pinos+ cant_cedro);

    }

    void especifica que elmtodo no va a devolverningn valor a quin lollam, sino que va a realizaralguna operacin e imprimirsu resultado dentro delmismo mtodo.

  • Slide 39

    Algoritmia y programacinUniversidad del Valle

    EJEMPLO

    public static void main(String args[])

    {

    int n;

    n=Integer.parseInt(JOptionPane.showInputDialog(Ingrese el nmero de hectreas:));

    hallarCantidades(n);

    }

    }

    Inicio

    n: entero

    leer(n)

    hallarCantidades( n)

    Fin

  • Slide 40

    Algoritmia y programacinUniversidad del Valle

    MBITO DE VARIABLES

    El mbito de una variable es el contexto (espacio)

    dentro del programa en donde ella puede ser

    utilizada y reconocida.

  • Slide 41

    Algoritmia y programacinUniversidad del Valle

    VARIABLES GLOBALES Y LOCALES

    Las variables se clasifican en 2 tipos:

    Variables Locales

    Variables Globales

    Variables Locales: Son aquellas variables que secrean dentro de un mtodo. Estas variablessolamente son reconocidas dentro de ese mtododonde fueron creadas, y su valor se pierde alfinalizar la ejecucin del mismo.

  • Slide 42

    Algoritmia y programacinUniversidad del Valle

    Variables Globales: Son aquellas variables que secrean en el programa principal, por fuera decualquier mtodo. stas son reconocidas en todolugar del programa.

    VARIABLES GLOBALES Y LOCALES

  • Slide 43

    Algoritmia y programacinUniversidad del Valle

    VARIABLES GLOBALES Y LOCALES

    x,y : entero

    Ambito de x,y

    c : entero

    w,p : real

    mbito de c

    mbito de w,p

  • Slide 44

    Algoritmia y programacinUniversidad del Valle

    Variable Local del mtodocalcularHipotenusa

    public static double calcularHipotenusa(int a, int b)

    {

    double calculo;

    calculo = Math.sqrt((a*a)+(b*b));

    return calculo;

    }

    VARIABLES GLOBALES Y LOCALES

  • Slide 45

    Algoritmia y programacinUniversidad del Valle

    EJEMPLO

    Desarrollemos el ejemplo de la reforestacin,usando variables globales y mtodos que noreciben parmetros

  • Slide 46

    Algoritmia y programacinUniversidad del Valle

    EJEMPLOpublic class Reforestacion{

    static int n;

    public static void hallarCantidades(){

    int cant_pino, cant_oyamel, cant_cedro;

    final int hectarea=10000;

    if ( (n*hectarea) > 1000000){

    cant_pino= (((n* hectarea) *0.7)/10)*8;

    cant_oyamel = (((n* hectarea) *0.2)/15)*15;

    cant_cedro= (((n* hectarea) *0.1)/18)*10;

    }

    else{

    cant_pino= (((n* hectarea) *0.5)/10)*8;

    cant_oyamel = (((n* hectarea) *0.3)/15)*15;

    cant_cedro= (((n* hectarea) *0.2)/18)*10;

    }

    JOptionPane.showMessageDialog(null, cantidad de pinos+ cant_pino+ \n cantidad depinos+ cant_oyamel+\n cantidad de pinos+ cant_cedro);

    }

    n: Variable Global

  • Slide 47

    Algoritmia y programacinUniversidad del Valle

    EJEMPLOpublic class Reforestacion{

    static int n;

    public static void hallarCantidades(){

    int cant_pino, cant_oyamel, cant_cedro;

    final int hectarea=10000;

    if ( (n*hectarea) > 1000000){

    cant_pino= (((n* hectarea) *0.7)/10)*8;

    cant_oyamel = (((n* hectarea) *0.2)/15)*15;

    cant_cedro= (((n* hectarea) *0.1)/18)*10;

    }

    else{

    cant_pino= (((n* hectarea) *0.5)/10)*8;

    cant_oyamel = (((n* hectarea) *0.3)/15)*15;

    cant_cedro= (((n* hectarea) *0.2)/18)*10;

    }

    JOptionPane.showMessageDialog(null, cantidad de pinos+ cant_pino+ \n cantidad depinos+ cant_oyamel+\n cantidad de pinos+ cant_cedro);

    }

    n: Variable Global

    Mtodo hallarCantidades norecibe parmetros

  • Slide 48

    Algoritmia y programacinUniversidad del Valle

    EJEMPLOpublic class Reforestacion{

    static int n;

    public static void hallarCantidades(){

    int cant_pino, cant_oyamel, cant_cedro;

    final int hectarea=10000;

    if ( (n*hectarea) > 1000000){

    cant_pino= (((n* hectarea) *0.7)/10)*8;

    cant_oyamel = (((n* hectarea) *0.2)/15)*15;

    cant_cedro= (((n* hectarea) *0.1)/18)*10;

    }

    else{

    cant_pino= (((n* hectarea) *0.5)/10)*8;

    cant_oyamel = (((n* hectarea) *0.3)/15)*15;

    cant_cedro= (((n* hectarea) *0.2)/18)*10;

    }

    JOptionPane.showMessageDialog(null, cantidad de pinos+ cant_pino+ \n cantidad depinos+ cant_oyamel+\n cantidad de pinos+ cant_cedro);

    }

    n: Variable Global

    Mtodo hallarCantidades norecibe parmetros

    Como n es global esreconocida dentro delmtodo hallarCantidades sinhaber sido pasada comoparmetro

  • Slide 49

    Algoritmia y programacinUniversidad del Valle

    EJEMPLO

    public static void main(String args[])

    {

    n=Integer.parseInt(JOptionPane.showInputDialog(Ingrese el nmero de hectreas:));

    hallarCantidades();

    }

    }

    Inicio

    leer(n)

    hallarCantidades()

    Fin

  • Algoritmia y Programacin

    APILENGUAJE DE PROGRAMACIN

  • Slide 51

    Algoritmia y programacinUniversidad del Valle

    API

    Interfaz de programacin de aplicacin: Provee unacoleccin de clases que le permite al programador construirtodo tipo de programas de acuerdo a sus necesidades, sintener que iniciar de cero.

    Existen varia APIs de acuerdo a las operaciones que sedeseen realizar, normalmente las ms utilizadas (y a usaren este curso) son las de Standar Edition (SE), sudocumentacin se puede encontrar en:

    Ejemplo de la documentacin del API para JSE7

    http://download.oracle.com/javase/7/docs/api/

  • Slide 52

    Algoritmia y programacinUniversidad del Valle

    API

  • Slide 53

    Algoritmia y programacinUniversidad del Valle

    CLASES DEL API

    Clase String

    Clase Math

  • Slide 54

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    Entre los tipos de datosprimitivos que opera el lenguajede programacin java seencuentra los tipo carcter(char).

    En el mundo real existen datosconformado por un conjunto decaracteres, a este tipo de datosJava los considera una cadenade caracteres y los operamediante la clase String.

    La clase String permite a travsde sus sus mtodos el manejode cadenas de caracteres deforma fcil.

  • Slide 55

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    Los datos de tipo String puede contener una combinacinde letras, nmeros y smbolos especiales.

    Ejemplos:

    Nombre de estudiante

    E-mail

    Direccin Residencia

    Nombre de Plan

    Ciudad

  • Slide 56

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    Para declarar un dato de tipo String se hace as:

    String nombre;

    Se puede definir varias variables en una sola sentencia:

    String mail, direccionResidencia, ciudad, telefono;

    Una vez definida la variable, se puede asignar un valor:

    nombre = Luis;

    mail = [email protected]

    ciudad = Cali;

    telefono= 3345678

    El dato debe estar encerrado en doble comilla.

  • Slide 57

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    Ejemplo 1:

    Capturar los datos Cdigo, Nombres, Apellidos, E-mail, Ciudad yTelfono de un estudiante e imprimirlos (Estudiante.java)

  • Slide 58

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    Al momento de declarar la variable, tambin se le puedeasignar un valor:

    String nombre=Luis, Ciudad = Cali;

    El dato debe estar encerrado en doble comilla.

  • Slide 59

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    Para ciertas operaciones que se necesitan en los datos decadena de caracteres, la clase String ofrece un conjunto demtodos, stos se pueden consultar en la documentacindel lenguaje

    http://download.oracle.com/javase/7/docs/api/:

    Para trminos prcticos se abordar los mtodos ms utilizados:

    charAt, toLowerCase, toUpperCase, trim,

    valueOf, indexOf, lastIndexOf contains,

    equals, equalsIgnoreCase, Length. substring

  • Slide 60

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    charAt(indice)

    Devuelve el carcter de la posicin que se especifique. En un String cada carcter tiene una posicin, iniciando desde la posicin 0.

    Ejemplo.

    String palabra = Hola mundo;

    palabra.charAt(3) retornar el carcter a.

  • Slide 61

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    toLowerCase()

    Convierte a minsculas los caracteres de una cadena.

    Ejemplo.

    String palabra = Hola Mundo;

    palabra. toLowerCase() retornar la cadena hola mundo.

  • Slide 62

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    toUpperCase()

    Convierte a maysculas los caracteres de una cadena.

    Ejemplo.

    String palabra = Hola Mundo;

    palabra. toUpperCase () retornar la cadena HOLA MUNDO.

  • Slide 63

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    trim()

    Elimina los espacios a los extremos de la cadena.

    Ejemplo.

    String palabra = Hola Mundo ;

    palabra. trim() retornar la cadena Hola Mundo.

  • Slide 64

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    valueOf()

    Convierte el dato establecido en String.

    Ejemplo.

    int num1 = 10;

    float num2 = 12.5f

    String. valueOf(num1) retornar la cadena 10.

    String. valueOf(num2) retornar la cadena 12.5.

  • Slide 65

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    indexOF()

    Retorna la posicin de la primera ocurrencia de bsqueda encontrada de izquierda a derecha en la cadena.

    Ejemplo.

    String cadena = "Cali sucursal del cielo";

    cadena. indexOf(el) ;

    Retornar el valor 15, correspondiente a la posicin de la letra e de la palabra del en la cadena.

  • Slide 66

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    lastIndexOF()

    Retorna la posicin de la primera ocurrencia de bsqueda encontrada de derecha a izquierda en la cadena.

    Ejemplo.

    String cadena = "Cali sucursal del cielo";

    cadena. lastIndexOf(el) ;

    Retornar el valor 20, correspondiente a la posicin de la letra e de la palabra cielo en la cadena.

  • Slide 67

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    contains()

    Retorna falso (false) o verdadero (true) indicando si una cadena se encuentra o no dentro de la otra.

    Ejemplo.

    String cadena = "Cali sucursal del cielo";

    cadena. contains(cielo) ;

    Retornar el valor true, indicando que la palabra cielo se encuentra en el contenido de la variable cadena.

  • Slide 68

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    equals()

    Retorna falso (false) o verdadero (true) indicando si una cadena es o no igual a la otra, diferencia de minscula y maysculas, por tanto a es diferente de A.

    Ejemplo.

    String cadena = "Cali";

    cadena. equals (Cali) ;

    Retornar el valor true, indicando que en contenido de la variable es

    igual a la palabra Cali.

  • Slide 69

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    equalsIgnoreCase()

    Retorna falso (false) o verdadero (true) indicando si una cadena es o no igual a la otra, no diferencia de minscula y maysculas, por tanto a es igual a A.

    Ejemplo.

    String cadena = "CALI";

    cadena. equalsIgnoreCase(cali) ;

    Retornar el valor true, indicando que en contenido de la variable es

    igual a la palabra cali, a pesar que la una est en mayscula y la otra en minscula.

  • Slide 70

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    length()

    Retorna un valor entero que indica la longitud (cantidad de caracteres) de la cadena

    Ejemplo.

    String cadena = Cali sucursal del cielo";

    cadena. length() ;

    Retornar el valor 23 indicando la cantidad de caracteres que tiene la

    cadena.

  • Slide 71

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    substring()

    Retorna una parte de una cadena, de acuerdo a las posiciones que se especifiquen. Si slo se especifica una sola posicin se obtendr la subcadena

    desde esa posicin hasta el final. Al especificar 2 posiciones se obtendr la

    subcadena que se encuentra en esas dos posiciones

    Ejemplo.

    String cadena = Cali sucursal del cielo";

    cadena. substring(5) se obtendr la subcadena sucursal del cielo

    cadena.substring(5,13) se obtendr la subcadena sucursal.

  • Slide 72

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    Ejemplo 2:

    Manejo de cadenas (Cadenas.java)

  • Slide 73

    Algoritmia y programacinUniversidad del Valle

    CLASE STRING

    Ejemplo 2:

    El resultado ser (Cadenas.java)

  • Slide 74

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH

    La clase Math en el lenguaje deprogramacin contiene mtodosque permiten realizaroperaciones numricas talescomo: valor absoluto, rerdonde,nmeros aleatorios, razcuadrara, funcionestrigonomtricas, entre otras .

    Para trminos prcticos seabordar los mtodos msutilizados

    abs ceil cos exp floor log max minpow random round sin tan sqrt PI

  • Slide 75

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH

    abs()

    Retorna el valor absoluto de un numero especificado

    Ejemplo.

    int num1 = -10;

    Math.abs(num1) se obtendr el valor de 10

  • Slide 76

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH

    ceil()

    Retorna el valor redondeado al siguiente entero de tipo doble del numero especificado.

    Ejemplo.

    float num1 = 12.54f;

    Math.ceil(num1) se obtendr el valor de 13.0

  • Slide 77

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH

    floor()

    Retorna el valor redondeado al anterior entero de tipo doble del numero especificado.

    Ejemplo.

    float num1 = 12.54f;

    Math.floor(num1) se obtendr el valor de 12.0

  • Slide 78

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH

    round()

    Retorna el valor redondeado del numero especificado, si el decimal es menor a.5 redondear al anterior entero, si es mayo o igual a .5 redondear al siguiente

    entero .

    Ejemplo.

    float num1 = 12.54f;

    float num2 = 12.34f;

    float num3 = 12.5f;

    Math.round(num1); devolver el valor de 13

    Math.round(num2); devolver el valor de 12

    Math.round(num3); devolver el valor de 13

  • Slide 79

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH

    radom()

    Retorna un valor aleatorio entre 0.0 y 1.0.

    Ejemplo.

    double aleatorio;

    Math.random(); devolver un valor entre 0.0 y 1.0

  • Slide 80

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH

    max()

    Retorna el valor mayor entre dos nmeros.

    Ejemplo.

    float num3 = 12.54f;

    float num4 = 12.34f;

    Math.max(num3,num4); devolver el valor 12.54

  • Slide 81

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH

    min()

    Retorna el valor menor entre dos nmeros.

    Ejemplo.

    float num3 = 12.54f;

    float num4 = 12.34f;

    Math.min(num3,num4); devolver el valor 12.54

  • Slide 82

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH

    pow(base,exponente)

    Retorna el valor de la potencia de una valor base a un valor de exponente.

    Ejemplo.

    float num6 = 3.0f;

    Math.pow(num6,4); devolver el valor 81.0

  • Slide 83

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH

    sqrt()

    Retorna el valor de la raz cuadrada de un numero.

    Ejemplo.

    float num7 = 25.0f;

    Math.sqrt(num7); devolver el valor 25.0

  • Slide 84

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH

    PI

    Retorna el valor pi.

    Ejemplo.

    Math.PI; devolver el valor 3.141592653589793

  • Slide 85

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH

    sin()

    Retorna el valor del seno trigonomtrico de un ngulo.

    Ejemplo.

    float angulo=90f;

    Math.sin(angulo); devolver el valor 0.8939966636005579

  • Slide 86

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH

    cos()

    Retorna el valor del coseno trigonomtrico de un ngulo.

    Ejemplo.

    float angulo=90f;

    Math.cos(angulo); devolver el valor -0.4480736161291702

  • Slide 87

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH

    tan()

    Retorna el valor de la tangente trigonomtrica de un ngulo.

    Ejemplo.

    float angulo=90f;

    Math.tan(angulo); devolver el valor -1.995200412208242

  • Slide 88

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH

    tan()

    Retorna el valor de la tangente trigonomtrica de un ngulo.

    Ejemplo.

    float angulo=90f;

    Math.tan(angulo); devolver el valor -1.995200412208242

  • Slide 89

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH Ejemplo 3:

    El resultado ser (operacionesMatematicas.java)

  • Slide 90

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH Ejemplo 4:

    Se requiere disear un programa en Java que permita calcular lavelocidad con respecto a tierra real de un aeroplano y el ngulo entre la

    ruta real del mismo y la direccin este.

    Se conoce que el aeroplano vuela a una determinada velocidad (km/h)hacia el nordeste, en una direccin que forma un ngulo determinado

    con la direccin este.

    El viento est soplando a una determinada velocidad (km/h) en ladireccin noroeste, formando un determinado ngulo con la direccin

    norte.

  • Slide 91

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH Ejemplo 4:

    Anlisis

    Datos de Entrada

    Velocidad de Aeroplano.

    ngulo de Aeroplano.

    Velocidad de Viento.

    ngulo de Viento.

    Datos de Salida

    Velocidad con respecto de tierra real del aeroplano.

    Angulo real del aeroplano y direccin este.

  • Slide 92

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH Ejemplo 4:

    Anlisis

    Proceso

    Vx = Velocidad Aeroplano * Coseno(Angulo Aeroplano)

    Vy = Velocidad Aeroplano * Seno(Angulo Aeroplano)

    Wx = -Velocidad Viento * Seno(Angulo Viento)

    Wy = Velocidad Viento * Coseno(Angulo Viento)

    Ux = Vx + Wx

    Uy = Vy + Wy

    VelocidadRealAerplano = Raiz Cuadrada (Ux2+ Uy2)

    AnguloAeroplanoDireccion = arcoseno(Ux / VelocidadRealAerplano)

  • Slide 93

    Algoritmia y programacinUniversidad del Valle

    CLASE MATH(AeroPlano.java)

  • Slide 94

    Algoritmia y programacinUniversidad del Valle

    EJERCICIOS Usando mtodos, desarrollar un programa que dado el peso, la altura

    y el sexo, de un estudiante. Determine la cantidad de vitaminas que

    debe consumir, con base en los siguientes criterios:

    Si es hombre, y su estatura es mayor a 1.60, y su peso es mayor o igual

    a 75 kilos, su dosis, ser: 20% de la estatura y 80% de su peso, si la

    estatura es menor de 1.60, la dosis ser la siguiente: 30% de la

    estatura y 70% de su peso.

    Si es mujer, y su estatura es mayor de a 1.55 y su peso es mayor o

    igual a 65 kilos, su dosis ser: 25% de la estatura y 75% de su peso. Si

    el peso es mayor a 65 kilos, ser: 35% de la estatura y 65% de su peso.

  • Slide 95

    Algoritmia y programacinUniversidad del Valle

    EJERCICIOS Un comerciante se dedica a la venta de sillas. Vende tres tipos desillas:

    Por cada cinco sillas compradas se obtiene un descuento, de acuerdo ala tabla

    El resto de sillas se cobran a precio normal. Disee un programa que leael tipo de silla y la cantidad a comprar e imprima la cantidad, el preciounitario, el descuento y el precio total, de lo que debe cancelar elcliente por la compra.

    Tipo Precio

    1 $5.000

    2 $7.000

    3 $10.000

    Tipo Descuento

    1 3%

    2 5%

    3 10%

  • GRACIAS