Implementar la versión recursiva

Iniciado por Patoscu1, 10 Mayo 2017, 00:20 AM

0 Miembros y 1 Visitante están viendo este tema.

Patoscu1

hola necesito ayuda con este ejercicio, no lo eh podido hacer.
alguna ayuda porfavor


Implemente la versión recursiva para la siguiente función, indique condición de caso
base y general:
void fx(int m[maxfilas][maxcolumnas])
{
int i,j;
for(i=0;i<maxfilas;i++)
for(j=0;j<maxcolumnas;j++)
m[i][j] = i*j;
}



· Los códigos deben ir en etiquetas GeSHi
· Los titulos deben ser descriptivos
· Movido a C/C++
· El otro tema borrado, no hagas doble post
>aquí las reglas del foro
-Engel Lex

engel lex

dices que no has podido hacerlo, pero no indicas tus dudas

por favor aclara que no sabes o en que te trancas
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Patoscu1

Cita de: engel lex en 10 Mayo 2017, 00:23 AM
dices que no has podido hacerlo, pero no indicas tus dudas

por favor aclara que no sabes o en que te trancas

la verdad es que no se por donde empezar, y no se como hacer recursiva una matriz

engel lex

lo que tienes que hacer recursiva no es la matriz, es la función, aquí un ejemplo (lo hice en C++ pero a tus efectos es lo mismo)

Código (cpp) [Seleccionar]
#include <iostream>

void recursiva(int* array, int largo);

int main(){
  int elementos[10];
 
  recursiva(elementos, 10);
 
  int i;
  for(i=0;i<10;i++){
    std::cout << elementos[i] << std::endl;
  }
 
  return 0;
}

void recursiva(int* array, int largo){
  if(largo>0){
    largo--;
    array[largo] = largo*largo;
    recursiva(array, largo);
  }
}
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Patoscu1

Cita de: engel lex en 10 Mayo 2017, 00:49 AM
lo que tienes que hacer recursiva no es la matriz, es la función, aquí un ejemplo (lo hice en C++ pero a tus efectos es lo mismo)

Código (cpp) [Seleccionar]
#include <iostream>

void recursiva(int* array, int largo);

int main(){
  int elementos[10];
 
  recursiva(elementos, 10);
 
  int i;
  for(i=0;i<10;i++){
    std::cout << elementos[i] << std::endl;
  }
 
  return 0;
}

void recursiva(int* array, int largo){
  if(largo>0){
    largo--;
    array[largo] = largo*largo;
    recursiva(array, largo);
  }
}


por que escribes void recursiva(int* array, int largo); antes y despues de la main?

engel lex

ufff estás empezando desde 0... recomiendo tutoriales y entender punteros

void porque no retorna valor (ya que manejo directamente el puntero) y antes del main es el prototipo (la declaración para no tener que hacer el código de void recursiva antes que main, eso se hace comúnmente y ayuda a la legibilidad del código) y el después del main es la función como tal
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.