Solución pregunta 1: //inicializaciones: 0.5 ptos double sx=0, sy=0

Anuncio
Solución pregunta 1:
//inicializaciones: 0.5 ptos double sx=0, sy=0, sxy=0, sxx=0; int n=0; Scanner scan = new Scanner(System.in); //leer datos hasta par (0,0): 2.0 ptos while(true){ System.out.println("x?"); int x = scan.nextInt(); System.out.println("y?"); int y = scan.nextInt(); if(x==0 && y==0) break; //actualizar sumas: 1.0 ptos sx += x; sy += y; sxy += x*y; sxx += x*x; ++n; } //calcular m (despejando): 1.5 ptos double m = (sx*sy-­‐n*sxy)/(sx*sx-­‐n*sxx); //calcular c (reemplazando en 1a ecuacion): 0.5 ptos double c = (sy -­‐ m*sx)/n; //escribir la ecuación: 0.5 ptos System.out.println("La recta que mejor aproxima la función es y="+m+"*x+"+c); Solución pregunta 2:
// Parte (a) public class Fraccion { // atributos 0.2 public int numerador, denominador; // constructor public Fraccion(int numerador, int denominador) { //0.3 this.numerador = numerador; this.denominador = denominador; } // métodos public String toString() { //0.2 return numerador + "/" + denominador; } public void sumar(Fraccion x) { //0.5 numerador = numerador * x.denominador() + denominador * x.numerador(); denominador = denominador * x.denominador(); } public void sumar(int x) { // 0.3 numerador = numerador + denominador * x; } public void multiplicar(Fraccion x) { // 0.5 numerador = numerador * x.numerador(); denominador = denominador * x.denominador(); } public int comparar(Fraccion x) { // 0.5 return numerador * x.denominador() -­‐ denominador * x.numerador(); } //accesar atributos 0.5 public int numerador(){ return numerador; } public int denominador(){ return denominador; } } // Parte (b) public class Fracciones { public static void main (String args[]){ //inicializaciones 0.5 Scanner scan = new Scaner(System.in); System.out.println("Promedio y mayor de lista de fracciones"); System.out.println("fin de datos es denominador cero"); Fraccion suma = new Fraccion(0, 1); int n = 0; //contador Fraccion mayor = new Fraccion(-­‐Integer.MAX_VALUE,1); // El ciclo en total 1.0 while(true) { System.out.print("Numerador ? "); int numerador = scan.nextInt(); System.out.print("Denominador ? "); int denominador = scan.nextInt(); if (denominador == 0) break; Fraccion f = new Fraccion(numerador, denominador); suma.sumar(f); System.out.println("Suma = " + suma.toString()); ++n; if(f.comparar(mayor) > 0) mayor = f; } // Solo se muestra el promedio si se ingresaron fracciones // mostra finales 1.0 if (n>0) { Fraccion promedio = new Fraccion(1, n); promedio.multiplicar(suma); System.out.println("Promedio = " + promedio.toString()); System.out.println("Mayor = " + mayor.toString()); } } } Solución pregunta 3:
a) (2 puntos) Devuelve un arreglo de enteros del mismo tamaño que el arreglo que recibe como
parámetro, con los números en el orden inverso.
(1 punto) Si indica que el arreglo invertido tiene un tamaño distinto al original.
(0,5 puntos) Si indica que entrega un arreglo del mismo largo, pero no indica que los elementos
están invertidos.
b) (2 puntos, descontar 0,3 por cada línea faltante o distinta, descontar 0,3 por cada línea extra)
Construyendo un A. Construyendo un B. Incrementando x. 7 Incrementando x. 10 c) (2 puntos, descontar 0,2 por cada línea faltante o distinta, descontar 0,2 por cada línea extra)
2 6 10 -­‐-­‐-­‐ 4 3 0 1 3 2 
Descargar