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


 


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!


  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 ... 112
61  Programación / Programación C/C++ / Re: mostrar en cliente el resultado de execvp de servidor en: 20 Marzo 2018, 19:04
Si muestras tu código podríamos ver donde falla. A lo mejor no es allí y es en otro sitio.
62  Programación / Programación C/C++ / Re: Ayuda funciones con retorno de valor en C en: 20 Marzo 2018, 18:57
En la declaración nombras a la función promTemp, en la llamada la nombras promTemp y en la definición la nombras promTemps ¿ves el error?

Por otra parte, cuando haces un return la función devuelve el control al llamante por lo que el último printf no se va a ejecutar nunca.
63  Programación / Programación C/C++ / Re: ¿Por qué el número que me genera el rand() siempre es el mismo? en: 20 Marzo 2018, 07:09
rand funciona así:
Se tiene un número, al que se llama semilla y sobre este número se le aplica una fórmula matemática para modificarlo, y a la vez darnos un entero.

La fórmula siempre es la misma, así que ante una semilla idéntica siempre devuelve el mismo valor. Al iniciar el programa la semilla tiene un valor definido por la librería, así que siempre se inicia con el mismo. Para solucionar esto se proporciona srand, que cambia la semilla al valor que se le pasa como argumento.
64  Programación / Programación C/C++ / Re: ¿Qué lenguaje me permite contar submúltiplos de segundo? en: 19 Marzo 2018, 17:35
Con clock() de C. Devuelve cuando ticks han pasado desde el inicio del programa. En un segundo hay CLOCKS_PER_SEC ticks.
65  Programación / Programación C/C++ / Re: Contador de palabras en: 18 Marzo 2018, 19:23
Ya tienes una función de librería que hace eso: strstr.

Algo así:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main() {
  5.    int iCont = 0;
  6.    char cPacman[] = "Hola :v Hola :v Adios :v Adios :v:v:v:v";
  7.    char cPalabra[] = ":v";
  8.    char *aux = cPacman;
  9.  
  10.    while(aux = strstr(aux, cPalabra)) {
  11.        ++iCont;
  12.        aux += strlen(cPalabra); // Para que no me cuente siempre el mismo
  13.                                 // texto muevo aux al final de la palabra encontrada.
  14.    }
  15.  
  16.    printf("El pacman se repite %d", iCont);
  17. }
66  Programación / Programación C/C++ / Re: se busca solucion c++ en: 17 Marzo 2018, 01:39
Pon una muestra del archivo de datos.
67  Programación / Programación C/C++ / Re: array en: 15 Marzo 2018, 12:22
Ok, suerte!  :D
68  Programación / Programación C/C++ / Re: Ayuda con un programa. en: 15 Marzo 2018, 00:35
Apuesto a que no te va a funcionar por diámetro.
69  Programación / Programación C/C++ / Re: Nodos de una lista simple encadenada y dos punteros en: 15 Marzo 2018, 00:30
Pues así como está no.
Tu hace dos cosas:
Declara L1 como Lista.
Define L2 como Lista de tamaño nodo.
70  Programación / Programación C/C++ / Re: Cajero automatico en: 13 Marzo 2018, 23:23
No soy de C++, lo he visto de pincelada, lo mio es el C.

Pero a mi modo de ver el cliente solo debería guardar su saldo, aumentarlo o disminuirlo. Para más seguridad estas deberían ser incluso operaciones privadas a las que no se pudieran acceder desde ningún lugar, solo desde el cajero. Deberían ser funciones amigas.

El encargado de ingresar, retirar o ver el capital del cliente es el cajero y de éste dependen las reglas para hacerlo. Por ejemplo: si se intenta sacar más del capital que hay la operación falla.

Algo así:
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Cliente{
  5. public:
  6.    Cliente() {
  7.        capital = 0;
  8.    }
  9.  
  10.    double obtenerCapital() {
  11.        return capital;
  12.    }
  13.  
  14.    void ingreso(double cantidad) {
  15.        capital += cantidad;
  16.    }
  17.  
  18.    void retiro(double cantidad) {
  19.        capital -= cantidad;
  20.    }
  21.  
  22. private:
  23.    double capital;
  24. };
  25.  
  26. class Cajero {
  27. public:
  28.    Cajero() {
  29.        _cliente = NULL;
  30.    }
  31.  
  32.    void nuevoCliente(Cliente &cliente) {
  33.        _cliente = &cliente;
  34.    }
  35.  
  36. #define SI_HAY_CLIENTE() if(!_cliente) { \
  37.     cout << "No hay un cliente definido para realizar esta accion." << endl; \
  38.     return; } else ;
  39.  
  40. #define SI_TIENE_PERMISO(permiso, mensajeError) if(!permiso) { \
  41.     cout << "Operacion denegada.\nRazon: " << mensajeError << "\n" << endl; \
  42.     return; } else ;
  43.  
  44.    void ingreso(double cantidad) {
  45.        bool permiso = true;
  46.        string razon = "";
  47.  
  48.        SI_HAY_CLIENTE() {
  49.            // Condiciones que permiten el ingreso. Si no es posible
  50.            // hacer permiso false y rellenar la razón
  51.  
  52.            SI_TIENE_PERMISO(permiso, razon) {
  53.                _cliente->ingreso(cantidad);
  54.                cout << "Ingresados " << cantidad << " creditos.\n" << endl;
  55.            }
  56.        }
  57.    }
  58.  
  59.    void retiro(double cantidad) {
  60.        bool permiso = true;
  61.        string razon = "";
  62.  
  63.        SI_HAY_CLIENTE() {
  64.            // Condiciones que permiten el retiro. Si no es posible
  65.            // hacer permiso false y rellenar la razón
  66.            // Un ejemplo sería que no hubiera suficiente capital
  67.  
  68.            if(cantidad > _cliente->obtenerCapital()) {
  69.                permiso = false;
  70.                razon = "No hay capital suficiente para realizar esta operacion.";
  71.            }
  72.  
  73.            SI_TIENE_PERMISO(permiso, razon) {
  74.                _cliente->retiro(cantidad);
  75.                cout << "Retirados " << cantidad << " creditos de la cuenta.\n" << endl;
  76.            }
  77.        }
  78.    }
  79.  
  80.    void obtenerCapital() {
  81.        SI_HAY_CLIENTE()
  82.            cout << "Capital actual: " << _cliente->obtenerCapital() << " creditos.\n" << endl;
  83.    }
  84.  
  85. #undef SI_TIENE_PERMISO
  86. #undef HAY_CLIENTE
  87.  
  88.    void cerrarCliente() {
  89.        _cliente = NULL;
  90.    }
  91.  
  92. private:
  93.    Cliente *_cliente;
  94. };
  95.  
  96. int main() {
  97.    Cliente p1;
  98.    Cajero cajero;
  99.  
  100.    cajero.nuevoCliente(p1);
  101.  
  102.    cajero.ingreso(2000);
  103.    cajero.retiro(500);
  104.    cajero.obtenerCapital();
  105.    cajero.ingreso(100);
  106.    cajero.obtenerCapital();
  107.    cajero.retiro(3000);
  108.    cajero.obtenerCapital();
  109.    cajero.cerrarCliente();
  110.    cajero.obtenerCapital();
  111.  
  112.    return 0;
  113. }
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 112
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines