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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ... 160
131  Programación / Programación C/C++ / Re: buena me podrian dar una idea de como hacer este proyecto de lenguaje en: 24 Enero 2015, 03:56 am
Racket fue desarrollado como un entorno de programación gráfico, integrado e interactivo para el lenguaje de programación Scheme. Proporciona resaltado de fuente para los errores de sintaxis y de ejecución, compatibilidad con múltiples niveles de lenguaje, un algoritmo algebraico, objetos, módulos, una biblioteca de interfaz gráfica de usuario, protocolos TCP/IP, Unicode y mucho más.

Una vez que te hayas familiarizado un poco con el lenguaje y su entorno ( Racket ), considere la estructura de datos Conjunto , que representa conjuntos potencialmente infinitos. La estructura conjunto debe ser implementada a través de listas .
Una vez definida la estructura conjunto se debe implementar las funciones básicas ...
Ya que no hay un foro enfocado en programación funcional lo primero que se debe hacer con el tema es moverlo a Programación General, tal vez ahí alguien pueda ayudarlo con el enunciado.

Un saludo
132  Programación / Programación C/C++ / Re: [Ayuda]Un programa en C en: 12 Enero 2015, 18:02 pm
2.Sin utilizar arrays
Debido a eso el programa terminara excesivamente largo y deberías comentarlo con tu profesor: solo sirve para justificar el uso de bucles (un poco excedido en mi opinión).

Los valores a calcular son:
calcular la media de edad general
la media por sexo
la cantidad de mujeres que tienen entre 13 y 16 años
el número de hombres menores de 20 años.
El primero ya lo tienes.

En el segundo inicializas un contador a cero y revisas cada una de las variables: si es de sexo masculino incrementas el contador en una unidad. Una vez tienes el numero de personas de sexo masculino el femenino lo calculas en base a una resta.

En el tercero de nuevo inicializas un contador a cero y revisas cada una de las variables, si es de sexo femenino y su edad esta entre 13 y 16 incrementas el contador:
Código
  1. int mujeres_13_16 = 0;
  2.  
  3. /* ... */
  4.  
  5. mujeres_13_16 = 0;
  6. if (p1.sexo == 'f' && p1.edad >= 13 && p1.edad <= 16)
  7.   mujeres_13_16++;
  8. if (p2.sexo == 'f' && p2.edad >= 13 && p2.edad <= 16)
  9.   mujeres_13_16++;
  10. if (p3.sexo == 'f' && p3.edad >= 13 && p3.edad <= 16)
  11.   mujeres_13_16++;
  12. /* ... */
  13.  
  14. printf("Mujeres entre 13 y 16: %d\n", mujeres_13_16);]

El cuarto es similar al tercero pero mas fácil ya que la condición a verificar es mas simple: sexo igual a 'f' y edad menor que 20.

3.Amplíe el ejercicio anterior mostrando al final del proceso los datos completos de la mujer y el hombre más jóvenes de los introducidos.
El proceso es idéntico en las dos operaciones con la única diferencia en el campo sexo. Debes utilizar una estructura auxiliar donde copiar los datos de la persona mas joven.

Verificas una por una las variables y si el campo es 'f' (o 'm' en el segundo ejercicio) verificas si la edad es menor que el almacenado en el auxiliar: si es el caso copias la variable en el auxiliar. Mas o menos así:
Código
  1. struct persona mj; /* Mujer mas joven*/
  2.  
  3. /* ... */
  4.  
  5. mj.edad = 9999; /* Centinela*/
  6.  
  7. if (p1.sexo == 'f' && p1.edad < mj.edad)
  8.   mj = p1;
  9. if (p2.sexo == 'f' && p2.edad < mj.edad)
  10.   mj = p2;
  11. if (p3.sexo == 'f' && p3.edad < mj.edad)
  12.   mj = p3;
  13. /* ... */
  14.  
  15. if (mj.edad == 9999)
  16.   puts("No hay datos de mujeres");
  17. else {
  18.   /* mj almacena los datos de la mujer mas joven */
  19. }

Un saludo
133  Programación / Programación C/C++ / Re: [AYUDA] Con que libro comenzar? en: 12 Enero 2015, 17:12 pm
¿Que libro puedo leer para empezar con c++?
Cuando tengas una duda como esa lo primero que debes hacer es utilizar el motor de búsqueda de los foros ya que hay la posibilidad de que la pregunta se haya realizado previamente. Un tema con algunas recomendaciones de libros sobre C++ es Presentación y dudas.

Un saludo
134  Programación / Programación C/C++ / Re: ayuda urgente con este codigo en: 12 Enero 2015, 17:00 pm
Si no tienes un curso o libro de calidad deberías conseguir uno ya que ese programa tiene bastantes errores, para recomendaciones sobre los segundos puedes utilizar el motor de búsqueda de los foros.

Algunos de los errores son:

* El encabezado a incluir es <iostream>.
* En la primera declaración:
Código
  1. int= x=0, area poligono=0,i,areatotal=0,i=0;
El primer carácter '=' esta de mas, "area poligono" tiene un espacio de mas y declaras en dos ocasiones la variable "i".
* Pides el numero de vértices almacenando este en la variable "x" pero después declaras los arrays indicando su numero de elementos con la variable "i" (para empezar esa declaración no es valida en C++).
* En la lectura de cada punto:
Código
  1. cin>> f [i], g [i];
Utilizas la coma cuando debería ser el operador ">>".

De nuevo obtén material de referencia de calidad y ve paso a paso.

Un saludo
135  Programación / Programación C/C++ / Re: Que es aliasing y aliasing estricto? en: 12 Enero 2015, 16:10 pm
¿Es una tarea? Las descripciones en ingles de ambos términos las puedes consultar en Wikipedia, en la pagina Aliasing.

Un saludo
136  Programación / Programación C/C++ / Re: [AYUDA] Ejercicio concatenar en: 12 Enero 2015, 04:09 am
Mil gracias ahora va perfecto, una pregunta la liberación de memoria esta bien situada? Esque al pasar el comprueba de mi profesor, da error, "Error in ________ free(): invalid next size(fast): 0x09425008 ***

+

Gracias lo he probado pero nada tio, no funciona... mismo fallo.. y estoy perdido

Cuando hagas cambios a un programa publica el código fuente actualizado, si no lo haces no hay forma de ayudarte.

----

En cuanto al código fuente de tu primer mensaje no es necesario inicializar las variables "nombre", "ap1" y "ap2" si lo primero que haces con ellas es asignarles el resultado de calloc y tampoco es necesaria la conversión explicita de (el valor de retorno de) esa función:
Código
  1. nombre = (char *) calloc(TAM, sizeof(char));
Basta con:
Código
  1. nombre = calloc(TAM, 1);

Un error importante se repite cuando pides el nombre, apellido paterno y materno:
Código
  1. printf(PIDE_NOMBRE);
  2. fgets(nombre, TAM, stdin);
  3. nombre = strchr(nombre,'\n'); /* <== */
  4. *nombre = '\0';
Las tres mentadas variables no las debes modificar porque ellas almacenan la dirección base de los tres bloques, al almacenar en estas el resultado de strchr pierdes esas direcciones y las llamadas a free no serán validas (comportamiento no definido). En su lugar debes utilizar otra variable, por ejemplo:
Código
  1. char *p;
  2.  
  3. /* ... */
  4.  
  5. printf(PIDE_NOMBRE);
  6. fgets(nombre, TAM, stdin);
  7. if ((p = strchr(nombre, '\n')) != NULL)
  8.   *p = '\0';

Otro error se genera cuando tratas de imprimir el nombre completo al utilizar "ap1" cuando debería ser "todo":
Código
  1. printf(TEXTO_NOMBRE_COMPLETO, ap1);

Por ultimo si la intención es imprimir el nombre completo en la forma "paterno materno, nombre" no es necesario reservar memoria, basta con una sola llamada a printf:
Código
  1. printf("%s %s, %s\n", ap1, ap2, nombre);

Un saludo
137  Programación / Programación C/C++ / Re: Duda bucle do while en: 11 Enero 2015, 16:34 pm
También se debe cambiar el operador && por ||.

Un saludo
138  Programación / Programación C/C++ / Re: Ejercicio de monedas en: 9 Enero 2015, 04:09 am
Una implementación ligeramente distinta que funciona correctamente siempre y cuando la entrada sea valida y con la misma limitante que ya indico yoel_alejandro (el cero negativo) es:
Código
  1. int fn(int const a[])
  2. {
  3.   int i;
  4.  
  5.   for (i = 1; a[i] == a[0]; i++)
  6.      ;
  7.   if (i == 1)
  8.      i = a[0] == a[2];
  9.  
  10.   return a[i] - a[!i] > 0 ? i : -i;
  11. }

Un saludo
139  Programación / Programación C/C++ / Re: Agenda virtual C++ en: 8 Enero 2015, 18:09 pm
Para el codigo de seguridad debes leer un entero que consista de ocho digitos, solo 1s y 0s y el numero de ambos debe ser igual a cuatro. Un programa de ejemplo:
Código
  1. #include <iostream>
  2. using std::cin;
  3. using std::cout;
  4. using std::endl;
  5.  
  6. int main()
  7. {
  8.   cout << "Introduce el codigo de seguridad: ";
  9.   unsigned long num;
  10.   cin >> num;
  11.  
  12.   int i;
  13.   int diff = 0;
  14.   for (i = 0; num != 0 && num % 10 <= 1; i++){
  15.      diff += num % 10;
  16.      num /= 10;
  17.   }
  18.   cout << (i == 8 && diff == 4 ? "OK" : "Error") << endl;
  19.  
  20.   return 0;
  21. }

Un saludo
140  Programación / Programación C/C++ / Re: Eliminar todos los elementos de un vector en: 8 Enero 2015, 02:49 am
Como haria entonces para vaciar ese array?
Los arrays no se vacían, en su lugar utilizas una variable para tomar nota del numero de elementos utilizados y eso ya lo haces en tu función con la variable "tam".

----

La función tal y como está no devuelve nada, ¿o me he perdido algo?
Ya que los elementos del array se modifican mediante indireccion con el operador "[]" y el numero de estos se indica mediante el parámetro por referencia "tam" no hay necesidad de retornar algo.

Un saludo
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ... 160
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines