• Domingo 22 de Diciembre de 2024, 17:29

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

Páginas: 1 ... 3 4 [5] 6 7 ... 41
101
C/C++ / Re: Alguien sabe restar estooOoO??
« en: Martes 19 de Mayo de 2009, 04:50 »
¿Debes usar necesariamente esas cadenas? ¿No podrías trabajar con la biblioteca time?

Si debes trabajar con las cadenas, lo que yo haría sería separar basándome en los ":", con eso, ya puedes realizar la resta entre elementos respectivos (horas - horas, minutos - minutos...).
O también, ya separado, lo conviertes a una estructura tm y trabajas con las funciones de la biblioteca time para restar. De ser posible, obtendría las horas directamente con funciones de esta biblioteca.

Suerte.

102
C/C++ / Re: Programa Help!!! 1
« en: Lunes 18 de Mayo de 2009, 03:59 »
Cita de: "asyba"
gracias por esa informacion..
y otra cosa como se pones las lineas bien puesto como vos escribiste en el mesaje anterior
En las opciones arriba del cuadro de texto en el que introduces tu mensaje, hay una lista desplegable que dice "Code", solamente selecciona el texto que deseeas y elige de la lista el lenguaje que corresponde.

En ambos programas, explica un poco qué es lo que estás intentando hacer o en qué parte te has trabado, en el de los intervalos tenías la idea clara y solamente había un error de lógica, pero en estos dos no se entiende.

103
C/C++ / Re: Programa Help!!! 1
« en: Domingo 17 de Mayo de 2009, 19:17 »
Primero, por favor intenta identar el código y utiliza las etiquetas del foro para que sea más fácil leerlo, así nos ayudas a ayudarte :).

b) El problema está en esta parte:
Código: C
  1. if (men%3!=0)
  2. {
  3. men++;
  4. }
  5.  
  6.  
Solo la ejecutas una vez, necesitas ejecutarla hasta que (men % 3) devuelva 0. Si el menor es 10, lo ejecutas una vez y pasa a 11, pero te quedas con ese y no consigues llegar a 12. Prueba con esto:
Código: C
  1. while( men %3 != 0 )
  2.    men++;
  3.  
  4.  

c) Investiga qué son los números primos.

a) Solamente tienes que varios pares de valores, para cada par leído, evalúas en qué cuadrante se encuentra de acuerdo a los signos de las coordenadas:
http://es.wikipedia.org/wiki/Coordenadas_cartesianas

Llevas cuatro contadores, uno por cuadrante, una vez que sabes en qué cuadrante se encuentra el par de coordenadas que se introdujo, aumentas el contador correspondiente y procedes a leer otro par de coordenadas.

104
C/C++ / Re: Problema extraño con variable
« en: Domingo 17 de Mayo de 2009, 18:53 »
:huh: :think:
Pues ya de plano límpiala así:

Código: C
  1. for ( i = 0; i < TAMAGNO_BUFFER; i++ ) {
  2.    buffer[ i ] = 0;
  3.    //buffer[ i ] = '';
  4. }
  5.  
Si después de eso sigues leyendo caracteres anteriores, el problema está por otro lado o tienes un problema de duendes :alien: :p.

105
C/C++ / Re: Problema extraño con variable
« en: Sábado 16 de Mayo de 2009, 00:18 »
No estás usando memoria dinámica, tú debes encargarte de limpiar el contenido de la variable, por ejemplo, recorriendo la variable con un for y asignándole ceros o caracteres nulos.

Algo rápido:
Código: C
  1. #include <string.h>
  2.  
  3. // Rellena buffer con caracteres nulos
  4. memcpy( buffer, "", TAMAGNO_BUFFER );
  5.  

106
Qué tal, estoy buscando información para saber si es posible elegir a cual conectarme entre dos señales inalámbricas con el mismo nombre.

Resulta que tengo un repetidor de señal inalámbrica configurado con los mismos datos que la señal "original", y aunque tengo más cercano el repetidor, y por tanto Windows conecta automáticamente con este, me gustaría saber si existe alguna forma de conectarme al módem fuente. Pensando, imaginaría que de alguna forma habría que indicar algún dato que distinguiera entre uno u otro, p. ej. la dirección MAC, aunque desconozco si sea posible y, de ser así, cómo conseguirlo. ¿Pueden echarme una mano? me sirve información tanto si es para Windows como para Linux :).

107
Matlab / Re: como enviar variables de una *.fig a otra??
« en: Jueves 14 de Mayo de 2009, 21:13 »
Puedes utilizar la función guidata, suponiendo que nombre_otra_gui tiene un elemento texto_estatico de tipo "Static text", podemos acceder a él desde otra GUI de la siguiente forma:

Código: Matlab M
  1. data_otra_gui = guidata( nombre_otra_gui );
  2. texto = get( data_otra_gui.texto_estatico, 'String' );
  3.  
  4.  

Para compartir variables podrías guardarlas por ejemplo en la estructura handles de la otra GUI, y acceder de esta forma:

nombre_otra_gui:
Código: Matlab M
  1. handles.variable_global = 100;
  2. guidata( hObject, handles );
  3.  

Accediendo a la variable_global en nombre_otra_gui:
Código: Matlab M
  1. data_otra_gui = guidata( nombre_otra_gui );
  2. variable = data_otra_gui.variable_global;
  3.  

Suerte :).

108
Matlab / Re: Consultiya MATLAB
« en: Jueves 14 de Mayo de 2009, 14:02 »
Si consigues pasar el archivo de audio a un vector (cosa relativamente sencilla en MATLAB), luego debes recorrer el vector y encontrar aquellos valores que superan cierto valor límite (umbral).

Toph te indicó cómo hacer lo primero, ahora debes continuar. Aquí puedes preguntar :).

109
Matlab / Re: TRANSFORMACION DEL NIVEL DE GRIS A COLOR
« en: Jueves 14 de Mayo de 2009, 09:08 »
Tienes un problema de interpretación, ya tienes descrito el algoritmo pero no lo has comprendido para poder pasar a plasmarlo en un programa. De lo que se trata, es ir obteniendo cada pixel en la imagen de escala de grises y obtener una equivalencia de componentes RGB con la fórmula que se indica, basada en la tabla de correspondencias de los valores 0, 128 y 255 de intensidad en escala de grises. Como te mencioné antes, debiera haber más información sobre cómo crear la tabla de equivalencias y cómo obtener el valor del subíndice i (al menos eso esperaría). Si no, la tabla simplemente la propones, y el valor de i podría obtenerse viendo en qué intervalo cae el valor de intensidad a evaluar: i puede tomar los valores 0, 1 o 2; 0 para cuando el valor de intensidad es 0, 1 para cuando 0 < valor_intensidad <= 128 y 2 para 128 < valor_intensidad <= 255 (aclaro, esto lo estoy tratando de deducir a falta de más información que supongo deberías tener).

Una vez determinado el valor del subíndice i, puedes evaluar la fórmula tres veces, una para cada componente (R, G y B). Por ejemplo, para i = 1, R_i sería 100,   R_(i-1) = 5, G_i = 10, B_i = 20, G_(i-1) = 100, B_(i-1) = 60, g_(i-1) = g_0 = 0. En la fórmula, p será el valor de intensidad del pixel en turno, debes recorrer la imagen y evaluar para cada pixel, pasando los valores RGB obtenidos a una nueva imagen.

No es muy complicado una vez que puedes interpretar la teoría, ya está descrito el algoritmo (aunque sigo pensando que faltan algunos detalles que deberían estar en el libro en alguna página anterior), ahora debes interpretarlo y pasar a la codificación.

Espero haberte dado alguna idea y no confundirte más.

En cuanto al programa que conseguiste, no sigue el algoritmo que se describe en la documentación que tienes pero por si te es de utilidad, te comento algunas cosas:
  • la porción que te interesa carga variables del archivo mandrill que viene con la instalación de MATLAB (usado para varios ejemplos), el cual contiene tres variables: X, map y caption.
  • X corresponde a la imagen, pero indexada (o indizada), lo cual significa que cada valor en la matriz no es un valor correspondiente a un color, sino un número que corresponde a una posición en una matriz de colores, llamada paleta. map es la paleta de colores correspondiente a X.
  • la creación de "pseudocolor" se realiza mediante la generación aleatoria de una paleta de colores, aplicada a la imagen indexada X.
  • las imágenes que usan paleta de colores comúnmente son imágenes de 8 bits, las imágenes de 16, 24 y 32 bits no manejan paleta pues pueden representar sin problemas los colores que necesiten para cada valor de pixel, esto lo menciono pues seguramente la gran mayoría de imágenes que tengas a la mano serán de 24 bits. Para utilizar una imagen que tú desees y que funcione de la misma manera, deberás usar una imagen indexada o convertir alguna imagen que no use paleta.

Por último, creo que tu objetivo debería ser intentar implementar la documentación que ya tienes a la mano, no necesitas más, inténtalo y si tienes problemas con la codificación en MATLAB, para eso está este foro.

Hasta pronto y suerte con tu proyecto.

110
Matlab / Re: TRANSFORMACION DEL NIVEL DE GRIS A COLOR
« en: Martes 12 de Mayo de 2009, 05:51 »
Precisamente, en la segunda imagen que colocas (escanear0001) se describe un procedimiento para realizar la conversión de gris a "pseudocolor" (lo de "pseudo" es porque no conseguirás exactamente el resultado original, sino una aproximación), ahí está la fórmula que deberás implementar, así como una tabla de relación de colores que debes proponer de alguna forma. Supongo que en la(s) página(s) anterior(es) a escanear0001 debe haber más información sobre el método, intenta implementarlo y si tienes algún problema, coloca las páginas que te comento (o indica el libro o algún nombre con el que se haga referencia al método mostrado), y consulta aquí que con gusto te echamos una mano.

111
Matlab / Re: TRANSFORMACION DEL NIVEL DE GRIS A COLOR
« en: Domingo 10 de Mayo de 2009, 00:37 »
Tienes razón, es más complicado el proceso inverso, debido a que en la conversión de color a gris has perdido toda la información de componentes y solamente te quedas con la información de intensidad.

Para conseguir el proceso inverso (que es casi imposible sin información de "ayuda"), existen diferentes estrategias, una puede ser asignar colores aleatorios, otra crear una tabla de colores aproximados para relacionarlos a cada valor de intensidad, otra, intentar algún algoritmo inverso, p. ej., para la conversión a gris la obtuviste mediante una suma ponderada de las tres componentes de color de la imagen (rojo, verde y azul), ahora, cada valor de intensidad entonces tiene un cierto porcentaje de cada color, puedes obtener los porcentajes y relacionarlos de alguna manera con valores de intensidad separando para cada componente. No tengo algoritmos a la mano y por eso no te indico nada, pero intenta inventar alguna estrategia por muy burda que sea, ya imagino que su profesor les indicará alguno :).

112
C/C++ / Re: Almacenar en un long dos int
« en: Viernes 8 de Mayo de 2009, 19:00 »
Primero, deberías asegurarte que realmente los tipos tienen ese tamaño en bytes, para ello utiliza sizeof:
Código: C
  1. printf( "sizeof(int): %d bytesn", sizeof( int ) );
  2. printf( "sizeof(long): %d bytesn", sizeof( long ) );
  3.  
Al menos en mi equipo, ambos tienen el mismo tamaño (4 bytes).

De cualquier forma, sería solo un dato aclaratorio. Si x y y son de 4 bytes pero tú te asegurarás que no tendrás valores mayores a los que se pueden almacenar en 2 bytes:

Código: C
  1.     int x = 1;
  2.     int y = 2;
  3.  
  4.     long coord = 0;
  5.  
  6.     coord  = ( ( x & 0x0000ffff ) << 16 ) | ( y & 0x0000ffff );
  7.  
-------------------
Edición:
Jeje, Eternal me ganó en enviar la respuesta :P.

113
C/C++ / Re: instanciacion de un objeto en un atributo de la clase
« en: Viernes 8 de Mayo de 2009, 18:32 »
¿Y el error aparece en...?
Procura utilizar las etiquetas de código para que sea más legible :).

114
C/C++ / Re: Uso de Argc & Argv
« en: Viernes 8 de Mayo de 2009, 06:03 »
¿Propiedades del archivo? De esta forma no se encuentran las propiedades de un archivo.

argc y argv están relacionados con los parámetros que se pasan a un ejecutable en línea de comandos, es decir, puedes llamar a un programa.exe de esta forma:

programa.exe parametro1 parametro2 parametro3 parametro4

argc es una variable tipo int que indica el número de parámetros que recibe el ejecutable programa.exe (siempre se recibe al menos uno, puesto que el primero siempre es la ruta completa al ejecutable mismo).
argv es un doble puntero a char en el que se tienen los parámetros.

Por ejemplo, este programa despliega los parámetros recibidos:
Código: C
  1. int main( int argc, char* argv[] ) {
  2.  
  3.     for ( int i = 0; i < argc; i++ ) {
  4.         printf( "Parámetro %d: %sn", i, argv[ i ] );
  5.     }
  6. }
  7.  
Ejemplos de ejecución desde línea de comandos:

$ parametros.exe
Parámetro 0: ./parametros

$ parametros.exe parametro1 parametro2 parametro3 parametro4
Parámetro 0: ./parametros
Parámetro 1: parametro1
Parámetro 2: parametro2
Parámetro 3: parametro3
Parámetro 4: parametro4

115
C/C++ / Re: Generar Subconjuntos de tamaño m de un conjutno
« en: Jueves 7 de Mayo de 2009, 06:21 »
Cita de: "protoculo"
Ésto es una respuesta?

papel y lápiz?

Con papel y lápiz se hace esto:
----------------------
N, M
[subconjuntos]

4, 3
[123], [134], [234]

9, 6
[123456], [134567], [145678], [156789], [234567], [245678], [256789], [345678], [356789], [456789]
-----------------------
Visualizando no me parece que sea muy difícil hallar el patrón (perdone ud. si me equivoco), con lo que se puede pasar a expresarlo mediante un algoritmo y crear el programa.

La idea era ayudar a encontrar la solución, no entregarla, disculpas y suerte con tu tarea.

116
C/C++ / Re: compilador c++
« en: Miércoles 6 de Mayo de 2009, 19:10 »
Cita de: "Eternal Idol"
Borland y su software son una basura en plena decadencia, ese producto ya no se comercializa mas  :bad:
Tanto como basura no son, pero si tienes VC++ Express gratis, ¿para qué molestarse?

117
C/C++ / Re: Generar Subconjuntos de tamaño m de un conjutno
« en: Miércoles 6 de Mayo de 2009, 07:00 »
Cita de: "protoculo"
Cita de: "Geo"
Lo puedes hacer con listas, con un vector simple, como desees.

Lo más sencillo: tomas el valor inicial y lo emparejas con todos los que le siguen, ahora tomas el segundo valor y lo emparejas con los subsecuentes, tomas el tercero y lo emparejas...

Creo que no es tan sencillo como lo planteas...

no podemos emparejar el inicial con los siguientes, puesto que en el caso que expongo:

1,2,3,4

si se hacen de tres en tres, como se hace?

1,2,3 ... 1,2,4

no creo que sea tan sencillo... o estoy muy liado.
¿De tres en tres? En tu enunciado no aparece esa posibilidad.

Cita de: "protoculo"
Si alguien puede postear la estructura solo para encontrar todas las combinaciones como pongo en el primer post, teniendo en cuenta que debe ser subconjuntos de m elementos de un conjunto de n.
Podrías tomar papel, lápiz (y goma) y hacerlo.
4,3
123, 234

9,6
123456, 234567, 345678, 456789

118
C/C++ / Re: compilador c++
« en: Miércoles 6 de Mayo de 2009, 06:21 »
La versión Express de Visual C++ 2008 puede descargarse de manera gratuita de aquí: http://www.microsoft.com/express/vc/
A diferencia de la versión 2005, esta ya incluye parte de la API que te permite crear aplicaciones Win32 (no solamente .NET).

Otra alternativa gratuita (y de código abierto) es MinGW, el cual es solo compilador, si buscas un IDE para MinGW prueba Dev-C++.

:).

119
C/C++ / Re: tres en linea sin arreglos ni matrices
« en: Martes 5 de Mayo de 2009, 19:42 »
O usa nueve variables diferentes, una por casilla :).

120
C/C++ / Re: Dibujar a un PNG/BMP o Tratar píxel a píxel
« en: Lunes 4 de Mayo de 2009, 18:38 »
Cita de: "AlbertP"
Iep!

Mil gracias por los links, me había estado mirando las png writer pero me parecían demasiado complejas para lo que realmente necesitaba. Parece que las easyBMP me serán más que suficientes para lo que necesito  :lol:

PD: había buscado en google pero tuve un exceso de información y no era capaz de discernir que era útil de lo que no, por eso he preguntado. a ver si alguien con alguna experiencia previa me podía echar un mano!
Y si por alguna razón necesitaras hacerlo "a mano", en el foro de retos hubo uno que se trató de cargar una imagen BMP de 24 bits y mostrarla en pantalla, los que participaron crearon código en varios lenguajes, incluido C/C++ con diferentes bibliotecas :).

121
Matlab / Re: Función Pause
« en: Viernes 1 de Mayo de 2009, 23:11 »
Parece más bien una variación de comportamiento entre versiones, ¿por qué debes pasar a una versión anterior?

122
C/C++ / Re: Generar Subconjuntos de tamaño m de un conjutno
« en: Viernes 1 de Mayo de 2009, 21:06 »
Lo puedes hacer con listas, con un vector simple, como desees.

Lo más sencillo: tomas el valor inicial y lo emparejas con todos los que le siguen, ahora tomas el segundo valor y lo emparejas con los subsecuentes, tomas el tercero y lo emparejas...

123
C/C++ / Re: Abrir página web
« en: Viernes 24 de Abril de 2009, 22:53 »
Usa ShellExecute de esta forma:

Código: C++
  1. ShellExecute( NULL, "open", "http://foros.solocodigo.com", NULL, NULL, SW_SHOW );
  2.  

124
Matlab / Re: mxFree
« en: Viernes 24 de Abril de 2009, 21:36 »
¿El error aparece siempre, tanto cuando new_pr es NULL como cuando tiene asignado algún valor? ¿Realmente debes usar mxFree, no basta con usar TerrStation?

¿No puedes usar mxSetPr en lugar de SetData? En la ayuda se menciona esto:
Citar
mxSetData is similar to mxSetPr, except that in C, its second argument is a void *. Use this on numeric arrays with contents other than double.

125
Matlab / Re: Visión Artificial: Detector de atascos ¿cómo?
« en: Miércoles 22 de Abril de 2009, 07:12 »
Empezando por lo más sencillo: un detector de movimiento por diferencia de imágenes.

Teniendo una imagen de la calzada, restas la imagen original con las capturas para saber cuándo ha habido movimiento (indicando que llegó un auto), cuando así ha ocurrido, guardas la imagen en donde se detectó movimiento y se compara con las siguiente para saber si se mantiene durante cierto tiempo (indicando que el auto se ha quedado quieto).

Por supuesto, esto es apenas para empezar :), suerte.

Páginas: 1 ... 3 4 [5] 6 7 ... 41