Las preguntas de programación
El 31 de de agosto de, 2014
Realización OS endurecimiento tanto en XP y Windows 7 dispositivos virtuales Negocio arriesgado que es dejar la configuración predeterminada habilitados con un sistema operativo Microsoft Windows. Como medida de las mejores prácticas, todos los sistemas operativos, incluyendo no basado en Windows, debería tener un mayor nivel de seguridad, llamada endurecimiento, antes de ser desplegado en la producción. Para el Proyecto de Curso tendrá que endurecer tanto de los invitados VM que había construido anteriormente en este curso. A modo de referencia, siga los pasos proporcionados por Microsoft sobre cómo endurecer> </a> indows 7 (x86) y de Windows 8.1. Preguntas explicado Programación 1. Mes Escribir un mes de clases que representa uno de los doce meses del año. Se debe tener tres atributos para el nombre del mes, el número de días del mes, y la piedra de nacimiento. añadir también los constructores y los métodos de captador / definidor para acceder a los atributos. MES DÍAS BIRTHSTONE de enero de Granate el 31 de de febrero de 28 de amatista de marzo de Aguamarina el 31 de de abril de 30 de diamante puede Esmeralda el 31 de de junio de 30 de AlejandritaEl 31 de de julio de rubí de agosto de peridoto el 31 de de septiembre de 30 de zafiros de octubre de ópalo el 31 de de noviembre de 30 de Topaz de diciembre de azul el 31 de Zircon Usted puede utilizar el código siguiente para probar su clase. importar java.util. *; Mes public class {// Añadir código aquí !!! public String toString () {return "... información sobre este objeto ..."; } public void main (String [] args) {estáticas Mes [] = new meses Mes [12]; meses [0] = new Mes ( "Enero", 31, "granate"); meses [1] = new Mes ( "Febrero", 28 "amatista"); meses [2] = new Mes ( "Marcha", 31, "Aquamarine"); meses [3] = new Mes ( "Abril", 30, "diamante"); meses [4] = new Mes ( "mayo", 31, "Esmeralda"); meses [5] = new Mes ( "Junio", 30 ", Alejandrita"); meses [6] = new Mes ( "Julio", de 31 años, "Ruby"); meses [7] = new Mes ( "Agosto", 31, "Peridot"); meses [8] = new Mes ( "Septiembre", 30, "Sapphire"); meses [9] = new Mes ( "Octubre", de 31 años, "Opal"); meses [10] = new Mes ( "Noviembre", 30, "Topaz"); meses [11] = new Mes ( "Diciembre", 31 ", Zircon azul"); análisis del Scanner = newEscáner (System.in); System.out.println ( "Por favor, introduzca un mes (número 1 - 12):"); int a = scan.nextInt (); si (a <1 || a> 12) {System.out.println ( "Entrada de malo!"); regreso; } System.out.println (meses [a - 1]); }} 2. Cerca de Escuela Escribir un programa que encuentra NearbySchool.java las 5 escuelas más cercanas (en Vancouver City) a una dirección de entrada (por ejemplo, 555 W Hastings St, Vancouver, BC V6B 4N4). El siguiente archivo contiene la información de la ubicación de todas las escuelas de Vancouver: El conjunto de datos tiene cinco campos: SCHOOL_NAME, latitud, longitud, DIRECCIÓN, URLLINK. (Tenga en cuenta que la primera línea del archivo es los nombres de los campos Tendrá que saltar esta línea;. Acaba de leer la primera línea y la descarta.) El programa debe pedir al usuario que escriba una dirección en la ciudad de Vancouver, y entonces la salida cinco escuelas más cercanas a esa dirección. Las siguientes son algunas ideas. Escribe una escuela de clase que contiene atributos como el nombre de la escuela, ubicación, ... Leer los datos de la escuela desde el archivo de arriba y crear una colecciónescuelas de pedir al usuario que escriba en una dirección, y el uso de codificación geográfica de Google para encontrar su latitud y longitud calcular la distancia desde la dirección de entrada de cada escuela, y encontrar las cinco escuelas más cercanas 3. Segmento de línea Escribir un segmento de clase, que es una subclase de la clase de la forma se define a continuación. Forma clase abstracta pública {int x protegida; int y protegida; Forma pública (int _x, _y int) {x = _x; y = _y; SetX} public void (int _x) {x = _x; } Public void setY (int _y) {y = _y; } Public int getX () {return x; } Public int getY () {return y; } Public abstract void draw (); doble zona pública abstracta (); doble perímetro abstracta pública (); } El segmento clase utiliza los dos atributos (x, y) heredados de la clase de la forma como su primer punto final. También debe contener los siguientes atributos y métodos: int x1: la coordenada x del segundo punto final int y1: la coordenada del segundo punto final segmento (int x, int y, int x1, int y1): constructor int getX1 (): devuelve elcoordenada x del segundo punto final int getY1 (): devuelve la coordenada del segundo punto final int setX1 (int x1): Establece la coordenada x del segundo punto final int setY1 (int y1): establece la coordenada y de el segundo criterio de valoración Asimismo, es preciso poner en práctica los métodos abstractos definidos en la Forma clase abstracta. void draw (): Puesto que no tenemos salida gráfica, que es lo suficientemente bueno para imprimir una frase que describe el segmento de línea. doble zona (): simplemente devuelve 0 doble perímetro (): devuelve la longitud del segmento de línea. Desde el primer punto es (x, y) y el segundo punto es (x1, y1), la longitud es: Math.sqrt ((x-x1) * (x-x1) (y-y1) * (y- y1)) Por favor complete la siguiente clase: public class segmento amplía Shape {private int x1; y1 int privado; Segmento público (int x, int y, int x1, y1 int) {super (x, y); this.x1 = x1; this.y1 = y1; ...}} 4. Clase estudiante escriba una clase Student con los siguientes atributos y métodos. Atributos: Cadena en primer lugar: el primer nombre de cadena pasada:el último correo electrónico String name: la dirección de correo electrónico larga id: el Constructor identificación del estudiante: Estudiante (String primera, Cadena último, el correo electrónico de cuerdas, a largo id) Métodos: String getName (): retorna el apellido seguido por ',' y el primer nombre de vacío setName (String nombre, apellido): establece el nombre y apellido de cadena getEmail (): devuelve la dirección de correo electrónico vacío setEmail (correo electrónico String): establece la dirección de correo electrónico larga getId (): devuelve el identificador de setId vacío (larga id): conjuntos toString string id (): devuelve una cadena que describe el nombre, la identificación y el correo electrónico del estudiante public class {......} 5. número complejo un número complejo es un número de la forma x iy, donde x e y son números reales y i es la raíz cuadrada de -1. El número x se conoce como la parte real del número complejo, y iy se conoce como la parte imaginaria. Los números complejos son una abstracción matemática por excelencia: si uno cree que tiene sentido físicamente a tomar la raíz cuadrada de -1, números complejos nos ayudan a entender el mundo natural. Son ampliamenteutilizado en matemáticas aplicadas y desempeñan un papel esencial en muchas ramas de la ciencia y la ingeniería. Se utilizan para modelar sistemas físicos de todo tipo, de los circuitos a las ondas sonoras a campos electromagnéticos. Estos modelos suelen requerir extensos cálculos que implican la manipulación de los números complejos de acuerdo con las operaciones aritméticas bien definidos, por lo que queremos escribir programas de ordenador para hacer los cálculos. En pocas palabras, necesitamos un nuevo tipo de datos. Escribe una ComplexNumber clase con los siguientes atributos y métodos. Atributos: Doble X: la parte real doble y: la parte Constructor imaginaria: ComplexNumber (doble x, doble y) Métodos: dos jo (): devuelve el doble im parte real (): devuelve el ComplexNumber parte imaginaria más (ComplexNumber b) : devuelve la suma de esta serie con b ComplexNumber menos (ComplexNumber b): devuelve la deducción de este número con tiempos b ComplexNumber (ComplexNumber b): devuelve el producto de esta serie con tiempos b ComplexNumber (doble alfa): el regresoel producto de esta serie de un verdadero valor (escalar) Las reglas para las operaciones se definen de la siguiente manera: además de: (x iy) (v iw) = (x v) i (y w). menos: (x iy) - (v iw) = (x-v) I (Y-w). tiempos: (x iy) * (v iw) = (XV - YW) i (YV XW). veces con valor escalar: (x iy) * a = ax i (ay) Por favor complete el siguiente código para ComplexNumber. ComplexNumber public class {...... ComplexNumber pública más (ComplexNumber b) {real doble = this.re b.re; doble imag = this.im b.im; volver nueva ComplexNumber (real, imag); }} 6. Conjunto de números enteros Crear una IntegerSet clase que representa un conjunto de números enteros (sin duplicados) entre 0 y un número máximo N-1. Soporte para sumar (i), existe (i), eliminar (i), el tamaño (), se cruzan, diferencia, diferencia simétrica, unión, isSubset, isSuperSet. Los significados de las operaciones de configuración se pueden encontrar en el siguiente enlace: PISTA: La clase puede contener un atributo: una matriz booleana de longitud N. Cada elemento de esta matriz representa si el correspondienteíndice entero está en el conjunto. Por ejemplo, la clase pública IntegerSet {private boolean [] indicador; IntegerSet pública (int max) {indicador = new Boolean [max]; } Public void add (int e) {indicador [e] = true; } ... Unión IntegerSet pública (IntegerSet s) {int len = Math.max (s.indicator.length, indicator.length); IntegerSet ret = new IntegerSet (len); for (int i = 0; i <indicator.length; i +) si (indicador [i]) ret.indicator [i] = true; for (int i = 0; i <s.indicator.length; i +) si (s.indicator [i]) ret.indicator [i] = true; ret regresar; } Void main (String [] args) {public static IntegerSet s1 = new IntegerSet (10); IntegerSet s2 = new IntegerSet (10); s1.add (0); s1.add (1); s1.add (8); s1.add (9); s2.add (0); s2.add (1); System.out.println (s1.isSuperset (s2)); System.out.println (s2.isSuperset (S1)); }} 7. Los paréntesis juego Escribir un programa que Parentheses.java pide al usuario una secuencia de paréntesis "{} [] ()" y utiliza una pila para determinar si se trata adecuadamente equilibrada. Porejemplo, su programa debe imprimir cierto para [()] {} {[() ()] ()} y falsa de [(]) 8. larga meseta Dada una matriz de enteros, encontrar la longitud de la secuencia contigua más larga de valores iguales donde los valores de los elementos justo antes y justo después de esta secuencia son más pequeñas. Por ejemplo, la meseta más larga en la siguiente matriz de {1, 2, 2, 2, 3, 4, 4, 5, 5, 5, 2, 6, 6, 1} es 3, ya que hay tres 5 de aparecer de forma contigua y los valores antes y después de que son más pequeñas. El principio y el final de la matriz no se cuentan como meseta. Por favor complete el siguiente método. Se necesita una matriz como un parámetro y devuelve la longitud de la meseta más larga. La matriz de entrada es la garantía de tener al menos tres elementos. public static int lengthOfLongestPlateau (int [] arr) {if (arr.Length <= 2) return 0; // Añadir código aquí ......} 9. Por encima de la media Dada una matriz de enteros, crear una nueva matriz que contiene los elementos que son más grandes que o igual a la media. Porejemplo, en la siguiente matriz {3, 4, 4, 5, 5, 5, 2, 6, 6, 1}, el promedio es de 4,1, por lo que necesitamos crear una nueva matriz de elementos de la celebración de> = 4,1, es decir {5 , 5, 5, 6, 6} por favor complete el siguiente método. Se necesita una matriz como un parámetro y devuelve una nueva matriz de elementos por encima de la media de la celebración. public int [] superior a la media estática (int [] arr) {......} SUGERENCIA: Hay muchas maneras de generar la matriz final. Una forma es: (1) contar el número de elementos por encima de la media, (2) asignar una nueva matriz de este tamaño recuento (3) analizar la matriz original y llenar la nueva matriz Otra forma es: (1) asignar un nuevo matriz de tamaño igual a la matriz de entrada, (2) llenar y mantener un recuento (3) asignar una matriz más pequeña del tamaño de recuento, llenar, y devolverlo 10. análisis del terreno Dada una rejilla N-por-N de valores de elevación, un pico es un punto de la rejilla para la que las cuatro celdas vecinas son estrictamente inferior. Los puntos en los bordes y esquinas no cuentan (ya que no tienen 4 vecinos).Escribir un método que cuenta el número de picos en una rejilla dada N-por-N. Por ejemplo, en la siguiente matriz {{1, 1, 1, 1, 1}, {1, 2, 1, 2, 1}, {1, 1, 3, 1, 1}, {1, 2, 2 , 2, 1}, {1, 1, 1, 1, 1}}, hay tres picos (en color azul), por lo que el método debe devolver 3. Por favor, rellene el siguiente método. Se necesita una matriz bidimensional como parámetro y devuelve un recuento de pico. Usted puede asumir la matriz de entrada se garantiza que sea N-por-N por alguna N. public static int countPeak (int [] [] arr) {......} 11. Ordenada Duplicar Count Dar una matriz ordenada de N elementos, posiblemente con duplicados, encontrar el número de apariciones de un elemento k en O (log n). Por ejemplo, dado un conjunto {1, 2, 3, 4, 5, 5, 6, 8, 9} y un número 5, que debe devolver 2, ya que hay dos ocurrencias de 5. Por favor complete el siguiente método. Se necesita un arreglo ordenado y un entero, y devuelve el número de ocurrencias de ese entero. Aquí asumimos cada número aparece en más de un número constante de veces.Usted puede asumir la matriz está garantizado para ser resuelto. Pista: modificar búsqueda binaria. public static int dupCount (int [] arr, int del objetivo) {......}