Vous êtes sur la page 1sur 17

1.- Procedimiento Grafo aleatorio import java.io.

*; class RANDOM_ADYM{ public static void main(String args[])throws IOException{ BufferedReader e=new BufferedReader(new InputStreamReader (System.in)); int F,C; System.out.println(" "); System.out.println(" GRAFO ALEATORIO"); System.out.println(" "); System.out.println("introduzca el numero de filas"); F=Integer.parseInt(e.readLine()); System.out.println("introduzca el numero de columnas"); C=Integer.parseInt(e.readLine()); int lazos[]=new int[F*C]; int Tmatriz[][]=new int [F][C]; for(int i=0;i<F;i++) for(int j=0;j<C;j++) Tmatriz[i][j] = 0+(int)(Math.random()*4); System.out.println("la matriz ADY es: "); for(int i=0;i<F;i++){ for(int j=0;j<C;j++){ System.out.print(" "+Tmatriz[i][j]); } System.out.println(); } } } 2.- Determinar el numero de Lazos en cada vrtice y cargar a un vector utilizando ADYM. import java.io.*; class ADYM{ public static void main(String args[])throws BufferedReader e=new BufferedReader(new InputStreamReader(System.in)); int F,C,S; System.out.println(" "); System.out.println("Determinar el numero vertice"); System.out.println("y cargar a un vector System.out.println(" "); System.out.println("introduzca el numero F=Integer.parseInt(e.readLine()); System.out.println("introduzca el numero C=Integer.parseInt(e.readLine()); System.out.println("Presione 1 si quiere teclado");

IOException{

de Lazos en cada utilizando ADYM"); de filas"); de columnas"); introducir datos por

System.out.println("y diferente de 1 para introducir datos aleatoriamente"); S=Integer.parseInt(e.readLine()); int lazos[]=new int[F*C]; int Tmatriz[][]=new int [F][C]; if(S==1){ System.out.print("Introduzca datos para la matriz"); for(int i=0;i<F;i++) for(int j=0;j<C;j++) Tmatriz[i][j]=Integer.parseInt(e.readLine()); } else{ for(int i=0;i<F;i++) for(int j=0;j<C;j++) Tmatriz[i][j] = 0+(int)(Math.random()*4); } System.out.println("la matriz es: "); for(int i=0;i<F;i++){ for(int j=0;j<C;j++){ System.out.print(" "+Tmatriz[i][j]); } System.out.println(); } System.out.println(" "); System.out.println("LOS LAZOS SE REPRESENTAN POR LA DIAGONAL DE LA MATRIZ"); System.out.println("LOS LAZOS SON :"); for(int i=0;i<F;i++){ for(int j=0;j<C;j++){ if(i==j){ lazos[i]=Tmatriz[i][j]; if(lazos[i]>0){ System.out.println(" Esta en la posicin "+i+" X "+j+" tiene :: "+lazos[i]+" Lazos"); }//fin del if }//fin del for } }//fin del for } } 3.- Determinar el numero de LADOS import java.io.*; class NUM_LADO{ public static void main(String args[])throws IOException{ BufferedReader e=new BufferedReader(new InputStreamReader(System.in));

int F,C,Sum,S; System.out.println(" NUMERO DE LADOS"); System.out.println(" "); System.out.println("introduzca el numero de filas"); F=Integer.parseInt(e.readLine()); System.out.println("introduzca el numero de columnas"); C=Integer.parseInt(e.readLine()); int lados [][]=new int[n][m]; System.out.println("Presione ''1'' si quiere introducir datos por teclado"); System.out.println("y DIFERENTE de 1 para introducir datos aleatoriamente"); S=Integer.parseInt(e.readLine()); if(S==1){ System.out.println("Introduzca los datos"); for(int i=0;i<F;i++) for(int j=0;j<C;j++) lados[i][j]=Integer.parseInt(e.readLine()); } else{ for(int i=0;i<F;i++) for(int j=0;j<C;j++) lados[i][j]= 0+(int)(Math.random()*3); } System.out.println("La matris es ::: "); for(int i=0;i<F;i++){ System.out.print("fila "+i+" ::: "); for(int j=0;j<C;j++){ System.out.print(" " +lados[i][j]); } System.out.println(); } System.out.println(); System.out.println("La la suma de lados es ::: "); for(int i=0;i<F;i++){ Sum=0; for(int j=0;j<C;j++){ Sum=Sum+lados[i][j]; } System.out.println("De la fila "+i+" es:: " +Sum); } System.out.println(); int g=0; System.out.println("Los LADOS en las posiciones son ::: "); for(int i=0;i<F;i++){ for(int j=0;j<C;j++){ g=g+1; System.out.print(g+".- ");

System.out.println("en el lado "+lados [i][j]+" lados"); } } } }

"+i+" X "+j+"

existe

4.- Determinar el vector GRADO a partir de la matriz ADY por el metodo de SUMA DE FILAS. import java.io.*; class GRAD_GRAF{ public static void main(String args[])throws IOException{ BufferedReader e=new BufferedReader(new InputStreamReader(System.in)); int F,C,S; System.out.println(" GRADO DE UN GRAFO"); System.out.println(" "); System.out.println("introduzca el numero de filas"); F=Integer.parseInt(e.readLine()); System.out.println("introduzca el numero de columnas"); C=Integer.parseInt(e.readLine()); int lados [][]=new int[F][C]; int grad[]=new int[F]; int grad1[]=new int [F]; System.out.println("Presione ''1'' si quiere introducir datos por teclado"); System.out.println("y DIFERENTE de 1 para introducir datos aleatoriamente"); S=Integer.parseInt(e.readLine()); if(S==1){ System.out.println("Introduzca los datos"); for(int i=0;i<F;i++) for(int j=0;j<C;j++) lados[i][j]=Integer.parseInt(e.readLine()); } else{ for(int i=0;i<F;i++) for(int j=0;j<C;j++) lados[i][j]= 0+(int)(Math.random()*3); } System.out.println("La matris es ::: "); for(int i=0;i<F;i++){ System.out.print("fila "+i+" ::: "); for(int j=0;j<C;j++){ System.out.print(" " +lados[i][j]); } System.out.println(); } for(int i=0;i<F;i++){

int Sum=0; for(int j=0;j<C;j++){ Sum=Sum+lados[i][j]; } grad[i]=Sum; System.out.println(); } System.out.println("El vector grado de las filas es ::: "); int b=0; for(int i=0;i<F;i++){ System.out.println("fila "+i+" es: "+grad[i]); if(grad[i]>b){ b=grad[i]; } } System.out.println("el grado de la matriz es : "+b); } } 5.- determinar si un grafo es regular asumir que ya se tiene el vector grado import java.io.*; class GRAF_REG{ public static void main(String args[])throws IOException{ BufferedReader e=new BufferedReader(new InputStreamReader(System.in)); int F,C,Sum,b=0,g=0,S,a=0; boolean f=false,k=false,l=false; System.out.println(" GRAFO REGULAR"); System.out.println(" "); int reg []=new int[2]; System.out.println("Presione 1 si quiere introducir datos por teclado"); System.out.println("y DIFERENTE de 1 para introducir datos aleatoriamente"); S=Integer.parseInt(e.readLine()); if(S==1){//introducimos por teclado System.out.println("introduzca el numero de vrtices"); F=Integer.parseInt(e.readLine()); if(F<=2&&F>1){ System.out.println("Introdusca los datos"); for(int i=0;i<2;i++){ reg[i]=Integer.parseInt(e.readLine()); } } else{ System.out.println("Los vrtices introducido no es valido"); System.out.println("El grafo regular es solo de dos vertices");

} f=true; } else{//introducimos aleatoriamente for(int i=0;i<2;i++){ g++; int h=1+(int)(Math.random()*1); if(k){ if(reg[i-1]==h){ reg[i]=h; } else{ i--; } } else{ reg[i]=h; k=true; } } f=true; }//fin del else if(f){ for(int i=0;i<2;i++){ if(reg[i]==1){ w++; } else{ b++; } } } //System.out.print(" Por tanto es un grafo regular"); if(b==2){ System.out.println("El grafo no es regular"); System.out.println("El grafo regular solo tiene una sola conexion "); } else{ System.out.println("El grafo regular es ::: "); } if(w==2){ for(int i=0;i<2;i++){ if(l){ System.out.print(" B ="); System.out.println(" " +reg[i]+" coneccion con A"); } else{ System.out.print(" A =");

System.out.println(" con B"); l=true; } }

"

+reg[i]+" coneccion

} if(b!=2&&w!=2){ System.out.println("El grafo no es regular"); System.out.println("El grafo regular solo tiene una sola conexion "); } } } 6.-Procedimiento que calcula el GRADO MAXIMO del grado import java.io.*; class GRAD_MAX_GRAF{ public static void main(String args[])throws IOException { BufferedReader e=new BufferedReader(new InputStreamReader(System.in)); int F,C,S; System.out.println(" GRADO MAXIMO DE UN GRAFO"); System.out.println(" "); System.out.println("introduzca el numero de filas"); F=Integer.parseInt(e.readLine()); System.out.println("introduzca el numero de columnas"); C=Integer.parseInt(e.readLine()); int lados [][]=new int[F][C]; int grad[]=new int[F]; int grad1[]=new int [F]; System.out.println("Presione ''1'' si quiere introducir datos por teclado"); System.out.println("y DIFERENTE de 1 para introducir datos aleatoriamente"); S=Integer.parseInt(e.readLine()); if(S==1){ System.out.println("Introdusca los datos"); for(int i=0;i<F;i++) for(int j=0;j<C;j++) lados[i][j]=Integer.parseInt(e.readLine()); } else{ for(int i=0;i<F;i++) for(int j=0;j<C;j++) lados[i][j]= 0+(int)(Math.random()*3); } System.out.println("La matris es ::: "); for(int i=0;i<F;i++){

System.out.print("fila "+i+" ::: "); for(int j=0;j<C;j++){ System.out.print(" " +lados[i][j]); } System.out.println(); } for(int i=0;i<F;i++){ int Sum=0; for(int j=0;j<C;j++){ Sum=Sum+lados[i][j]; } grad[i]=Sum; System.out.println(); } int b=0; for(int i=0;i<F;i++){ if(grad[i]>b){ b=grad[i]; } } System.out.println("el grado de la matriz es : "+b); } } 7.- Procedimiento para encontrar GRAFO NULO import java.io.*; class GRAG_NULO{ public static void main(String args[])throws IOException { BufferedReader e=new BufferedReader(new InputStreamReader(System.in)); int F,C,S,z=0; boolean k=true; System.out.println(" GRAFO NULO "); System.out.println(" "); System.out.println("introduzca el numero de filas"); F=Integer.parseInt(e.readLine()); System.out.println("introduzca el numero de columnas"); C=Integer.parseInt(e.readLine()); int lados [][]=new int[F][C]; System.out.println("Presione ''1'' si quiere introducir datos por teclado"); System.out.println("y DIFERENTE de 1 para introducir datos aleatoriamente"); S=Integer.parseInt(e.readLine()); if(S==1){ System.out.println("Introduzca los datos"); for(int i=0;i<F;i++) for(int j=0;j<C;j++) lados[i][j]=Integer.parseInt(e.readLine());

} else{ for(int i=0;i<F;i++) for(int j=0;j<C;j++){ int l= 0+(int)(Math.random()*3); if(l==0){ lados[i][j]=l; }else{ j=j-1; } } } if(k){ for(int i=0;i<F;i++){ for(int j=0;j<C;j++){ if(lados[i][j]==0){ z++; } else{ k=false; } } } } if(k){ System.out.println("El grafo nulo es ::: "); for(int i=0;i<F;i++){ System.out.print("fila "+i+" ::: "); for(int j=0;j<C;j++){ System.out.print(" " +lados[i][j]); } System.out.println(); } System.out.println(" POR TANTO EL GRAFO ES NULO"); } else{ System.out.println("EL GRAFO NO ES NULO "); } } } 8.- Determinar un procedimiento para un GRAFO COMPLETO import java.io.*; class GRAF_COMPL{ public static void main(String args[])throws IOException { BufferedReader e=new BufferedReader(new InputStreamReader(System.in));

int F,C,Sum,H,S; boolean f=true; System.out.println(" GRAFO COMPLETO"); System.out.println(" "); System.out.println("introduzca el numero de filas"); F=Integer.parseInt(e.readLine()); System.out.println("introduzca el numero de columnas"); C=Integer.parseInt(e.readLine()); int lados [][]=new int[F][C]; System.out.println("Presione ''1'' si quiere introducir datos por teclado"); System.out.println("y DIFERENTE de 1 para introducir datos aleatoriamente"); S=Integer.parseInt(e.readLine()); if(S==1){ System.out.println("Introdusca los datos"); for(int i=0;i<F;i++) for(int j=0;j<C;j++) lados[i][j]=Integer.parseInt(e.readLine()); } else{ for(int i=0;i<F;i++){ for(int j=0;j<C;j++){ H=1+(int)(Math.random()*1); if(i==j){ lados[i][j]=0; } else{ lados[i][j]= h; } }//llave del for j }//llave del for i }//llave del else int x=0,t=0,y=0; for(int i=0;i<F;i++){ for(int j=0;j<C;j++){ if(i==j){ if(lados[i][j]==1){ x++; } } else{ if(lados[i][j]==1){ t++; } else{ y++; } }

} } if(y>0){ System.out.println("el grafo no es completo porque tiene lazos"); f=false; } if(f){ System.out.println("La matriz es ::: "); for( int i=0;i<F;i++){ System.out.print("fila "+i+" ::: "); for(int j=0;j<C;j++){ if(f){ System.out.print(" " +lados[i][j]); } } System.out.println(); } System.out.println(" por tanto el grafo es completo o fuertemente conectado"); } } } 9.- Determinar un grafo UNITARIO import java.io.*; class GRAF_UNIT{ public static void main(String args[])throws IOException { BufferedReader e=new BufferedReader(new InputStreamReader(System.in)); int F,S,Sum,g=0; boolean f=false,k=false=false; System.out.println(" GRAFO REGULAR"); System.out.println(" "); System.out.println("introduzca el numero de vrtices"); F=Integer.parseInt(e.readLine()); int reg []=new int[F]; if(F==1){ ystem.out.println("Presione ''1'' si quiere introducir datos por teclado"); System.out.println("y DIFERENTE de 1 para introducir datos aleatoriamente"); S=Integer.parseInt(e.readLine()); if(S==1){ System.out.println("Introduzca sus lazos"); for(int j=0;j<F;j++){ reg[j]=Integer.parseInt(e.readLine()); }

f=true; } else{ for(int j=0;j<F;j++){ reg[j]=0+(int)(Math.random()*3); } f=true; } } else{ System.out.println(" System.out.println(" System.out.println(" El grafo no es unitario"); es de "+F+" vrtices"); El grafo unitario solo tiene un solo

vertice"); } if(f){ System.out.println(" El grafo unitario es ::: "); for(int i=0;i<F;i++){ System.out.println(" A tiene " +reg[i]+" lazos "); } System.out.print(" Por tanto es un grafo unitario"); } } } 10.- Determinar el grafo SIMPLE import java.io.*; class GRAF_SIMP{ public static void main(String args[])throws IOException { BufferedReader e=new BufferedReader(new InputStreamReader(System.in)); int F,C,Sum,alt,lad,S; boolean f=true; System.out.println("DETERMINA EL GRAFO SIMPLE"); System.out.println(" "); System.out.println(" "); System.out.println("introduzca el numero de filas"); F=Integer.parseInt(e.readLine()); System.out.println("introduzca el numero de columnas"); C=Integer.parseInt(e.readLine()); int lados [][]=new int[F][C]; System.out.println("Presione ''1'' si quiere introducir datos por teclado"); System.out.println("y DIFERENTE de 1 para introducir datos aleatoriamente"); S=Integer.parseInt(e.readLine()); if(S==1){

System.out.println("Introduzca los datos"); for(int i=0;i<F;i++) for(int j=0;j<C;j++) lados[i][j]=Integer.parseInt(e.readLine()); } else{ for(int i=0;i<F;i++){ for(int j=0;j<C;j++){ h= 0+(int)(Math.random()*2); if(i==j){ lados[i][j]=0; } else{ lados[i][j]=h; } } } } int c=0,b=0,x=0; if(f){ for(int i=0;i<F;i++){ for(int j=0;j<C;j++){ if(i==j){ if(lados[i][j]==0){ c++; } else{ b++; } } else{ if(lados[i][j]<=1){ c++; } else{ x++; } }//llave del else }//llave del for j System.out.println(); }//llave de for i }//llave del if if(b>0){ System.out.println("el grafo no es simple por que tiene LAZOS"); f=false; } if(x>0){

System.out.println("EL grafo no es simple por que tiene LADOS PARALELOS"); f=false; } if(f){ System.out.println("La matriz es ::: "); for(int i=0;i<F;i++){ System.out.print("fila "+i+" ::: "); for(int j=0;j<C;j++){ System.out.print(" " +lados[i][j]); } System.out.println(); } System.out.println("por tanto el grafo es simple"); }//lave del if } } 11.- Determinar el grafo COMPLEMENTARIO import java.io.*; class GRAF_COMPLEM{ public static void main(String args[])throws IOException { BufferedReader e=new BufferedReader(new InputStreamReader(System.in)); int F,C,S; boolean f=true; System.out.println(" GRAFOS COMPLEMENTARIO"); System.out.println(" "); System.out.println("introduzca el numero de filas"); F=Integer.parseInt(e.readLine()); System.out.println("introduzca el numero de columnas"); C=Integer.parseInt(e.readLine()); int lados [][]=new int[F][C]; int g[][]=new int[F][C]; int k[][]=new int[F][C]; int q[][]=new int[F][C]; int r[][]=new int[F][C]; System.out.println("Presione ''1'' si quiere introducir datos por teclado"); System.out.println("y DIFERENTE de 1 para introducir datos aleatoriamente"); S=Integer.parseInt(e.readLine()); if(S==1){ System.out.println("Introduzca los datos"); for(int i=0;i<F;i++) for(int j=0;j<C;j++) lados[i][j]=Integer.parseInt(e.readLine()); }

else{ for(int i=0;i<F;i++) for(int j=0;j<C;j++) lados[i][j]=0+(int)(Math.random()*2); } for(int i=0;i<F;i++){ for(int j=0;j<C;j++){ g[i][j]=0+(int)(Math.random()*2); k[i][j]=0+(int)(Math.random()*2); } } int l,p=0; boolean w; for(int i=0;i<F;i++){ w=true; for(int j=0;j<C;j++){ while(w){ if(lados[i][j]==(g[i][j]+k[i][j])){ q[i][j]=g[i][j]; r[i][j]=k[i][j]; w=false; } else{ g[i][j]=0+(int)(Math.random()*2); k[i][j]=0+(int)(Math.random()*2); } }//llave del while } } if(f){ System.out.println("La matriz es ::: "); for( int i=0;i<F;i++){ System.out.print("fila "+i+" ::: "); for(int j=0;j<C;j++){ if(f){ System.out.print(" " +lados[i][j]); } } System.out.println(); } } System.out.println(); System.out.println("LOS GRAFOS COMPLEMENTARIOS SON:::"); System.out.println(); System.out.println(" La matriz1 es:: La matris2 es::"); for( int i=0;i<F;i++){ System.out.print("fila "+i+" ::: "); for(int j=0;j<C;j++){ System.out.print(" " +q[i][j]);

} System.out.print(" fila "+i+" ::: "); for(int z=0;z<C;z++){ System.out.print(" "+r[i][z]); } System.out.println(); } } } 12.- Determinar el grafo CONEXO import java.io.*; class GRAF_CONEX{ public static void main(String args[])throws IOException { BufferedReader e=new BufferedReader(new InputStreamReader(System.in)); int F,C,Sum,h=0,S; boolean f=true; System.out.println(" GRAFO CONEXO"); System.out.println(" "); System.out.println("introduzca el numero de filas"); F=Integer.parseInt(e.readLine()); System.out.println("introduzca el numero de columnas"); C=Integer.parseInt(e.readLine()); int lados [][]=new int[F][C]; System.out.println("Presione ''1'' si quiere introducir datos por teclado"); System.out.println("y DIFERENTE de 1 para introducir datos aleatoriamente"); S=Integer.parseInt(e.readLine()); if(S==1){ System.out.println("Introduzca los datos"); for(int i=0;i<F;i++) for(int j=0;j<C;j++) lados[i][j]=Integer.parseInt(e.readLine()); } else{ for(int i=0;i<F;i++){ for(int j=0;j<C;j++){ lados[i][j]=0+(int)(Math.random()*3); }//llave del for j }//llave del for i }//llave del else for(int i=0;i<F;i++){ Sum=0; for(int j=0;j<C;j++){ if(lados[i][j]==0){

Sum++; } } if(Sum==F){ System.out.println("EL grafo es:: NO CONEXO"); f=false; break; } } if(f){ System.out.println("La matris es ::: "); for( int i=0;i<F;i++){ System.out.print("fila "+i+" ::: "); for(int j=0;j<C;j++){ if(f){ System.out.print(" " +lados[i][j]); } } System.out.println(); } System.out.println(" por tanto el grafo es CONEXO"); } } }

Vous aimerez peut-être aussi