Download CC10A-Computación I – Control Nº 1 – jueves 2 de mayo de 2002

Document related concepts

Función divisor wikipedia , lookup

Número abundante wikipedia , lookup

Número casi perfecto wikipedia , lookup

Algoritmo de Euclides wikipedia , lookup

División larga wikipedia , lookup

Transcript
CC1001-Computación I – Control Recuperativo – jueves 31 de mayo de 2007 - Tiempo: 2 horas
Con apuntes individuales – Sin consultas - Contestar en hojas separadas
Pregunta 1
a) (1.5 puntos) Escriba un método (función) de encabezamiento static public int divisor(int i, int x) que
entregue el i-ésimo divisor de x. Por ejemplo, divisor(1,9) entrega 1, divisor(2,9) devuelve 3, divisor(3,9) entrega
9, y divisor(4,9) devuelve 0, para indicar que no existe un 4º divisor de 9.
b) (1.5 puntos) Escriba una función que reciba un número entero positivo y entregue true si es perfecto, o false si
no lo es. Un número es perfecto si es igual a la suma de sus divisores (excluyendo el mismo número). Por
ejemplo, esPerfecto(6) devuelve true porque 6=1+2+3. Por otro lado, esPerfecto(9) entrega false porque 9≠1+3.
Nota. Para recuperar los divisores del número debe usar la función divisor (escrita en la parte a).
c) (3 puntos) Escriba un programa que encuentre los primeros 5 números perfectos. Al respecto, los números
perfectos tienen la forma nº=2k-1(2k-1), por lo tanto, se debe probar con valores sucesivos de k, a partir de 2. La
lista de 5 números perfectos debe escribirse en la siguiente forma:
k=2 nº=6=1+2+3
k=3 nº=28=1+2+4+7+14
. . .
Notas.
 Para algunos valores de k el número resultante no es perfecto. Por ejemplo para k=4, nº=90 no es perfecto
porque 90≠1+2+3+5+6+9+10+15+18+30+45=144
 Para verificar si un número es perfecto debe usar la función esPerfecto (escrita en la parte b)
 Para recuperar los divisores de un número perfecto debe usar la función divisor (escrita en la parte a)
Pregunta 2
La clase Partes permite operar con partes de un string de acuerdo a los métodos indicados en la siguiente tabla:
ejemplo
significado
encabezamiento
Partes a=new Partes Crea un objeto que contiene un string cuyas partes están Partes(String x,char y)
(“ab:cde:f” , ’:’)
separadas por el carácter :
a.numero()
entrega el número de partes del objeto. Por ej: 3
int numero()
a.sacaPrimero()
Entrega la primera parte del objeto y la elimina. Por String sacaPrimero()
ejemplo, la 1ª vez entrega y elimina “ab”, la 2ª vez
“cde”, la 3ª “f”, la 4ª entrega el valor null
a)Escriba los métodos número y sacaPrimero de la clase Partes considerando la sgte representación de los
objetos:
class Partes{
protected String s;
protected char c; //carácter separador de las partes
…
}
b)Escriba un programa que permita obtener estadísticas de notas de todos los alumnos del primer año en
cualquiera de las 5 asignaturas, de acuerdo a la siguiente interfaz con el usuario:
Button
Algebra
Calculo
Button
Button
Computación
Física
Button
Button
Ingeniería
Quit
Button
Label Nº de Aprobados=nº % de aprobados=nº Label
La información de los alumnos se encuentra en el archivo “2007.txt”. Cada línea contiene el nombre y el
promedio de las notas en Álgebra, Cálculo, Computación, Física e Ingeniería de un alumno, en la forma indicada
en el siguiente ejemplo: “Ana Ríos,4.5,5.3,4.2,3.8,6.3”
Notas
 Para recuperar las notas debe usar los métodos de la clase Partes.
 Los aprobados son los alumnos con nota ≥ 4.0