elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11
61  Programación / Programación C/C++ / Re: [C] Introduccion a estructuras y apuntadores en: 15 Septiembre 2013, 02:39 am
gracias no sabia del sitio, muy util!!  :)
62  Programación / Programación C/C++ / Re: [C] Introduccion a estructuras y apuntadores en: 13 Septiembre 2013, 17:17 pm
Gracias a ambos por la respuesta, me ha quedado mas claro, solo se reserva espacion en memoria una vez que se crean las variables de tipo estructura.

Los beneficios de inicializar las variables es que así garantizas que tienen valores válidos... esto es especialmente importante con punteros.
Se puede inicializar toda la estructura a cero? y no las variables individuales?

No estoy seguro de abrir un nuevo tema, para crear una estructura ligada, en este caso es posible autoreferenciar? Estamos viendo en clase estructuras que contienen un apuntador que apunta a otra estructura de la misma forma que contiene tambien un apuntador que da a otra estructura etc...

Como es que se utiliza esto? o como funciona?
Se podría por ejemplo guardar el itinerario de una persona que viajó por el mundo a traves de una estructura autoreferenciada? No quiero que me den el código pero sí me ayuden a entender el concepto

de antemano gracias!

63  Programación / Programación C/C++ / [C] Introduccion a estructuras y apuntadores en: 13 Septiembre 2013, 09:11 am
Hola, estoy aprendiendo estructuras y apuntadores, tengo un código muy básico:
Código
  1. #include <stdio.h>
  2. void main()
  3. {
  4.    typedef struct coordinate
  5.        {
  6.            char nombre[15];
  7.            int x,y;
  8.        }coordinate;
  9.    coordinate ubicacion_01,ubicacion_02;
  10.    coordinate  *ptr_punto;
  11.    ptr_punto=&ubicacion_01;
  12.    puts("Escribe el nombre del lugar");
  13.    gets(ptr_punto->nombre);
  14.    printf("Lugar: %s",(*ptr_punto).nombre);
  15.    getch();
  16. }
  17. }

Pregunta:

Se deben inicializar las variables al crear una estructura?, si a x,y les doy el valor de cero el compilador me da error, hay algun problema si no inicializo el arreglo nombre y las variables enteras?

La sentencia typedef esta bien dentro de main? o debo declarar la estructura fuera como prototipo?
saludos!
64  Programación / Programación C/C++ / Re: [C] error en scanf("%c",&variable) en: 30 Junio 2013, 08:01 am
De todas maneras te digo que en el nombre_apellido, no vas a poder albergar el nombre y el apellido juntos si utilizas la función scanf tal y como está ya que esta de la cadena "Pepito Jimenez" te leerá "Pepito". Tendrías que ponerlo de esta manera:
Código
  1. scanf(" %s[^\n]",&nombre_apellido);

