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]
41  Programación / Programación C/C++ / Re: do while actua en bucle continuo en: 4 Diciembre 2018, 14:06 pm
Tu fallo puede estar en esta línea, de hecha en esta línea hay un fallo gordo que suele pasar desapercibido:
Código:
}else if (x=true&&(i==n-1)){

Si te fijas asignas true a x: x=true

Para evitarte esto: cuando se evalúa una variable para C o C++ devuelve false si de alguna forma vale 0 (que valga false, 0, NULL, '\0'), para todo lo demás vale true.

Todo esto viene a decir que lo podrías haber escrito:
Código:
}else if (x && (i==n-1)){

Hola. He probado a hacer lo que me has dicho, en el else if, y no ha dado resultado. El codigo compila, pero sigue funcionando igual que antes. El código ha quedado así.
Código:
setClientes buscarCuenta(setClientes variosClientes){
    bool x=true;
    char comparacionCuenta[11];
    int n=variosClientes.numClientes, i=0;
    do{
    leerCadena("Introduzca la cuenta del cliente que desea buscar ", comparacionCuenta);
    for (i=0;i<n;i++){
            if (strcmp(variosClientes.Clientes[i].numCuenta, comparacionCuenta)==0){
                    x==false;
                    cout<<"La cuenta que ha introducido se corresponde con el cliente "<<variosClientes.Clientes[i].nombre<<endl;
                    cout<< "Sus datos son..."<<endl;
                    cout << "\nCliente : " << i;
            mostrarCliente( variosClientes.Clientes[ i ] );
                    }
            else if (x &&(i==n-1)){
                    cout<< "La cuenta no es valida"<<endl;}}
    }while (x);
return(variosClientes);
}

Lo que parece pasar es que el
Código:
x==false;
que está dentro del if, parece que no lo tiene en cuenta, y que al llegar al
Código:
while(x);
, la x tiene el valor de true, cuando en realidad, cumpliendose el if, debería tener valor false.

Gracias. Un saludo.
42  Programación / Programación C/C++ / do while actua en bucle continuo en: 3 Diciembre 2018, 20:09 pm
Hola.

He estado intentando hacer un ficticio programa de gestión bancaria, donde entre una serie de "clientes" (ya introducidos en el programa) deben de poder ser localizados por su DNI. El principal problema es que aunque el DNI introducido sea correcto el programa no para de pedirme el DNI de nuevo. Aquí les dejo la porción del código. El programa compila perfectamente. Gracias.

Código:
setClientes buscarDNI(setClientes variosClientes){
    bool x=true;
    char comparacionDNI[10];
    int n=variosClientes.numClientes, i=0;
    do{
        x=true;
    leerCadena("Introduzca el DNI del cliente que desea buscar ", comparacionDNI);
    for (i=0;i<n;i++){
        if (strcmp(variosClientes.Clientes[i].DNI, comparacionDNI)==0){
            cout<<"El DNI que ha introducido se corresponde con el cliente "<<variosClientes.Clientes[i].nombre<<endl;
            cout<< "Sus datos son..."<<endl;
            cout << "\nCliente : " << i;
        mostrarCliente( variosClientes.Clientes[ i ] );
            x==false;
        }else if (x=true&&(i==n-1)){
                cout<<"El DNI no es valido\n";}
}}while (x!=false);}
43  Programación / Programación C/C++ / Re: Violación de segmento de código en c++ (sin punteros) en: 11 Noviembre 2018, 21:36 pm
¿Y si wiringPiSetup falla?
La función, según cuentan aquí (http://wiringpi.com/reference/setup/) devuelve un valor de retorno indicando si hay error. Deberías usar eso antes de continuar con tu programa.

Hola,

Perdona, no entiendo a que te refieres con "usar eso antes de continuar con tu programa" :o.

44  Programación / Programación C/C++ / Re: Violación de segmento de código en c++ (sin punteros) en: 11 Noviembre 2018, 17:55 pm
- Lo digo porque la Violación de Segmento se da normalmente porque se está haciendo referencia a un lugar que no existe, no se tiene permiso, está fuera del alcance.

- Con el código que has dado, me da a entender de que ese 12 está fuera del alcance. Pero no soy experto ni he tocado un Raspberry  :xD. Solo es lo que me da a entender.

Hola,

Te entiendo, pero normalmente cuando tu especificas un lugar concreto en memoria, estás usando punteros. Yo aquí no los uso. El 12 ese en teoría no tiene nada que ver con la memoria, es simplemente el número que tiene asociado ese determinado pin de la Raspberry, y por el cual le indico a mi programa que ese pin será el que vaya a "emitir" corriente positiva y no cualquier otro, ya que el 12 será al que tendré conectado mi led.
No se si me he explicado o es que soy yo quien no te entiende a ti.  :laugh:

De todas formas muchas gracias.
45  Programación / Programación C/C++ / Re: Violación de segmento de código en c++ (sin punteros) en: 11 Noviembre 2018, 17:48 pm
Sugerencias:

- Escribe aqui el error completo que te aparece, no solo una parte. Tal vez el error completo da más indicios del problema y al recortarlo haces mas difícil adivinar que problema tienes.
- pon el comando que usas para ejecutar tu programa. Lo escondido de esta sugerencia es que leí que tiene que ejecutarse con sudo, y tal vez no lo has hecho así.

Hola,

Estoy ejecutando el programa desde el cmd de raspbian (el sistema operativo que tiene instalado la RPi. Cuando creo el código, lo creo en un "bloc de notas" cuya extensión final es .cpp.
A continuación, cuando quiero compilar el código desde cmd escribo "g++ -Wall -o led led.cpp -lwiringPi" (led es el nombre del archivo bloc de notas". El archivo compila perfectamente, pero cuando lo ejecuto escribiendo en cmd "sudo ./led", la única respuesta que el cmd me da es "Violación de segmento", nada más. No se si así te puedo orientar algo más...

Un saludo y gracias.
46  Programación / Programación C/C++ / Re: Violación de segmento de código en c++ (sin punteros) en: 11 Noviembre 2018, 14:41 pm
Saludos,

- De donde sale ese 12? existe? debes utilizar ese número o quizá algún otro? quizá uno menor ...

Hola,

Si no me equivoco es el pin positivo de la raspberry, al que conecto el led. No se si trabajaron alguna vez con la Raspberry, pero cada pin tiene asignado un número. Lo que no se es si lo he planteado bien, pero el 12 viene de que el pin nº 12 es el que ofrecerá una corriente positiva a mi led. Si buscan en google imagenes "Pines raspberry pi 3" podrán ver el esquema de la raspberry.

Gracias. Saludos.
47  Programación / Programación C/C++ / Violación de segmento de código en c++ (sin punteros) en: 10 Noviembre 2018, 19:15 pm
Buenas tardes a todos. Me estoy iniciando en el mundo de la programación y me he propuesto encender un led con una Raspberry Pi. He diseñado el código ayudándome de algún libro y de internet, pero a pesar de que el código compila, una vez intento ejecutarlo me da un error que dice: Violación de segmento. Aquí os dejo el código, aunque yo no consigo ver el error.

#include <wiringPi.h>

#include <iostream>

int main(void){
wiringPiSetup();
pinMode(12, OUTPUT);
int i=0;
for(i=0;i<10;i++){
digitalWrite(12, HIGH);
delay(500);
digitalWrite(12, LOW);
delay (500);
}
return (0);
}

PD: La librería wiringPi ya la he instalado, creo que el fallo no se debe a eso.

Un saludo, gracias.
Páginas: 1 2 3 4 [5]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines