Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - juligarc10

#1
Hola amigos. Me estoy proponiendo deshabilitar algunos servicios que pueden ser prescindibles en mi debian, pero no acabo de comprender bien como funcionan y en que se diferencian los flags --reverse, --before, --after, --all.
No acabo de captar bien los matices que los diferencia, a pesar de haber googleado bastante, no acabo de enterarme. ¿Alguien podría explicarmelo? Gracias, un saludo.
#2
Hola a todos.

Tengo un problema que necesito solucionar cuanto antes. Tras reiniciar ubuntu version 20.04, me deja meter la contraseña de mi usuario con total normalidad, y cuando va a cargar el escritorio, se inicia normalmente, todo carga, pero el ratón y teclado no responden. ¿Alguien sabe por qué puede ser?

Muchas gracias de antemano. Un saludo.
#3
Hola amigos. Estoy haciendo una shell en c como ejercicio práctico. Estaba implementando el equivalente a "cd" en la shell de linux. Funciona de maravilla, exceptuando que si tu quieres retroceder un directorio poniendo "cd ..", lo que sucede es que retrocede dos directorios, es decir... Si estás en /home/usario/Escritorio, te lleva a /home.

La función es esta, aunque no creo que esté mal. Sabéis como se puede solucionar?

void cddir(char *tr) {
    if(chdir(tr)==0) {
        chdir(tr);
    } else {
        printf("%s %s\n", "No existe el directorio: ", tr);
    }
}


Gracias.
#4
Hola amigos, estoy tratando de hacer una función que trocea una cadena, y la separa en los espacios, guardando cada palabra en una fila de la matriz. Para eso la paso por referencia (es decir, con un puntero) a la función trocear(), que ya he comprobado que funciona. Mi problema es que una vez que trocea, y en teoría se modifican los datos, no sé como acceder a los datos guardados. Paso código.

int trocear(char * cadena, char * trozos[])
{
        int i=1;
if ((trozos[0]=strtok(cadena," \n\t"))==NULL){
return 0;
//printf("%s\n", trozos[0]);
}
while ((trozos[i]=strtok(NULL," \n\t"))!=NULL){
//printf("%s\n", trozos[i]);
i++;
}
return i;
}

/*****************************************************************/

void procesarEntrada(char entrada[]){
char trozos[10][10];
//char *tr;
char *tr;
tr = trozos[0];
trocear(entrada, &tr);
}


Gracias de antemano. Un saludo.



MOD: Etiquetas de código GeSHi adaptadas a lenguaje C
#5
Hola gente. Estoy realizando un pequeño proyecto en el cual pretendo imitar un shell, y en este caso estoy diseñando una función que haga lo mismo que el 'ls -li' del shell de Linux. Esta entre otras cosas me debe de mostrar los permisos del archivo. Para ello uso una función, a la cual se le pasa por parámetro un mode_t, y me tendría que devolver un puntero de tipo char (string).
Al intentar compilar el proyecto me da un error de 'conflicting types for 'ConvierteModo2''.
Las librerías necesarias las tengo todas importadas, y he probado a hacerlo de forma chapuza, y no modularizada, y así funciona. De aquí saco como conclusión que el problema viene de que no me lee bien el mode_t pasado por parámetro, o bien que el hecho de que me devuelva un puntero a un char falle en algún punto...

Este es el código:

else if (strcmp( entrada,"info")==0) {
        char *permiso;
        char path[]="/home/julian/Escritorio/a.out";
        permiso=(char *) malloc (12);
        struct stat a;
        stat(/*trim(tr[1])*/path, &a);
        permiso=ConvierteModo2(a.st_mode);


char *ConvierteModo2 (mode_t m) {
    static char permisos[12];
    strcpy (permisos,"---------- ");
    permisos[0]=TipoFichero(m);
    if (m&S_IRUSR) permisos[1]='r';  /*propietario*/
    if (m&S_IWUSR) permisos[2]='w';
    if (m&S_IXUSR) permisos[3]='x';
    if (m&S_IRGRP) permisos[4]='r';   /*grupo*/
    if (m&S_IWGRP) permisos[5]='w';
    if (m&S_IXGRP) permisos[6]='x';
    if (m&S_IROTH) permisos[7]='r';   /*resto*/
    if (m&S_IWOTH) permisos[8]='w';
    if (m&S_IXOTH) permisos[9]='x';
    if (m&S_ISUID) permisos[3]='s';  /*setuid, setgid y stickybit*/
    if (m&S_ISGID) permisos[6]='s';
    if (m&S_ISVTX) permisos[9]='t';
    return (permisos);
}


Alguien podría echarme una mano? Gracias de antemano.
#6
Hardware / No puedo entrar en la BIOS
7 Octubre 2019, 18:24 PM
Hola amigos, mi gran problema es que no puedo entrar en la BIOS de un ordenador antiguo que tenía (2006 aprox). Quiero instalarle linux, y no puedo.
He probado a resetear la BIOS y no ha dado solución, entre otras cosas.
En el caso de mi pc, para entrar en la bios, hay que pulsar la tecla DEL, pero cuando la pulsas, no te abre la bios, sino el administrador de arranque de Windows, (un poco extraño), con la única opción de seleccionar mi Windows 7.
He probado cambiar la pila del pc, quitarsela durante un tiempo y cosas varias... Nada sirvió hasta ahora.
Tambien he intentado instalar linux desde el boot menu, pero no detecta mi pen con ninguna de las opciones que este menu me ofrece.
Ojalá sepan como solucionar esto. Gracias de antemano y un saludo.
#7
Hola amigos, estoy realizando un pequeño proyecto para el cual necesito saber como cambiar el directorio actual desde C. Por mucho que he googleado, no he encontrado nada. Sería como un "cd" del terminal, pero en C. Alguien tiene idea? Gracias. Un saludo.
#8
Programación C/C++ / Array de punteros en C
1 Octubre 2019, 12:30 PM
Hola amigos, estoy diseñando un pequeño programa en C, que tiene varios comandos sencillos.
No hay ningún problema con ninguno de ellos, excepto con uno, que tiene devolverme los comandos que se han introducido por teclado históricamente. Sería valga la redundancia, como una especie de historial. Pero ojo, debe almacenar tanto los comandos que existen en el programa, como los que no existen y se meten erróneamente por por teclado.
Esto lo quiero resolver con un array de punteros, de forma que cada vez que se introduzca algo por teclado, de manera que con cada vez que se introduzca algo diferente, un nuevo puntero del array apunte a la direccion de memoria de ese comando.
Mi problema es que no se como hacer nada de punteros, ni de array de punteros. Alguien podría echarme una mano y explicarme como sería el procedimiento?
#9
 Hola amigos, estoy haciendo una función para calcular polímeros, básicamente lo que hace el programa es que si hay dos letras consecutivas que son la misma, una mayúscula y la otra minúscula, se eliminan las dos, y se ejecuta hasta que ya no queden casos como esos. Un ejemplo: AbCcBD--->AbBD--->AD.
El problema es que al declarar una variable para que me almacene la longitud del string que contiene la cadena con la que se va a trabajar, haciendo un test, en algún caso, me indica que ahí hay un NullPointerException. Aquí os dejo el código.

public static String processPolymer(String polymer) {
        int longitud=polymer.length();
        //String toret=polymer;
        boolean acabado=false;
        //if(polymer.length()>1){
        while (acabado==false){
            acabado=true;
            //int longitud=polymer.length();
            for(int i=0;i<longitud-1;i++){
                char a=polymer.charAt(i);
                char b=polymer.charAt(i+1);
               
                if((Character.isUpperCase(a)&&Character.isLowerCase(b)) || (Character.isUpperCase(b)&&Character.isLowerCase(a))){
                    if(Character.toUpperCase(a)==Character.toUpperCase(b)){
                        acabado=false;
                        String prim=Character.toString(a);
                        String seg=Character.toString(b);
                        polymer=polymer.replace(prim+seg,"");
                        longitud=polymer.length();
                    }
                }
            }
            polymer=polymer.trim();
            //System.out.println(polymer);
        }
        //}
        return polymer;
    }


Muchas gracias amigos, un saludo.
#10
Hola amigos, estoy realizando un pequeño ejercicio donde intento comprobar si una matriz cualquiera es cuadrada, es decir, que tiene tantas filas como columnas. Para ello he diseñado un algoritmo, pero al ejecutarlo me da esa excepción. No consigo ver en que momento me salgo fuera del array. Aquí les dejo el código:

public  static  boolean  isSquare(int [][] a) {
        boolean cuadrado=true;
        int p=0;
        while(cuadrado==true&&p<=a.length){
            if(a[p].length==a.length){
                p++;
            }
            else{
                cuadrado=false;
            }
        }
        return cuadrado; 
    }


Gracias de antemano
#11
Hola amigos, estoy intentando generar números aleatorios entre el 0 y el 27 (estos incluídos), pero quiero que cada vez que llame al método para generarlos, que genere uno distinto. En realidad el fin de generar numeros aleatorios, es para devolver objetos aleatorios, los cuales están creados en otra parte del código. Aquí les dejo mi código:

public Ficha darFicha(){
Random aleatorio = new Random(System.currentTimeMillis());
        // Producir nuevo int aleatorio entre 0 y 27
        int intAleatorio = aleatorio.nextInt(27);

        // Refrescar datos aleatorios, pero no me esta funcionando, o eso creo
        aleatorio.setSeed(System.currentTimeMillis());
       
//      Esto es parte del programa, para generar objetos aleatorios
        Ficha toret=new Ficha(0,0);
        toret=fichas[intAleatorio];
        return toret;
}

Gracias, y un saludo de antemano.
#12
Hola amigos,

Tengo un problema, ya que estoy intentando mostrar una serie de objetos los cuales tienen su propio toString(), pero basándome en una condición de estos, dependiendo de si tienen un tipo determinado de un enumerado.
Al hacer la comparación con un if, me da error, y me muestra incomparable types: contrato[] and contrato. Aquí les dejo el código.

package bloque1_2;
import java.util.Scanner;
/**
*
* @author Admin
*/
public class Empresa {
    private Empleado[] empleados;
    private int numEmpleados;
   
    public Empresa(int maxEmpleados){
        empleados=new Empleado [maxEmpleados];
        numEmpleados=0;
                }
    @Override
    public String toString(){
        Scanner entrada=new Scanner(System.in);
        Empleado.Contrato contrato= Empleado.Contrato.FORMACION;
        for(int i=0;i<Empleado.Contrato.values().length;i++){
            System.out.println("Introduzca "+i+" si quiere mostrar los empleados de tipo "+ Empleado.Contrato.values()[i]);
        }
        int opcion=Integer.parseInt(entrada.nextLine());
        contrato=Empleado.Contrato.values()[opcion];
        for (int j=0;j<numEmpleados;j++){
            if(empleados[j].Contrato.values()==contrato){
               
           
            }
        }
    }
}


Este último if es el que me da error.

Gracias de antemano y un saludo.
#13
Hola amigos, no entiendo por que me da este error en el codigo. Una ayudita por favor.

package IU;



/**
*
* @author AEDI
*/
public class Domino {
        private static int numJugadores=0;
        private static String [] Jugadores=new String [numJugadores];
   
    public static void inicioPartida() {
numJugadores=ES.pideNumero("Cuantos jugadores participaran en la partida? ");
                for (int i=0;i<numJugadores;i++){
                    Jugadores[i]=ES.pideCadena("Introduzca el nombre del jugador numero "+ i+" " );
                }
         

}
   
}
#14
Java / illegal forward reference
5 Marzo 2019, 13:47 PM
Hola amigos, tengo un código con un array que almacena objetos de otra clase. Este array tiene que ser estático para ir asociando cada objeto a su correspondiente posición en el array. Pero cuando declaro que el array es estático me da el error illegal forward reference. No se como solucionarlo. Aquí el código:


package IU;
import core.Jugador;

public class Domino {
   
   
    public static Jugador []njugadores=new Jugador[jugadores];
    private static int jugadores;
   
    public static void inicioPartida() {
        jugadores=ES.pideNumero("¿Cuántas personas jugaran?");

        for(int i=0;i<jugadores;i++){
            String nombre=ES.pideCadena("Introduzca el nombre del jugador");
            Jugador juga=new Jugador(nombre, 0, 0);
            njugadores[i]=juga;
        }
}
   
}


Hay varias clases implementadas, entre ellas, la clase jugador, la cual importo previamente en esta.
#15
Java / varios try catch en un mismo código
19 Febrero 2019, 11:43 AM
Hola amigos. Tengo un problema.
Estoy intentando diseñar un código en el cual se recojan las exceptiones con try catch, pero a la vez que las recojo, si estas excepciones aparecen, deberá de pedirse otra vez el código con un do while hasta que lo introducido sea correcto. Me explico:

do{
            try{
        System.out.print("Nombre del cliente ");
        if (c.getNombre().length() > 0) {
            System.out.print("[" + c.getNombre() + "]");
        }
       
       
        System.out.print(": ");
        info = teclado.nextLine().trim();
        if (info.length()<=0||isNumeric(info)==true){
            throw new Exception("Debe introducir un nombre");
        }
       
            }catch(Exception exc){
                System.err.println( "ERROR:\n "+exc.getMessage());
            }
        }while(info.length()<=0||isNumeric(info)==true);

        if (info.length() > 0) {
            c.setNombre(info);
        }

        // D.N.I.
        do{
        try{
        System.out.print("D.N.I. del cliente ");
        if (c.getDni().length() > 0) {
            System.out.print("[" + c.getDni() + "]");
        }
        System.out.print(": ");
        info = teclado.nextLine().trim();
        if (info.length()<=0||isNumeric(info)==false){
            throw new Exception("Debe introducir un dni");
        }
        }catch(Exception e){
            System.err.println("ERROR:\n "+e.getMessage());
        }
        if (info.length() > 0) {
            c.setDni(info);
        }
        while(info.length()<=0||isNumeric(info)==false);

       


Mi idea es hacerlo realizando varios try, cada uno dentro de su do/while. No se me ocurre otra manera de hacerlo más óptimo. ¿La hay?
El otro problema es que el código, haciéndolo de esta manera no me funciona. Las excepciones las recoge bien, pero una vez le metes un código que en teoría es válido, lanza una excepcion llamada "java.lang.RuntimeException: Uncompilable source code".
El tema es que si yo solo tengo habilitado un try catch, el código si funciona perfectamente, así:
// Nombre
        do{
            try{
        System.out.print("Nombre del cliente ");
        if (c.getNombre().length() > 0) {
            System.out.print("[" + c.getNombre() + "]");
        }
       
       
        System.out.print(": ");
        info = teclado.nextLine().trim();
        if (info.length()<=0||isNumeric(info)==true){
            throw new Exception("Debe introducir un nombre");
        }
       
            }catch(Exception exc){
                System.err.println( "ERROR:\n "+exc.getMessage());
            }
        }while(info.length()<=0||isNumeric(info)==true);

        if (info.length() > 0) {
            c.setNombre(info);
        }

        // D.N.I.
        /*do{
        try{
        System.out.print("D.N.I. del cliente ");
        if (c.getDni().length() > 0) {
            System.out.print("[" + c.getDni() + "]");
        }
        System.out.print(": ");
        info = teclado.nextLine().trim();
        if (info.length()<=0||isNumeric(info)==false){
            throw new Exception("Debe introducir un dni");
        }
        }catch(Exception e){
            System.err.println("ERROR:\n "+e.getMessage());
        }
        if (info.length() > 0) {
            c.setDni(info);
        }
        while(info.length()<=0||isNumeric(info)==false);*/


¿Alguna idea gente? Gracias de antemano, y un saludo.
#16
Java / Problema con clases y objetos en Java.
30 Enero 2019, 17:55 PM
Hola amigos. Les pido ayuda porque estoy intentando hacer un ejercicio en Java, usando el programa NetBeans. El único error aparente que hay es que al importar la clase, el programa me dice "Import from the same package". El programa consiste en que hay una clase que es un Polígono regular. El ejercicio persigue que se nos devuelva el valor de sus angulos (todos será iguales ya que es regular), según el numero de lados que le introduzcas. Aquí os dejo el código. Gracias.

Esta es la parte principal del programa.

package ejercicio4;
import ejercicio4.Poligono;

public class Ejercicio4 {

   
    public static void main(String[] args) {
        Poligono poli=new Poligono (4);
        System.out.println("La medida de los ángulos de este polígono regular es "+poli.getAngulo());
       
    }
   
}


Esta es la clase del Polígono.


package ejercicio4;


public class Poligono {
    private int numLados;
    private int angulo;
   
   
    public Poligono(int x){
    numLados=x;
    }
   
    public void calcularAngulo(int numLados){
        angulo=(360/numLados);
    }
    public int getAngulo(){
        return angulo;
    }
}




Muchas gracias a todos. Un saludo.
#17
Programación C/C++ / Programa no entra en el if
12 Diciembre 2018, 22:12 PM
Hola amigos.

Tengo un pequeño problema. Tenía un programa que funcionaba, y cerré el ordenador y dejó de funcionar, no se por que. Quizás toqué algo y no me di cuenta. De todas formas, por mucho que miro el código no consigo ver el error. De hecho el código compila, pero no entra dentro del primer if, por mucho que la condición se cumpla. Aquí les dejo el código.

int menu3(){//menu asociado a la funcion de modificar los datos//
{
        int opcion3;
cout <<"¿Que desea modificar?";//no he incluído la fecha ya que cuando alguien va a modificar sus datos, es porque ya está dado de alta, entonces la fecha no es un dato que se pueda modificar//
    do{
    cout <<"\n1. Nombre";
    cout << "\n2. DNI";
    cout << "\n3. Domicilio";
    cout << "\n4. Numero de cuenta";
    cout << "\n5. Tipo de cuenta";
    cout << "<\n6. Salir";
    opcion3=leerEntero ("\nOpcion: ");
    }while (opcion3<1 || opcion3>6);

    return opcion3;
    }
}
setClientes modificarDatos(setClientes variosClientes){
    int menu3();
    bool x=true;
    char comparacionDNI[10];
    char t[7]="ahorro";
    char p[10]="corriente";
    int longitud=9, longitud1=10, opcion3;
    int n=variosClientes.numClientes, i=0;
    leerCadena("Introduzca el DNI del cliente que desea modificar ", comparacionDNI);
    for (i=0;i<n;i++){
        if (strcmp(variosClientes.Clientes[i].DNI, comparacionDNI)==0){
            cout<<"El cliente cuyos datos desea modificar es "<<variosClientes.Clientes[i].nombre<<endl;
            opcion3=menu3();
            switch(opcion3){
            case 1:
                leerCadena("Nombre\n",variosClientes.Clientes[i].nombre);
                return (variosClientes);
                x=false;
                break;
            case 2:
                do {leerCadena("DNI\n", variosClientes.Clientes[i].DNI);
                }while (longitud!=strlen(variosClientes.Clientes[i].DNI));
                return (variosClientes);
                x=false;
                break;
            case 3:
                leerCadena("domicilio\n", variosClientes.Clientes[i].domicilio);
                return (variosClientes);
                x=false;
                break;
            case 4:
                do {leerCadena("NumCuenta\n", variosClientes.Clientes[i].numCuenta);
                }while (longitud1!=strlen(variosClientes.Clientes[i].numCuenta));
                return (variosClientes);
                break;
            case 5:
                do{leerCadena("tipoCuenta\n", variosClientes.Clientes[i].tipoCuenta);
                }while ((strcmp(variosClientes.Clientes[i].tipoCuenta, p)!=0)&&(strcmp(variosClientes.Clientes[i].tipoCuenta, t)!=0));
                return (variosClientes);
                x=false;
                break;
            }}

        else if ((strcmp(variosClientes.Clientes[i].DNI, comparacionDNI)!=0)&&(x==true)){
            cout<<"El cliente insertado no se encuentra en nuestros datos"<<endl;
            return (variosClientes);
        }
}
}


Un saludo y gracias.

P.D.: Cabe mencionar que no es un programa completo, sólo una función del programa.
#18
Programación C/C++ / restricción de fecha enc++
10 Diciembre 2018, 17:43 PM
Hola amigos.

Necesito ayudar urgente, ya que non consigo que esta parte del programa me funcione. Esta parte del programa intenta hacer que por ejemplo en año bisiesto te permita introducir hasta 29 dias, pero en año no bisiesto hasta 28. O por ejemplo que si metes la fecha 2/13/2018 te vuelva a pedir la fecha; entre otras cosas... El problema es que no cumple su función tal y como debería, por ejemplo si introduces la fecha 31/4/2000, el programa creee que es valida, cuando no debería. Echenle un vistazo por favor. Aqui les dejo la parte del codigo que falla. El codigo compila. Un saludo.

do{variosClientes.Clientes[variosClientes.numClientes].fecha.dia=leerEntero("Fecha\n dia");
    variosClientes.Clientes[variosClientes.numClientes].fecha.mes=leerEntero("Fecha\n mes");
    variosClientes.Clientes[variosClientes.numClientes].fecha.anho=leerEntero("Fecha\n anho");
    a=variosClientes.Clientes[variosClientes.numClientes].fecha.anho;
    b=variosClientes.Clientes[variosClientes.numClientes].fecha.mes;
    c=variosClientes.Clientes[variosClientes.numClientes].fecha.anho;
if ((a % 4 == 0) && (a % 100 != 0 || a % 400 == 0)&&(b==2)&&((a>29)||(a<1))){ //febrero en año bisiesto
        x=true;
        break;}
    if ((b==1||b==3||b==5||b==7||b==8||b==10||b==12)&&(a>31||a<1)){ //meses con 31 dias
        x=true;
        break;}
    if ((b==4||b==6||b==9||b==11)&&(a>30||a<0)){ //meses con 30 dias
        x=true;
        break;}
    if (b<1||b>12){ //meses inexistente
        x=true;
        break;}
    if ((b==2)&&(a<1||a>28)&&(a % 4 != 0)){//febrero en año no bisiesto
        x=true;
        break;}
}while (x);
#19
Hola a todos.

He estado haciendo este programa, y lo que pretendo conseguir con esta porcion de codigo, es que al leer una cadena, me la vuelva a pedir siempre y cuando sea distinta de las palabras "ahorro" o "corriente". Aqui os dejo la parte del codigo.

do{leerCadena("tipoCuenta\n", variosClientes.Clientes[variosClientes.numClientes].tipoCuenta);
    }while (strcmp(variosClientes.Clientes[variosClientes.numClientes].tipoCuenta, ("corriente"||"ahorro"))!=0);


El error que le programa me dice que da es:  cannot convert 'bool' to 'const char*' for argument '2' to 'int strcmp(const char*, const char*)'|

No lo entiendo. Gracias.
#20
Hola amigos.

Estoy haciendo un proyecto en el cual debemos hacer un programa de gestion de un banco, y una de las opciones que tenemos que habilitar al programa es para eliminar clientes, yo lo he habilitado para que permita buscar a los clientes por DNI o por Numero de cuenta.
El problema en este codigo, en el cual pretendo comparar la longitud de una cadena con un entero dentro de un if, el programa no lo "coge". Esto se ve en el "case 2", que es donde lo estoy intentando implementar primero (cuando funcione irá en los dos case). Es el if en el cual si se cumple, tendrá que ejecutar el cout<<"Se ha detectado un error en el formato de escritura. Escriba de nuevo: "<<endl;

Por favor, ayuda. Espero que no les resulte mucho problema por tantas variables que hay.

setClientes eliminarClientes (setClientes variosClientes ){
int menu1();
bool x=false;
int n=variosClientes.numClientes,i=0, opcion1;
char comparacionDNI[22];
char comparacionCuenta[22];
    opcion1=menu1();
    switch (opcion1) {
    case 1:
        do{
        x=true;
        leerCadena("Introduzca el DNI\n",comparacionDNI);
        for(int i=0;i<n;i++){
            if (strcmp(variosClientes.Clientes[i].DNI, comparacionDNI)==0){
            cout<<"DNI valido"<<endl;
            x==false;
            for(int j=i;j<n;j++){
                variosClientes.Clientes[j] = variosClientes.Clientes[j+1];
            }break;}
            else if(x==true&&i==(n-1)){
                i++;
                cout<<"Este DNI no existe en nuestros datos"<<endl;
                x==true;
            }
            }}while(x==true);

        break;
    case 2:
        do{
            int t=10, p=0;
            x=true;
        leerCadena("Introduzca el numero de cuenta\n", comparacionCuenta);
        for(int i=0;i<n;i++){
            p=strlen(comparacionCuenta);
            if (p!=t){
                cout<<"Se ha detectado un error en el formato de escritura. Escriba de nuevo: "<<endl;
                }
            else if (strcmp(variosClientes.Clientes[i].numCuenta, comparacionCuenta)==0){
                cout<<"DNI valido"<<endl;
                x==false;
        }
                else if(x=true&&i==n-1){
                    i++;
                    cout<<"Este DNI no existe en nuestros datos"<<endl;
                for(int j=i;j<n;j++){
                    variosClientes.Clientes[j] = variosClientes.Clientes[j+1];
               }}}}
        while(x!=false);
            break;
    }

cout<<"\nEl cliente ha sido eliminado del sistema";
variosClientes.numClientes--;
return variosClientes;
}

#21
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.

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);}
#22
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.