elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: [1] 2
1  Programación / Programación C/C++ / Re: C:Calcular montañas en los datos almacenados en una matriz en: 19 Enero 2012, 00:04 am
Cierto,todo solucionado, muchas gracias de verdad, me han sido de gran ayuda, habia olvidado cosas como esas, llevaba unas semanas sin trabajar con matrices y se me olvido el ampersant.

Un saludo!
2  Programación / Programación C/C++ / Re: C:Calcular montañas en los datos almacenados en una matriz en: 18 Enero 2012, 23:37 pm
Código
  1. max_altura=m[i][j];

esta sentencia creo que me sobraba, nose porque estaba ahí aun asi sigo teniendo error de segmentacion, ¿que es lo que que dices que es necesario inicializar?
no se supone que i y j adquieren el valor -1 al ejecutarse el for?
3  Programación / Programación C/C++ / Re: C:Calcular montañas en los datos almacenados en una matriz en: 18 Enero 2012, 23:19 pm
Disculpas, he posteado escasas veces y no era consciente de estas herramientas, a ver si asi alguien me puede decir el porque del "error de segmentacion"
Gracias!

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. #define M 5
  6. #define N 5
  7.  
  8. void Lee_Fichero(char [], float[][M]);
  9. void Muestra_montanas(float [][M]);
  10.  
  11.  
  12. main()
  13. {
  14.  float m1[N][M];
  15.  
  16.  Lee_Fichero("cartografia.dat",m1);
  17.  Muestra_montanas(m1);
  18. }
  19.  
  20. void Lee_Fichero(char nombre[],float matriz[N][M])
  21. {
  22.  
  23.  FILE *f1;
  24.  int i,j;
  25.  
  26.  f1=fopen(nombre,"r");
  27.  
  28.  if(f1!=NULL)
  29.  {
  30.    for(i=0; i<N;i++)
  31.    {
  32.     for(j=0;j<M;j++)
  33.      {
  34.  
  35.      fscanf(f1,"%f", matriz[i][j]);
  36.      }
  37.    }
  38.    fclose(f1);
  39.  }  
  40.  else
  41.  {
  42.    printf("Error en la apertura del fichero %s\n",nombre);
  43.    exit(-1);
  44.  }
  45. }
  46. void Muestra_montanas(float m[N][M])
  47. {
  48.  float max_altura;
  49.  int i,j;
  50.  
  51.  max_altura=m[i][j];
  52.  for(i=1;i<N-1;i++)
  53.  {
  54.    for(j=1; j<M-1;j++)
  55.    {
  56.    if(m[i][j]>m[i][j-1] && m[i][j]>m[i][j+1] &&m[i][j]>m[i-1][j-1] && m[i][j]>m[i+1][j-1] && m[i][j]>m[i-1][j] && m[i][j]>m[i+1][j] && m[i][j]>m[i-1][j+1] && m[i][j]>m[i+1][j+1
  57.       {
  58.        max_altura=m[i][j];
  59.        printf("Las coordenadas de la montaña son %d y %d y su altura %f", i, j, max_altura);
  60.        }
  61.    }
  62.  }
  63.  
  64.  
4  Programación / Programación C/C++ / Re: C:Calcular montañas en los datos almacenados en una matriz en: 18 Enero 2012, 23:06 pm
el caso es que al pegar el codigo todos los "i" de la matriz se han borrado ponen como que estan y luego no salen, asi que nose que podra ser
5  Programación / Programación C/C++ / Re: C:Calcular montañas en los datos almacenados en una matriz en: 18 Enero 2012, 21:38 pm
alguna idea del porque de un error de segmentacion?
6  Programación / Programación C/C++ / Re: C:Calcular montañas en los datos almacenados en una matriz en: 18 Enero 2012, 15:58 pm
Dios mira que mire a ver si era algo de eso..
ahora bien me compila pero al ejecutar me da un error de segmentacion, a que se puede deber?
gracias
un saludo
7  Programación / Programación C/C++ / Re: C:Calcular montañas en los datos almacenados en una matriz en: 18 Enero 2012, 15:18 pm
Hola de nuevo! compilando el programa me da el siguiente error:

/tmp/ccu9rC1z.o: In function `main':
ejercicio4.c:(.text+0x2e): undefined reference to `Muestra_montanas'
collect2: ld devolvió el estado de salida 1

Os pego el codigo completo a ver si me podeis decir cual es el fallo:

------------------------------------------------------------------------------

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define M 5
#define N 5

void Lee_Fichero(char [], float[][M]);
void Muestra_montanas(float [][M]);
 

main()
{
  int num;
  float m1[N][M];
  
  Lee_Fichero("cartografia.dat",m1);
  Muestra_montanas(m1);
}

void Lee_Fichero(char nombre[],float matriz[N][M])
{
 
  FILE *f1;
  int i,j;
  
  f1=fopen(nombre,"r");
  
  if(f1!=NULL)
  {
    for(i=0; i<N;i++)
    {
     for(j=0;j<M;j++)
      {
      fscanf(f1,"%f", matriz[j]);
      }
    }  
    fclose(f1);
  }
  else
  {  
    printf("Error en la apertura del fichero %s\n",nombre);
    exit(-1);
  }
}  
void Muestra_Montanas(float m[N][M])
{
  float max_altura;
  int i,j;
  
  max_altura=m[j];
  for(i=1;i<N-1;i++)
  {
    for(j=1; j<M-1;j++)
    {
    if(m[j]>m[j-1] && m[j]>m[j+1] &&m[j]>m[i-1][j-1] && m[j]>m[i+1][j-1] && m[j]>m[i-1][j] && m[j]>m[i+1][j] && m[j]>m[i-1][j+1] && m[j]>m[i+1][j+1])
       {
        max_altura=m[j];
        printf("Las coordenadas de la montaña son %d y %d y su altura %f", i, j, max_altura);
        }
    }
  }  
    
    
}    

------------------------------------------------------------------
8  Programación / Programación C/C++ / Re: C:Calcular montañas en los datos almacenados en una matriz en: 17 Enero 2012, 20:36 pm
Gracias a todos, ahora lo mirare mas detalladamente , ahora se por donde van los tiros.

Un saludo

P.D: No pretendia que me lo dierais hecho, solo queria una indicacion hacia el camino correcto como las que me habeis dado, gracias
9  Programación / Programación C/C++ / C:Calcular montañas en los datos almacenados en una matriz en: 17 Enero 2012, 15:57 pm
Hola de nuevo!
Tengo un problema al realizar una funcion ya que nose muy bien por donde empezar, el caso es que tengo una serie de datos que he pasado de un fichero a una matriz en este caso 5x5, pero supongamos NXM. El problema que se plantea es el siguiente:

Los datos almacenados son alturas y tengo que comparar las alturas con las de los 8 vecinos, logicamente los extremos de la matriz no tienen 8 vecinos y no entran dentro del problema.

Si la altura es mayor que la de los 8 vecinos, tengo que sacar por pantalla esa altura y sus coordenadas, todo esto mediante una funcion.

Mi problema es el no saber desarrollar la funcion, no tengo muy claro las variables a utilizar, aparte de los i,j para recorrer la matriz, los valores que debo poner dentro de los for.

Siento no poner codigo pero es que no se me ocurre nada decente, puedo pegar el resto del programa si es ayuda pero creo que no tiene nada que ver.

Mi prototipo de funcion es(ya que solo imprime valores y no los devuelve):

void Muestra_montanas(float matriz [][M])
{

}

Gracias
Un saludo
10  Programación / Programación C/C++ / Re: Problema al compilar un programa en C. en: 28 Noviembre 2011, 22:05 pm
Gracias por la respuesta rapida solo decir..
/FACEPALM
-.- Saludos :P
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines