• Viernes 3 de Mayo de 2024, 03:58

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - manurodri189

Páginas: 1 2 3 [4] 5
76
C/C++ / Re: Porque No Compila Esto En C?
« en: Jueves 8 de Marzo de 2007, 17:46 »
Ok, tio. He cambiado el main y lo de liberar memoria y todo. Ahora el programa se ejecuta y no hace nada. En el main he hecho que me muestre el vector y que haga una pausa. Pues bien no hace nada, si no que sale directamente del programa. No se que puede pasar.

Código: Text
  1. #include <stdio.h>
  2.  
  3. int* MultiPoli(int* p, int n, int* q, int m);
  4.  
  5. int main(){
  6.     char c;
  7.     int i;
  8.     int* r;
  9.    
  10.     int p[] =
  11.     {
  12.      0, 1, 3, 5
  13.     };
  14.     int q[] =
  15.     {
  16.      6, 2, 3, 4
  17.     };
  18.     r=(int*)malloc((sizeof(int))*(10));
  19.     r=MultiPoli(p, 4, q, 4);
  20.    
  21.     for(i=0;i<10;i++){
  22.          printf("%i",r[i]);
  23.          }
  24.     c=getche();
  25.     free(r);
  26.     return 0;
  27. }
  28.  
  29. //Multiplicacion de polinomios con divide y venceras
  30. int* MultiPoli(int* p, int n, int* q, int m){
  31.      int* P;
  32.      int* Pi;
  33.      int* Pd;
  34.      int* Q;
  35.      int* Qi;
  36.      int* Qd;
  37.      int* Ri;
  38.      int* Rd;
  39.      int* Rh;
  40.      int* Sp;
  41.      int* Sq;
  42.      int* f;
  43.      int* g;
  44.      int* h;
  45.      int* j;
  46.      int* X;
  47.      int x=0;
  48.      int y=0;
  49.      int i,N,M;
  50.      
  51.      if(n>m){ //El vector mas grande es P
  52.             P=p;
  53.             Q=q;
  54.             N=n+1;
  55.             M=m+1;
  56.             }
  57.      else{
  58.           Q=p;
  59.           P=q;
  60.           N=m+1;
  61.           M=n+1;
  62.           }
  63.          
  64.      //Reservo Memoria
  65.      P=(int*)malloc((sizeof(int))*(N));
  66.      Q=(int*)malloc((sizeof(int))*(M));
  67.      Pi=(int*)malloc((sizeof(int))*(N/2));
  68.      Pd=(int*)malloc((sizeof(int))*(N/2));
  69.      Qi=(int*)malloc((sizeof(int))*(M/2));
  70.      Qd=(int*)malloc((sizeof(int))*(M/2));
  71.      Ri=(int*)malloc((sizeof(int))*(N));
  72.      Rd=(int*)malloc((sizeof(int))*(N));
  73.      Rh=(int*)malloc((sizeof(int))*(N));
  74.      Sp=(int*)malloc((sizeof(int))*(N/2));
  75.      Sq=(int*)malloc((sizeof(int))*(N/2));
  76.      f=(int*)malloc((sizeof(int))*(N/2));
  77.      g=(int*)malloc((sizeof(int))*(N));
  78.      h=(int*)malloc((sizeof(int))*(N*N));
  79.      j=(int*)malloc((sizeof(int))*(N*N));
  80.      X=(int*)malloc((sizeof(int))*(1));
  81.      
  82.      
  83.      if(M==1){ //Multiplicación Convencional. Caso Base
  84.           X[0]=P[0]*Q[0];
  85.           return X;
  86.           }
  87.      else{
  88.           for(i=0;i<(N/2)-1;i++){ //Parte Izquierda de P
  89.                Pi[i]=P[i];
  90.                }
  91.           for(i=N/2;i<N;i++){ //Parte Derecha de P
  92.                Pd[i]=P[i];
  93.                }
  94.           for(i=0;i<(M/2)-1;i++){ //Parte Izquierda de Q
  95.                Qi[i]=Q[i];
  96.                }
  97.           for(i=M/2;i<M;i++){ //Parte Derecha de Q
  98.                Qd[i]=P[i];
  99.                }
  100.           Ri=MultiPoli(Pi,N/2,Qi,M/2); //Llamada recursiva
  101.           Rd=MultiPoli(Pd,N/2,Qd,M/2); //Llamada recursiva
  102.            
  103.           for(i=0;i<(N/2)-1;i++){ // Pi+Pd
  104.                Sp[i]=Pi[i]+Pd[i];
  105.                }
  106.           for(i=0;i<(M/2)-1;i++){ // Qi+Qd
  107.                Sq[i]=Qi[i]+Qd[i];
  108.                }
  109.           Rh=MultiPoli(Sp,N/2,Sq,M/2); //Llamada recursiva
  110.          
  111.           for (i=0;i<(N/2)-1;i++){ // Rh+Ri+Rd
  112.               f[i]=Rh[i]-Ri[i]-Rd[i];
  113.               }
  114.           for (i=0;i<(N/2)-1;i++){ // 1.-(Rh+Ri+Rd)*Xn/2
  115.               g[i]=0;
  116.               }
  117.           for (i=N/2;i<N;i++){ // 2.-(Rh+Ri+Rd)*Xn/2
  118.               g[i]=f[x];
  119.               x++;
  120.               }
  121.           for (i=0;i<N-1;i++){ // 1.-Rd*Xn
  122.               h[i]=0;
  123.               }
  124.           for (i=N;i<2*N;i++){ // 2.-Rd*Xn
  125.               h[i]=Rd[y];
  126.               y++;
  127.               }
  128.              
  129.           for(i=0;i<2*N;i++){ // Calculo la solucion
  130.               j[i]=Ri[i]+g[i]+h[i];
  131.               }
  132.              
  133.           return j;
  134.          
  135.      }//Fin else
  136.      
  137.      //Libero Memoria
  138.      free(P);
  139.      free(Pi);
  140.      free(Pd);
  141.      free(Q);
  142.      free(Qi);
  143.      free(Qd);
  144.      free(Ri);
  145.      free(Rd);
  146.      free(Rh);
  147.      free(Sp);
  148.      free(Sq);
  149.      free(f);
  150.      free(g);
  151.      free(h);
  152.          
  153. }//Fin metodo
  154.  
  155.  

Gracias por todo. Salu2

77
C/C++ / Re: Porque No Compila Esto En C?
« en: Jueves 8 de Marzo de 2007, 16:13 »
Cita de: "Eternal Idol"
Ah, si lo que vas a devolver es memoria reservada dentro de MultiPoli y queres acceder (como veo tu bucle con printf) desde main entonces no podes liberarla en MultiPoli sino que tenes que hacerlo en main.
A ver si te he entendido. Como hay return j; y return X;, quieres decir que free(j);; y free(X); deben de estar en el main, asi tal cual, no?

En cuando a mi metodo main, es cierto que solo inicializaba a (se me olvidó cambiarlo al copiar-pegar).

78
C/C++ / Re: Porque No Compila Esto En C?
« en: Jueves 8 de Marzo de 2007, 15:44 »
El programa sigue haciendo lo mismo, petar. Dejo aqui hasta ahora lo que llevo echo:

Citar
#include <stdio.h>

int* MultiPoli(int* p, int n, int* q, int m);

int main(){
    char c;
    int i,n,m;
    int* a;
    int* b;
    int* r;
    a[0]=2;
    a[1]=3;
    a[2]=2;
    a[3]=5;
    a[0]=3;
    a[1]=1;
    a[2]=7;
    a[3]=2;
    n=3;
    m=3;
    r=MultiPoli(a,n,b,m);
   
    for(i=0;i<10;i++){
         printf("%i",r);
         }
    c=getche();
   
    return 0;
}

//Multiplicacion de polinomios con divide y venceras
int* MultiPoli(int* p, int n, int* q, int m){
     int* P;
     int* Pi;
     int* Pd;
     int* Q;
     int* Qi;
     int* Qd;
     int* Ri;
     int* Rd;
     int* Rh;
     int* Sp;
     int* Sq;
     int* f;
     int* g;
     int* h;
     int* j;
     int* X;
     int x=0;
     int y=0;
     int i,N,M;
     
     if(n>m){ //El vector mas grande es P
            P=p;
            Q=q;
            N=n+1;
            M=m+1;
            }
     else{
          Q=p;
          P=q;
          N=m+1;
          M=n+1;
          }
         
     //Reservo Memoria
     P=(int*)malloc((sizeof(int))*(N));
     Q=(int*)malloc((sizeof(int))*(M));
     Pi=(int*)malloc((sizeof(int))*(N/2));
     Pd=(int*)malloc((sizeof(int))*(N/2));
     Qi=(int*)malloc((sizeof(int))*(M/2));
     Qd=(int*)malloc((sizeof(int))*(M/2));
     Ri=(int*)malloc((sizeof(int))*(N));
     Rd=(int*)malloc((sizeof(int))*(N));
     Rh=(int*)malloc((sizeof(int))*(N));
     Sp=(int*)malloc((sizeof(int))*(N/2));
     Sq=(int*)malloc((sizeof(int))*(N/2));
     f=(int*)malloc((sizeof(int))*(N/2));
     g=(int*)malloc((sizeof(int))*(N));
     h=(int*)malloc((sizeof(int))*(N*N));
     j=(int*)malloc((sizeof(int))*(N*N));
     
     
     if(M==1){ //Multiplicación Convencional. Caso Base
          X[0]=P[0]*Q[0];
          return X;
          }
     else{
          for(i=0;i<(N/2)-1;i++){ //Parte Izquierda de P
               Pi=P;
               }
          for(i=N/2;i<N;i++){ //Parte Derecha de P
               Pd=P;
               }
          for(i=0;i<(M/2)-1;i++){ //Parte Izquierda de Q
               Qi=Q;
               }
          for(i=M/2;i<M;i++){ //Parte Derecha de Q
               Qd=P;
               }
          Ri=MultiPoli(Pi,N/2,Qi,M/2); //Llamada recursiva
          Rd=MultiPoli(Pd,N/2,Qd,M/2); //Llamada recursiva
           
          for(i=0;i<(N/2)-1;i++){ // Pi+Pd
               Sp=Pi+Pd;
               }
          for(i=0;i<(M/2)-1;i++){ // Qi+Qd
               Sq=Qi+Qd;
               }
          Rh=MultiPoli(Sp,N/2,Sq,M/2); //Llamada recursiva
         
          for (i=0;i<(N/2)-1;i++){ // Rh+Ri+Rd
              f=Rh-Ri-Rd;
              }
          for (i=0;i<(N/2)-1;i++){ // 1.-(Rh+Ri+Rd)*Xn/2
              g=0;
              }
          for (i=N/2;i<N;i++){ // 2.-(Rh+Ri+Rd)*Xn/2
              g=f
  • ;

              x++;
              }
          for (i=0;i<N-1;i++){ // 1.-Rd*Xn
              h=0;
              }
          for (i=N;i<2*N;i++){ // 2.-Rd*Xn
              h=Rd[y];
              y++;
              }
             
          for(i=0;i<2*N;i++){ // Calculo la solucion
              j=Ri+g+h;
              }
             
          return j;
         
     }//Fin else
     
     //Libero Memoria
     free(P);
     free(Pi);
     free(Pd);
     free(Q);
     free(Qi);
     free(Qd);
     free(Ri);
     free(Rd);
     free(Rh);
     free(Sp);
     free(Sq);
     free(f);
     free(g);
     free(h);
     free(j);
         
}//Fin metodo

Gracias por todo. Salu2

79
C/C++ / Re: Porque No Compila Esto En C?
« en: Jueves 8 de Marzo de 2007, 15:02 »
Esque quiero dividir el vector P, en dos vectores el Pi, y el Pd (izquierda y derecha respectivamente). Y lo mismo con Q. Por eso lo de el bucle for que recorre el vector P hasta la mitad, introduzco estos elementos en Pi, eso esta mal echo?

Cuando exactamente tengo que reservar la memoria?

Salu2

80
C/C++ / Re: Porque No Compila Esto En C?
« en: Jueves 8 de Marzo de 2007, 14:23 »
El main es este, es muy sencillo.

Salu2

Citar
int main(){
    char c;
    int i,n,m;
    int* a;
    int* b;
    int* r;
    a[0]=2;
    a[1]=3;
    a[2]=2;
    a[3]=5;
    a[0]=3;
    a[1]=1;
    a[2]=7;
    a[3]=2;
    n=3;
    m=3;
    r=MultiPoli(a,n,b,m);
   
    for(i=0;i<10;i++){
         printf("%i",r);
         }
    c=getche();
   
    return 0;
}

Salu2

81
C/C++ / Re: Porque No Compila Esto En C?
« en: Jueves 8 de Marzo de 2007, 14:21 »
Esque yo lo que quiero hacer es un vector, que apriori no se los elementos que tiene. Cada Vector representara los elementos.

Como hago esto entonces?

Salu2

82
C/C++ / Re: Porque No Compila Esto En C?
« en: Jueves 8 de Marzo de 2007, 11:37 »
Me compila perfectamente, y he hecho un programita main muy sencillo y tambien compila. Pero a la hora de ejecutarlo da un error de windows. Eso puede ser por que la logica este mal? me puedes echar una mano en la logica?. Salu2

83
C/C++ / Re: Porque No Compila Esto En C?
« en: Jueves 8 de Marzo de 2007, 11:20 »
Es verdad tio, estas en todas partes como Dios, jejeje. Gracias tio, corregire eso y vere que tal. Salu2

84
C/C++ / Porque No Compila Esto En C?
« en: Jueves 8 de Marzo de 2007, 11:08 »
Buenas, se supone que tengo que hacer un algoritmo divide y venceras que multiplique dos polinomios de grado n, lo he hecho yo, por tanto no se si la semantica estara bien. El caso esque no me compila, y esque soy nuevo porgramando en C y lo tengo muy verde. Aqui os dejo el codigo a ver si le podeis echar un vistazo.

Código: Text
  1. //Multiplicacion de polinomios con divide y venceras
  2.  
  3. int* MultiPoli(int* p, int n, int* q, int m);
  4.  
  5.  
  6. int* MultiPoli(int* p, int n, int* q, int m){
  7.      int* P;
  8.      int* Pi;
  9.      int* Pd;
  10.      int* Q;
  11.      int* Qi;
  12.      int* Qd;
  13.      int* Ri;
  14.      int* Rd;
  15.      int* Rh;
  16.      int* Sp;
  17.      int* Sq;
  18.      int* f;
  19.      int* g;
  20.      int* h;
  21.      int* j;
  22.      int x=0;
  23.      int y=0;
  24.      int i,N,M;
  25.      
  26.      if(n&#62;m){ //El vector mas grande es P
  27.             P=p;
  28.             Q=q;
  29.             N=n+1;
  30.             M=m+1;
  31.             }
  32.      else{
  33.           Q=p;
  34.           P=q;
  35.           N=m+1;
  36.           M=n+1;
  37.           }
  38.      
  39.      if(M==1){ //Multiplicación Convencional. Caso Base
  40.           return (P[0]*Q[0]);
  41.           }
  42.      else{
  43.           for(i=0;i&#60;(N/2)-1;i++){ //Parte Izquierda de P
  44.                Pi[i]=P[i];
  45.                }
  46.           for(i=N/2;i&#60;N;i++){ //Parte Derecha de P
  47.                Pd[i]=P[i];
  48.                }
  49.           for(i=0;i&#60;(M/2)-1;i++){ //Parte Izquierda de Q
  50.                Qi[i]=Q[i];
  51.                }
  52.           for(i=M/2;i&#60;M;i++){ //Parte Derecha de Q
  53.                Qd[i]=P[i];
  54.                }
  55.           Ri=MultiPoli(Pi,N/2,Qi,M/2); //Llamada recursiva
  56.           Rd=MultiPoli(Pd,N/2,Qd,M/2); //Llamada recursiva
  57.            
  58.           for(i=0;i&#60;(N/2)-1;i++){ // Pi+Pd
  59.                Sp[i]=Pi[i]+Pd[i];
  60.                }
  61.           for(i=0;i&#60;(M/2)-1;i++){ // Qi+Qd
  62.                Sq[i]=Qi[i]+Qd[i];
  63.                }
  64.           Rh=MultiPoli(Sp,N/2,Sq,M/2); //Llamada recursiva
  65.          
  66.           for (i=0;i&#60;(N/2)-1;i++){ // Rh+Ri+Rd
  67.               f[i]=Rh[i]-Ri[i]-Rd[i];
  68.               }
  69.           for (i=0;i&#60;(N/2)-1;i++){ // 1.-(Rh+Ri+Rd)*Xn/2
  70.               g[i]=0;
  71.               }
  72.           for (i=N/2;i&#60;N;i++){ // 2.-(Rh+Ri+Rd)*Xn/2
  73.               g[N/2]=f[x];
  74.               x++;
  75.               }
  76.           for (i=0;i&#60;N-1;i++){ // 1.-Rd*Xn
  77.               h[i]=0;
  78.               }
  79.           for (i=N;i&#60;2N;i++){ // 2.-Rd*Xn
  80.               h[N]=Rd[y];
  81.               y++;
  82.               }
  83.              
  84.           for(i=0;i&#60;2N;i++){ // Calculo la solucion
  85.               j[i]=Ri[i]+g[i]+h[i];
  86.               }
  87.              
  88.           return j;
  89.          
  90.      }//Fin else
  91. }//Fin metodo
  92.  

Gracias y Salu2

85
Diseño de Algoritmos / Multiplicacion De Polinomios
« en: Martes 6 de Marzo de 2007, 16:26 »
Hola necesito un algoritmo divide y venceras de multiplicacion de 2 polinomios de orden n.  Me han dicho que me mire el algoritomo de multiplicacion de enteros grandes, y lo he hecho, pero no se me ocurre nada para modificarlo y convertirlo en la multiplicacion de polinomios. A ver si alguien me puede echar una mano en esto. Gracias

Salu2

86
C/C++ / Re: Duda En 2 Sentencias
« en: Domingo 4 de Marzo de 2007, 18:47 »
Gracias tio, es lo que necesitaba.

Salu2

87
C/C++ / Re: Duda En 2 Sentencias
« en: Domingo 4 de Marzo de 2007, 11:45 »
Hola soy novatillo en esto de programar en C y tengo 2 dudillas de momento :-)

Para que sirve exactamente la libreria "stdlib.h".

Y que es lo que hace la sentencia:

printf("%4.8f segundos\n\n",g);


Solamente eso.

Salu2

88
Java / Icepatch2
« en: Jueves 15 de Febrero de 2007, 13:12 »
Necesito una aplicacion sencillita que me sirva como ejemplo de un cliente, programado preferiblemente en Java, IcePatch2. Es que no se por donde cogerlo, y con un ejemplo sencillo me serviria de referencia. Salu2

89
C/C++ / Re: Manual De C
« en: Martes 13 de Febrero de 2007, 18:46 »
Gracias. Salu2

90
C/C++ / Manual De C
« en: Martes 13 de Febrero de 2007, 12:00 »
Hola, digamos que tengo que aprender a programar en C, y quisiera un manual para "principiantes. Se programar en java, asi que mas o menos lo que necesitos es saber la sintaxis, por que por lo demas cambiara poco el tema, no?. Pues eso solamente que me recomendeis una manual de C. Gracias.

Salu2

91
Dudas informáticas / Trabajillo
« en: Jueves 25 de Enero de 2007, 09:42 »
Pues eso, tengo que hacer un trabajillo, y tengo que echarle un poco de imaginacion, ademas de asociarlo con unos conceptos, pero es un poco subjetivo, es todo teoriacamente, no hay que programar nada, asi que si pudierais aportar alguna idea por muy simple que fuera, os lo agradeceria.

Las preguntas son las siguientes:

1.-Comenta los aspectos básicos de una ventana como elemento esencial de las interfaces gráficas.
2.-Describir una interfaz que simule un paseo virtual por la clase
3.-Describir el puesto de trabajo virtual del diseñador de software (programador del futuro):
-Entorno de programación.
-¿Cómo nos gustaría que fuera la tecnología para realizar programas?
4.-Diseñar un punto de información.
5.-¿Es factible el “everyday computing”?




Lo que podais aportar se agradece. Salu2

92
Java / Re: Jar Y Html
« en: Miércoles 20 de Diciembre de 2006, 23:20 »
Gracias por todo, ya he salido del paso con un script que ejecuta un shell como si fuera linea de comandos. Ya ha sido la exposicion, y no ha salido mal.Salu2

93
HTML / Re: Adaptar Un Fondo
« en: Miércoles 20 de Diciembre de 2006, 23:18 »
Gracias por todo, mas o menos he solucionado todo.Salu2

94
Java / Re: Jar Y Html
« en: Lunes 18 de Diciembre de 2006, 10:21 »
ok gracias pero creo que swing tambien vale si en vez de heredar de applet heredas de Japplet, corrigeme si estoy equivocado.Salu2

95
Java / Re: Jar Y Html
« en: Viernes 15 de Diciembre de 2006, 10:39 »
Citar
Luego, el constructor de tu aplicación en swing, lo cambias por este método:

public void init(), es decir, todo el codigo que tenias dentro de tu constructor, ahora lo vas a tener dentro del metodo void init().

Te refieres al metodo main verdad? salu2



Edito: creo que ya se a lo que te refieres, se me habia ido la cabeza, esque como aplicacion tenia un metodo main que era el que llamaba al metodo que lanzaba el juego, y me habia liado, pues bien ya he modificado el constructor de la clase como me has dicho, y no me va, creo que tengo que tener alguna chorrada mal.

Tienes un MP

96
Java / Re: Jar Y Html
« en: Jueves 14 de Diciembre de 2006, 09:53 »
algo asi si, insertar como un applet, que cuando que cuando ejecutes la pagina salga un recuadro y dentro este la aplicacion ejecutada, esque me explico fatal.Salu2

97
Java / Jar Y Html
« en: Miércoles 13 de Diciembre de 2006, 23:10 »
Pues eso, he hecho una aplicacion con awt y swing, y he compilado y he creado el jar, y solo quiero saber como lo ejecuto en html, solamente eso, a ver si alguien lo sabe.Salu2

98
HTML / Re: Adaptar Un Fondo
« en: Martes 5 de Diciembre de 2006, 18:32 »
Cita de: "Angel_K_ido"
Si, por defecto una imágen de fondo se repite hasta completar la pantalla.

Para que no se repita puedes usar CSS:

Código: Text
  1. &#60;html&#62;
  2.   &#60;head&#62;
  3.     &#60;style type=&#34;text/css&#34;&#62;
  4.       body {background-image: url(Fondo.gif); background-repeat: no-repeat}
  5.     &#60;/style&#62;
  6.   &#60;/head&#62;
  7.   &#60;body&#62;
  8.   &#60;/body&#62;
  9. &#60;/html&#62;
  10.  

Pero de esta manera no se cubre toda la pantalla.
Para centrar la imagen en vez de insertar la imágen en el body lo deberías hacer en un div.

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

Yo no se utilizar capas ni se si todos los navegadores las soportan pero  haciendo uso de estas supongo que podrías insertar una imágen en una capa y utilizar las propiedades width=100% y height=100% para estirarla a toda la pantalla sin importar la resolución del monitor.
Haber, yo puse esto, sin lo del width=100% height=100%, y sin ello deja abajo y a la derecha trozos en blanco, pero con ello, pasa esactamente lo mismo, que se queda como mosaico.

Perdona si soy muy torpe, y no estoy a tu nivel, solo quiero solucionar un problema que me ha surgido.

Y yo no te he pedido que me hagas ningun trabajo ni que trabajes por mi, solamente he expuesto un problema.

Perdonad si no me entero. los siento.

Salu2



PD: creo que todos alguna vez necesitamos ayuda y nos gusta que se nos ayude, y tu por mucho que sepas de todo esto, tambien la necesitaras, asique si no te importa, se un poco mas respetuoso con los demas, y trata a los demas como quieras que te traten ati.

99
HTML / Re: Adaptar Un Fondo
« en: Martes 5 de Diciembre de 2006, 18:05 »
Cita de: "Angel_K_ido"
:lol:
muy bien, gracias.Salu2

100
HTML / Re: Adaptar Un Fondo
« en: Martes 5 de Diciembre de 2006, 13:09 »
ok pero como lo adaptaria para que se viera bien con cualquier resolucion indistintamente, con eso te dice la resolucion de la pantalla, pero no se adapta no es asi?.Salu2

Páginas: 1 2 3 [4] 5