Clase 2
Clase 2
Clase 2
sintaxis
Math.nombre(argumentos)
¿argumentos? cero o más expresiones aritméticas (separadas
por comas)
semántica
1° evaluar argumentos. Ejemplo: s*(s-a)*(s-b)*(s-c)
2° evaluar función (método) con/en valores de argumentos
3° recibir resultado de la función (en el lugar o punto de
invocación)
Funciones predefinidas en el lenguaje Java
(métodos de clase predefinida Math)
sintaxis
static public tipo-resultado
nombre(parámetros)
{
instrucciones
return expresión;
}
¿parámetros? tipo nombre, ...
semántica
1º copiar (asignar) argumentos de llamada en parámetros
2º ejecutar las instrucciones (si es que existen)
3º devolver valor de la expresión en el punto de invocación (uso),
respetando el tipo-resultado (con las reglas de la asignación)
Funciones predefinidas en el lenguaje Java
(continuación de métodos de clase Math)
sintaxis: (tipo)(expresión)
semántica
1. evaluar expresión
2. convertir resultado al tipo indicado
3. entregar resultado
Solución 2. Con Funciones definidas por el programador
class Programa
{
static public void main(String[]args){
int i=azar(0,9),j=azar(0,9),k=azar(0,9);
U.println("Mayor=" + mayor(i,j,k));
}
//genera un entero aleatorio entre x e y
static public int azar(int x,int y){
return x + (int)(Math.random()*(y-x+1));
}
//entrega mayor entre x, y, z
static public int mayor(int x,int y,int z){
return Math.max(Math.max(x,y),z);
}
}
Ejercicio. Completar la clase para ordenar 3 enteros aleatorios entre 1 y 100.
El programa debe escribir los resultados como se muestra en el sgte ejemplo:
Números = 43 72 28
Ordenados = 28 43 72
class Programa{
static public void main(String[]args){
…
}
static public int azar(int x,int y){
return x + (int)(Math.random()*(y-x+1));
}
static public int mayor(int x,int y,int z){
return Math.max( Math.max(x,y), z );
}
static public int menor(int x,int y,int z){
…
}
static public int medio(int x,int y,int z){
…
}}
}
U.println(“numeros=” + a +” “ + b + “ “ + c);
U.println(“ordenados=” +
menor(a,b,c)+“ “+
medio(a,b,c)+“ “+
mayor(a,b,c) );
}
static public int menor(int x,int y,int z)
{
return Math.min( Math.min(x,y), z );
}
static public int medio(int x,int y,int z)
{
//solución 1: suma – menor - mayor
return (x+y+z)-mayor(x,y,z)-menor(x,y,z);
}
Uso de funciones de otra clase