• Lunes 29 de Abril de 2024, 01:57

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

Páginas: 1 [2] 3 4
26
C/C++ / Re: la sentencia fwrite
« en: Domingo 3 de Marzo de 2002, 18:34 »
Vamos a ver si esto te aclara las cosas...

Ok, en el caso de fwrite tienes que pasarle

  - El puntero
  - Tamaño (con el sizeof(estructura) sirve:))
  - El numero de bloques que quieres copiar
  - El puntero descriptivo del archivo

Por ejemplo:
fwrite(&cliente, sizeof(registro), 1, fichero);

Donde cliente es la direccion del bloque, sizeof(registro) es el tamaño del bloque, 1 es el numero de bloques que se desea transferir y fichero es el puntero descriptivo del archivo (que apunta, por ejemplo, a "datos.dat")

Luego, para leer los datos es igual.

por ejemplo:
fread(&cliente, sizeof(registro), 1, fichero);

En este caso, cargarias en "cliente" el bloque de datos "1" del archivo "fichero".

Te sacó esto de dudas? espero que si.

Saludos,
  Tenesor

27
C/C++ / Re: flechitas sin mayusculas RETO
« en: Sábado 2 de Marzo de 2002, 10:42 »
ummm, me parece que tu tienes el problema en otra parte del codigo. No hace falta pretar shift para nada. Haz un ejemplo simple con Switch-case y verás como no.


Pero bueno, si no tienes ganas de pensar, aqui va el programita:)

------------------
#include <stdio.h>

main()
{
    char chr;

    printf("Pulsa una flechan");

    do{
    chr=getch();


        switch(chr){
           case 72:
              printf("nArriba");
           case 80:
              printf("nAbajo");
           case 75:
              printf("nIzquierda");
           case 77:
              printf("nDerecha");
        }
    }while(chr!=48);
}
-----------------------

Se me olvidaba! el 48 es el 0 (cero). SI pulsas 0 sale del programa.

Saludos,
  Tenesor



[Modificado el 3/2/02 por tenesor]

28
C/C++ / Re: NCurses
« en: Sábado 2 de Marzo de 2002, 06:37 »
La dirección del manual?

Da igual, ya que ese manual me di cuenta de que es el mismo:( Tenia distinto formato pero, dicen lo mismo y son los mismos autores...


De todas formas, date una vuelta por www.cgrsoftware.com

Saludos,
  Tenesor

29
C/C++ / Re: flechitas sin mayusculas RETO
« en: Sábado 2 de Marzo de 2002, 06:35 »
Hola.

Los codigos ASCII correspondientes a las flechas son:
---------------
ARRIBA:    | 72
---------------
ABAJO:     | 80
---------------
DERECHA:   | 77
---------------
IZQUIERDA: | 75
---------------

Espero que esto te sirva.

Saludos,
 Tenesor

30
C/C++ / Re: Puntero o no?
« en: Sábado 2 de Marzo de 2002, 02:41 »
Ok, esto cambia las cosas... pero no tanto:D

Piensa que la esctructura  

struct personas {
char nombre[30];
char apellido[30];
};


no es mas que eso, una estrucutra compuesta, en este caso, de dos variables, por lo tanto, se puede decir que la estructura es una especie de array (conjunto de variables:)) Por lo tanto, los punteros en este caso tienen la misma ventaja que si fuese un array (o cualquier otra variable), el alojamiento en memoria DINAMICO. Pero tambien tiene un problema, que debes reservarle memoria. Supongo que ya sabras manejar el malloc, pero por si acaso, aqui te pongo un ejemplo.

p_amigos = (struct personas *)malloc( sizeof(struct personas));

Con esto reservas memoria y el puntero p_amigos apunta a esa memoria reservada. Por supuesto, cuando no uses mas esa memoria, debes reservarla con free, en este caso, su uso sería

free(p_amigos);

Todo esto se puede resumir en lo mismo que te dije en el primer mensaje que postee, que el puntero tiene la ventaja de que puedes gestionar la memoria DINAMICAMENTE, no hay mas:)

Saludos,
  Tenesor

31
C/C++ / Re: sockets
« en: Sábado 2 de Marzo de 2002, 00:23 »
Hola Delpa!

Lo siento pero es que me sigue rebontando tu direccion...

Tienes alguna cuenta alternativa o esta mal escrita?

Saludos,
  Tenesor

32
C/C++ / Re: Puntero o no?
« en: Sábado 2 de Marzo de 2002, 00:16 »
Hola!

Yo lo unico que te puedo decir es que uses los punteros cuando debas gestionar la memoria dinamicamente, usas punteros.

Lo de "para escribir valores del teclado hacia estructuras" no te entiendo muy bien lo que quieres decir...

Espero que esto te aclare algo...

Saludos,
  Tenesor

33
C/C++ / Re: NCurses
« en: Sábado 2 de Marzo de 2002, 00:13 »
Hola Setepo, me temo que es el mismo tutorial. Lo he visto en muchisimas paginas, pero es el mismo que hay en lucas.:(

Saludos,
  Tenesor

34
Retos / Re: 28/02/02 - Bajo/Medio - Strings - Comprimiendo lineas :)
« en: Viernes 1 de Marzo de 2002, 02:29 »
Nuevo reto para el ultimo dia de febrero...

Si tenemos:

   char strng[15];
   gets(chr);
   strng = "abcdefghijklmno"


Hacer en UNA SOLA instrucción que se muestre en pantalla los 3 ultimos caracteres de "strng".

y joder, animaros a escribir retos! que esto no esta función como debería ser:(

Saludos,
  Tenesor

35
C/C++ / Re: NCurses
« en: Viernes 1 de Marzo de 2002, 02:13 »
Pues si, eso parece. Entre los programadores que hay en este foro (por lo menos de C/C++) no les va mucho linux que digamos:(

De todas formas creo que tampoco hay mucha gente en este foro que use linux... si no, mira esto:

http://www.solocodigo.com/foros/viewthread.php?tid=207

Fue una peticion que hizo uno para abrir un nuevo foro sobre linux, la consecuencia, solo estamos esa persona y yo.... Si puedes/quieres apoyanos y busca a alguien (aunque no sea programador) que conozcas para que se una:).

Ah! y sin querer he encontrado otro manual de NCurses, esta en http://www.cgrsoftware.com/manuales_dir.htm?c_1. Hay que registrarse primero para poder bajarte algo:(. Espero que este te ayude mas.

Saludos,
 Tenesor

[Modificado el 2/28/02 por tenesor]

36
C/C++ / Re: NCurses
« en: Jueves 28 de Febrero de 2002, 20:26 »
Para controlar las flechas de direccion puedes usar:

KEY_UP
(Flecha Arriba)
KEY_DOWN (Flecha Abajo)
KEY_LEFT (Flecha Izquiera)
KEY_RIGHT (Flecha Derecha)

Esto lo puedes utilizar guardando la tecla pulsada en una variable tipo char(digamos... 'chr') y haciendo la pregunta. Por ejemplo:

if(chr == KEY_UP)
  ("Vamos arriba!n");


El codigo ASCII de cada uno lo desconozco...

En cuanto a manuales, el unico en CASTELLANO solo conozco el de lucas, pero si te defiendes con el ingles, ve a google y pone HOWTO PROGRAMMING NCURSES y te saldrán unas cuantas páginas...;)

Saludos,
  Tenesor

37
C/C++ / Re: necesito informacion sobre las direcciones de la bios
« en: Jueves 28 de Febrero de 2002, 20:02 »
Vaya! no sabia que las direcciones del BIOS sean necesarias para aprender a programar en C:D

De todas formas no se muy bien a que te refieres, pero por lo que estas contando es programacion a bajisimo nivel, jejejejeje. Por lo que veo te tira mas el ensamblador...

Pero bueno, mirate esto:
http://www.geocities.com/eidan.rm/strings.htm a ver si es lo que buscas.

Saludos,
  Tenesor

38
C/C++ / Re: problena con el paso de parametros. HELP!!
« en: Jueves 28 de Febrero de 2002, 19:58 »
Bueno, estas son las diferencias:

Por valor: los cambios realizados dentro de la función en el argumento enviado, no afectaran al valor original de las variables de la llamada. No se pueden enviar por valor arrays.

     Por referencia: Se envia a la función la dirección de memoria donde se encuentra la variable o dato (&). Y esta vez si que modificara el valor de las variables utilizadas en la llamada.

Espero que esto te saque de dudas.

Saludos,
  Tenesor

39
C/C++ / Re: sockets
« en: Jueves 28 de Febrero de 2002, 19:53 »
jejejeje, asi que eras tu el culpable? Me rebotaba alguna direccion pero no me decia cual

Ya te lo he vuelto a enviar.

Saludos,
  Tenesor

40
C/C++ / Re: Funciones aleatorias
« en: Jueves 28 de Febrero de 2002, 19:46 »
hola!

RANDOMIZE() (aparte de que solo funciona en compiladores borlnad) es la funcion que debes llamar para usar RANDOM() (tambien de borland).

SRAND() es el equivalente al randomize() en ANSI C y es donde se planta la semilla. Su uso es: srand(time(0));

Despues de plantar la semilla, para generar un numero aleatorio debes usar la funcion RAND();. Por ejemplo, si deseas guardar el numero en la variable 'X' y generar un numero entre el 0 y el 100, debes llamarla asi:
X = RAND()%100;

Espero que esto solucione tus dudas.

Saludos,
  Tenesor

41
C/C++ / Re: nuevo foro
« en: Miércoles 27 de Febrero de 2002, 19:19 »
Ya somos cinco personas, no? pos nada, al de la idea que se lo plantee a solocodigo:)

42
Retos / Como usar
« en: Martes 26 de Febrero de 2002, 20:02 »
|  USO DEL SUB-FORO RETOS en C/C++  |


1- Introduccion

2- Proposición de Retos
 2a- Estructura del nombre del tema
 2b- Tipos de Reto
 2c- Ejemplo.

3- Respuesta de Retos

4- Nota Final






1- Introduccion

   Bienvenid@ al Sub-Foro Retos perteneciente al Foro de programacion en C/C++.

   Desde aqui agradecemos a SOLOCODIGO.COM por cedernos este espacio para mantener relacion con otr@s programadores/as de C/C++ compartiendo los conocimientos de tod@s.

   Este SUB-FORO no debe usarse para que otr@s programadores/as te hagan el trabajo que TU debes hacer (por ejemplo, ejercicios-practicas de clase), este sub-foro solo ha sido creado para aumentar los conocimientos de tod@s, no para que nos hagan los trabajos propios:P.



2- Proposición de Retos

 "Apartado en la que se explicará el funcionamiento para proponer un reto."

   Para proponer un tema debes fijarte primero en que no haya tres planteados sin resolver. En el momento en el que se resuelva uno, podrás plantear el tuyo.

   El numero de Retos abiertos se mantendrá en 3, para evitar la acumulación de Retos sin respuesta o ignorados. Si vemos que un reto no es respondido, no se actualizarán los retos hasta que los 3 sean cerrados.

Si en un momento, hay mas de 3 planteados, se cerrara el ultimo(s) por orden cronologico, de la misma manera que se iran abriendo.



   2a- Estructura del nombre del tema

   La estructura del nombre del tema será:

  Fecha - Dificultad - Tipo - Nombre
   
   FECHA: Es la fecha de la proposición del reto.

   DIFICULTAD: Está deberá ser "Bajo - Medio - Alto"

   TIPO: El tipo de reto propuesto. Está esta predefinida, podrás encontrar los tipos en el apartado "1b- tipos de Reto".

   NOMBRE: Este será el nombre del reto que será elegido por el autor/a del mismo.


   
   2b- Tipos de reto

   Bien, los tipos de reto serán:


   Bases de Datos: En este tipo se catalogarán todos aquellos retos que hagan uso de bases de datos. Por ejemplo, la creacion de un programa que guarde y lea el nombre, apellidos y direccion de una base de datos.

   Función: Este valor sera variable:). Serán catalogados en este tipo todos aquellos que abusen de una función especifica. Por ejemplo, plantear un programa que, mediante el uso de RAND, calcule 5 numeros aleatorios. En este caso, Función será substituido por RAND o RANDOM.

   Internet: Todos aquellos retos en los que el programa resultante sea mediante el uso de Internet, como por ejemplo, un programa que envie correos electronicos.

   Mátematicos: Serán catalogados en este tipo, todos aquellos retos que propongan la realizacion de agun tipo de figura (por ejemplo, la realización de un programa que cree una figura de n lineas), de calculo (por ejemplo, un programa que calcule ecuaciones de segundo grado, os suena?:)), etc.

   Ficheros: Aqui se catalogarán los retos en los que la función principal sea el uso de ficheros. Aquellos programas que se deban usar ficheros, pero su función sea secundaria, se catalogarán en el tipo de reto correspondiente.

        Strings: Se catalogarán como "strings" todos aquellos en los que la funcion principal del programa sea con variables strings o funciones especificas de strings, como, por ejemplo, strcmp, strcoll, etc.


   Si deseas añadir algun tipo, envia un mensaje por U2U al moderador. Los usuari@s serán quienes decidan si se añade o no.



   2c- Ejemplo

   Subject:
      22/02/02 - Fácil - Matematico - Potencia de dos Numeros

   Cuerpo:
      Realización de un programa que calcule la potencia de dos

numeros dados por el usuario. El resultado debe ser devuelto con 2 decimales.




3- Respuesta de Retos

   "Apartado en la que se explica el funcionamiento de las respuestas"

   Al igual que los planteamientos, las respuestas tienen una estructura mas o menos predefinida.

   La respuesta contendrá, primero, las notas que el autor considere necesarias y, debajo, el codigo fuente, con comentarios donde sean necesarios para comprender al 100% lo que el autor hace en cada momento.

   Asi pues, tomando el ejemplo del apartado 1c, la contestación a este sería:

-----------------------------------------------------------------------------
   #include <stdio.h>
   #include <math.h>

   float potencia(int,int); /* Prototipo de la función */

   main()
   {
           int x,y;
           float resultado;

           system("cls");
           printf("nCalculo de potencia");
   
           printf("nnEscribe dos numeros: ");
           scanf("%d",&x);
           scanf("%d",&y);

           resultado=potencia(x,y); /* Llamada a la función "potencia" */

           printf("nnEl resultado es: %.2f",resultado); /* Se imprime

el resultado en pantalla */

           getch();
           system("cls");
        }

   float potencia(int x,int y) /* Funcion que calcula la potencia */
   {
           int i;
           float res=1.0;

           for (i=0;i<abs(y);i++) { res=res*x; }
           if(y>0) return(res);
           else return(1/res);
   }

-----------------------------------------------------------------------------



4- Nota final

   Pues esperamos que esta pequeña ayuda sea entendida por tod@s y cualquier duda o proposicion sea notificada al moderador por medio de U2U o [email:3eihr5mq]tenesor@inicia.es[/email:3eihr5mq], será atendida con mucho gusto.

   Ahora esperamos que disfrutes del sub-foro y compartas tus conocimientos con tod@s.

                        Tenesor


[Modificado el 2/28/02 por tenesor]

43
Retos / Re: 25/02/02 - Fácil - Matematico - Ecuacion de segundo grad
« en: Martes 26 de Febrero de 2002, 19:47 »
Hola.

Pues si, he probado los dos y ha funcionado correctamente. Solo he tenido un pequeño problema con el de EQLucky pero ha sido por compiladores.

La funcion "gotoxy" es de Borland, por lo que aquellos usuarios de compiladores como Dev-c++ o GCC les dará error. Solo teneis que quitar las lineas Gotoxy y hacer tres preguntas con el printf (valor de  a, de b y de x). Guardarlas en sus correspondientes variables y el programa funcionará a la perfeccion.

Alguna respuesta más? Máñana (27/02/02) cerrare el reto. Espero que colabore mas gente con el proximo reto....

44
Sobre los Foros de SoloCodigo / Re: Linux
« en: Lunes 25 de Febrero de 2002, 17:15 »
SIIII, otro LINUXERO EN EL FORO!!!

yo te apoyo:)

45
C/C++ / Re: nuevo foro
« en: Lunes 25 de Febrero de 2002, 17:12 »
ummm, yo tambien considero que podría ser util, solo que se esta llenando de sub-foros. Se le podría decir al administrador que quitase los que no se usan (de momento los de OpenGL, DirectX, KDevelop y QT no se han escrito nunca nada:()

Yo os doy mi apoyo/respaldo para decirlo a SoloCodigo.

46
Retos / Re: 25/02/02 - Fácil - Matematico - Ecuacion de segundo grad
« en: Lunes 25 de Febrero de 2002, 17:06 »
Para que no se duerma este foro antes de que empiece en funcionamiento, voy a plantear el primer reto:)


Realizar un programa que calcule las soluciones de una ecuación de segundo grado.
aX2 + bX + c = 0


Nota: el aX2 es a*X al cuadrado.

Como veis, el planteamiento es corto y entendible:). A ver cuantos lo sacan...

(Esta es para ti, EQLucky:D)



[Modificado el 2/25/02 por tenesor]

47
C/C++ / Menu en C
« en: Lunes 25 de Febrero de 2002, 16:47 »
Pues supongo que dibujando rectangulos y rellenando con colores:P

Lo siento, pero es que la libreria gráfica es de borland y con el GCC no te puedo ayudar, pero aqui te paso las funciones de figuras y rellenos en modo gráfico.

Primero eliges el tipo de linea que deseas utilizar. Esto se hace mediante:
  setlinestyle(int estilo,1,grosor)
El estilo va de 0 a 4 y el grosor 1 para normal y 3 para ancho.

Para circulos:
  circle(int x , int y , int radio);
Aqui X e Y indican la posicion del centro, y radio, pues eso, el radio de la circunferencia:)

Para rectangulos:
  rectangle(int x1, int y1, int x2, int y2)
X1 e Y1 es la posicion de la esquina superior izquierda, y X2 e Y2 la esquina inferior derecha.

Funciones para rellenar con color:

  floodfill(int x , int y , int frontera);

Rellena el area delimitada por el color indicado en frontera comenzando desde x,y

Para crear patrones:
  setfillstyle(int pattern , int color);


Pattern = 0..12. Ves probando...

Para dibujar rectangulos de un color:
  bar(int x1 , int y1, int x2 , int y2);


Es lo mismo que la funcion de rectangle, solo que la rellena



Bueno, y para escribir texto en modo gráfico:

outtextxy(int x , int y , char *);


Tambien puedes cambiar el estilo de texto, pero de esto ya no me acuerdo. Echale un ojo por ahi a las paginas como www.mundoc.net o www.cgrsoftware.com(hay que registrarse para bajar manuales) y a ver si tienes suerte.

48
C/C++ / Re: Poner pixel en pantalla...¿?¿?¿?¿?¿?¿?¿?¿?
« en: Domingo 24 de Febrero de 2002, 19:24 »
ummm, echale un ojo a http://www.mundovb.net/mundoc/laberinto.htm

Es el codigo fuente de un juego de laberintos en C++. Dice que para las paredes tienes que guardarlo en un archivo de texto (vamos, dibujar el laberinto en un archivo de texto)

Espero que te sirva, pues yo no sabría decirte como hacerlo.

Saludos,
  Tenesor

49
C/C++ / Re: Novatillo en Gtk
« en: Domingo 24 de Febrero de 2002, 19:19 »
Hola!

Si te defiendes con el ingles, en la pagina oficial de GTK hay un tutorial MUY bueno. La dirección es: http://www.gtk.org/tutorial/

Hay otro bueno (pero no tanto:)) en http://hugo.gnome.cl/manual_gtk/gtk_tut_12.es.html.

Este tambien me gusto pero ya te digo que si te defiendes con el inglés mira el de la página oficial.

Saludos,
  Tenesor

50
C/C++ / Re: sockets
« en: Domingo 24 de Febrero de 2002, 19:06 »
OK, ya lo he enviado a los tres.

A lo mejor os llega dos veces, el primero que he enviado me ha rebotado, pero me ha rebotado por la direccion de delpa, asi que lo he vuelto a enviar a los tres por si acaso.

Si al final no os llega a ninguno:( me lo decis y lo envio uno a uno.

Saludos,
  Tenesor

Páginas: 1 [2] 3 4