• Viernes 19 de Abril de 2024, 20:45

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

Páginas: [1] 2 3 ... 10
1
C/C++ / Re: Fichero BMP
« en: Sábado 6 de Junio de 2009, 15:38 »
fprintf(fich,"%u",vble_unsigned);

2
C/C++ / Re: Fichero BMP
« en: Martes 2 de Junio de 2009, 21:18 »
prueba a usar el fscanf() correctamente según el tipo de datos que quieras leer:
un char: fscanf(fich,"%c",&tipo_char);
un short/int: fscanf(fich,"%d",&tipo_short_int);
un float: fscanf(fich,"%f",&tipo_float);

vamos que uses el tipo adecuado a la variable que quieres sacar...

3
C/C++ / Re: 4yuda codigo de recursividad
« en: Jueves 17 de Julio de 2008, 09:03 »
Aqui no se hacen tareas, se resuelven dudas.

Un saludo.
(maldita sea, me he quedado sin mi emoticono de que la fuerza te acompañe...)
 :beer: (este también está bien).

4
C/C++ / Re: Suma De Fracciones
« en: Miércoles 18 de Junio de 2008, 08:49 »
Hola a todos,

Hay una manera un poco complicada de hacer este tipo de cosas...  Es sólo una idea.
Lo que se puede hacer es que el usuario se haga su propio programa en C sin darse cuenta, me explico:
Le pides que ingrese las operaciones con formato C, algo así:
((1/2)+(5/2)-(3/12)))*(4/3)
Recoges esta expresión en forma de string, y creas un fichero .c con el siguiente formato mediante las funciones de manejo de ficheros (fopen, fclose, fprintf...):
Código: Text
  1.  
  2. #include <stdio.h>
  3. void main()
  4. {
  5. double res;
  6. res="string que has recogido por pantalla";
  7. printf("%lf",res);
  8. fflush(stdin);
  9. getch();
  10. }
  11.  
  12.  
Guardas este fichero en disco, invocas a tu compilador pasándole este fichero .C y una vez compilado, ejecutas el .exe que el compilador te habrá creado.  Todo esto lo puedes hacer con la función system().

De esta manera dejas el programa abierto a cualquier tipo de operaciones...

Un poco complicado, ya sé, pero bueno, es otra idea.

Un saludo,
 :lightsabre:

5
C/C++ / Re: Hacer Una Matriz!!!
« en: Martes 17 de Junio de 2008, 09:06 »
Hola,
bueno, pues para poder hacerlo en windows con la consola (típico programa con interfaz de comandos), debes usar la API y las funciones para manejar la consola de comandos en google hay bastante información.
Puedes usar alguna librería gráfica para hacer lo que quieres, seguramente que con las librerías orientadas a desarrollo de juegos habrá herramientas útiles más sencillas (por desgracia no puedo ayudarte en este campo).
Para linux, prueba con las funciones propias de linux (tampoco puedo ayudarte con este tema).

Siento no ser de más ayuda,
Un saludo.
 :lightsabre:

6
C/C++ / Re: Hacer Una Matriz!!!
« en: Viernes 13 de Junio de 2008, 11:58 »
Hola,
no conozco el conTEXT, pero parece un editor de texto que permite editar en formato tabulado y con colorines como los compiladores, pero a la hora de compilar, ¿con qué compilador lo haces? el conTEXT es un compilador?

Siento no poder ser de más ayuda, si usaras un compilador comercial podría darte más ayuda...

Un saludo,
 :lightsabre:

7
C/C++ / Re: Listas Enlazadas
« en: Viernes 13 de Junio de 2008, 11:49 »
Hola, no he repasado el código entero pero con una de las funciones me vale...

Código: Text
  1. struct lista * crearLista(int numero, struct lista *primero){
  2.   int unidad;
  3.   unidad = numero & 10;
  4.   struct lista *aLista;//espero que estés programando en C++... Has declarado las variables después de iniciar el código
  5.   struct lista *bLista;
  6.   aLista=(struct lista *)malloc(sizeof(struct lista));
  7.   bLista=(struct lista *)malloc(sizeof(struct lista));
  8.   aLista -> digito = unidad;
  9.   aLista -> primero = NULL;
  10.   aLista -> anterior = NULL;
  11.   aLista -> siguiente = NULL;
  12.  
  13.   printf("bien");
  14.  
  15.   if(bLista->primero==NULL){  //no se va a ejecutar
  16.     if(unidad < aLista->digito){
  17.       bLista -> digito = unidad;
  18.       bLista -> primero = NULL;
  19.       aLista -> anterior = bLista;
  20.       bLista -> siguiente = aLista;
  21.       crearLista(numero, bLista);        
  22.      
  23.     }
  24.     else if(unidad > aLista -> digito){
  25.       bLista -> digito = unidad;
  26.       bLista -> primero = NULL;
  27.       bLista -> anterior = aLista;
  28.       aLista -> siguiente = bLista;
  29.       crearLista(numero, bLista);
  30.     }
  31.   crearNodo(numero,primero);    
  32.   }
  33. }
  34.  
  35.  
cuando pongo que no se va a ejecutar lo digo porque bLista está recién creado y apunta a una posición que aún no ha sido incializada con ningún valor, contendrá por tanto basura.

A todos los que empezais os recomiendo que useis el debugger de vuestro compilador para ejecutar vuestros programas paso a paso y encontreis los fallos viendo qué valores toman vuestras variables en cada paso.
Revisa de nuevo todo con más atención.

Un saludo,
 :lightsabre:

8
C/C++ / Re: Hacer Una Matriz!!!
« en: Viernes 13 de Junio de 2008, 10:47 »
Hola,
parece ser que usas borland, lo digo por el goto(), que supongo que te refieres al gotoxy() que permite ir a una posición concreta en pantalla...
Pues nada, con la famosa librería conio.h o graphics.h u otra (que no es estandar de C y que es propiedad de Borland y el día que dejes de usar ese compilador tendrás que dejarla atrás) creo que había alguna función del tipo set background color y set font color.

Si usas otro compilador, sorry, dinos cuál usas y seguro que se encontrará alguna solución.

Un saludo.
 :lightsabre:

9
C/C++ / Re: Que Esta Mal En Mi Codigo?
« en: Miércoles 4 de Junio de 2008, 10:24 »
Hola franz.,
no te tomes a mal lo que se te ha dicho, esta bien que vayas probando lo que vas aprendiendo pero los errores de tu primer programa son de bulto:

El formato de un programa en C suele ser así:
Código: Text
  1.  
  2. #declaraciones de librerías (#include...)
  3. #declaraciones de preprocesador  (#define, #if...)
  4.  
  5. variables globales (no usarlas a menos que sea necesario y en pocos casos son necesarias, ahora mismo se me ocurren hilos, y tú estás muy lejos de los hilos)
  6.  
  7. main
  8. {
  9. tu programa con todo lo que quieras (printf(), scanf()...)
  10. }fin de programa
  11.  
  12.  
Esta es una estructura básica, que viene explicada en el manual que estás leyendo (yo personalmente te recomendaría otro, pero bueno).  En tu código pusiste:
- los #define después del main() -> MAL
- Un printf() antes de abrir "{" tras el main() -> MAL

Vamos que una cosa es tener problemas con el uso de una función específica o un algoritmo complejo y otra muy distinta es conocer la estructura básica de un programa en C...

Cuando postees al menos asegúrate de que tu programa tiene una estructura correcta, aunque el código sea de principiante.  
Aún así te recuerdo que tu duda fué contestada, La próxima vez empieza como lo hicieron los creadores del lenguaje C Kernigan y Ritchie con un programa "Hola mundo", programa inicial que por otra parte, todo el mundo copia en sus manuales...  Y ya que estamos, te recomiendo el libro de estos dos señores que aunque no sea el mejor para aprender, si que está bien tenerlo como referencia.

Un saludo,
 :lightsabre:

10
C/C++ / Re: Que Esta Mal En Mi Codigo?
« en: Lunes 2 de Junio de 2008, 10:09 »
Hola,
Código: Text
  1. #include <stdio.h>
  2. #define numero1 10
  3. #define numero2 15
  4. int main()
  5. {
  6.        printf("*comprueba el numero*/n");
  7.        if(numero1 > numero2)
  8.                printf("el numero 1 es el mayor/n");
  9.        else
  10.                printf("el numero 2 es el mayor");
  11.  
  12. return 0;
  13.  
  14. }
  15.  
Te aconsejo que leas un manual antes de empezar a programar de cualquier forma...  Aqui se resuelven dudas, pero cuando se ve que se ha realizado un esfuerzo antes.  Programar no es como aprender a usar el word, hace falta unos mínimos, que se adquieren leyendo.
Un saludo,
 :lightsabre:

11
Dudas informáticas / Re: Wireless A Otra Maquina
« en: Viernes 23 de Mayo de 2008, 10:28 »
Hola,
no sé si lo he entendido bien, pero puedes usar la máquina que se conecta por wireless a internet como punto para compartir el acceso a internet.  En windows es bastante fácil, lo único que tienes que hacer es activar la pestaña de uso compartido de internet.
Mediante el router conectas ambos pcs y al segundo pc, le pones como la puerta de enlace al primer ordenador...  Creo que así conseguirías lo que quieres.

Un saludo,
 :lightsabre:

12
C/C++ / Re: Problema Ordenacion Ficheros
« en: Jueves 22 de Mayo de 2008, 10:13 »
Hola,
para conseguir que el DNI ocupe 8 caracteres recógelo como un char dni [8], luego si quieres puedes convertirlo a int con un atoi()...

Para ordenar los registros por ventas no tienes más remedio que recorrer todos los registros y quedarte con aquellos que más importe tengan...  En el código que has dejado sólo lees los 10 primeros registros creo, pero no tienen por qué ser los 10 con más ventas, a no ser que al guardar los registros lo hagas con una ordenación por ventas...

Creo que en este caso te puede ayudar bastante el uso de listas/pilas/colas, crear una pila de 10 estructuras y guardar en ella los registros ordenados por ventas, vas leyendo todas las estructuras y aquellas que tienen mayor importe las introduces en tu pila.  Con este método es fácil insertar estructuras en medio, eliminar estructuras que al principio podían estar dentro de las 10 primeras pero que luego han caído... tendrás que redefinir el programa de ordenación si quieres usar este método.

Un saludo,
 :lightsabre:

13
C/C++ / Re: Uso De Delay
« en: Jueves 22 de Mayo de 2008, 09:57 »
Citar
Probaste la funcion "sleep()" ?
Está claro que no.
Utz si me haces una espera así y soy tu profesor te pongo el cero más grande que nunca hayas visto...  Sigue mi consejo, no detengas la ejecución de tus programas con ese método.

Un programa que está en constante ejecución y que no usa eventos para detenerse es un programa que necesita pausas... Incluso una pausa de Sleep(0) es bien recibida por el SO para deshaogar un poco la gestión de procesos, pues aunque no lo parezca un Sleep(0) saca a tu proceso de la CPU para permitir que otro de igual prioridad entre...  Además el SO te lo va a agradecer favoreciendo a tu proceso pues es un programa que no acapara la CPU y Windows te va a dar un empujoncito.  :D
En fin, lo único que quiero que tengas claro es que un Sleep() es mucho más que una simple espera...

Un saludo,
 :lightsabre:

14
C/C++ / Re: Uso De Delay
« en: Martes 20 de Mayo de 2008, 09:37 »
Hola,
¿no existe la función Sleep?  la verdad es que no tengo ni idea si existirá o no (programo con Visual Studio bajo windows), pero hay una gran diferencia entre un sleep o un delay y una espera por código como explica el amigo Riskz.
Me explico, un proceso que retrasa su ejecución mediante una espera activa tipo sleep, es un proceso que no consume recursos, es un proceso que es sacado literalmente de la cpu a la espera de que pase ese tiempo para volverlo a meter en la CPU... Una espera tipo bucle, es un proceso mal diseñado, que consume recursos continuamente sin necesidad alguna... Supongamos que ese proceso se ejecuta con prioridad 32 (máxima) bajo windows y que tienes otro proceso con similar código de espera también ejecutándose en paralelo y con prioridad 32 (o que ese mismo proceso tiene dos hilos que heredan la prioridad 32 y haces la espera por código), en ese momento dejarías tu sistema totalmente colgado a la espera de que ambos terminen su espera....

En fin, te recomiendo que sigas buscando...
Un saludo,
 :lightsabre:

15
C/C++ / Re: Lectura De Estructuras De Archivo Binario
« en: Lunes 19 de Mayo de 2008, 18:11 »
de nada, me alegro que hayas llegado a la solución  :comp:

Un saludo,
 :lightsabre:

16
C/C++ / Re: Lectura De Estructuras De Archivo Binario
« en: Lunes 19 de Mayo de 2008, 16:21 »
Hola,
si tienes claro los tipos de estructuras con los que cuentas (siempre vas a escribir tres tipos de estructuras distintas, por ejemplo) puedes hacer una reserva dinámica de memoria siguiendo el método que antes exponías...

Por ejemplo...
en la cabezera dice que tienes 10 estructuras de tipo 1, 4 de tipo 2, 3 de tipo 3 y 9 de tipo 2...

Pues nada, reservas memoria con un malloc y creas espacio para contener una estructura de tipo 1, lees las 10 estructuras una tras otra, luego haces un realloc o un free y un nuevo malloc con un espacio para estructuras de tipo 2, lees las 4 estructuras y de nuevo haces una nueva reserva... Así sucesivamente.

El problema que tienes es que tu apuntador a void, simplemente puede apuntar a cualquier sitio de memoria, pero no has reservado memoria para contener nada, por tanto fread no te puede devolver la estructura porque no has definido espacio para contenerla, dado que a priori no conoces cuánto va a ocupar debes usar memoria dinámica.

Un saludo,
 :lightsabre:

17
C/C++ / Re: Conversion De Hexadecimal A Decimal
« en: Lunes 19 de Mayo de 2008, 15:47 »
Hola,
de nada, pero veo aún un par de cositas que podrías mejorar...

1- No tienes en cuenta el 0, ¿que pasa si te introducen un 20h?

2- Sólo funciona con valores hexadecimales de dos cifras, el mismo código valdría si en vez de usar un array de dos posiciones usas uno de X posiciones... Podrías representar número más altos.

Un saludo,
 :lightsabre:

18
C/C++ / Re: Conversion De Hexadecimal A Decimal
« en: Lunes 19 de Mayo de 2008, 11:02 »
Hola,
Lo primero,
también tendrás que redefinir num[1] para que tenga el mismo tamaño que cad[].

Segundo,
cad[] es de tipo char, por tanto los valores dentro van codificados en ascii, no vas a encontrar un 0 o un 1, sino el valor correspondiente en ascii...
if (cad=='0')
...

Aunque para hacerlo así, usa mejor un switch:
Código: Text
  1. switch(cad[i])
  2. {
  3. case '0':
  4.     ...
  5.    break;
  6. case '1':
  7.    ...
  8.    break;
  9. ...
  10. case 'a':
  11.    ...
  12.    break;
  13. ...
  14. case 'f':
  15.    ...
  16.    break;
  17.  
  18.  
Tercero,
¿no sería más fácil usar un scanf con %x?, en C se trabaja en hexadecimal igual que en decimal, recibe el número como un hexadecimal y printealo como un decimal....
Si no puedes hacer esto revisa los dos primeros puntos.

Un saludo,
 :lightsabre:

19
Dudas informáticas / Re: Duda Sobre Wireless
« en: Jueves 15 de Mayo de 2008, 16:30 »
si pones otra antena también vas a recibir más ruido.... sobre todo si es externa a la tarjeta wireless...  Aunque también ganarás potencia...
Es normal, por otra parte, que cuando navegas y descargas la velocidad caiga... no es que sea un ancho de banda muy grande 55kbps (yo tengo 6Mbps) además tienes que contar con lo que el emisor (la otra persona) esté usando de ese ancho...  No creo que te merezca la pena gastarte el dinero en antenas externas pues la velocidad no es muy alta y en mi opinion no vas a ganar gran cosa.

Un saludo.
 :lightsabre:

20
C/C++ / Re: Problemas Con Variables
« en: Miércoles 14 de Mayo de 2008, 13:24 »
no te golpees la cabeza contra las paredes... Este fallo es uno de los más dificiles de ver cuando estás ofuscado... si hubieras tenido suerte, en vez de escribir sobre tu mapa de memoria (sobreescribiendo tus propias variables) hubieras escrito en una zona que no te corresponde y el SO te hubiera detenido de inmediato con una interrupción (el famoso "unhandled exception" de windows que en linux no sé muy bien como será)  Así te das cuenta rápido de que alguna variable se te ha ido... Pero cuando te pasa esto, es dificil darte cuenta, entre otras cosas porque siempre crees que el problema está en otra parte...

Un saludo y suerte.
 :lightsabre:

21
C/C++ / Re: Problemas Con Variables
« en: Miércoles 14 de Mayo de 2008, 13:12 »
vale,
tenia razón
estas escribiendo en una zona de memoria que no te corresponde:
Código: Text
  1. double pos[3];
  2.  
este array tiene 3 posiciones...
Código: Text
  1. pos[1]=x;
  2. pos[2]=y;
  3. pos[3]=z;
  4.  
  5.  
el array empieza en 0 y llega hasta 2, tú te estás saliendo de tu zona de memoria...
solución:
Código: Text
  1. pos[0]=x;
  2. pos[1]=y;
  3. pos[2]=z;
  4.  
  5.  

A ver ahora.
 :lightsabre:

22
Dudas informáticas / Re: Duda Sobre Wireless
« en: Miércoles 14 de Mayo de 2008, 13:09 »
Hola,
te conectas con un laptop (portatil)? has probado a conectarlo a la red eléctrica? mejora cuando te conectas a la red electrica?
A veces el SO, usa el ahorro de energía y reduce el consumo de algunos elementos hardware, el más típico es la tarjeta wireless, si la potencia de la señal es baja y windows reduce el consumo de la tarjeta puede ser que te encuentres con problemas de conexión.
Si tienes un pc de sobremesa, yo he tenido malas experiencias con las tarjetas de red wireless PCI, es muy recomendable leer en foros cuáles son las mejores (el chip es muy importante), he llegado a tener un pc a 3m del router y perder la conexión (claro que la casa estaba al lado de un aeropuerto y eso puede que influyera), si ese es tu caso, mi recomendación es que te conectes por cable...

Citar
Si la señal llegase a mas, la velocidad de navegacion seria mayor o seria siendo la misma?
Pues siempre es mejor que la señal esté plena de potencia, a más potencia más velocidad de conexión, puede ser que cuando mires la velocidad de transmisión ponga 54Mbps pero puede fluctuar, si la potencia es alta, ese valor no fluctúa y queda constante.

Un punto muy importante que la gente suele olvidar es el factor señal/ruido, que indica cuánto ruido es capaz de soportar tu tarjeta sin perder el enlace con el router.  Es posible que tengas problemas por ruido, el microondas suele ser el tumba conexiones wireless, pues usa el mismo espectro de frecuencia libre...

Piensa que si el margen señal/ruido es bajo, los elementos a conectar tienen que incrementar la potencia para vencer ese ruido, pero están limitados en potencia, la potencia de las señales decrece al aumentar la distancia por tanto cuanto más distancia, más perceptible al ruido... más frágil en una palabra.

Un saludo.
 :lightsabre:

23
C/C++ / Re: Problemas Con Variables
« en: Miércoles 14 de Mayo de 2008, 12:33 »
Hola,
Casi con seguridad te digo que tú mismo modificas el valor de la x... en algún punto estás entrando en la dirección de x y estás sobrescribiéndola...  Cómo has creado el array pos?? parece que pos[3] está apuntando a la dirección de x...

si nos das algo más de código compilable (como bien dice Eternal Idolte podremos ayudar...

Un saludo,
 :lightsabre:

24
Visual C++ / Re: Necesito Unas Funciones....
« en: Lunes 12 de Mayo de 2008, 12:48 »
Hola,

Puedes borrar la pantalla usando la siguiente función : system("Cls"), no sé si se puede borrar una única fila en Visual C++ como en borland (me parece que no)...
Si lo que quieres es que lo que escribe el usuario no se vea en pantalla o aparezcan asteriscos (como una contraseña) puedes usar un bucle while y usar la función getch() para evitar que los caracteres se vean printando un asterisco por cada letra introducida:
Código: Text
  1.  
  2. char a,password[128];
  3. int i=0;
  4. while(a!=13)
  5. {
  6.     getch(a);
  7.     if(a!=13)
  8.         password[i]=a;
  9.     else
  10.         password[i]='\0';
  11.     printf("*");
  12.     i++;
  13. }
  14.  

La función Sleep() genera una interrupción del código durante un tiempo prefijado en ms (creo que el funcionamiento es el mismo al de Borland)... Por tanto, si lo que quieres es rellenar una barra tendrás que usar un bucle con el Sleep() dentro e ir pintando la barra ciclo a ciclo:
Código: Text
  1.  
  2. for(i=0;i<100;i++)
  3. {
  4.     ....
  5.     printf("*");
  6.     Sleep(100);
  7. }
  8.  
De esta manera pintaría 100 asteriscos en unos 10 segundos, eso siempre que programes como "Console application", si usas ventanas de windows la cosa cambia a la hora de actualizar elementos de la ventana, habría que usar hilos o algun otro sistema...
Si posteas el código puede que sea más fácil ayudarte.

Un saludo.
 :lightsabre:

25
Visual C++ / Re: Obtener Nombre Y Apellidos Usuario
« en: Lunes 12 de Mayo de 2008, 12:21 »
Hola,
¿Te refieres a el nombre del usuario logeado en windows?
Si es así, puedes usar la función GetUserName().

Un saludo.
 :lightsabre:

Páginas: [1] 2 3 ... 10