|
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
51
« 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++?
52
« en: Martes 4 de Noviembre de 2008, 16:16 »
vos que queres hacer que la matriz vaya apareciendo en espiral?
53
« en: Martes 28 de Octubre de 2008, 16:28 »
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.
54
« en: Domingo 26 de Octubre de 2008, 11:52 »
si tienes declarado algo asi: int **matriz; int filas, columnas; int *vector; int elementos; // estos serian los prototipos de la funcion cargar, usando pasajes por "referencia" void cargaMatriz(int **matatriz, int filas, int columnas); void cargaVector(int *vector, int elementos);
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
« en: Sábado 25 de Octubre de 2008, 17:39 »
Tus matrices y vectores, son dinámicos o estáticos?
56
« 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!
57
« en: Viernes 24 de Octubre de 2008, 17:03 »
otra sugerencia! esta es para el la funcción arbolInsert! nodo_t *arbolInsert(arbol_t *arbol, nodo_t *nodo, void *aIngresar){ if(!nodo) return creaNodo(arbol, aIngresar, NULL, NULL); if(arbol->funCmp(nodo->valor, aIngresar) > 0) nodo->iz = arbolInsert(arbol, nodo->iz, aIngresar); else if(arbol->funCmp(nodo->valor, aIngresar) < 0) nodo->der = arbolInsert(arbol, nodo->der, aIngresar); return nodo; }
fijate en esto: nodo_t *arbolInsert(arbol_t *arbol, nodo_t *nodo, void *aIngresar){ if(nodo == NULL) return creaNodo( aIngresar, NULL, NULL); else if(arbol->funCmp(nodo->valor, aIngresar) <= 0) nodo->iz = arbolInsert(arbol, nodo->iz, aIngresar); else nodo->der = arbolInsert(arbol, nodo->der, aIngresar); return nodo; }
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 ELSESaludos Rombus
58
« 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! void printArbol(arbol_t *arbol, nodo_t *nodo){ //Preorden if(nodo!=NULL){ arbol->funPrint(nodo->valor); printArbol(arbol, nodo->iz); printArbol(arbol, nodo->der); } }
 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 nodo_t *creaNodo(arbol_t *arbol, void *valor, nodo_t *der, nodo_t *iz)
fijate que creaNodo, solo depende de la raiz del árbol, y no te toda la estructura administrativa! tendrias que hacer: nodo_t *creaNodo(void *valor, nodo_t *der, nodo_t *iz)
y despues cambiar en arbolInsert esta linea: return creaNodo(arbol, aIngresar, NULL, NULL);
por esta otra: return creaNodo( aIngresar, NULL, NULL); Nos vemos Rombus!
59
« en: Viernes 24 de Octubre de 2008, 04:57 »
efectivamente es en esa linea: procedure Introducir(var Saldo : real; var Importe : real);
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!
60
« en: Viernes 24 de Octubre de 2008, 04:39 »
si ya lo solucionaste genial!
61
« en: Jueves 23 de Octubre de 2008, 21:20 »
no lo compile, pero me parece que esto procedure Introducir(var Saldo : real; Importe : real); esta mal y deberia ser asi: procedure Introducir(var Saldo : real; var Importe : real);
es decir, hay que pasar por referencia tanto SALDO como IMPORTE
62
« 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
63
« en: Lunes 20 de Octubre de 2008, 23:58 »
Genial! cuando lo tengas listo compartelo con la comudidad!
64
« en: Lunes 20 de Octubre de 2008, 22:40 »
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! he dicho "construir dinámicamente el array tendrias que haber dicho algo mas como, humanamente! cuestion de interpretacion! en fin
65
« en: Lunes 20 de Octubre de 2008, 22:28 »
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!

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! de todas formas considero que fue error mio, por precipitarme!
66
« en: Lunes 20 de Octubre de 2008, 22:13 »
#include <stdio.h> #include <string.h> void main(void){ char meses[12][12]; char mes[12]; int i; strcpy(meses [8],"Septiembre"); strcpy(meses [10],"Noviembre"); strcpy(meses [11],"Diciembre"); printf("ingrese el nombre del mes (primera letra en mayuscual): "); for (i=0; i<12; i++) if (strcmp(mes , meses [i ])==0){ printf("%s es el mes numero %dn", mes , i +1); i=13; } if (i=13) printf("escribiste mal el mes!n"); }
bueno ahora si, esta tiene que ser la respuesta!
67
« en: Lunes 20 de Octubre de 2008, 22:12 »
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!
68
« en: Lunes 20 de Octubre de 2008, 19:56 »
#include <stdio.h> #include <string.h> enum MES{ Enero,Febrero,Marzo,Abril,Mayo,Junio, Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre }; void main(void){ char meses[12][10]; int i; strcpy(meses [8],"Septiembre"); strcpy(meses [10],"Noviembre"); strcpy(meses [11],"Diciembre"); for (i=Enero; i<=Diciembre; i++) printf("mes %d = %sn",i +1, meses [i ]); }
eso es lo mas cercano a no hacer infinitos IFs Anidados y creo que es mas simple, espero que te sirva si lo entiendes?
69
« en: Lunes 20 de Octubre de 2008, 06:06 »
debes utilizar matrices dinñamicas te paso las dos funciones básicas: #include <stdio.h> #include <stdlib.h> typedef struct{ int **mat; // doble puntero, o arreglo de arreglos unsigned int filas; // cantidad de filas que tiene la matriz unsigned int columnas; // cantidad de columnas que tiene la matriz }matrizDin; // tipo matriz dinamica void crearMatrizDin(matrizDin *m, unsigned int f, unsigned int c){ unsigned int i; m->filas=f; m->columnas=c; m ->mat =(int **)malloc(sizeof(int *)*f ); for (i=0; i<f; i++) m ->mat [i ]=(int *)malloc(sizeof(int)*c ); } void destruirMatrizDin(matrizDin *m){ unsigned int i; for (i=0; i<m->filas; i++) m->filas=0; m->columnas=0; } void main(){ matrizDin m; crearMatrizDin(&m, 3, 5); destruirMatrizDin(&m); }
en fin, si te sirve decime, y si no tambien
70
« 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. program visor; const MaxPalabra = 16; var archivo: file; {archivo sin tipo} path: string; palabra: array [1..MaxPalabra] of char; {use esto por que mi compilador se quejaba con un string} i: byte; leidos: integer; linea: longint; begin write('ingrese la dir del archivo: '); readln(path); assign(archivo, path); {asocio el archivo a la dir} reset(archivo, 1); {lo prepara para escritura, el 1 es por que leeremos bytes} {aca faltan los controladores para saber si el archivo existe o no} linea := 1; while not(EOF(archivo)) do begin writeln; blockread(archivo, palabra, sizeof(palabra), leidos); write(linea, ' | '); {aca iria el numero de linea de la forma FFFF FFFF} linea := linea + 1; for i := 1 to MaxPalabra do write(palabra[i], ' ');{aca iria tu funcion de hexadecimal es} write('| ',palabra, ' |'); end; readln; close(archivo); end.
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!
71
« en: Domingo 19 de Octubre de 2008, 17:41 »
Tendrias que probar con lo siguiente: Var archivo: file of text;
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!
72
« en: Domingo 19 de Octubre de 2008, 04:26 »
Gracias por el Dato ProfesorX!
73
« en: Domingo 19 de Octubre de 2008, 04:11 »
Lo que quieres es hacer un programa que haga algo de este tipo: "000000000 4C 6F 20 71 75 65 20 71-75 69 65 72 65 73 20 65 |Lo que quieres e|" "000000010 73 20 68 61 63 65 72 20-75 6E 20 70 72 6F 67 72 |s hacer un progr|" "000000020 61 6D 61 20 71 75 65 20-68 61 67 61 20 61 6C 67 |ama que haga alg|" "000000030 6F 20 64 65 20 65 73 74-65 20 74 69 70 6F 3A |o de este tipo: |"
si es asi consultame, si no, no entiendo que es lo que queres hacer!
74
« 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
« en: Viernes 17 de Octubre de 2008, 06:12 »
considero que entro en esa categoria !
y que tipo de proyecto insinuan!
|
|
|