calcular porcentajes de enteros a y b a? 10...

35
Problema. Escribir un programa que calcule los porcentajes de dos números enteros de acuerdo al siguiente diálogo con una persona (usuario): Calcular porcentajes de enteros a y b a? 10 !persona b? 20 !persona a=33.33…% b=66.66…% Aplicaciones elección con dos opciones (plebiscito, 2ª vuelta) alumnos aprobados y reprobados

Upload: others

Post on 10-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Problema. Escribir un programa que calcule los porcentajes de dos números enteros de acuerdo al siguiente diálogo con una persona (usuario): Calcular porcentajes de enteros a y b a? 10 !persona b? 20 !persona a=33.33…% b=66.66…% Aplicaciones • elección con dos opciones (plebiscito, 2ª vuelta) • alumnos aprobados y reprobados

Page 2: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador para resolver un problema 1. escribir en la pantalla una línea con la frase “Calcular porcentajes de enteros a y b” 2. obtener número entero a • escribir el mensaje “a?” • leer el número entero a

3. obtener número entero b 4. escribir una línea con: • frase “a=” • nº real p (porcentaje de a c/r a la suma de a y b) • signo %

5. escribir una línea con “b=”, nº real 100-p, signo %

Page 3: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Programa. Algoritmo expresado en un lenguaje de programación Programa en lenguaje Java (instrucciones principales): Aux U = new Aux(); U.println(“Calcular porcentajes de enteros a y b“); int a = U.readInt(“a?”); int b = U.readInt(“b?”); double p = 100.0 * a/(a+b); U.println(”a=” + p + ”%”); U.println(”b=” + (100-p) + ”%”);

Page 4: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Lenguaje Java: características generales •  inspirado en idioma inglés

–  palabras int, println, read,... •  uso de notación matemática

–  expresiones: 100.0*a/(a+b), p-100 –  funciones: println(...), readInt()

•  sintaxis (gramática, escritura) reglamentada –  instrucciones terminan con ; –  palabras con significados especiales (int, println, readInt) –  uso de minúsculas (salvo casos especiales)

•  semántica (interpretación) precisa (sin ambigüedades) –  instrucciones con significado/efecto bien definido

Page 5: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Explicaciones detalladas U.println(“Calcular porcentajes de …”); Semántica: escribe en la pantalla la frase encerrada entre “ Sintaxis: U.println(“...”); Función (método) que escribe parámetro (argumento) en una línea de la pantalla del computador, es decir, 1º escribe los caracteres de la frase 2º “salta” a la línea siguiente (posiciona el cursor de la pantalla en la primera posición de la siguinte línea)

Page 6: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

int a = U.readInt(“a?”);

Semántica:

•  escribe en la pantalla el mensaje “a?”

•  lee un número entero y lo guarda en la variable a

Equivalencia

int a;

a = U.readInt(“a?”);

Page 7: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

int a; Semántica: declara (define) a como una variable entera ¿variable? • representación simbólica de un valor (número) • representa una ubicación (celda) en la memoria del computador • capacidad: un valor/número (del tipo indicado) • puede variar (cambiar) su valor Sintaxis: tipo nombre; • tipo int: para nº entero (ejs: 123, -4) • tipo double: para nº real (ejs: 5.8, 100.0, 0.001) • nombre (identificador): letra seguida de letras, dígitos o_

Page 8: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Tipos de datos numéricos (enteros y reales) Tipo Nº

bits Mayor valor Menor Valor Precisión

(dígitos) int 32 2.147.483.647=231–1 -231 = -2...648 9 double 64 1.7 x 10301 -1.7 x 10301 15 bit: binary digit (dígito binario: 0 o 1) ¿mayor valor tipo int? • representación: 011...11 (32 bits) • primer bit: cero (signo positivo) • siguientes 31 bits: unos • valor: 1x20+1x21+...+1x230=1+2+...=2.147.483647=231-1 • similar al decimal 9...9 (n nueves)=10n-1

Page 9: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

a = U.readInt(“a?”); 1º método (función) U.readInt(“…”)

1. escribe en la pantalla la frase encerrada entre “

2. espera que el usuario ingrese un número (dígitos y enter)

3. lee (obtiene) el número

4. entrega el número como resultado

2º número se guarda en (asigna a ) la variable a

Sintaxis: variable = U.readTipo(“…”);

readTipo(): readInt(“…”) o readDouble(“…”)

Page 10: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

p=100.0*a/(a+b); calcula 100.0*a/(a+b) y guarda el resultado en la variable p

Instrucción de asignación

sintaxis: variable=expresión; semántica 1º evaluar expresión (calcular resultado) 2º asignar (guardar) resultado a (en) la variable ¿expresión? • se escribe en una línea (hacia el lado) y no en varios niveles • componentes:

o variables y constantes (enteras y reales) o operadores binarios (+,-,*,/) y unarios (+,-) o métodos (funciones) que entregan un número (Ej:readInt) o expresiones con o sin paréntesis

Page 11: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Evaluación de expresión

1º operadores unarios (+,-) 2º operadores “multiplicativos” (*,/) 3º operadores “aditivos” (+,-) Notas • en caso de operadores de igual prioridad, evaluar de izq a der.

Ej: 100.0*a/(a+b) equivale a (100.0*a)/(a+b) • paréntesis se usan para

o modificar orden de evaluación. Ej: 100.0*a/(a+b) o confirmar orden de evaluación. Ej: (100.0*a)/(a+b)

Tipo del resultado • tipo común. Ej: 1 / 2 es 0 (entero), 1.0 / 2.0 es 0.5 (real) • real si operandos son de tipos distintos. Ej: 1.0/2 es 0.5 Nota. ¿resultado de a/(a+b)*100.0? ¿por qué?

Page 12: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

U.println(“a=” + p + ”%”); semántica 1º forma un string (cadena de caracteres) con la frase “a=” seguida del valor de la variable p y el signo %

+: operador de concatenación o añadidura 2º escribe el string en una línea equivalencia U.print(“a=”); U.print(p); U.println(“%”) U.print(“...”); Escribe frase (y no pasa a la sgte línea) U.print(expresión); • evalúa expresión. Ejemplo: p, 100-p • escribe el resultado

Page 13: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Problema. Para calcular el área y perímetro de la figura:

escriba un programa que establezca el siguiente diálogo

Figura entre cuadrado y círculo inscrito lado cuadrado? ... área=n° perímetro=nº

Page 14: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Solución 1 Aux U = new Aux(); U.println( “Figura entre cuadrado y círculo inscrito”); double x = U.readDouble(“lado cuadrado? “); double r = x/2; double pi = 3.1416; U.println(“área=“ + (x*x - pi*r*r)); U.println(“perímetro=” + (4*x + 2*pi*r));

Page 15: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Solución 2 Aux U = new Aux(); U.println( “Figura entre cuadrado y círculo inscrito”); double x=U.readDouble(“lado cuadrado? “), r=x/2; U.println(“área=“ + (Math.pow(x,2) – Math.PI*Math.pow(r,2)); U.println(“perímetro=” + (4*x + 2*Math.PI*r)); Math.PI • valor predefinido de ! (3.14159265358979323846) • constante real (valor inmodificable) Math.pow(r,2) • calcula y entrega r2 • función predefinida (incorporada al lenguaje Java) • sintaxis: Math.pow(x,y), x e y: expresiones • semántica: xy, con resultado real

Page 16: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Programa completo import java.io.*; //todo programa debe estar contenido en una clase //class Nombre{…} y grabarse en archivo Nombre.java class Programa { //encabezamiento del método principal (main) static public void main(String[]args) throws IOException { … //instrucciones } } comentarios (observaciones opcionales): //... (hasta el final de la línea)

Page 17: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Clase de la Aux con métodos para leer y escribir números import java.io.*; import java.util.Scanner; Class Aux //en archivo Aux.java { private Scanner scan; Public Aux(){ scan = new Scanner(new InputStreamReader(System.in)); public String readLine(String x)throws IOException{ print(x); return scan.nextLine(); } public int readInt(String x)throws IOException{ return Integer.parseInt(readLine(x)); } public double readDouble(String x)throws IOException{ return Double.parseDouble(readLine(x)); } public void println(String x){System.out.println(x);} public void print(String x){System.out.print(x);} public void print(int x){System.out.println(x);} public void print(double x){System.out.println(x);} }

Page 18: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Problema Escribir las instrucciones principales de un programa que establezca el siguiente diálogo: Perímetro y area de triangulo de lados a,b,c a ? ___ b ? ___ c ? ___ Perímetro = N° Area = N° Nota. El área se calcula como √s(s-a)(s-b)(s-c) con s=a+b+c (semi-perímetro) 2

Page 19: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Programa U.println(“perímetro y area de “ + “ triangulo de lados a,b,c”); //obtener lados double a=U.readDouble(“a ? ”), b=U.readDouble(“b ? ”), c=U.readDouble(“c ? ”);

//calcular y mostrar perimetro y area U.println(“Perímetro = ” + (a+b+c)); double s=(a+b+c)/2; //semi-perimetro U.println(“Area = “ + Math.sqrt(s*(s-a)*(s-b)*(s-c))); o Math.pow(s*(s-a)*(s-b)*(s-c), 0.5));

Page 20: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Uso (invocación) de métodos (funciones) predefinidasejemplosMath.sqrt(s*(s-a)*(s-b)*(s-c))Math.pow (s*(s-a)*(s-b)*(s-c), 0.5)

sintaxisMath.nombre(argumentos)¿argumentos? cero o más expresiones aritméticas (separadaspor comas)

semántica1° evaluar argumentos. Ejemplo: s*(s-a)*(s-b)*(s-c)2° evaluar función (método) con/en valores de argumentos3° recibir resultado de la función (en el lugar o punto deinvocación)

Page 21: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Funciones predefinidas en el lenguaje Java (métodos de clase predefinida Math) función significado ejemplo resultado sqrt(x) √ x, x ≥ 0 sqrt(4.0) 2.0 pow(x,y) xy pow(2.0,3.0) 8.0 exp(x) ex exp(1.0) 2.71... log(x) logex log(Math.E) 1.0 sin(x) seno de angulo x sin(Math.PI) 0.0 cos(x) coseno de x cos(Math.PI) -1.0 tan(x) tangente de x tan(Math.PI) 0.0 asin(x) arco-seno de x asin(1.0) Π/2

acos(x) arco-coseno x acos(1.0) 0.0 atan(x) arco-tangente x atan(0.0) 0.0 • todas las funciones reciben y entregan un double • un argumento double admite un int (int es asignable a double)

Page 22: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Funciones predefinidas en el lenguaje Java (métodos de clase Math) función significado arg result ejemplo result abs(x) |x| int

double int

double abs(-3) abs(-3.0)

3 3.0

max(x,y) mayor entre x e y

int double

int double

max(4, 6) max(4.1, 6.5)

6 6.5

min(x,y) menor entre x e y

int double

int double

min(4, 6) min(4.1, 6.5)

4 4.1

random() Nº al azar en [0,1[

double random( ) 0.x....

Page 23: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Problema. Ordenar dos enteros entre 0 y 9 generados al azar Números = 7 3 Ordenados = 3 7 //generar nº reales en rango [0,1[: 0.dd… double a=Math.random(), b=Math.random(); //generar enteros en rango [0,9](de un dígito) int i=(int)(10*a), j=(int)(10*b); U.println(“Numeros= “ + i + “ “ + j); //ordenar dos enteros U.println(“Ordenados= “+ Math.min(i,j) + “ “ + Math.max(i,j));

Page 24: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

int i=(int)(10*a); • multiplica por 10 nº 0.d1d2…. Resultado nº=d1.d2….

ej: 5.7… • convierte d1.d2.. a entero, truncando decimales.

ej: 5.7.. a 5 • asigna entero a i

porque no se permite asignar un real a un entero: int i=10*a; coerción de tipos (casting) sintaxis: (tipo)(expresión) semántica

1. evaluar expresión 2. convertir resultado al tipo indicado 3. entregar resultado

Page 25: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Problema

Escribir las instrucciones principales de un programa que establezca el diálogo indicado en el siguiente ejemplo: Ordenar 3 enteros entre 1 y 100 generados al azar Numeros = 73 8 46 Ordenados = 8 46 73 Indicación. Si multiplica por 100 el Nº real 0.x1x2x3... (ej: 0.734...) que entrega la función random() obtendrá un número de la forma x1x2.x3.... (ej:73.4...). De la parte entera del resultado, usando coerción (int)(expresión), se puede obtener un Nº entero de 2 dígitos (valor entre 00 y 99). Sumando uno se obtiene un número entre 1 y 100.

Page 26: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Solución 1 //generar al azar 3 enteros entre 1 y 100 int a = (int)(Math.random()*100) + 1, b = (int)(Math.random()*100) + 1, c = (int)(Math.random()*100) + 1; U.println("Numeros="+a+" "+b+" "+c); //obtener menor, medio y mayor int mayor = Math.max(Math.max(a,b),c), menor = Math.min(Math.min(a,b),c), medio = a + b + c - menor - mayor;//J U.println("Ordenados="+ menor+" "+medio+" "+mayor);

Page 27: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Solución 2. Con Funciones (métodos) definidas por el programador class Ordenar3{ static public void main(String[]args) { U.println(“Ordenar 3 numeros “ + “entre 1 y 100 generados al azar”); int a=azar(1,100),b=azar(1,100),c=azar(1,100); U.println("Numeros="+a+" "+b+" "+c); U.println("Ordenados = " + minimo(a,b,c) + " “ + medio(a,b,c) + " " + maximo(a,b,c)); }

Page 28: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

static public int azar(int x,int y){ return x + (int)(Math.random()*(y-x+1)); } static public int minimo(int x,int y,int z){ int aux=Math.min(x,y); return Math.min(aux,z); } static public int maximo(int x,int y,int z){ return Math.max(Math.max(x,y),z); } static public int medio(int x,int y,int z){ return x+y+z-minimo(x,y,z)-maximo(x,y,z); } }//fin de la clase Ordenar3 Notas • una función puede llamar a otra (predefinida o no) • las funciones pueden ser usadas también en otros programas

Page 29: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Funciones definidas por el programador 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 (del tipo-resultado) en el punto de invocación (uso)

Page 30: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Problema. Escribir los siguientes métodos: class Programa{ //minutos(x): convierte x (nº HHMM) a minutos static public int minutos(int x){ } //hhmm(x): convierte x (minutos) a nº HHMM static public int hhmm(int x){ } static public void main(String[]args) throws IOException{ } } • El método main debe establecer el diálogo del sgte ejemplo: Tiempo 1 (HHMM)? 1045 Tiempo 2 (HHMM)? 2215 Diferencia(HHMM)=1130

• Use operador % (resto/residuo de división entre enteros). Ejs: 27%2 es 1, 27%3 es 0 y 27%10 es 7

Page 31: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

class Programa{ //minutos(x): convierte x (nº HHMM) a minutos static public int minutos(int x){ return x/100*60 + x%100; } //hhmm(x): convierte x (minutos) a nº HHMM static public int hhmm(int x){ return x/60*100 + x%60; } static public void main(String[]args) throws IOException{ int t1=U.readInt(“Tiempo 1 (HHMM)?”); int t2=U.readInt(“Tiempo 2 (HHMM)?”); int t=hhmm( Math.abs( minutos(t2)- minutos(t1) ) ); U.println(“Diferencia(HHMM)=”+t); } }

Page 32: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Funciones en clases independientes class U{ //en archivo U.java … static public int azar(int x,int y){ return x + (int)(Math.random()*(y-x+1)); } static public int minimo(int x,int y,int z){ return Math.min(Math.min(x,y),z); } static public int maximo(int x,int y,int z){ return Math.max(Math.max(x,y),z); } static public int medio(int x,int y,int z){ return x+y+z-minimo(x,y,z)-maximo(x,y,z); } }

Page 33: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Uso de funciones de otra clase class Ordenar3{ //en archivo Ordenar3.java static public void main(String[]args) throws IOException{ U.println(“Ordenar 3 números “ + “entre 1 y 100 generados al azar”); int a=U.azar(1,100), b=U.azar(1,100), c=U.azar(1,100); U.println("Numeros="+a+" "+b+" "+c); U.println("Ordenados = " + U.minimo(a,b,c) + " " + U.medio(a,b,c) + " " + U.maximo(a,b,c)); } }

Page 34: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

class Math{ //Clase predefinida Math static public //antes de cada función double sqrt(double x){...} double pow(double x,double y){...} double exp(double x){...} double log(double x){...} double sin/cos/tan(double x){...}//en radianes double asin/acos/atan(double x){...} double abs(double x){...} int abs(int x){...} double max(double x,double y){...} int max(int x,int y){...} double min(double x,double y){...} int min(int x,int y){...} double random(){...} static public final double PI=3.14...;//cte static public final double E=2.71...;//cte }

Page 35: Calcular porcentajes de enteros a y b a? 10 personausers.dcc.uchile.cl/~creveco/progra/Clase03.pdf · Algoritmo Etapas (pasos, instrucciones) que debe realizar (ejecutar) el computador

Tarea 1. nº de 3 dígitos? 123 resultado=321 2. int aaaammdd(int ddmmaaaa) //fechas J 3. Cajero automático ¿Cuánto dinero necesita? 38000 Retire los siguientes billetes: 3 de $10.000 1 de $5.000 3 de $1.000 4. Números al azar=45 78 23 67 Ordenados=23 45 67 78 5. static public int mayor(int x,int y) sin usar Math.max