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 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 160
111  Programación / Programación C/C++ / Re: Empacar dos caracteres en una variable entera unsigned. [C] en: 23 Febrero 2015, 03:15 am
Es relativamente fácil, todas las variables a utilizar deben ser sin signo y la operación para empaquetar los caracteres es:
Código
  1. unsigned char a = ALGO;
  2. unsigned char b = ALGO;
  3. unsigned int r = a << CHAR_BIT | b;
  4.  
  5. /* Impresion bit por bit de la variable r */

Como imprimir una variable bit por bit es algo que ya se trato en uno de tus otros temas.

Un saludo
112  Programación / Programación C/C++ / Re: Segundos en C++ en: 23 Febrero 2015, 02:45 am
Descripción de la función sleep.

Un saludo
113  Programación / Programación C/C++ / Re: Error en tamaño de vector en C en: 22 Febrero 2015, 18:59 pm
Es posible si se compila según (y el compilador soporta) el estándar C99 (en C11 el soporte es opcional). En este caso debes obtener primero el numero de días y solo entonces declarar el array. Mas o menos así:
Código
  1. int num_dias;
  2.  
  3. /* Obtenemos de alguna forma el numero de dias */
  4.  
  5. double temp[num_dias];

Otra opción que no depende del estándar utilizado es reservar memoria mediante las funciones malloc, calloc o realloc. Poco mas o menos así:
Código
  1. int num_dias;
  2.  
  3. /* Obtenemos de alguna forma el numero de dias */
  4.  
  5. double *temp = malloc(num_dias * sizeof *temp);

Pero si apenas empiezas es mejor dejar ambas formas para después (por el momento utiliza arrays indicando su numero de elementos mediante una constante).

Un saludo
114  Programación / Programación C/C++ / Re: Error en tamaño de vector en C en: 22 Febrero 2015, 18:42 pm
El error principal en el programa es la declaración del array para almacenar las temperaturas:
Código
  1. int dias=0;
  2. /* ... */
  3. float grados[dias],acum=0,mayor=0, menor=100, temp_prom=0,nuevatemp=0,viejatemp=0;
Indicar el numero de elementos en un array mediante una variable solo esta garantizado en el estándar C99 y aun cuando sea posible el valor de la variable "dias" es cero.

En su lugar utiliza una constante que considere el numero máximo de elementos y que en tu caso son los días del mes (máximo 31). Mas o menos así:
Código
  1. #define MAX_DIAS  31
  2.  
  3. /* ... */
  4.  
  5. float grados[MAX_DIAS];
  6.  
  7. /* ... */

Otra recomendación es evitar el uso de la función system y fflush(stdin), el porque de ello en el tema |Lo que no hay que hacer en C/C++. Nivel basico|.

Un saludo
115  Programación / Programación C/C++ / Re: Acabar ejecucion pulsando 0 en: 22 Febrero 2015, 15:54 pm
He realizado el código y funciona, pero le indico que me pregunte si desea realizar otra operación, si le pongo que si, entra en bucle pero si le pongo que no, se cierra el programa que es lo que debe de hacer, el problema que tengo es como quitar ese bucle, que cuando le pongo que si, pues me pregunte nuevamente que numero desea operar nuevamente.
Lo que debes hacer es utilizar un bucle do ... while donde primero verifiques que el valor no sea cero para así realizar la verificación si es primo o no, a continuación pides confirmación al usuario si desea repetir el proceso. La condición para que el bucle se repita es que el numero no sea cero y la respuesta del usuario sea s.

De esta forma:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void)
  5. {
  6.   int n,i,c=0;
  7.   char resp;
  8.  
  9.   do {
  10.      puts("Introduce un numero entero positivo (0 para terminar)");
  11.      scanf("%d", &n);
  12.      if (n != 0){
  13.  
  14.         /* Verificar si es primo */
  15.  
  16.         printf("Desea repetir la operacion s/n: \n");
  17.         scanf(" %c", &resp);
  18.      }
  19.   }while (n != 0 && (resp == 's' || resp == 'S'));
  20.  
  21.   return 0;
  22. }

Sin embargo (siendo diplomatico) no gusta ya que tienes dos formas de salida cuando la primera (introducir el valor cero) basta para terminar el programa. Por ultimo si apenas empiezas deberías evitar el uso de la biblioteca conio de Borland, mas información en la pagina |Lo que no hay que hacer en C/C++. Nivel basico|.

Un saludo
116  Programación / Programación C/C++ / Re: Texto a binario en: 22 Febrero 2015, 04:36 am
Algo para manipular un gran archivo y pasarlo por completo a 01010010 de a 8 por cada carácter.
No es necesario ya que cada carácter en un archivo se almacena de esa forma: como un patrón de bits, que se maneje en decimal es otra historia.

En cuanto a la conversión de una base a otra lo mejor es utilizar el motor de búsqueda, dos temas relacionados son:
De decimal a binario sumando sólo los bits encendidos [C].
pasar de decimal a cualquier base menor de 10

Un saludo
117  Programación / Programación C/C++ / Re: estoy aprendiendo a programar en c++ y necsito ayuda con este programita en: 22 Febrero 2015, 04:20 am
Otros errores en el programa son:

* Falta indicar el tipo de la función main.
* En todas las llamadas a scanf falta el operador "dirección de" (el '&').
* El programa tiene una incursiona infinita (no valida a partir de C99) ya que el valor de retorno de la función main es:
Código
  1. return main();

Otro detalle preocupante es que indicas que estas aprendiendo C++ pero el programa no tiene nada de ese lenguaje (una vez solucionados los errores debe compilar como C sin problemas).

Un saludo
118  Programación / Programación C/C++ / Re: Cambiar el nombre de un archivo por uno dado por el usuario en: 22 Febrero 2015, 04:09 am
Puedes utilizar la función rename previa inclusión del encabezado <cstdio>.

Un saludo
119  Programación / Programación C/C++ / Re: Pasar string por referencia o no en: 17 Febrero 2015, 03:25 am
Creo que será que tengo que recoger de otra forma la cadena porque con un SCANF puedo pero no me permite coger frases con espacios y no es el objetivo que estoy buscando.
Con la información que muestras no es posible ayudarte, por favor publica el código fuente completo.

Un saludo
120  Programación / Programación C/C++ / Re: De decimal a binario sumando sólo los bits encendidos [C]. en: 15 Febrero 2015, 16:58 pm
Citar
No es necesario comparar el valor leído contra INT_MAX ya que no hay forma de que sea mayor que este, esa comparación la debes eliminar.

Esta línea no me cierra, si yo no efectuó esa comprobación el resultado es incorrecto.
Si te da un resultado incorrecto sera por alguna otra razón.

Cuando llamas a scanf esta consume los caracteres de la entrada estándar y en base a ellos almacena un valor de tipo signed int en la variable en cuestion, ese valor siempre estará en el rango [INT_MIN, INT_MAX].

En todo caso si actualizaste el programa publica su código fuente de nuevo.

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 ... 160
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines