• Jueves 3 de Julio de 2025, 04:08

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 - eternity

Páginas: 1 2 [3] 4
51
C++ Builder / Re: imprimir un vector de una matriz en forma de caracol
« en: Miércoles 5 de Noviembre de 2008, 04:15 »
ah ahora entiendo dame hasta mañana y te ayudo! por que estoy hasta las manos con un laburo!

otra cosa: trabajas en C o en C++?

 :beer:

52
C++ Builder / Re: imprimir un vector de una matriz en forma de caracol
« en: Martes 4 de Noviembre de 2008, 16:16 »
vos que queres hacer que la matriz vaya apareciendo en espiral?

53
C/C++ / Re: Darme una idea de sacar la diferencia en años entre fechas
« en: Martes 28 de Octubre de 2008, 16:28 »
Cita de: "m0skit0"
El único que se me ocurre es el de año bisiesto (si un año es divisible por 4 es bisiesto), lo tienes contemplado arriba.

Para que un año sea biciesto, tiene que ser múltiplo de 4, pero además no debe ser múltiplo de 100 y debe ser múltiplo de 400.

 :beer:

54
C/C++ / Re: Paso por parametos o Paso por referencia
« en: Domingo 26 de Octubre de 2008, 11:52 »
si tienes declarado algo asi:

Código: C
  1. int **matriz;
  2. int filas, columnas;
  3. int *vector;
  4. int elementos;
  5.  
  6. // estos serian los prototipos de la funcion cargar, usando pasajes por "referencia"
  7.  
  8. void cargaMatriz(int **matatriz, int filas, int columnas);
  9.  
  10. void cargaVector(int *vector, int elementos);
  11.  


Dato: en C, no existe el pasaje por referencia como en otros lenguajes como Pascal (en lo que esto se nota utilizando la palabra reservada Var), en C todos los pasajes son por valor. Pero utilizando la semántica de los punteros de C, uno puede simular un pasaje por referencia.

55
C/C++ / Re: Paso por parametos o Paso por referencia
« en: Sábado 25 de Octubre de 2008, 17:39 »
Tus matrices y vectores, son dinámicos o estáticos?

 :huh:

56
C/C++ / Re: Asignacion de punteros
« en: Viernes 24 de Octubre de 2008, 17:38 »
las mismas dos cosas, empiezo por la segunda, si la entrada del programa fuera:

5, 4, 3, 7, 7, 3, la salida esperada en preorden seria: 5, 7, 7, 4, 3, 3,
pero como tu codigo no contempla valores repetidos, tu salida es 5, 7, 4, 3

dos opciones o contemplas un campo de node que sea cantidad de apariciones de un dato, o contemplas que pueda haber datos repetidos y en nodos distintos.

y despues, la solucion "trivial" para insertar un nodo en un arbol binario, es que llegues a un nodo==NULL, no a un !nodo o como lo quieras llamar!

 :beer:  :good:

57
C/C++ / Re: Asignacion de punteros
« en: Viernes 24 de Octubre de 2008, 17:03 »
otra sugerencia!

esta es para el la funcción arbolInsert!

Cita de: "Rombus"
Código: C
  1. nodo_t *arbolInsert(arbol_t *arbol, nodo_t *nodo, void *aIngresar){
  2.     if(!nodo)
  3.         return creaNodo(arbol, aIngresar, NULL, NULL);
  4.    
  5.     if(arbol->funCmp(nodo->valor, aIngresar) > 0)
  6.         nodo->iz = arbolInsert(arbol, nodo->iz, aIngresar);
  7.     else if(arbol->funCmp(nodo->valor, aIngresar) < 0)
  8.         nodo->der = arbolInsert(arbol, nodo->der, aIngresar);
  9.     return nodo;
  10. }
  11.  

fijate en esto:

Código: C
  1. nodo_t *arbolInsert(arbol_t *arbol, nodo_t *nodo, void *aIngresar){
  2.     if(nodo == NULL)
  3.         return creaNodo( aIngresar, NULL, NULL);
  4.     else
  5.         if(arbol->funCmp(nodo->valor, aIngresar) <= 0)
  6.             nodo->iz = arbolInsert(arbol, nodo->iz, aIngresar);
  7.         else
  8.             nodo->der = arbolInsert(arbol, nodo->der, aIngresar);
  9.  
  10.     return nodo;
  11. }
  12.  

puede que funciones pero no estoy seguro de si if(!nodo) es lo mismo que prguntar if (nodo == NULL), esto es mucho mas decifrable cuando se labura con punteros jeje

viste ahi cambie lo que te dije en el post anterior

otra, en tu codigo no conteplabas en los casos que arbol->funCmp(nodo->valor, aIngresar) eran iguales a cero, en ese caso nunca harias nada yo lo solucione con un <= 0 eso me garantiza que todos los valores seran insertados;
y de vuelta vos llamaste dos veces a arbol->funCmp(nodo->valor, aIngresar) cuando por defecto en un IF, sabes la contrapartida colocando un ELSE

Saludos Rombus

 :good:

58
C/C++ / Re: Asignacion de punteros
« en: Viernes 24 de Octubre de 2008, 16:04 »
fijate que tu algoritmo para mostrar el recorrido en pre Orden es mas facil que el que estas usando!
tendría que ser asi!

Código: C
  1. void printArbol(arbol_t *arbol, nodo_t *nodo){  //Preorden
  2.     if(nodo!=NULL){
  3.         arbol->funPrint(nodo->valor);
  4.         printArbol(arbol, nodo->iz);
  5.         printArbol(arbol, nodo->der);
  6.     }
  7. }
  8.  

 :beer:

y que cuando llamas a la función Crea nodo le estás pasando un argumento de más (arbol_t *arbol) que no usas para nada
Cita de: "Rombus"
Código: C
  1. nodo_t *creaNodo(arbol_t *arbol, void *valor, nodo_t *der, nodo_t *iz)
  2.  

fijate que creaNodo, solo depende de la raiz del árbol, y no te toda la estructura administrativa!
tendrias que hacer:

Código: C
  1. nodo_t *creaNodo(void *valor, nodo_t *der, nodo_t *iz)
  2.  

y despues cambiar en arbolInsert esta linea:

Cita de: "Rombus"
Código: C
  1. return creaNodo(arbol, aIngresar, NULL, NULL);
  2.  

por esta otra:

return creaNodo( aIngresar, NULL, NULL);

Nos vemos Rombus!

59
Pascal / Re: No logro encontrar error
« en: Viernes 24 de Octubre de 2008, 04:57 »
efectivamente es en esa linea:

Código: Pascal
  1. procedure Introducir(var Saldo : real; var Importe : real);
  2.  

te explico, como estas usando variables globales, y se las estas pasando por parametros a un procedimiento que les carga un valor a las mismas, si lo pasas por valor como lo estabas haciendo con IMPORTE, vos estas ingresando un valor, en una copia en memoria de IMPORTE, no en IMPORTE, al pasar IMPORTE por referencia (con la palabra reservada VAR) estas agregando el valor a la variable misma!

suerte amigo!

 :good:

60
Pascal / Re: Creacion y Busqueda en archivo binario
« en: Viernes 24 de Octubre de 2008, 04:39 »
si ya lo solucionaste genial!

 :good:

61
Pascal / Re: No logro encontrar error
« en: Jueves 23 de Octubre de 2008, 21:20 »
no lo compile, pero me parece que esto
Cita de: "susicarlos4"
procedure Introducir(var Saldo : real; Importe : real);
esta mal y deberia ser asi:

Código: Pascal
  1. procedure Introducir(var Saldo : real; var Importe : real);
  2.  

es decir, hay que pasar por referencia tanto SALDO como IMPORTE

 :good:

62
Pascal / Re: Creacion y Busqueda en archivo binario
« en: Jueves 23 de Octubre de 2008, 21:15 »
tu codigo, lo compile en Dev Pascal 1.9.2, y cuando termino de cargar un libro se me sale!

dame hasta mañana y trato de debuguearlo!

suerte  :good:

63
Pascal / Re: Ficheros en Binario/hexadecimal
« en: Lunes 20 de Octubre de 2008, 23:58 »
Genial! cuando lo tengas listo compartelo con la comudidad!

 :beer:

64
C/C++ / Re: como asociar un mes con un numero?
« en: Lunes 20 de Octubre de 2008, 22:40 »
Cita de: "rfog"
Mi programa funcionará más rápido que el tuyo, usará menos memoria y encima, si por error se intentara escribir en el array para la comparación, el compilador lo detectaría.

esto no se trata de una competencia!, de todos modos los dos programas utilizan la misma cantidad de memoria (12*cantidad maxima de letras del mes mas largo). al fin y al cabo es un foro, no un coliseo!

Cita de: "rfog"
he dicho "construir dinámicamente el array

tendrias que haber dicho algo mas como, humanamente! cuestion de interpretacion!

en fin

 :beer:

65
C/C++ / Re: como asociar un mes con un numero?
« en: Lunes 20 de Octubre de 2008, 22:28 »
Cita de: "Eternal Idol"
Cita de: "eternity"
Cita de: "rfog"
Hola, no hace falta que construyas dinámicamente el array, lo puedes hacer de forma estática

en ningun lado use allocacion dinamica de memoria, intenta leer bien mi codigo!

 :no:

Nadie dijo que lo hubieras hecho, lee nuevamente lo que se dijo ya que es correcto.

pero tampoco nadie asintió que se de debiera hacer de forma dinamica! &lt;_&lt;

de todas formas considero que fue error mio, por precipitarme!

 :brickwall:

66
C/C++ / Re: como asociar un mes con un numero?
« en: Lunes 20 de Octubre de 2008, 22:13 »
Código: C
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. void main(void){
  5.  
  6.     char meses[12][12];
  7.     char mes[12];
  8.     int i;
  9.  
  10.     strcpy(meses[0],"Enero");
  11.     strcpy(meses[1],"Febrero");
  12.     strcpy(meses[2],"Marzo");
  13.     strcpy(meses[3],"Abril");
  14.     strcpy(meses[4],"Mayo");
  15.     strcpy(meses[5],"Junio");
  16.     strcpy(meses[6],"Julio");
  17.     strcpy(meses[7],"Agosto");
  18.     strcpy(meses[8],"Septiembre");
  19.     strcpy(meses[9],"Octubre");
  20.     strcpy(meses[10],"Noviembre");
  21.     strcpy(meses[11],"Diciembre");
  22.  
  23.     printf("ingrese el nombre del mes (primera letra en mayuscual): ");
  24.     scanf("%s", mes);
  25.  
  26.     for (i=0; i<12; i++)
  27.         if (strcmp(mes, meses[i])==0){
  28.             printf("%s es el mes numero %dn", mes, i+1);
  29.             i=13;
  30.         }
  31.     if (i=13)
  32.         printf("escribiste mal el mes!n");
  33. }
  34.  

bueno ahora si, esta tiene que ser la respuesta!

 :good:

67
C/C++ / Re: como asociar un mes con un numero?
« en: Lunes 20 de Octubre de 2008, 22:12 »
Cita de: "rfog"
Hola, no hace falta que construyas dinámicamente el array, lo puedes hacer de forma estática

en ningun lado use allocacion dinamica de memoria, intenta leer bien mi codigo!

 :no:

68
C/C++ / Re: como asociar un mes con un numero?
« en: Lunes 20 de Octubre de 2008, 19:56 »
Código: C
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. enum MES{
  5.     Enero,Febrero,Marzo,Abril,Mayo,Junio,
  6.     Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre
  7. };
  8.  
  9. void main(void){
  10.  
  11.     char meses[12][10];
  12.     int i;
  13.  
  14.     strcpy(meses[0],"Enero");
  15.     strcpy(meses[1],"Febrero");
  16.     strcpy(meses[2],"Marzo");
  17.     strcpy(meses[3],"Abril");
  18.     strcpy(meses[4],"Mayo");
  19.     strcpy(meses[5],"Junio");
  20.     strcpy(meses[6],"Julio");
  21.     strcpy(meses[7],"Agosto");
  22.     strcpy(meses[8],"Septiembre");
  23.     strcpy(meses[9],"Octubre");
  24.     strcpy(meses[10],"Noviembre");
  25.     strcpy(meses[11],"Diciembre");
  26.  
  27.     for (i=Enero; i<=Diciembre; i++)
  28.         printf("mes %d = %sn",i+1, meses[i]);
  29. }
  30.  
  31.  

eso es lo mas cercano a no hacer infinitos IFs Anidados y creo que es mas simple, espero que te sirva si lo entiendes?

 :good:

69
C/C++ / Re: Matrices C++ !!
« en: Lunes 20 de Octubre de 2008, 06:06 »
debes utilizar matrices dinñamicas

te paso las dos funciones básicas:

Código: C
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct{
  5.     int **mat;              // doble puntero, o arreglo de arreglos
  6.     unsigned int filas;     // cantidad de filas que tiene la matriz
  7.     unsigned int columnas;  // cantidad de columnas que tiene la matriz
  8. }matrizDin;                 // tipo matriz dinamica
  9.  
  10. void crearMatrizDin(matrizDin *m, unsigned int f, unsigned int c){
  11.     unsigned int i;
  12.  
  13.     m->filas=f;
  14.     m->columnas=c;
  15.  
  16.     m->mat=(int **)malloc(sizeof(int *)*f);
  17.     for (i=0; i<f; i++)
  18.         m->mat[i]=(int *)malloc(sizeof(int)*c); 
  19. }
  20.  
  21. void destruirMatrizDin(matrizDin *m){
  22.     unsigned int i;
  23.  
  24.     for (i=0; i<m->filas; i++)
  25.         free(m->mat[i]);
  26.     free(m->mat);
  27.    
  28.     m->filas=0;
  29.     m->columnas=0;
  30. }
  31.  
  32. void main(){
  33.     matrizDin m;
  34.  
  35.     crearMatrizDin(&m, 3, 5);
  36.     destruirMatrizDin(&m);
  37. }
  38.  

en fin, si te sirve decime, y si no tambien

 :good:

70
Pascal / Re: Ficheros en Binario/hexadecimal
« en: Domingo 19 de Octubre de 2008, 22:22 »
bueno aca esta el esqueleto de lo tenes que hacer hay algunos comentarios sobre algunas cosas, fijate que use el blockread que antes mencionabas, es por que siempre quiero leer tantos caracteres como quiera.

Código: Pascal
  1. program visor;
  2. const
  3.   MaxPalabra = 16;
  4. var
  5.   archivo: file; {archivo sin tipo}
  6.   path: string;
  7.   palabra: array [1..MaxPalabra] of char; {use esto por que mi compilador se quejaba con un string}
  8.   i: byte;
  9.   leidos: integer;
  10.   linea: longint;
  11. begin
  12.   write('ingrese la dir del archivo: '); readln(path);
  13.   assign(archivo, path); {asocio el archivo a la dir}
  14.   reset(archivo, 1); {lo prepara para escritura, el 1 es por que leeremos bytes}
  15.   {aca faltan los controladores para saber si el archivo existe o no}
  16.  
  17.   linea := 1;
  18.   while not(EOF(archivo)) do
  19.    begin
  20.      writeln;
  21.      blockread(archivo, palabra, sizeof(palabra), leidos);
  22.      write(linea, ' | '); {aca iria el numero de linea de la forma FFFF FFFF}
  23.      linea := linea + 1;
  24.      for i := 1 to MaxPalabra do
  25.       write(palabra[i], ' ');{aca iria tu funcion de hexadecimal es}
  26.      write('| ',palabra, ' |');
  27.    end;
  28.   readln;
  29.   close(archivo);
  30. end.
  31.  
  32.  

luego tendrias que fijarte que algunos cuando llegan a la mitad ponen un guion o separador no es mas que un simpre if pero te lo dejo a vos, y ademas tomate el trabajo de que la cadena (un buffer) palabra, inicialice simpre por que si en la ultima lectura antes del EOF lees menos de MaxPalabras podrian quedarte valores con "basura" no contemple esto, pero esa es tu responsabilidad, que la fuerza te acompañe joven padawan!

 :good:

71
Pascal / Re: Ficheros en Binario/hexadecimal
« en: Domingo 19 de Octubre de 2008, 17:41 »
Tendrias que probar con lo siguiente:

Código: Pascal
  1.  
  2. Var
  3.    archivo: file of text;
  4.  
  5.  

eso deberia abrir cualquier archivo, ahora estoy un tanto ocupado con la facu, asi que depues vere eso que dices sobre el EOF, mandame el codigo de lo que tengas y yo te lo reviso y debugueo, por que si no es muy dificil, vamos a los hechos!

  :good:

72
Pascal / Re: Busco Gente Para Proyectos En Pascal
« en: Domingo 19 de Octubre de 2008, 04:26 »
Gracias por el Dato ProfesorX!
 :beer:

73
Pascal / Re: Ficheros en Binario/hexadecimal
« en: Domingo 19 de Octubre de 2008, 04:11 »
Lo que quieres es hacer un programa que haga algo de este tipo:

Código: Text
  1.  
  2.  
  3. "000000000  4C 6F 20 71 75 65 20 71-75 69 65 72 65 73 20 65   |Lo que quieres e|"
  4. "000000010  73 20 68 61 63 65 72 20-75 6E 20 70 72 6F 67 72   |s hacer un progr|"
  5. "000000020  61 6D 61 20 71 75 65 20-68 61 67 61 20 61 6C 67   |ama que haga alg|"
  6. "000000030  6F 20 64 65 20 65 73 74-65 20 74 69 70 6F 3A      |o de este tipo: |"
  7.  
  8.  
  9.  

si es asi consultame, si no, no entiendo que es lo que queres hacer!

74
Pascal / Re: Realizacion De Un Puzzle En Pascal
« en: Viernes 17 de Octubre de 2008, 06:17 »
suena complicado pero no imposible, me recuerda cuando programe mi buscaminas en pascal si empiezas a hacerlo con gusto te ayudare!

75
Pascal / Re: Busco Gente Para Proyectos En Pascal
« en: Viernes 17 de Octubre de 2008, 06:12 »
considero que entro en esa categoria !

y que tipo de proyecto insinuan!

Páginas: 1 2 [3] 4