• Miércoles 20 de Noviembre de 2024, 14:30

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

Páginas: 1 ... 3 4 [5] 6 7 ... 100
101
Java / Re: programa con un menu que utilice todos los datos.
« en: Viernes 25 de Marzo de 2011, 00:42 »
Pon un punto de interrupción en la línea

Código: Java
  1. cad=JOptionPane.showInputDialog("ingresar valor a:");
  2.  
y ve viendo la ejecución paso a paso, a ver qué pasa con las variables.

102
Java / Re: programa con un menu que utilice todos los datos.
« en: Viernes 25 de Marzo de 2011, 00:14 »
Cita de: "alejandra rodriguez"
pero la opcion 2 no me la quiere ejecutar.
¿Qué datos ingresas? ¿Dónde se queda parado? ¿Te da algún error? Detalla, hombre  :P

103
C/C++ / Re: Funciones
« en: Viernes 25 de Marzo de 2011, 00:12 »
Cita de: "Checho360"
Te comento; lo de la cadena de palabras había probao con char[81] y tambien funciona, ahora pruebo con lo que pones de cadenas.
Ok, pero en C++ se usa string, no char[] o char* (que son más propios de C).

Cita de: "Checho360"
pero lo que yo pregunto, que no se como hacer, es pedirle la funcion al usuario, es decir, que este meta exp(x), cos(x^2)... con una variable simbolica (para el tema de programar integrales definidas y esas cosas). Una solucion supongo que podría ser hacer un menu con una serie de funciones y que el usuario escoja una del menu, pero mi idea era que el usuario escogiera cualquiera de las que estan en la libreria.
Perdona pero sigo siendo incapaz de encontrar esta pregunta en tu anterior post. Si lo hubieras explicado así desde un principio no habría estos malentendidos  :P  ^_^

Eso se llama en programación "evaluar" una expresión. En C++ no se puede hacer de forma sencilla. No es un lenguaje hecho para eso. Otros lenguajes como Perl o LISP (supongo que también Matlab) son capaces de hacer eso que dices. Te dejo un ejemplo en Perl:

Código: Perl
  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4. use Math::Trig;
  5.  
  6. print("Ingresa una expresion: ");
  7. my $expresion = <>;
  8. print(eval $expresion);
  9. print ("n");
  10.  
Sólo válido para funciones trigonométricas.

104
Java / Re: programa con un menu que utilice todos los datos.
« en: Viernes 25 de Marzo de 2011, 00:01 »
Tal y como lo tienes debería reconocerte los números ingresados. ¿Podrías especificar cuál es tu problema exactamente, es decir dónde te falla exactamente?

105
C/C++ / Re: Confundido con código en C
« en: Jueves 24 de Marzo de 2011, 23:43 »
Leber, aquí no se hace la tarea  :no:

106
C/C++ / Re: Funciones
« en: Jueves 24 de Marzo de 2011, 23:41 »
Todas esas preguntas las resuelves leyendo un buen libro/tutorial sobre C++, que es donde debes empezar. Igualmente te explico un poco por encima tus dudas:

Para usar funciones, primero debes declararlas e implementarlas o indicar una librería que contenga funciones. Para el caso de funciones matemáticas, tienes cmath. Las usas tal que:

Código: C++
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. int main(void)
  7. {
  8.     cout << cos(5) << endl;
  9.     cout << exp(2) << endl;
  10.     return 0;
  11. }
  12.  
Para una referencia sobre cmath: http://www.cplusplus.com/reference/clibrary/cmath/

En cuanto a tu segunda duda, estás definiendo metodo como char, es decir, un sólo carácter, es lógico que sólo lea un carácter. Para una palabra o lo que en programación se llama una cadena de caracteres, usa la clase string. Por ejemplo:

Código: C++
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. int main(void)
  7. {
  8.     string metodo;
  9.  
  10.     // Así acepta espacios
  11.     cout << "Inserta una frase de varias palabras > ";
  12.     getline(cin, metodo);
  13.     cout << "La frase ha sido: " << metodo << endl;
  14.  
  15.     // Así no acepta espacios
  16.     cout << "Inserta otra frase y veras que un espacio es final de entrada > ";
  17.     cin >> metodo;
  18.     cout << "La frase ha sido: " << metodo << endl;
  19.  
  20.     return 0;
  21. }
  22.  
Como te digo todo esto viene explicado de lujo en libros (tanto electrónicos como de papel).

Saludos  :hola:

107
C/C++ / Re: Buscar string en un archivo, y obtener datos
« en: Jueves 24 de Marzo de 2011, 16:34 »
Cita de: "Leber"
Entonces recibes a partir de 0x7fffd1573a23 hasta final de linea.
Bueno, para seguir hablando de posiciones de memoria, que muestre los caracteres desde 0x7fffd1573a23 hasta que encuentre un byte (o carácter) nulo.

No hay de qué, estamos aquí para compartir lo que sabemos, así que ya sabes, ahora te toca a ti compartir  ;)  :comp:

108
C/C++ / Re: Buscar string en un archivo, y obtener datos
« en: Jueves 24 de Marzo de 2011, 14:21 »
Cita de: "Leber"
Aunque basta con ponert unsigned long int
Ah, ok. En 32 bits y según mi experiencia sizeof(long) = sizeof(int)
Código: C
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5.     printf("%d %dn", sizeof(int), sizeof(long));
  6.     return 0;
  7. }
  8.  
de ahí que dijera long long  ^_^

Cita de: "Leber"
Estas casteando la direccion de memoria, y le sumas 3, que es la longitud de la cadena.
Entonces, si la direccion de ptr empieza en "0x7fffd1573a20" le sumas 3 quedando: "0x7fffd1573a23"
Es correcto, o me estoy liando?
Exacto. Hago el cast para que el compilador entienda que no me he equivocado, que efectivamente quiero que a un puntero le sume un entero, pero que luego lo siga considerando un puntero. Y le sumo la longitud de la cadena para posicionarme al final de la cadena que se ha encontrado con strstr().

Ojo y repito que esto sólo funciona si quiero el resto de la cadena (desde la posición X hasta final de cadena). De otro modo que no sea hasta el final de la cadena habría que hacer un memcpy/strncpy en un buffer y añadirle el terminador de cadena antes de poder mostrarlo con printf (o cualquier otra función de manejo de cadenas).

109
C/C++ / Re: Buscar string en un archivo, y obtener datos
« en: Jueves 24 de Marzo de 2011, 13:36 »
Bueno, esto lo malo que tiene C, que es poco portable si te pones a hacer malabares con punteros y casts.

El problema radica efectivamente como dices en el tamaño del puntero y en el uso de unsigned int, que si no recuerdo mal tiene el mismo tamaño en 32 que en 64 bits, de ahí el warning del compilador de que se están sumando dos tipos de tamaños diferentes (warning: cast from pointer to integer of different size) y por tanto pierdes posiblemente medio puntero, con lo que la dirección a la que apunta ya no tiene nada que ver, de ahí la violación de segmento.

Creo que si pones unsigned long long te debería funcionar sin problemas (no puedo probarlo porque no tengo máquina de 64 bits).

Saludos

110
C/C++ / Re: Buscar string en un archivo, y obtener datos
« en: Jueves 24 de Marzo de 2011, 12:51 »
Perdona, lo había puesto sin probar.

Weno, acabo de ejecutar ese mismo programa y me funciona correctamente:

Código: Text
  1. root@bt:~# cat prueba.c
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <stdlib.h>
  5.  
  6. int main(void)
  7. {
  8.     char line[] = "Hola que tal estas";
  9.     char *ptr;
  10.  
  11.             ptr = strstr (line, "que");
  12.             if(ptr != NULL) {
  13.                 printf("%sn", (char*) ((unsigned int)ptr + strlen("que")) );
  14.             }
  15.             return 0;
  16. }
  17. root@bt:~# gcc -o prueba prueba.c
  18. root@bt:~# ./prueba
  19.  tal estas
  20. root@bt:~#
  21.  

111
Sobre los Foros de SoloCodigo / Feed RSS
« en: Jueves 24 de Marzo de 2011, 11:51 »
Soy incapaz de añadir SoloCodigo a mis feeds RSS... ¿Alguien sabe cómo hacerlo o simplemente no se puede? Si es lo segundo habría que implementarlo, de hecho phpBB debería traerlo por defecto.

112
C/C++ / Re: Buscar string en un archivo, y obtener datos
« en: Jueves 24 de Marzo de 2011, 09:03 »
Cita de: "Amilius"
Y para los nulos prefiero usar el 0, ¿Para que escribir 4 letras y ocultar lo que en realidad es un puntero nulo?
Porque es menos portable. Estás asumiendo que el puntero nulo tiene el valor 0, algo que en otras arquitecturas distintas de Intel no tiene por qué ser así. Por algo existe la constante NULL, que es dependiente de la arquitectura.

Cita de: "Amilius"
Tampoco me hago problema con un if en una sóla linea siempre y cuando sea más rápido de leer.
A mí me parece menos legible por el simple hecho de tener distintas estructuras de ifs en todo el programa. Prefiero poner todos los ifs iguales, no veo porqué hay que poner unos ifs de una forma y otros de otra, no ayuda a la legibilidad en mi opinión. Pero vamos, es cuestión de formas y gustos.

Cita de: "haddad"
printf("%sn", (char*)((unsigned int)ptr + strlen("Ki")));
eso es la solucion a?
Es parecido a

Código: C
  1. printf("%c%c%c%c%cn", cadena[ptr-cadena+6], cadena[ptr-cadena+7], cadena[ptr-cadena+8], cadena[ptr-cadena+9], cadena[ptr-cadena+10]);
  2.  
pero bien hecho  :P  ^_^

113
Power Builder / Re: obtener tarjeta de Red y MAC
« en: Miércoles 23 de Marzo de 2011, 19:14 »
Perfecto, no olvides mirar cómo lo hacen en la PBL  ;)

De nada y a disfrutar programando  :D

114
Robótica / Re: Busco programador para proyecto (flash y servomotores)
« en: Miércoles 23 de Marzo de 2011, 16:17 »
Tu idea es muy buena, y realmente no es muy complicada de hacer. Pero te aconsejo que pienses más en HTML5 que en Flash, y no postees tu correo si no quieres entrar a formar parte de todas las listas de spam del universo.

Saludos  :hola:

115
C/C++ / Re: Buscar string en un archivo, y obtener datos
« en: Miércoles 23 de Marzo de 2011, 11:39 »
Un poco no, es MUY chapuzas. ¿Y qué pasa si la línea tiene más de 5 caracteres después del marcador? ¿Y por qué empiezas en +6?

De todas formas, si lo que quieres es mostrar el resto de la cadena, te vale con

Código: C
  1. if (ptr != NULL)
  2. {
  3.     printf("%sn", (char*)((unsigned int)ptr + strlen("Ki")));
  4. }
  5.  
- No pongas las condiciones del if seguidas, es poco legible, y usa siempre { }, te ahorrarás futuros quebraderos de cabeza.
- Usa NULL, no 0 (tampoco hagas !ptr)
- No uses literales en el código, usa constantes (#define)

Además ese código es muy poco flexible. Intenta programar de manera que si te toca modificar el código (y créeme que lo vas a tener que modificar) no tengas que mover cielo y tierra.

116
Otros Sistemas Operativos / Re: ¿FreeBSD en Español?...
« en: Miércoles 23 de Marzo de 2011, 09:24 »
¿Qué servidor gráfico usas? ¿Xorg? ¿Has comprobado los logs?

117
C/C++ / Re: Medir el rendimiento de una aplicacion C/S
« en: Martes 22 de Marzo de 2011, 17:50 »
Un placer, que aproveche  ;)  :good:

118
C/C++ / Re: Buscar string en un archivo, y obtener datos
« en: Martes 22 de Marzo de 2011, 17:47 »
strcpy te sirve perfectamente, aunque yo siempre uso strncpy para evitar infernales bugs de desbordamientos de buffer (que además pueden comprometer la seguridad de tu programa).

Código: C
  1. unsigned int pos; // Suponemos que aquí tienes guardada la posición en que se encuentra la subcadena
  2. char* buscar; // Aquí la subcadena que buscas
  3. char* cadena; // Aquí la cadena completa
  4. char* resto; // Aquí es donde quieres almacenar el resto de la cadena
  5. // Recuerda reservar la memoria y liberarla para todos estos punteros ;)
  6. [...]
  7. char* aux = (char*) ((unsigned int)cadena + pos + strlen(buscar));
  8. strncpy(resto, aux, <tamaño de "resto">);
  9.  
Ojo que tienes que reservar suficiente memoria para que en resto pueda caber todo lo que venga después de la subcadena.

119
C/C++ / Re: Medir el rendimiento de una aplicacion C/S
« en: Martes 22 de Marzo de 2011, 16:30 »
NetHogs dicen que es bueno, personalmente no lo he probado.

Weno, suerte con ello, ya nos cuentas, aunque definitivamente esto no tiene nada que ver con C/C++  :P  :lol:

120
C/C++ / Re: Buscar string en un archivo, y obtener datos
« en: Martes 22 de Marzo de 2011, 16:13 »
Mírate la documentación de strstr(), haz el favor  ^_^

121
C/C++ / Re: Medir el rendimiento de una aplicacion C/S
« en: Martes 22 de Marzo de 2011, 16:11 »
Podrías currarte un envoltorio (wrapper) que lance la aplicación y la monitorice.

También tienes herramientas de monitoreo como te he comentado anteriormente, tales que nethogs, iperf, ntop... Tienes más información aquí.

PD: qué raro correr una aplicación propietaria sobre Debian  :P

122
C/C++ / Re: Medir el rendimiento de una aplicacion C/S
« en: Martes 22 de Marzo de 2011, 13:55 »
Puedes insertar código en tu aplicación que te haga dichas mediciones.

También las herramientas del SO por defecto (aka monitores del sistema) deberían de darte dicha información.

123
SQL Server / Re: Problema con COUNT
« en: Martes 22 de Marzo de 2011, 13:53 »
Raggart, bienvenido a SóloCódigo  ^_^

Por favor antes de responder algún tema fíjate bien en la fecha de la última entrada. No sirve de nada responder temas de más de 2-3 meses de antigüedad, dudo que el OP lo lea  :P  ;)

Saludos  :hola:

124
C/C++ / Re: Buscar string en un archivo, y obtener datos
« en: Martes 22 de Marzo de 2011, 08:08 »
Lees el fichero línea por línea y usas strstr() para buscar una subcadena.

Saludos.

125
Power Builder / Re: obtener tarjeta de Red y MAC
« en: Lunes 21 de Marzo de 2011, 19:48 »
¿Realmente necesitas escribirlo en un fichero? ¿No puedes simplemente capturar la salida? Me parece un rodeo innecesario.

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