Gracias, acabo de leerlo hace poco, la funcion scanf agrega un caracter nulo cuando lee un espacio en blanco, por eso es que siempre me imprimia la primera parte, lo que no encuentro es
Código
  1. scanf(" %s[^\n]"

Que significa [^\n]? es un especificador de conversion? modificadores de conversion?

Encontre que podria utilizar:
Código
  1. scanf("%s %s",&nombre)
así podria escribir un nombre de dos palabras pero como no tengo la certeza de la longitud queda mejor gets.

Estaba pensando que la funcion gets() falla porque no limpio el buffer antes de escribir la cadena y al entrar la funcion toma lo que esta en el buffer, opte por preguntar los datos al inicio y no al final, entonces todo corre ya como deberia.

En el libro Certified course in C, David Himmel, Waite Group Press, capitulo 4 explican muy bien las funciones printf y scanf, varias paginas resuelven el error.

Perdon por no haber respondido antes pero no tenia internet en la computadora, gracias y saludos!
65  Programación / Programación C/C++ / [C] error en scanf("%c",&variable) en: 23 Junio 2013, 00:14 am
Hola, tengo un problema con algo tan sencillo:

1- Entrada de nombre sin problemas, al dar una nueva linea la entrada de matricula falla
2- como matricula se imprimen datos basura, no te deja escribir nada, por lo tanto la condicion no funciona y lo demas tampoco  :(
Código
  1. int informacion_personal()
  2. {
  3.    char nombre_apellido[50];
  4.    char id[12];
  5.    unsigned short numero_caracteres=0;
  6.    printf("Para finalizar escribe tu nombre y matricula\n\n");
  7.    printf("Nombre: ");
  8.    scanf(" %c",&nombre_apellido);
  9.    printf("\nMatricula: ");
  10.    scanf("%c",&id);
  11.    numero_caracteres = strlen(id);
  12.    if(numero_caracteres>9)
  13.    {
  14.        printf("Demasiados caracteres!\n");
  15.    }
  16.    strcpy(nombre,nombre_apellido);
  17.    printf("%s %s",matricula,nombre);
  18.    getch();
  19. }
  20.  

No hay mucho que pueda hacer, intente con gets pero al correr se salta la instruccion y no puedes escribir nada, tenia asignado los valores a variables globales (nombre y matricula) pensando que eso era el problema pero no, reasigne a locales y nada.
66  Programación / Programación C/C++ / Re: [Error] ¿Porqué no compila este simple programa? en: 22 Junio 2013, 23:54 pm
Otra cosa ¿incluir iostream solo para una pausa? con lo bien que funciona getc o getchar y ya estan en stdio.h jejeje.

getch() hace pausas y no muestra caracteres, tampoco necesita parametros, me gusta.

Hola amigos, bueno este tema lo hago porqué me puse a practicar con los archivos de cabecera, pero tengo un error al compilar me sale estos 2 errores
tengo un archivo de cabecera para un codigo y trate de incluir toda la informacion del preprocesador ahi, en este caso los prototipos de tus funciones basta que esten en el archivo.h y lo incluyas en tu codigo o las declares directamente antes de main().
67  Programación / Programación C/C++ / Re: Libro de C++ en: 13 Junio 2013, 01:45 am
No recomiendo libros en español porque me parecen mas pesados, con mas vocabulario y mas rebuscados.  Yo tambien se algo de ingles y no me parece dificil.

Tampoco te recomiendo comprar libros, puedes tramitar una credencial en bibliotecas locales? si estas en la universidad, hacer uso de la biblioteca tal vez?

Hasta la fecha no he gastado ni un peso en libros y no creo hacerlo porque el contenido de la bliblioteca es suficiente para aprender cualquier cosa. Asi como existe el libro de K&R para ANSI C(segunda edicion) debe de haber uno de C++, yo optaria por ese.

He leido libros de Luis Joyanes pero para programacion en C, esta digerible y es bueno, tambien tiene libros para C++.

Aca recomiendan libros de C++(en ingles)

Saludos y que el idioma no sea una barrera!
68  Programación / Programación C/C++ / Re: [Pregunta]¿Por donde empezar a programar un Juego? en: 12 Junio 2013, 05:57 am
Roberts Dave, PC game programming explorer


Este libro trata cada tema (teclado,mouse,pantalla,animacion,etc) con su respectivo código, todo esta hecho en funciones para que puedas reutilizarlas. ;D

De graficos he consultado:

The C graphics handbook, Roger T.


En C++ puedes utilizar JUCE

saludos
69  Programación / Programación C/C++ / Re: Numeros Romanos en: 11 Junio 2013, 02:33 am
Encontre una forma para los numeros cuya longitud es par pero al correr el código se queda parado en la linea 21, meti un printf y esta arrojando el valor pero no continua :(

El compilador me esta dando una advertencia:
Incompatible implicit declaration of built-in function 'strlen'[Enabled by default]
(se me olvido agregar <string.h>)

Código
  1. #include <stdio.h>
  2. #include <ctype.h>
  3. #include <string.h>
  4. #define M 1000
  5. #define D 500
  6. #define C 100
  7. #define L 50
  8. #define X 10
  9. #define V 5
  10. #define I 1
  11. int main()
  12. {
  13.    int i,j,caracteres=0,arabigo[20]={0},resultado=0;
  14.    char numero[20];
  15.    printf("Escribe un numero romano:");
  16.    gets(numero);
  17.    caracteres = strlen(numero);
  18.    for(i=0;i<caracteres;i++) //Convertir minusculas a mayusculas
  19.    {
  20.        numero[i] = toupper(numero[i]);
  21.    }
  22. printf("caracteres: %d\n",caracteres);
  23.    for(i=0;i<caracteres;i++)
  24.    {
  25.        switch(numero[i])
  26.        {
  27.            case 'M':
  28.                {
  29.                    arabigo[i]= M;
  30.                    break;
  31.                }
  32.            case 'D':
  33.                {
  34.                    arabigo[i]= D;
  35.                    break;
  36.                }
  37.            case 'C':
  38.                {
  39.                    arabigo[i]= C;
  40.                    break;
  41.                }
  42.            case 'L':
  43.                {
  44.                    arabigo[i]= L;
  45.                    break;
  46.                }
  47.            case 'X':
  48.                {
  49.                    arabigo[i]= X;
  50.                    break;
  51.                }
  52.            case 'V':
  53.                {
  54.                    arabigo[i]= V;
  55.                    break;
  56.                }
  57.            case 'I':
  58.                {
  59.                    arabigo[i]= I;
  60.                    break;
  61.                }
  62.           }
  63.       }
  64.        if(caracteres==1)
  65.        {
  66.            resultado+= arabigo[0];
  67.        }
  68.        else if(caracteres%2==0) //Cuando el numero que escribimos es par.
  69.        {
  70.            for(j=0;j<caracteres;j+2)
  71.            {
  72.                if(arabigo[j]-arabigo[j+1]<0)
  73.                {
  74.                    resultado+=arabigo[j+1]-arabigo[j];
  75.                }
  76.                else
  77.                {
  78.                    resultado+= arabigo[j]+arabigo[j+1];
  79.                }
  80.            }
  81.        }
  82.        printf("El numero romano %s en arabigo es: %d",numero[20],resultado);
  83. }
70  Programación / Programación C/C++ / Re: [C] e^x, si x es grande, numero negativo en: 7 Junio 2013, 01:49 am
Gracias!, ya lo entendi, la clave es:

Código
  1. fact*=(x/n++);

y como dices me evito lo demas

Saludos!
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines