/*
*26. Hacer un programa que esté asignando valores al azar comprendidos
* entre 1 y 50 a una matriz de orden 8 x 10 hasta que se cumpla que la matriz
* generada tenga al menos un punto de silla. Cuando se halla generado una matriz
* que tenga puntos de silla se ha de escribir en pantalla la matriz generada,
* el punto de silla junto con sus coordenadas y el número de matrices que se
* generaron hasta que se encontró una con puntos de silla.
* A continuación se muestra un ejemplo de la salida del programa:
39 29 9 11 35 36 10 13 15 26
33 5 16 6 5 9 1 35 30 50
14 4 50 6 8 16 31 15 41 29
39 18 15 21 4 45 5 28 50 28
3 4 21 28 29 19 23 37 21 39
47 22 14 4 18 21 31 44 14 34
21 2 6 34 38 12 25 13 41 31
36 31 49 46 40 40 47 45 36 37
El elemento de valor 31 y situado en la fila 8 y la columna 2 es un punto de silla.
el bucle se ha ejecutado 9477 veces
To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package unidad3ejercicio26;
import java.util.Random;
/**
*
* @author Juan
*/
public class Unidad3Ejercicio26 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int FIL =8;
int COL = 10;
int matriz[][] = new int [FIL][COL];
Random aleatorio = new Random();
int menorFila[]= new int [FIL];
int mayorColumna[]= new int [COL];
boolean silla=false;
int contPruebas=0;
int contf,contc;
do
{
for (int i = 0; i < FIL; i++) {
for (int j = 0; j < COL; j++) {
matriz[i][j]= aleatorio.nextInt(50)+1;
}
}
for (int i = 0; i < FIL; i++) {
menorFila[i]=matriz[i][0];
for (int j = 0; j < COL; j++) {
if(menorFila[i]>matriz[i][j]) menorFila[i]=matriz[i][j];
if (i==0) mayorColumna[j]=matriz[i][j];
else if (mayorColumna[j]<matriz[i][j]) mayorColumna[j]=matriz[i][j];
}
}
/*
for (int i = 0; i < FIL; i++) {
for (int j = 0; j < COL; j++) {
System.out.printf(" %d",matriz[i][j]);
}
System.out.println();
}
*
*/
contc=0;
contf=0;
while (!silla && contf < FIL ) {
while (contc< COL && !silla) {
if (matriz[contf][contc]==menorFila[contf] && matriz[contf][contc]==mayorColumna[contc]) silla=true;
else ++contc;
}
if (!silla) ++contf;
}
++contPruebas;
}
while(!silla);
for (int i = 0; i < FIL; i++) {
for (int j = 0; j < COL; j++) {
System.out.printf(" %d",matriz[i][j]);
}
System.out.println();
}
if (silla) System.out.println("El valor silla del array es "+ menorFila[contf]+ " las coordenas ("+contf+","+contc+")"+ "\n Se han generado "+contPruebas+" para obtener la matriz: ");
else System.out.println("No hay valor silla");
}
}
Este blog está dedicado a la recolección de información relacionada con las nuevas tecnologías ( tecnoloxía xa), especialmente, con las vinculadas a la informática. La idea es centralizar y compartir la información y cada manual o tutorial que voy recolectando para las clases tanto de administración de sistemas como de explotación de sistemas informáticos de modo que estén disponibles para alumnos y resto de interesados. (IES A Carballeira, Ourense)
viernes, 14 de marzo de 2014
Unidad 3 Ejericio 26
Hacer un programa que esté asignando valores al azar comprendidos entre 1 y 50 a una matriz de orden 8 x 10 hasta que se cumpla que la matriz generada tenga al menos un punto de silla. Cuando se halla generado una matriz que tenga puntos de silla se ha de escribir en pantalla la matriz generada, el punto de silla junto con sus coordenadas y el número de matrices que segeneraron hasta que se encontró una con puntos de silla. A continuación se muestra un ejemplo de la salida del programa:
Etiquetas:
DAM,
ejercicios,
programación
No hay comentarios:
Publicar un comentario