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

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 ... 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 [147] 148 149 150 151 152 153 154 155 156 157 158 159 160
1461  Programación / Programación C/C++ / Re: buscar registro con fseek en: 24 Octubre 2011, 03:13 am
Honestamente con lo poco que presentas no es posible ayudarte.

Para empezar necesitamos conocer como se almacena cada registro en el archivo. Y si este lo abres en el modo texto no puedes (mas bien no deberías por detalles técnicos) utilizar fseek para encontrar un registro, en su lugar procesas el archivo linea por linea.

Mejor publica la versión mas pequeña posible de tu programa.

Un saludo
1462  Programación / Programación C/C++ / Re: Programa para generar numeros aleatorios en: 24 Octubre 2011, 03:02 am
Quiero un programita basico que me genere numeros de forma aleatorio y sin repetición entre resultados previos.
Si el rango de los números es pequeño (por ejemplo 0 a 1024) un algoritmo sencillo es:

1) Colocas todos los números en un array.
2) Seleccionas el numero mediante la función "rand" y el operador de modulo.
3) Sustituyes (o sobrescribes, dependiendo del caso) el numero procesado por el ultimo.
4) Reduces el contador de los números en el array en una unidad.
5) Regresas al paso 2.


Inténtalo, no es difícil.

Un saludo
1463  Programación / Programación C/C++ / Re: Aver si encuentran el error en: 23 Octubre 2011, 06:45 am
Justo despues del bucle que procesa el principio de la linea debes colocar este otro:
Código
  1. while ((c = getchar()) != EOF && c != '\n')
  2. ; // Nada que hacer

Sin embargo si estas programando en C++ deberias tratar de utilizar su biblioteca estandar (y no la de C).

Un saludo
1464  Programación / Programación C/C++ / Re: Problema con funcion, Metodo de seleccion en: 23 Octubre 2011, 06:40 am
Ese programa tiene demasiados errores, si no tienes un libro de calidad revisa los temas fijos de este foro. También puedes utilizar el motor de búsqueda.

En C++ el numero de elementos de un array lo debes indicar mediante una constante, no puedes utilizar una variable:
Código
  1. int v[nv];

Y aun cuando fuera valido los indices del array van desde 0 hasta nv-1, esto no es un indice valido:
Código
  1. v[nv+1]=0;
Y tampoco tiene caso ya que la siguiente operación es pedir todos los números.

En el primer bucle de la función principal utilizas el nombre del array "v" cuando deberías utilizar "v[ i ]".

En el siguiente bucle tratas de obtener los "nv" números menores cuando solo debes procesar "nv-1" números. Tanto en ese bucle como en el siguiente utilizas "v" cuando debería ser "v[ i ]".

La función que encuentra el valor menor se debe implementar con solo dos parámetros: la dirección base y el numero de elementos. Por ejemplo:
Código
  1. int fn_menor(int *elem, int num_elem)
  2. {
  3. int rv;
  4.  
  5. rv = elem[0];
  6. for (int i = 1; i != num_elem; ++i)
  7. if (rv > elem[ i ])
  8. rv = elem[ i ];
  9.  
  10. return rv;
  11. }

En buen plan: seria mejor que reescribieras desde cero el programa.

Un saludo
1465  Programación / Programación C/C++ / Re: Aver si encuentran el error en: 23 Octubre 2011, 06:13 am
Es un error logico.

Tu programa procesa el principio de una linea hasta encontrar el caracter '&', bueno, imagina que se teclea:
Código:
abcde&{ENTER}
Los caracteres "abcde" se procesan, el '&' se descarta y causa la salida del bucle y el '\n' (generado al presionar la tecla {ENTER}) se queda en el bufer de la entrada estandar para ser procesado por la siguiente iteracion.

Esa siguiente iteracion lo contabiliza como el espacio extra que comentas ya que la funcion isspace retorna verdadero si el caracter es espacio blanco (espacio, tabulador o avance de linea, entre otros).

Para solucionarlo debes descartar el resto de linea, esto es, los caracteres despues del '&'.

Un saludo
1466  Programación / Programación C/C++ / Re: GetCursorPos [C] en: 22 Octubre 2011, 17:19 pm
Puedes empezar revisando la pagina en MSDN: GetCursorPos.

Un saludo
1467  Programación / Programación C/C++ / Re: Presentarme y primera peticion de ayuda!!! en: 22 Octubre 2011, 17:06 pm
Entiendo, lo que haces es verificar que estas metiendo dos valores por teclado, sino te devolveria error, no?
Correcto. La función scanf retorna el numero de conversiones realizadas con exito y que en tu caso deben ser dos. Si no es asi lo indicamos mediante un mensaje y (a falta de algo mejor) terminamos de inmediato el programa.

Un saludo
1468  Programación / Programación C/C++ / Re: GetCursorPos [C] en: 22 Octubre 2011, 16:55 pm
La biblioteca estandar de C no incluye una funcion con ese nombre. Si necesitas ayuda primero debes explicarte de una forma mas clara e indicar el compilador y SO que estas utilizando.

Un saludo
1469  Programación / Programación C/C++ / Re: ayuda con una funcion en c en: 22 Octubre 2011, 15:51 pm
El programa sigue con errores: utilizas gets (no se recomienda), "fflush(stdin)" (tampoco), no llamas a la función (esto ya lo comento darkvidhack) y tratas de utilizar un array de punteros cuando debes utilizar un array.

En la función principal debes utilizar:
Código
  1. int main(void)
  2. {
  3.    char cad1[lim];
  4.    char cad2[lim];
  5.  
  6.    printf("digite cadena 1 ");      
  7.    gets(*cad1);
  8.  
  9.    printf("digite cadena 2");
  10.    gets (*cad2);
  11.  
  12.    /* llamada a la funcion */
  13.  
  14.    return 0;
  15. }

En cuanto a tu función de comparación lo mejor que se puede decir es que tiene varios errores que ya te comentamos mas algunos mas. Si no tienes material de referencia de calidad por favor revisa los temas fijos de estos foros, ahí encontraras a montones.

Un saludo
1470  Programación / Programación C/C++ / Re: Presentarme y primera peticion de ayuda!!! en: 22 Octubre 2011, 15:34 pm
Lo que no entiendo es si es necesario inicializar las variables como lo haces a 0
Depende del caso. No es necesario si lo primero que haces con la variable es asignarle un valor.

En tu programa eso (la asignacion) no es seguro (debido a que depende de la entrada estandar) y por ello es mejor verificar el valor de retorno de la funcion scanf:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int suma_resta(int x, int y, int *pz);
  5.  
  6. int main(void)
  7. {
  8.    int a;
  9.    int b;
  10.    int s;
  11.    int r;
  12.  
  13.    printf("Dame dos enteros: ");
  14.    fflush(stdout);
  15.    if (scanf("%d %d", &a,&b) != 2){
  16.        puts("Entrada no valida!");
  17.        return EXIT_FAILURE;
  18.    }
  19.  
  20.    s = suma_resta(a, b, &r);
  21.    printf("La suma es %d y la resta es %d\n", s, r);
  22.  
  23.    return EXIT_SUCCESS;
  24. }
  25.  
  26. int suma_resta(int x, int y, int *pz)
  27. {
  28.    *pz = x - y;
  29.  
  30.    return x + y;
  31. }

Un saludo
Páginas: 1 ... 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 [147] 148 149 150 151 152 153 154 155 156 157 158 159 160
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines