26-abril(J.Alvarez).

Slides:



Advertisements
Presentaciones similares
Computación II Repaso de java Karina Figueroa Mora.
Advertisements

Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
FUNDAMENTOS DE PROGRAMACIÓN VARIABLES, CONSTANTES Y TIPOS DE DATOS EN C.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento.
Computación I :: Prof. Yeniffer Peña Introducción al C Presentación Computación I.
Entrada y Salida en C++, Estructuras de Control Prof. Manuel B. Sánchez.
Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3.
2015-BM5A. ¿Qué estructuras de Programación conocemos? Condicional: If … { } … Else …{ } Condicional por Casos: Switch (opcion) { } Repetitiva exacta:
Control, adquisición y monitoreo con Arduino y Visual Basic .net
Introducción a la Programación Multimedial
Tema 6: Elementos de programación adicionales
Operadores Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.
Estructuras de Control.
Clase1: lectura/escritura/asignación
Clase 8: Strings Valeria Herskovic –
ROBERTO PINEDA FLORES. ALEXIS JULIAN VELAZQUEZ NAVA.
BREVE INTRODUCCION A LA PROGRAMACION
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Clase 8: Strings J.Alvarez.
Métodos y parámetros.
Repaso/resumen lectura/escritura y asignación funciones
Algunas Características de C++ no presentes en C
Clase 9: Repaso/Resumen
Métodos en Java.
Algunas Características de C++ no presentes en C
Repaso/resumen: Introducción a la Programación orientada a objetos
Clase 8: Strings J.Alvarez.
Programación I MC Beatriz Beltrán Martínez
Clase 8: Repaso/Resumen
Objeto de clase Fracción métodos públicos representación privada constructor Fraccion(…) asigna a procedimiento void m(…) modifica b función tipo/clase.
¿Qué es un OPERADOR? “Un operador es un elemento de programa que se aplica a uno o varios operandos en una expresión o instrucción. Los operadores que.
Clase 7: Abreviaturas Valeria Herskovic –
Objeto de clase Fracción métodos públicos representación privada constructor Fraccion(…) asigna a procedimiento void m(…) modifica b función tipo/clase.
Algunas Características de C++ no presentes en C
Fundamentos del lenguaje de programación Condicionales, ciclos, Métodos, enumeraciones Escuela Técnica Superior Kinal Instructor Edwin Tumax.
Teclado y Pantalla (Java estándar)
Programación Orientada a Objetos
Repaso/resumen: Introducción a la Programación orientada a objetos
Estructuras de control en PHP
26-abril(J.Alvarez).
Clase 7: Repaso/Resumen
Retroalimentación ejercicios de tarea. Ejercicios para resolver 1.¿Cuántos bytes hay exactamente en un sistema que contiene a.32 Kbytes b.64 Mbytes c.6.4.
El Lenguaje C: Elementos Básicos
FUNCIÓN LÓGICAS Función FALSO() Devuelve el valor lógico Falso.
ESTRUCTURAS DE DATOS Docente: Ing. Yesika Medina
Programación I MC José Andrés Vázquez Flores
Algunas ideas básicas de C++
Tema 3: Operadores Antonio J. Sierra.
Repaso/resumen: Introducción a la Programación orientada a objetos
Curso de Programación Estructurada
Qué es orientación a objeto ?
Expresiones algorítmicas
Clase 7 Strings 28 de Marzo (N.Baloian).
Clase 8: Strings J.Alvarez.
Informática Ingeniería en Electrónica y Automática Industrial
Repaso/resumen: Introducción a la Programación orientada a objetos
Diego Hernández R Pascal Variables Diego Hernández R
Clase1: lectura/escritura/asignación
Introducción a la Computación Numérica
JAVA: elementos básicos
Repaso/resumen: Introducción a la Programación orientada a objetos
Clase 10 (Repaso/Resumen)
Ejemplos de uso //obtener una respuesta “si” o “no” static public String siNo(String x) throws IOException{ String r=U.readLine(x+” si o no?”) .trim().toLowerCase();
Clase1: lectura/escritura/asignación

Clase 8: Strings.
Uso de objetos de una clase
Problema Un programa debe leer 2 números desde un objeto Console. El primero es el monto que un cliente debe pagar por una compra y el segundo la cantidad.
Transcripción de la presentación:

26-abril(J.Alvarez)

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;

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

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;

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; }

26-abril(J.Alvarez)

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

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);}

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”

26-abril(J.Alvarez)

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);

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();

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)); …

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() );

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

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);}

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();}

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

26-abril(J.Alvarez)

26-abril(J.Alvarez)

26-abril(J.Alvarez)

26-abril(J.Alvarez)

26-abril(J.Alvarez)

26-abril(J.Alvarez)

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; } ...