clase 7 - diseño descendente y parámetros (con ejercicios tipo parcial) programacion java

Upload: wqerqweq

Post on 13-Feb-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    1/21

    PROGRAMACIN1

    Clase 7

    Programacin1-TUDAI

    1

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    2/21

    2

    Programacin1-TUDAI

    Resolver problemas aplicando un diseo descendente o

    programacin modular

    Identificar los dos tipos de mtodos: procedimientos y

    funciones

    Utilizacin de la sentencia return

    Objetivos del tema

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    3/21

    3

    Programacin1-TUDAI

    Diseo descendente

    Est divisin se hace repetidamente hasta llegar a pequeos

    problemas fcilmente solucionables o ya solucionados.

    Uno de los mtodos fundamentales para resolver un problema esdividirlo en problemas ms chicos o subproblemas.

    Es deseable que cada subproblema sea independiente de los

    restantes, y se los denomina mtodos.

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    4/21

    4

    Programacin1-TUDAI

    Un mtodo es un trozo de cdigo que puede ser llamado porel programa principal u otros mtodos para realizar alguna

    tarea especfica.

    El mtodo es llamado por su nombre seguido por una

    secuencia de parmetros o argumentos (datos utilizados por

    el propio mtodo para sus clculos) entre parntesis.

    Cuando el mtodo finaliza sus operaciones, puede o no

    devolver un valor simple al programa que lo llama.

    Si un mtodo devuelve un valor lo hace a travs de la

    sentencia return y el tipo de dato debe coincidir con el tipo de

    dato declarado en la cabecera del mtodo

    Mtodos

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    5/21

    5

    Programacin1-TUDA

    I

    La primera lnea es la cabecera del mtodo.

    Los modificadores especifican cmo puede llamarse al

    mtodo.

    El tipo de dato indica el valor que devuelve o no la llamada almtodo.

    Los parmetros (entre parntesis) introducen informacin

    para la ejecucin del mtodo (Se vern ms adelante).

    [modificadores] tipoDeDato identificadorMetodo (parametros formales) {

    declaraciones de variables locales;

    sentencia_1;

    sentencia_2;

    ...

    sentencia_n; //se incluye al menos un return

    }

    Declaracin de mtodos

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    6/21

    6

    Programacin1-TUDA

    I

    /**

    * Demostracin del mtodo cubo de tres

    * Declaracin formal y llamada actual

    */

    public class Programa {

    public static void main (String [] args){System.out.println("El cubo de 3.0 es: "+ cubodetres() ); // llamada actual

    }

    //declaracin formal

    public static double cubodetres () {

    double x = 3.0;

    return x*x*x;

    }

    }

    Ejemplo

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    7/21

    7

    Programacin1-TUDA

    I

    public y static son los modificadores que hacen al mtodoaccesible al resto. Los mtodos estticos son como los

    mtodos de los lenguajes no orientados a objetos

    public class Programa {

    public static void main (String [] args){System.out.println(factorial10());

    }

    public static int factorial () {

    int aux = 1; // declaracion localfor (int i = 2; i

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    8/21

    Procedimientos y funciones

    8

    Programacin1-TUDA

    I

    Las funciones devuelven un solo valor a la unidad de programa

    que lo referencia. Generalmente son clculos.

    Los procedimientos se utilizan para resolver un problema

    concreto, que no corresponde con un calculo directo.

    //procedimiento imprimir

    public static void imprimir(){

    System.out.println("El cubo de 3.0 es: "+ cubodetres() ); // llamada actual

    return;

    }//funcin cubodetres

    public static double cubodetres(){

    double x = 3.0;

    return x*x*x;

    }

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    9/21

    9

    Programacin1-TUDA

    I

    Funciones:

    Calcular promedio, cantidad, operacin compleja

    Obtenermayor, menor, un ndice

    Siempre retornan un valor de tipo simple

    Puede ser parte de una expresin lgica y estar a la derecha de

    una asignacin

    Procedimiento Obtener datos de entrada vlidos

    Generar salida de resultados

    Procesar o resolver un problema

    Diferencias entre funciones y procedimientos

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    10/21

    10

    Programacin1-TUDA

    I

    Facilita el diseo descendente

    Se puede ejecutar ms de una vez ahorrando tiempo de

    programacin y cantidad de cdigo

    Facilita la divisin de tares dentro de un grupo de trabajo

    Se puede comprobar individualmente

    Hace al programa ms legible y modificable

    Ventajas de usar funciones y procedimientos

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    11/21

    11

    Programacin1-TUDA

    I

    En java el pasaje de parmetros es por copia, se replica lavariable y dentro del mtodo se trabaja sobre la replica.

    Al finalizar el mtodo se pierde la replica y la unidad

    invocadora no percibe cambios en la variable utilizada como

    parmetro de invocacin.

    Parmetros

    Un parmetro es una variable cuyo valor es

    proporcionado por la unidad invocadora.

    La declaracin de un mtodos tiene una lista

    de parmetros formales.

    Los mtodos sinparmetros

    Tarea nica

    La llamada a unmtodo

    Parmetros actuales

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    12/21

    Ejemplo

    12

    Programacin1-TUDA

    I

    public class Programa {

    public static voidmain (String [] args){

    tabla(4); // ejemplo de llamada

    //sin return es igual que return al final

    }

    public static voidtabla (int n) {System.out.println("Tabla del numero " + n);

    for (int i=0; i

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    13/21

    Error tpico de funciones

    13

    Programacin1-TUDA

    I

    public static boolean esPositivo(int x) {

    if (x0) return true;

    // Error: retorno perdido si x es igual a cero.

    }

    public static boolean esPositivo(int x) {

    if (x

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    14/21

    Tipo de variables

    14

    Programacin1-TUDA

    I

    public class Programa {

    public static int a = 2;//global a todos

    public static int b = 2;//global a todos

    public static void main(String[] args) {int a = 3;//local a main

    System.out.println ("a = "+a);

    System.out.println ("b = "+b);

    }}

    Locales: declarada dentro de un mtodo. Slo est disponiblepara el mismo.

    Globales: pueden ser usadas por los distintos mtodos.

    Ambas pueden tener el mismo nombre. En ese caso la global

    no acta sobre el mtodo.

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    15/21

    15

    Programacin1-TUDA

    I

    El mbito o alcance de una variable es la zona accesible.

    Variables globales: disponibles a todos.

    Variables locales

    Estn disponibles desde su declaracin hasta el final del mtodo.

    No son visibles desde otros mtodos.

    Distintos mtodos pueden contener variables con el mismo nombre.El nombre de una variable local debe ser nico dentro de su mbito.

    Variables de bloque

    Estn disponibles desde su declaracin hasta el final del bloque.

    No son visibles desde otros bloques.

    Distintos bloques pueden contener variables con el mismo nombre.Si un bloque de instrucciones contiene dentro otro bloque de

    instrucciones, en el bloque interior no se puede declarar una variable

    con el mismo nombre que otra del bloque exterior.

    En todos los casos las variables no tienen un valor inicial por

    defecto. El programador es el encargado de asignarles valores.

    mbito o alcance

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    16/21

    16

    Programacin1-TUDA

    I

    mbito o alcance

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    17/21

    Ejemplo

    17

    Programacin1-TUDA

    I

    public static void main(String[] args) {

    int suma = 0;

    for (int x = 1; x

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    18/21

    Observaciones

    18

    Programacin1-TUDA

    I

    public static void (int a, int b) {

    a = 1;//pierde el valor que tena como parmetro

    }

    Evitar el uso de variables globales

    Un parmetro es una variable local

    Comunicacin entremtodos

    Parmetros

    Una variable nodeclarada localmente

    El compilador usa ladeclaracin global

    Almacenar

    informacin temporalVariables locales

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    19/21

    P

    rogramacin1-TUDA

    I

    19

    Escribir un mtodo que calcule el mayor de dos nmeros. Usar

    ese mtodo para calcular el mximo de una serie de nmeros

    ingresados por el usuario.

    Escribir un mtodo que multiplique dos nmeros. Usar ese

    mtodo para calcular la potencia n de un nmero ingresadopor teclado.

    Escribir un programa que pida el ingreso de dos nmeros por

    teclado, que chequee si ambos son positivos y que luego

    calcule el promedio de ambos.

    Escribir un programa que transforme una temperatura dada

    en grados Fahrenheit a grados Celsius. Formula C=(F-32)/1,8

    Construir una rutina que devuelva el valor central de tres

    enteros dados como parmetros.

    Prctico

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    20/21

    P

    rogramacin1-TUDA

    I

    20

    Construir una rutina que devuelva verdadero o falso

    dependiendo de si un carcter dado es una letra minscula o

    no mayuscula.

    Construir una rutina que devuelva la potencia de dos de un

    numero dado. Construir una rutina que calcule el valor de la multiplicacin

    de dos naturales. Usar slo sumas.

    Dados dos enteros A y B, construir un programa que calcule A

    elevado a la B, utilizando el procedimiento/funcin del

    ejercicio anterior.

    Construya un programa que calcule el factorial de un numero

    dado. Ej: factorial(4) = 4*3*2*1 = 24.

    Prctico

  • 7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java

    21/21

    P

    rogramacin1-TUDA

    I

    21

    Hacer un programa que incluya un mtodo que devuelve verdadero

    o falso dependiendo de si una fecha (dando el da, el mes y el aocomo parmetros) es vlida o no.

    El periodo, T (en segundos), de un pndulo que oscila viene dado

    por la expresin: T=2 PI (L/g)^0.5 donde L es la longitud del pndulo

    en metros y g es la aceleracin de la gravedad en metros porsegundo al cuadrado. Construir una rutina periodo para que calcule

    y devuelva el valor de T dado L como parmetro de la funcin y g

    como constante del programa. Usar para la raz res = (float)

    Math.sqrt(nro)

    Escribir un programa que simule el lanzamiento de un dado (1000

    veces) y muestre por pantalla la frecuencia de los resultados para

    cuando el valor de los dados es 1 o 2. Emplear la rutina predefinida

    de Java Math.random() que devuelve un valor aleatorio real entre 0

    y 1. Ej: dado1 = (int) (6*Math.random() + 1)

    Ejercicios tipo parcial