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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: 1 2 [3] 4
21  Programación / Programación C/C++ / Re: ayuda para empezar a crar videojuegos en: 2 Agosto 2011, 01:17 am
Dos libros que uso y usé para llevar bien la materia que estoy haciendo de C son "C con ejemplos" de Greg Perry y "El lenguaje de programación C" de Brian W. Kernighan y Dennis M. Ritchie"

Son muy buenos libros, y si te interesa, también te puedo pasar las teorías y prácticas que me dieron en el seminario que estoy haciendo... Están buenas y seguro te van a servir como para encaminarte en C...

¡Saludos!
22  Programación / Programación C/C++ / Re: ayuda para empezar a crar videojuegos en: 1 Agosto 2011, 23:12 pm
Además de saber programar bien (algo fundamental), también vas a tener que saber bien sobre matemáticas y/o física dependiendo de qué juego vayas a realizar...
Yo hice un mini curso para hacer juegos en Phyton y con sólo hacer una pelotita que vaya para todos lados de la ventana, lleva mucha programación, matemáticas y cosas de física...

23  Programación / Programación C/C++ / Colección de Archivos en: 1 Agosto 2011, 19:35 pm
Hola, nuevamente yo consultando.

Estoy practicando parciales de años anteriores ya que el miércoles rindo y quiero terminar de pulir todo, jaja. Es en el lenguaje C.

Mis preguntas en base a un parcial son las siguientes:

a- Defina el TAD archivo que defina el tipo Tarchivo, cuyas propiedades son: nombre(incluye la extensión), tipo(mime), fechaHoradeCreacion(int), tamaño (unsigned long), propiedades (char que indica: solo lectura, lectura-escritrua).

En este punto hice lo siguiente:

Código:
#ifndef _ARCHIVO
#define _ARCHIVO

typedef struct Archivo {
char nombre[15];
int fechaHoradeCreacion;
unsigned long tamaño;
char propiedades[18];
};

typedef struct Archivo Tarchivo;

#endif

En nombre use un char como dice, le puse 14 caracteres usando 10 lugares del arreglo para que pongan el nombre y 4 para la extensión (.txt, .bmp. dat o lo que fuere).
en fechaHoradeCreacion al igual que tamaño, no sé bien si es que tendré que pedirle al usuario que ingrese esos datos o yo mismo en base a funciones o métodos predefinidos o que tenga que definir yo obtenerlos del archivo que ingresó en "nombre".
Y en propiedades lo mismo, no sé si es que el usuario me tiene que decir si es un archivo de solo-lectura o lectura-escritura. (tengan en cuenta que son parciales en donde posees 1 hora y media para hacerlos, en hoja y papel y que sumado a esto hay un par de preguntas más...

Y con el tipo(mime) no tengo ni LA MENOR IDEA de a qué se refiere... En sí no sé si este parcial se va a tomar, ya que creo que hay conceptos del mismo que este año no explicaron, pero bueno, siempre es bueno hacerlos y aprender algo más.

b- Defina el TAD directorio que defina el tipo Tdirectorio que contiene una colección de archivos.

En este caso, hice lo siguiente:

Código:
#ifndef _DIRECTORIO
#define _DIRECTORIO

typedef struct Directorio{
FILE *archivo;
typedef struct Directorio *sig;
};

typedef struct Directorio *Tdirectorio;

#endif

Tome como "colección de archivos" a una lista que yo creo que contiene en cada nodo un archivo y el siguiente, obviamente.
Seguramente en vez de tener un archivo así como definí en "FILE *archivo" deberá contener el registro que definí antes de Tarchivo.
Pero no se me ocurre otra forma ni tampoco sé si eso que hice no es para que me asesinen por desubicado, jaja.

c- Agregue al TAD directorio una función que ordene los archivos dentro de un directorio, considerando la implementación de alguna de las funciones que permitan comparar dos archivos (nombre, tamaño, etc) implementando esta función en el TAD archivo.

Código:
Tdirectorio ordeno (Tdirectorio dir, int (compara) (Tarchivo, Tarchivo));

Bien, acá ya me perdí completamente. Cuando dice ordene los archivos dentro de un directorio creo entender que se refiere a que ordene los archivos que están en una determinada carpeta, por ende, lo que hice anteriormente está mal, ya que no hago referencia al directorio ni nada, sino a archivos que previamente el usuario cargó.
Y cuando dice "considerando la implementación de alguna de las funciones que permitan comparar dos archivos (nombre, tamaño, etc)" no sé si es que ya hay una función que lo haga, pero si la hay, no la encuentro... Trate de buscar por google pero sólo encuentro ejemplos de como implementar una en C++ o C# que no me sirve ni medio...
En si no entiendo bien el enunciado  :-X


Desde luego aclaro que no pretendo ni deseo que me hagan todo el parcial (porque por ahí se puede interpretar mal mi consulta), si no que por ahí me aclaren ciertas pautas o me dejen códigos de ejemplos para que pueda entender...
Por el momento voy a seguir con los otros parciales que son más abocados a cosas que estoy seguro que vi y este lo dejo para cuando la tenga un toque más clara... Jaja

Desde ya muchísimas gracias :D

24  Programación / Programación C/C++ / Re: Amigos ayuda urgente en: 1 Agosto 2011, 18:30 pm
Se ve que el profesor no tiene ni idea o es muy despistado o hizo un copy peaste sin mirar, pero es un campo minado de errores, y errores pavos jaja...

Pero bueno, siempre en alguna que otra práctica o teoría se filtran estos tipos de programas que cuando los tratás de compilar no funcionan ni para atrás... Dudo que haya muchos profesores que se tomen la delicadeza de compilar y revisar cada código que ponen en las teorías/prácticas para estar seguros que no están haciendo cualquiera... Y después los alumnos lo padecemos jaja

Saludos...
25  Programación / Programación C/C++ / Re: ayuda para empezar a crar videojuegos en: 1 Agosto 2011, 18:25 pm
Desde mi humilde y novata opinión, no te recomiendo usar IDE...
No sé si acá los muchachos están acostumbrados a usar, pero a mi para lo único que me ayudaron los IDE, como por ej, el NETBEANS, es para tener dolores de cabeza.
Lo único bueno que podes usar, es para debuggear...

Eh hablado con muchísimos programadores de C, profesionales, que laburan de esto, y todos me dijeron que usar IDE no es aconsejable... No encontré NI UNO que usara :P

Yo realmente uso el gedit del Linux y compilo por consola, y voy a tratar de aprender cuando tenga más tiempo libre a debuggear también de consola...
Pero bueno, por ahí para un proyecto más amplio, como hacer un video juego, capaz que necesites un IDE, no sé...

En fin, saludos!!!

26  Programación / Programación C/C++ / Re: Problema con violación de segmento en: 27 Julio 2011, 05:26 am
No.

El numero de elementos que piensas utilizar. Por ejemplo si necesitas espacio para una cantidad N de enteros (determinado en tiempo de ejecución) utilizas (sin validación para que sea mas sencillo):
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void)
  5. {
  6.   int *p;
  7.   int num_elem;
  8.   int i;
  9.  
  10.   printf("Indica el numero de elementos: ");
  11.   fflush(stdout);
  12.   scanf("%d", &num_elem);
  13.  
  14.   /* Reserva de memoria */
  15.   p = malloc(num_elem * sizeof *p);
  16.  
  17.   /* Lectura de datos */
  18.   for (i = 0; i < num_elem; i++){
  19.      printf("p[%d] == ", i);
  20.      fflush(stdout);
  21.      scanf("%d", p + i); /* Equivalente a "&p[i]" */
  22.   }
  23.  
  24.   /* Algun proceso de datos ... */
  25.  
  26.   /* Liberacion de memoria y salida del programa */
  27.   free(p);
  28.   return EXIT_SUCCESS;
  29. }

Un saludo

Ahahaha, fenómeno!!!...
Millón de gracias nuevamente  ;-)
27  Programación / Programación C/C++ / Re: Problema con violación de segmento en: 27 Julio 2011, 04:09 am
En C la conversión explicita no es necesaria y no se recomienda, en este lenguaje el idioma (convención informal) para reservar memoria es:
Código
  1. p = malloc(N * sizeof *p);
Donde N es el numero de elementos.

En tus programas (me refiero a Triper0) sigues con el mismo error que ya te mencionaron: reservas memoria para "sizeof(algun_puntero)" cuando el tamaño debería indicar el tamaño del objeto apuntado. Por ejemplo:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define LONG_MAX_LINEA  1024
  5.  
  6. int main(void)
  7. {
  8.   char *p;
  9.  
  10.   if ((p = malloc(LONG_MAX_LINEA)) == NULL)
  11.      return EXIT_FAILURE;
  12.  
  13.   puts("Introduce una linea de texto:");
  14.   if (fgets(p, LONG_MAX_LINEA, stdin) == NULL)
  15.      return EXIT_FAILURE;
  16.  
  17.   printf("Linea: %s", p);
  18.   free(p);
  19.  
  20.   return EXIT_SUCCESS;
  21. }
En este caso no se requiere de "sizeof *p" ya que es igual a "sizeof(char)" y este siempre es igual a uno.

En cuanto al ultimo programa (para practicar con uniones) tiene varios errores, el principal que se utiliza la unión como si fuera una estructura. Aquí lo mejor es conseguir (y seguir) un buen libro. Recomendaciones sobre ellos en uno de los temas fijos.

Un saludo


Ese "N se refiere a número de elementos" cómo sería?... Por ejemplo, si yo tengo un puntero de tipo int, sería N=1
Y si tengo un char *nombre[10] sería N=10... ¿Así?

El tema de las uniones, seguramente tenga millones de errores, NUNCA use una unión, y justo vi un ejercicio sólo de unión, leí que era parecido a el struct pero no le encuentro la diferencia...
El libro que leí todo y seguí paso a paso, que fue uno de los que me recomendaron en la cátedra fue "C con ejemplos"...
Explica muy bien todo, pero no llega a cosas "muy avanzadas" como listas que es algo de lo cual necesito saber bien porque estoy seguro que en el parcial me van a tomar eso, además de obvio, para aprender más...

Desde ya muchísimas gracias también por el ejemplo y por todo ;)
28  Programación / Programación C/C++ / Re: Dar vuelta un string en: 27 Julio 2011, 04:02 am
Supongo que con lo de la lista te referís a poner cada carácter en cada nodo de la lista, en ese caso, como te dijo qily, agarras a la variable_string, la tomas como un vector, y vas recorriendo los índices y cargándolos en los nodos.
Cuando declaras la lista, la declaras con un dato de tipo char y el último, si necesitas, le pones el '\0' para que quede como una lista de string.
29  Programación / Programación C/C++ / Re: Problema con violación de segmento en: 26 Julio 2011, 22:47 pm
Si, justamente lo que mas me cuesta son las listas en C... En Pascal las manejo de diez, pero con C y el tema de los punteros me agarro un lindo pedalin...
30  Programación / Programación C/C++ / Re: Problema con violación de segmento en: 26 Julio 2011, 22:26 pm
Si, es un seminario de lenguaje C, no nos permiten ni C++ ni C#.
Es más, nos hicieron hacer un trabajo final de manejos de .BMP y nos hicieron hacer todo por nuestra cuenta, nada de usar funciones predefinidas de BMP ni nada, todo manual...
Aprendí bastante, pero fue un dolor de cabeza importante, jaja...
Páginas: 1 2 [3] 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines