Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Patoscu1 en 10 Mayo 2017, 00:20 am



Título: Implementar la versión recursiva
Publicado por: Patoscu1 en 10 Mayo 2017, 00:20 am
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:
Código
  1. void fx(int m[maxfilas][maxcolumnas])
  2. {
  3. int i,j;
  4. for(i=0;i<maxfilas;i++)
  5. for(j=0;j<maxcolumnas;j++)
  6. m[i][j] = i*j;
  7. }


· 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 (http://foro.elhacker.net/reglas.htm)
-Engel Lex


Título: Re: Implementar la versión recursiva
Publicado por: 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


Título: Re: Implementar la versión recursiva
Publicado por: Patoscu1 en 10 Mayo 2017, 00:25 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


Título: Re: Implementar la versión recursiva
Publicado por: 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
  1. #include <iostream>
  2.  
  3. void recursiva(int* array, int largo);
  4.  
  5. int main(){
  6.  int elementos[10];
  7.  
  8.  recursiva(elementos, 10);
  9.  
  10.  int i;
  11.  for(i=0;i<10;i++){
  12.    std::cout << elementos[i] << std::endl;
  13.  }
  14.  
  15.  return 0;
  16. }
  17.  
  18. void recursiva(int* array, int largo){
  19.  if(largo>0){
  20.    largo--;
  21.    array[largo] = largo*largo;
  22.    recursiva(array, largo);
  23.  }
  24. }


Título: Re: Implementar la versión recursiva
Publicado por: Patoscu1 en 10 Mayo 2017, 00:56 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
  1. #include <iostream>
  2.  
  3. void recursiva(int* array, int largo);
  4.  
  5. int main(){
  6.  int elementos[10];
  7.  
  8.  recursiva(elementos, 10);
  9.  
  10.  int i;
  11.  for(i=0;i<10;i++){
  12.    std::cout << elementos[i] << std::endl;
  13.  }
  14.  
  15.  return 0;
  16. }
  17.  
  18. void recursiva(int* array, int largo){
  19.  if(largo>0){
  20.    largo--;
  21.    array[largo] = largo*largo;
  22.    recursiva(array, largo);
  23.  }
  24. }

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


Título: Re: Implementar la versión recursiva
Publicado por: engel lex en 10 Mayo 2017, 00:59 am
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