Descargar la presentación
La descarga está en progreso. Por favor, espere
1
26-abril(J.Alvarez)
2
Asignación raiz=(-b+Math.sqrt(b*b-4*a*c))/(2*a); sintaxis
26-abril(J.Alvarez) Asignación raiz=(-b+Math.sqrt(b*b-4*a*c))/(2*a); sintaxis variable=expresión; semántica evaluar expresión (resultado de tipo int o double) asignar resultado (salvo si variable int y exp double) notas a igual precedencia, evaluación de izq a der paréntesis confirman o modifican orden de evaluación si operadores de distinto tipo, entonces resultado double inicialización tipo variable=expresión; constantes simbólicas: final tipo var=expr;
3
Funciones static public int azar(int x,int y){
26-abril(J.Alvarez) Funciones static public int azar(int x,int y){ return x + (int)(Math.random()*(y-x+1)); } Uso(invocación): U.azar(1,6) Clase.nombre(argumentos) Clase se omite si función está en misma clase Semántica copiar argumentos en parámetros ejecutar instrucciones devolver valor de exp de inst return
4
Selección de instrucciones
26-abril(J.Alvarez) Selección de instrucciones if(a%4==0 && a%100!=0 || a%400==0) C.println(“366 dias”); else C.println(“365 dias”); sintaxis if(condición) inst1; else inst2; semántica Si cond es true entonces realizar inst1; si es false inst2 (opcional) selección múltiple (ejecutar una inst entre n opciones) if(cond1) inst1; else if(cond2) inst2; … else instn;
5
Condición(expresión boolean)
26-abril(J.Alvarez) Condición(expresión boolean) 0. Operador ! (not) 1. Expresiones aritméticas 2. Operadores comparación (<, <=,>,>=) 3. Operadores de igualdad (==, !=) 4. Operador && (true si ambos true) 5. Operador || (true si alguno true) Tipo boolean boolean b=false;//variable, cte y asignación b=bisiesto(2006);//invocación función if(b) dias=366; else dias=365; //uso … static public boolean bisiesto(int x){ return x%4==0 && x%100!=0 || x%400==0; }
6
26-abril(J.Alvarez)
7
Recursión double potencia(double x,int y){
26-abril(J.Alvarez) Recursión double potencia(double x,int y){ if(x==0&&y==0) U.abortar(“potencia(0,0)”); if(y==0) return 1; if(y<0) return 1/potencia(x,-y); double p=potencia(x,y/2); if(y%2==0) return p*p; else return x*p*p; } notas al menos un caso base que devuelve resultado llamadas recursivas convergen a caso base
8
Operadores especiales
26-abril(J.Alvarez) Operadores especiales asignación (resultado: valor asignado) int ns,n,c; s=n=c=0; //s=(n=(c=0)); asoc der a izq while((n=C.readInt())!=0) //menor prioridad C.println(“promedio=“+(s=s+n)/(c=c+1)); asignación aritméticos C.println(“promedio=“+(s+=n)/(c+=1)); incremento y decremento ++var --var (var++ y var-- devuelven valor previo) expresión condicional int c = a>b ? a : b;//cond? exp1: exp2 int fact(int x){return x==0? 1: x*fact(x-1);}
9
Instrucciones especiales
26-abril(J.Alvarez) Instrucciones especiales for(int i=1; i<=n; ++i){...} for(inst1;cond;inst2){insrucciones} {inst1; while(cond){...; inst2;}} switch(C.readInt()%10){//para int y char case 0: C.print(“cero”); break; ... case 8: C.print(“ocho”); break; default: C.print(“nueve”); } toma el mismo tiempo elegir cualquier caso Prop. String enPalabras(int x) //x: entero positivo de dos dígitos ej: enPalabras(78) entrega “setenta y ocho”
10
26-abril(J.Alvarez)
11
Clase String: uso //reemplazar todos los x por y en z
26-abril(J.Alvarez) Clase String: uso //reemplazar todos los x por y en z String reemplazar(String x,String y,String z){ int i=z.indexOf(x); if(i<0)return z; return z.substring(0,i) + y + reemplazar(x,y,z.substring(i+x.length())); } //obtener una respuesta “si” o “no” String siNo(String x){ String r=U.leerString(x+” si o no?”) .trim().toLowerCase(); return r.equals(“si”)||r.equals(“no”)) ? r : siNo(x);
12
Archivos //copiar archivos BufferedReader I=new BufferedReader(
26-abril(J.Alvarez) Archivos //copiar archivos BufferedReader I=new BufferedReader( new FileReader(U.leerString(“input?”))); PrintWriter O=new PrintWriter( new FileWriter(U.leerString(“output?”)); String linea; while((linea=I.readLine())!= null) O.println(linea); O.close(); I.close();
13
Teclado y Pantalla (Console)
26-abril(J.Alvarez) Teclado y Pantalla (Console) class U{ static public BufferedReader teclado= new BufferedReader( new InputStreamReader(System.in)); static public String leerString(String x){ System.out.print(x); return teclado.readLine(); } static public int leerInt(String x){ return Integer.parseInt(leerString(x)); …
14
Uso de objetos de una clase
26-abril(J.Alvarez) Uso de objetos de una clase //Fracción más lejana (del promedio) F f=new F(U.leerString(“nº/nº?”)), s=new F(), min=new F(f), max=new F(f), cero=new F(); int n=0; while(!f.equals(cero)){ s.sumar(f); ++n; if(f.compareTo(max)>0) max.asignar(f); if(f.compareTo(min)<0) min.asignar(f); f.asignar(U.leerString(“nº/nº?”)); } s.dividir(new F(n)); //promedio System.out.println(“más lejana=“+ (max.resta(s).compareTo(s.resta(min))>0 ? max : min).toString() );
15
Clase Fraccion (F) class F{ //en archivo F.java
26-abril(J.Alvarez) Clase Fraccion (F) class F{ //en archivo F.java //representacion: datos de un objeto private int a,b; //constructores: inicializan objeto public F(int x,int y){//”canónico” a=x; b=y; validar(); } public F(){a=0; b=1;}//default ctor public F(F x){a=x.a; b=x.b;}//copy ctor public F(int x){a=x; b=1;} public F(String x){asignar(x);} public F(double x){...}//si x=4.5,a=45yb=10
16
Funciones públicas: un resultado (no modifican objeto)
26-abril(J.Alvarez) Funciones públicas: un resultado (no modifican objeto) //selección, conversión y comparación int numerador(){return a;} int denominador(){return b;} String toString(){return a+”/”+b;} int toInt(){return a/b;} double toDouble(){return (double)a/b;} boolean equals(F x){return a*x.b==b*x.a;} int compareTo(F x){return a*x.b-b*x.a;} //operadores F simple(){ int m=U.mcd(a,b); return new F(a/m,b/m);} F inverso(){return new F(b,a);} F suma(F x){return new F(a*x.b+b*x.a,b*x.b);} F resta(F x){return new F(a*x.b-b*x.a,b*x.b);} F mult(F x){return new F(a*x.a,b*x.b);} F div(F x){return new F(a*x.b,b*x.a);}
17
Procedimientos (public void): modifican objeto
26-abril(J.Alvarez) Procedimientos (public void): modifican objeto //modificadores numerador(int x){a=x;} denominador(int x){b=x; validar();} //operadores unarios simplificar(){int m=U.mcd(a,b);a/=m;b/=m);} invertir(){int t=a; a=b; b=t; validar();} //operadores binarios sumar(F x){a=a*x.b+b*x.a; b*=x.b;} restar(F x){a=a*x.b-b*x.a; b*=x.b);} multiplicar(F x){a*=x.a; b*=x.b;} dividir(F x){a*=x.b; b*=x.a; validar();}
18
Cont... //asignación public void asignar(F x){a=x.a; b=x.b;}
26-abril(J.Alvarez) Cont... //asignación public void asignar(F x){a=x.a; b=x.b;} public void asignar(String x){ int i=x.indexOf(“/”); if(i<0){a=Integer.parseInt(x);b=1;return;} a=Integer.parseInt(x.substring(0,i)); b=Integer.parseInt(x.substring(i+1)); validar(); } //métodos internos (de servicio) private void validar(){ if(b==0) U.abortar(“denominador cero”); }}//fin class F
19
26-abril(J.Alvarez)
20
26-abril(J.Alvarez)
21
26-abril(J.Alvarez)
22
26-abril(J.Alvarez)
23
26-abril(J.Alvarez)
24
26-abril(J.Alvarez)
25
Indicación Tarea 2 class Conjunto { protected String s; public Conjunto(String x){ s=“”; //recorrer todos los caracteres for(int i=0;i<x.length();++i){ String c=x.substring(i,i+1); //añadir los que no están if(s.indexOf(c)<0) s+=c; } ...
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.