30
Mar
10

RECURSIVIDAD PARTE No.3

Ejercicios de recursividad (lo mas sencillo posible)
Ejercicios propuestos por el profesor Justo Sarabia para las clases de matemáticas discretas

public class Recursividad3 {

    //precondiciones
    //indice=0
    //suma=0;
    public static int vectorSumatorioaNumerosPrimos(int vector[], int indice,int suma){
    	if(indice>=vector.length){
    		return suma;
    	}
    	if(esPrimo(vector[indice],1,0)){
    		suma=suma+vector[indice];
    	}
    	return vectorSumatorioaNumerosPrimos(vector,indice+1,suma);
    }

    //precondiciones
    //numuero>0
    //indice=1
    //divisores=0;
    public static boolean esPrimo(int numuero,int indice, int divisores){
    	if(divisores>2){return false;}
    	if(indice==numuero){
    		if(divisores=ma.length){
    		return mc;
    	}

		int fil[]=getFila(ma,new int[ma[0].length],i,0);
		int col[]=getColumna(mb,new int[mb.length],j,0);
		int res[]=multiplicarVectores(fil,col,new int[col.length],0 );
		int sum=sumatoriaVector(res,0,0);
		mc[i][j]=sum;

		j++;
    	if(j>=mb[0].length){
    		i=i+1;
    		j=0;
    	}
		return multiplicarMatrices(ma,mb,mc,i,j);
	}

	public static int[] getFila(int m[][],int fila[], int f, int c){
		if(c>=m[f].length){
    		return fila;
    	}
    	fila[c]=m[f][c];
		return getFila(m,fila, f, c+1);
	}

	public static int[] getColumna(int m[][],int columna[],int c, int f){
		if(f>=m.length){
    		return columna;
    	}
    	columna[f]=m[f][c];
		return getColumna(m,columna, c, f+1);
	}
	//indice=0
	//v1.length==v2.length==v3.length
	public static int[] multiplicarVectores(int v1[], int v2[], int v3[],int indice){
		if(indice>=v3.length){
    		return v3;
    	}
    	v3[indice]=v1[indice]*v2[indice];
    	return multiplicarVectores(v1,v2,v3,indice+1);
	}
	//indice=0
	//suma=0
	public static int sumatoriaVector(int vector[],int indice, int suma){
		if(indice>=vector.length){
    		return suma;
    	}
    	suma=suma+vector[indice];
    	return sumatoriaVector(vector,indice+1,suma);
	}
	//i=0
	public static void imprimirVector(int vector[], int i){
    	if(i<vector.length){
    		System.out.print("| "+vector[i]+" ");
    		imprimirVector( vector, i+1);
    	}else{
    		System.out.print("| ");
    		System.out.println("");
    	}
    }
    //i=0
    //j=0
    public static void imprimirMatriz(int matriz[][], int i,int j){
    	if(i<matriz.length){
    		if(matriz[i][j]=matriz[0].length){
    			System.out.println("|");
    			i=i+1;
    			j=0;
    		}
    		imprimirMatriz(matriz, i,j);

    	}
    }

    public static void main (String[] args) {
    	int v[]=new int[]{1,2,3,5};
    	int suma=vectorSumatorioaNumerosPrimos(v,0,0);
    	System.out.println (suma);

    	int m1[][]= new int[][]{{1,2,3},
    							{4,5,6}
    							};
    	int m2[][]= new int[][]{{1,2},
    							{3,4},
    							{5,6}
    							};
    	imprimirMatriz(m1,0,0);
    	System.out.println ("*");
    	imprimirMatriz(m2,0,0);
    	System.out.println ("=");
    	int m3[][]=multiplicarMatrices(m1,m2,new int[m1.length][m2[0].length],0,0);
    	imprimirMatriz(m3,0,0);
	}
}

7 Responses to “RECURSIVIDAD PARTE No.3”


  1. noviembre 2, 2010 a las 10:36 am

    hola saben estoy aprendiendo aprogramar en c# y yo quisiera que me ayuden a imprimir la suma de los elementos de un vector con funciones recursivas, por favor ayudenme a imprimir no se como… Desde ya los agradesco por fa envienme su respuesta a gt_editions@hotmail.com

    • noviembre 2, 2010 a las 9:50 pm

      las diferencias semánticas entre C# y Java son muy pocas pero para responder tu duda seria algo mas o menos asi:

      using System;

      namespace ConsoleApplication1
      {
      class Program
      {
      static void Main(string[] args)
      {
      Suma(0,0,new int[]{1,3,5,9,7});
      }

      static void Suma(int suma,int posicion, int[]vector) {
      if(posicion==vector.Length){
      Console.Write(“el resultado es:”+suma);
      Console.Write(“\npresione enter para salir…”);
      Console.Read();
      return;
      }
      Suma(suma + vector[posicion], posicion+1,vector);
      }
      }
      }

  2. 3 Andres
    mayo 28, 2012 a las 12:25 pm

    Gracias por el codigo.

    Una pregunta:

    indice> en la linea 007 es una variable como tal o esta mal escrito por que me sale error al pasarlo a eclipse

    • mayo 29, 2012 a las 8:29 am

      lo que pasa es que se convirtieron los ‘>’ a ‘>’ y los ‘<' a '<'… gracias no lo había notado

  3. 5 Andres
    mayo 28, 2012 a las 1:11 pm

    <

  4. 6 Andres
    mayo 28, 2012 a las 1:13 pm

    "


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


I+Ds

Dudas consultas
Facebook
Twiter
Google +

Escribe tu dirección de correo electrónico para suscribirte a este blog, y recibir notificaciones de nuevas publicaciones por correo.

Únete a otros 348 seguidores

Ingenio DS en Facebook

Redes Sociales y Archivos

Entradas

marzo 2010
L M X J V S D
« Feb   Abr »
1234567
891011121314
15161718192021
22232425262728
293031  

IngenioDS en twiter


A %d blogueros les gusta esto: