Está en la página 1de 4

Grado en Ingeniería Informática – Facultad de Ciencias Sociales de Talavera de la Reina

Fundamentos de Programación I
25/01/2021 Convocatoria Ordinaria
APELLIDOS, NOMBRE: _____________________________________________________

Ejercicio 1 (1 punto). Escribe qué mostraría por pantalla el siguiente programa:


public class ExamenOrd2021 {
public static void main(String[] args) {
int [] c0= {2, 4, 6, 8};
int [] c1= {1, 2, 3};
c1= funcion(c0, c1[2]);
for (int i=0; i<c1.length; i++)
System.out.print (c0[i]+ " " + c1[i] + " ");
}

static int[] funcion(int [] c2, int a) {


int [] c4 = new int [3];
for (int i=0; i<c4.length; i++) {
c4[i] = a *c2[i];
c2[i] = c2[i] + 1;
}
return c4;
}}
Solución: 3 6 5 12 7 18
Ejercicio 2 (1 punto). Escribe qué mostraría por pantalla el siguiente programa:
public class ExamenOrd2021 {
public static void main(String[] args) {
boolean stop = false;
double var = 1.0, sol = 0;
for (int i = 0; i < 3 && !stop; i++) {
switch (i) {
case 0: sol = funcion (i, var); break;
case 1:
sol = funcion (sol, i); break;
case 3:
sol = 3; break;
default:
sol = funcion (var, i);
stop = true;
}
}
System.out.println(sol);
}
static double funcion (int a, double b) {
return a*b;
}
static double funcion (double a, int b) {
return a + b;
}
}
Solución: 3.0
Grado en Ingeniería Informática – Facultad de Ciencias Sociales de Talavera de la Reina

Fundamentos de Programación I
25/01/2021 Convocatoria Ordinaria
APELLIDOS, NOMBRE: _____________________________________________________

Ejercicio 3 (1.5 puntos). Escribe una única línea de código que falta en el método misterio
para que la salida por pantalla del programa sea 0, 20, 20, 5, 10, 15
public class ExamenOrd2021 {
static void misterio(int[] m){
m[2]=20;
m[1]=m[2]-m[0];
System.out.print(m[0]+", "+m[1]+", "+m[2]+", ");
}
public static void main(String[] args) {
int[] matriz={5,10,15};
misterio(matriz);
System.out.println(matriz[0]+", "+matriz[1]+", "+matriz[2]);
}
}

Solución:
static void misterio(int[] m){
m = new int[3];
m[2]=20;
// …

Ejercicio 4 (1.5 puntos). Completa el método siguiente para que tome como entrada una matriz
de N filas y M columnas (con N y M >0) y devuelva una cadena formada por la concatenación de
los elementos de dicha matriz, cuando ésta se recorre empezando por la última columna y de
abajo a arriba. Por ejemplo, si se pasa como entrada la matriz:
4 3 6
1 0 8

Debería retornar la cadena “8 6 0 3 1 4”


static String metodo(int[][] m){
String s="";
for (int )
for (int )
s= s + m[i][j]+" ";
return s;
}

Solución:
// …
for (int j=m[0].length-1; j>=0; j--)
for (int i=m.length-1; i>=0; i--)
s= s + m[i][j]+" ";
return s; }
Grado en Ingeniería Informática – Facultad de Ciencias Sociales de Talavera de la Reina

Fundamentos de Programación I
25/01/2021 Convocatoria Ordinaria
APELLIDOS, NOMBRE: _____________________________________________________

Ejercicio 5. Problema largo (5 puntos). Dada una matriz cuadrada de dimensión M se definen la
diagonal hacia la derecha de la fila f y la columna c así:

Dd(f,c)={M[f+i][c+i] con i=0,1,2.. y f+i<M.length y c+i<M[0].length}

Teniendo en cuenta que f y/o c siempre valen 0. Por ejemplo:

El problema que se plantea es calcular las diagonales hacia la derecha de una matriz cuyos datos
se van a obtener de un fichero. El almacenamiento de los valores en la matriz se hará de forma
secuencial por filas, esto es, primero la primera fila, luego la siguiente, etc, hasta que se agoten
los datos del fichero o se complete la matriz. En el primer caso, si hay menos números en el fichero
que celdas en la matriz, el resto de los elementos de la matriz se completarían con el 0.

Con todo ello, se pide realizar un programa JAVA, correctamente modularizado y parametrizado,
que muestre un menú que permita realizar las siguientes operaciones:

1. Leer del teclado la dimensión de la matriz.


2. Cargar los datos del fichero a la matriz con las consideraciones anteriormente
expresadas (si se acaba el fichero la completamos con 0). Supongamos que el fichero
se denomina datos.txt y se ubica en la raíz del proyecto.
3. Mostrar las sumas de todas las diagonales.
4. Mostrar la suma de una sola diagonal, para lo que se pedirían por teclado la fila y la
columna correspondiente. En este caso, el programa debe comprobar que los datos
introducidos son correctos (la fila y/o la columna son 0).
5. Mostrar la matriz M.
0. Salir del programa.

Por ejemplo, el menú que aparece puede ser:

1. Indicar la dimensión de la matriz


2. Cargar los datos del fichero a la matriz
3. Mostrar la suma de todas las diagonales
4. Mostrar la suma de una sola diagonal
5. Mostrar la matriz M
0. Fin
Grado en Ingeniería Informática – Facultad de Ciencias Sociales de Talavera de la Reina

Fundamentos de Programación I
25/01/2021 Convocatoria Ordinaria
APELLIDOS, NOMBRE: _____________________________________________________

Siguiendo con el ejemplo, en la opción 1 decimos que la dimensión es 3 (3x3), pulsamos la opción
2 para cargar el fichero datos.txt que, por ejemplo, contiene los números: “0 1 2 3 4 5
6 7 8 9 “, al mostrar M debería salir:

0 1 2
3 4 5
6 7 8

En la opción 3, para el ejemplo mostraría:

fila=2 columna=0 6
fila=1 columna=0 10
fila=0 columna=0 12
fila=0 columna=1 6
fila=0 columna=2 2

y con la opción 4, introduciendo por teclado fila 1 (por tanto, columna 0) el resultado es: 10

Sin con el mismo fichero que antes la dimensión de la matriz fuera 2, ésta quedaría:

0 1
2 3

Y si fuera 4:

0 1 2 3
4 5 6 7
8 9 0 0
0 0 0 0

Solución: Proporcionada a parte.

También podría gustarte