Академический Документы
Профессиональный Документы
Культура Документы
import java.util.Scanner;
class Respuesta{
static Scanner leer=new Scanner(System.in);
2. Construir un programa que obtenga el trmino n de la serie de Fibonacci. El valor de n deber leerse
por teclado usando la clase Scanner. La serie de Fibonacci es una secuencia de enteros positivos, cada
uno de los cuales es la suma de los dos anteriores. Los dos primeros nmeros de la secuencia son 0 y 1,
La serie se define como:
Fibonacci=n para n<=1
Fibonaccin=Fibonaccin-1+Fibonaccin-2 para todo n>1
El programa tendr, adems del mtodo main, un mtodo iterativo para calcular dicho trmino. El mtodo
main deber llamar al mtodo e imprimir, usando printf, el trmino n de la serie. Si el usuario introduce un
valor negativo, el programa debe emitir un aviso.
3. Escriba un programa que imprima el tringulo de Pascal con el nmero de filas introducido por teclado.
Para ello, utilice la funcin combinatoria c (n, k) usando la definicin:
n
c(n,k)=n!/(k! (n-k)!)= con kn
k
4. Qu forma tendra el segundo bucle for (en negrita) del mtodo main para que el resultado del
programa fuera el que se encuentra debajo del cdigo de la clase?
class Ejercicio {
public static void main(String [] args ) {
int filas=5, numero;
for (int n=0; n<filas; n++){
for ( ???? ) {
System.out.print(" ");
}
for (int k=0; k<=n;k++){
numero=c(n,k);
System.out.print(numero+" ");
}
System.out.println();
}
} // Fin mtodo main
} // Fin clase
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
a) int i=0; i<filas; i++ b) int i=n; i<filas; i++ c) int i=0; i<(2*n-filas)-1 ;i++ d) int i=filas; i>filas-n; i--
5. Sea el siguiente algoritmo propuesto por Euclides en sus Elementos, libro sptimo, para determinar el
mximo comn divisor de dos enteros, n y m, tal que n<m :
Escriba un programa que acepte dos nmeros enteros ledos por teclado y determine su mximo comn
divisor aplicando el algoritmo de Euclides. Escriba un mtodo que aplique el algoritmo.
6. Dos nmeros son amigos, si cada uno de ellos es igual a la suma de los divisores del otro. Por ejemplo,
220 y 284 son amigos, ya que:
Suma de divisores de 284: 1 + 2 + 4 + 71 + 142 = 220
Suma de divisores de 220: 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284
Hacer un mtodo que determine si dos nmeros dados como parmetros son amigos o no. A continuacin
realizar un programa que muestre todas las parejas de nmeros amigos menores o iguales que n, siendo
n un nmero introducido por teclado. El programa debe usar el mtodo amigo previamente definido.
import java.io.*;
class Cajero{
static BufferedReader teclado=new BufferedReader(new InputStreamReader(System.in));
static void mostrarmenu(){
System.out.println("1. Ingreso de efectivo");
System.out.println("2. Disposicin de efectivo");
System.out.println("3. Consulta de saldo");
System.out.println("4. Pago de recibos");
System.out.println("5. Recarga de mvil");
System.out.println("6. Retirada de entradas");
System.out.println("7. Salir");
}//fin mostrarmenu
static int leeropcion() throws IOException{
System.out.print("\nIntroduzca la opcin deseada...\n");
int entrada=Integer.parseInt(teclado.readLine());
while (entrada<1 || entrada>7){
System.out.print("Opcin incorrecta. Vuelva a "+"intentarlo...");
entrada=Integer.parseInt(teclado.readLine());
}
return entrada;
}//fin leeropcion
public static void main(String args[]) throws IOException{
int opcion=0;
System.out.println("Programa que simula el funcionamiento"+
" de un cajero\n");
mostrarmenu();
leeropcion();
System.out.println (opcion);
}//fin del main
}//fin de la clase
a) Opcin incorrecta. Vuelva a intentarlo... b) Error: el mtodo mostrarmenu no devuelve ningn valor
c) 0 d) 3
class Ejercicio{
public static void main (String [] args) {
double radio=1;
int lado=4,perimetro=0;
char p;
p=args[0].charAt(0);
if (p=='c') {
perimetro= perimetro(radio); }
else if (p=='d') {
perimetro=perimetro(lado);
}
System.out.println(perimetro);
}//fin main
10. Cul es el resultado de ejecutar el siguiente programa para op=c? Y para op=t?
class Ejercicio{
public static void main (String [] args) {
int l=3,h=5,sup=0;
char op;
op=args[0].charAt(0);
if (op=='c') {
sup=calcular_superficie(l); }
else if (op=='t') {
sup=calcular_superficie(l,h);
}
System.out.println(sup);
}//fin main
public static int calcular_superficie(int l){
return l*l;
}//fin calcular_superficie
public static int calcular_superficie(int l, int h) {
return (int)((l*h)/2);
}//fin calcular_area
}//fin clase Ejercicio
class Ejercicio {
public static void main (String args[]){
int b= 5;
System.out.print(metodoA(b));
System.out.println(metodoA(b));
}
static int metodoA (int y) {
return y+8;
}
static double metodoA (int y) {
return y+6;
}
}//fin clase
12. Escriba un mtodo que dada un cadena de caracteres, calcule la suma de todos los dgitos que hay
en ella. Escriba un programa que dada una cadena de caracteres por lnea de ordenes invoque al mtodo
anterior e imprima la suma de los dgitos de la cadena. Use el mtodo printf para imprimir
13. Escriba un mtodo que invierta un vector de enteros. El mtodo debe recibir como argumento el
vector a invertir y devolver, en otro vector distinto, el vector invertido. Nota: un vector inicial [1, 2, 3, 4]
debera quedar despus de la inversin [4, 3 ,2 ,1]. Escriba un programa principal que lea el vector de
enteros e imprima el vector resultante de la inversin.
class Ejercicio {
public static void main(String [] args) {
int[] a={3,4,5};
int [] b=a;
b[1]=3;
a=metodo1(a ,b);
for (int i=0; i<a.length;i++)
System.out.print(a[i]+" "+b[i]+" ");
}
class Ejercicio {
public static void main(String [] args) {
int [] Valores1 ={9, 48, 5, 3, 29, 62};
int [] Valores2 ={45, 1, 33};
metodo1(Valores1 [4]);
metodo1(Valores2 [2]);
metodo2(Valores2);
Valores1=metodo3(Valores2);
System.out.print(Valores1[0]);
for (int i=1; i<Valores2.length;i++)
System.out.print(" "+Valores1[i]);
}
public static void metodo1(int numero) {
numero = 0;
numero=numero+10;
}
public static void metodo2(int [] lista) {
lista[1]=lista[2];
}
public static int [] metodo3(int [] lista) {
for (int i=0; i<lista.length;i++)
lista[i]=lista[i]+i;
return lista;
}
}
class Ejemplo {
public static void main (String [] args) {
int [] a= {3,4,5};
metodo1(a, a[1]);
for (int i=0; i<a.length; i++)
System.out.print (a[i]+ );
}
static void metodo1(int [] b, int c) {
c++;
for (int i=0; i<b.length; i++) {
b[i] = b[i] + c;
}
}
}
class Ejercicio1{
public static void main(String [] args) {
char[] matriz1={'c', 'a', 's', 'a'}, matriz2=null;
String cadena = "oeoe ";
matriz1[3]=cadena.charAt(1);
metodo1(matriz2, matriz1);
System.out.println(matriz1);
}//fin main
public static void metodo1(char [] m1, char[] m2) {
String cadena = "ptpt" ;
m1=m2;
m1[0] = cadena.charAt(1) ;
}//fin metodo1
}//fin clase Ejercicio1
18. Construya en Java dos mtodos que reciban como nico parmetro una matriz de enteros. El primer
mtodo debe devolver la media aritmtica de los enteros de la matriz. El segundo mtodo debe
devolver el valor mximo de la matriz. Construya un programa principal que lea una matriz de enteros,
invoque a ambos mtodos e imprima los valores devueltos.
class Ejercicio {
public static void main(String [] args) {
int[] matriz1={9,1,3,5};
int [] matriz2=matriz1;
matriz2[3]=4;
matriz1[1]=3;
metodo1(matriz1, matriz2);
System.out.print(matriz1[1]+" "+matriz2[2]+" ");
}//fin main
public static void metodo1(int [] m1, int [] m2) {
m1[1]=4;
m2[1]=m1[3]+m2[2];
}//fin metodo1
}//fin clase
20. Escriba un programa que genere un boleto de lotera primitiva con el nmero de apuestas elegido por
el usuario. El programa har uso del concepto de modularizacin, conteniendo los mtodos necesarios
para la generacin del boleto. En el mtodo main se leer el nmero de apuestas con la clase Scanner y
se imprimir el boleto (nmeros de cada apuesta, reintegro y precio) con printf. Un boleto de lotera
primitiva se compone de n apuestas de 6 nmeros enteros elegidos al azar en el intervalo de 1 a 49 y un
reintegro elegido al azar entre 0 y 9. El coste de cada apuesta es de 1 euro.
21. Escriba un programa que cree una matriz con los caracteres de la a a la j y a continuacin sustituya
todas las vocales que se encuentren en la matriz por el carcter @.
class Matrices {
public static void main(String [] args){
int [][]matriz={{1},{1,2},{1,2,3}};
cambiar(matriz);
System.out.println(matriz[matriz.length-1][matriz.length-1]);
}
public static void cambiar(int [][]matriz){
for (int i=matriz.length-1;i>=0;i--)
for (int j=matriz[i].length-1;j>=0;j--)
matriz[i][j]=i+j;
}
}