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ú

Mensajes - LGG

#1
¿¿¿Como se hace para que un array formado a partir de otros, y ordenado de forma creciente, no tenga ningún valor repetido???

El ejercicio es el siguiente:

"Escribir un programa al que se le dé como entrada dos arrays de enteros
ordenados de forma creciente, y devuelva como salida un array ordenado de
forma creciente formado por los elementos de las entradas y sin incluir los elementos repetidos."


Éste es el código que tengo hasta ahora, pero se me repiten los valores:


#include <iostream>
#include <stdlib.h>
#include <string.h>

using namespace std;

int main()
{
int V1[100],V2[100],V3[200];
int n1,n2,n3,i,j,k,l;

cout<<"Ingrese la dimension del vector 1: "<<endl;
cin>>n1;
cout<<endl;
cout<<"Ingrese los elementos del vector 1: "<<endl;
for(i=0;i<n1;i++){
cin>>V1[i];
}

cout<<endl;
cout<<"Ingrese la dimension del vector 2: ";
cin>>n2;
cout<<endl; 
cout<<"Ingrese los elementos del vector 2: "<<endl;
for(i=0;i<n2;i++){
    cin>>V2[i];
}

j=0;//indice para el primer vector
k=0;//indice para el segundo vector
l=0;//indice para el tercer vector

while ((j<n1)&&(k<n2)){
      if(V1[j]<V2[k]){
           V3[l]=V1[j];     
           j++;
      }
      else{
           V3[l]=V2[k];
           k++;
      }
           l++;

 
for(i=j;i<n1;i++){
       V3[l]=V1[i];
       l++;
}

for(i=k;i<n2;i++){
       V3[l]=V2[i];
       l++;
}

n3=l;// tamaño del vector tres
cout<<endl;
cout<<"El Vector 3 es: "<<endl;
cout<<endl;
for(i=0;i<n3;i++){
     cout<<"|"<<V3[i];
}
cout<<"|"<<endl;

cout<<endl;
system("pause"); 
return 0;
}



Si saben cómo, me haríais un gran favor! Gracias

LGG
#2
Programación C/C++ / Re: Programa NIF
3 Mayo 2015, 16:15 PM
Muchas gracias, ya lo he arreglado y me ha salido bien!!!

He cambiado un par de cosas más, éste es el resultado del código:


#include <stdlib.h>
#include <iostream>
#include "Nif.h"

using namespace std;

int main(){

    Nif p
    ;
    char resp;

do{
   
    p.Leer();

    p.show();
   
    cout<<endl;
    cout<<"Quieres introducir otro numero? si<s> no<n>"<<endl;
    cin>>resp;
   
}while(resp=='s');
   
system("pause");
return 0;
}





#ifndef NIF_H
#define NIF_H
#include <iostream>

using namespace std;

class Nif
{
private:
    long int dni;
    char letra;
    void letra_dni();
   
public:
   
    Nif(){dni=0;}
    Nif(long int d){dni=d;letra_dni();}
    ~Nif(){cout<<"Destructor invocado.\n";};
   
    void setDni(long int d){dni=d;letra_dni();}
    long int getDni()const {return dni;}
   
    void Leer();
    void show();

};

#endif



#include "Nif.h"


using namespace std;


void Nif::Leer(){ 
   cout<<endl;
   cout<<"Introduzca el numero del DNI(8 car):  "<<endl;
   cin>>dni;
   
   letra_dni();
}

void Nif::letra_dni(){
int resto;
resto=dni%23;

switch(resto){
    case 0:
    letra='T';
    break;
    case 1:
        letra='R';
    break;
    case 2:
        letra='W';
    break;
case 3:
        letra='A';
    break;
       case 4:
        letra='G';
    break;
        case 5:
        letra='M';
    break;
        case 6:
        letra='Y';
    break;
case 7:
        letra='F';
    break;
case 8:
        letra='P';
    break;
case 9:
        letra='D';
    break;
case 10:
        letra='X';
    break;
case 11:
        letra='B';
    break;
case 12:
        letra='N';
    break;
case 13:
        letra='J';
    break;
case 14:
        letra='Z';
    break;
case 15:
        letra='S';
    break;
case 16:
        letra='Q';
    break;
case 17:
        letra='V';
    break;
case 18:
        letra='H';
    break;
case 19:
        letra='L';
    break;
case 20:
        letra='C';
    break;
case 21:
        letra='K';
    break;
case 22:
        letra='E';
    break;
    }
}

void Nif::show(){
    cout<<"-------------------------------------------"<<endl;
    cout<<endl;
    cout<<"La letra correspondiente a tu DNI es: "<<letra<<endl;
    cout<<endl;
    cout<<"El NIF es: " <<dni<<"-"<<letra<<endl;
    cout<<endl;
    cout<<"-------------------------------------------"<<endl;
    cout<<endl;
}
#3
Programación C/C++ / Re: Programa NIF
3 Mayo 2015, 01:02 AM
Ya he modificado todo lo que me has dicho.. y aun no me sale bien.

De momento el código me ha quedado así:


1r archivo
Guardado como: "main.cpp"


#include <stdlib.h>
#include <iostream>
#include "Nif.h"

using namespace std;

int main(){

    Nif p
    ;
    char l, resp;
    long int d;

    p.setDni(d);

do{
    p.Leer(d);
   
    p.letra_dni(d,l);

    p.show();
   
    cout<<endl;
    cout<<"Quieres introducir otro numero? si<s> no<n>"<<endl;
    cin>>resp;

}while(resp=='s');
   
system("pause");
return 0;
}


2o archivo
Guardado como: "Nif.h"


#ifndef NIF_H
#define NIF_H
#include <iostream>

using namespace std;

class Nif
{
private:
   long int dni;
   char letra;
   
public:
   
   Nif(){dni=0; letra='nada';}
   Nif(long int d, char l){dni=d; letra=l;}
   ~Nif(){cout<<"Destructor invocado.\n";};
   
   void setDni(long int d){dni=d;}
     
   long int getDni()const {return dni;}
   char getLetra()const {return letra;}
   
   void Leer(long int d);
   void letra_dni(long int d, char l);
   void show();

};

#endif


3r archivo
Guardado como: "Nif.cpp"


#include "Nif.h"


using namespace std;


void Nif::Leer(long int dni){ 
   cout<<endl;
   cout<<"Introduzca el numero del DNI(8 car):  "<<endl;
   cin>>dni;
   
}

void Nif::letra_dni(long int dni, char letra){
int resto;
resto=dni%23;
switch(resto){
    case 0:
        letra='T';
    break;
    case 1:
        letra='R';
    break;
    case 2:
        letra='W';
    break;
case 3:
        letra='A';
    break;
case 4:
        letra='G';
    break;
case 5:
        letra='M';
    break;
case 6:
        letra='Y';
    break;
case 7:
        letra='F';
    break;
case 8:
        letra='P';
    break;
case 9:
        letra='D';
    break;
case 10:
        letra='X';
    break;
case 11:
        letra='B';
    break;
case 12:
        letra='N';
    break;
case 13:
        letra='J';
    break;
case 14:
        letra='Z';
    break;
case 15:
        letra='S';
    break;
case 16:
        letra='Q';
    break;
case 17:
        letra='V';
    break;
case 18:
        letra='H';
    break;
case 19:
        letra='L';
    break;
case 20:
        letra='C';
    break;
case 21:
        letra='K';
    break;
case 22:
        letra='E';
    break;
    }
}

void Nif::show(){
    cout<<"-------------------------------------------"<<endl;
    cout<<endl;
    cout<<"La letra correspondiente a tu DNI es: <"<<getLetra()<<endl;
    cout<<endl;
    cout<<"El NIF es: " <<getDni()<<"-"<<getLetra()<<endl;
    cout<<endl;
    cout<<"-------------------------------------------"<<endl;
    cout<<endl;
}



Supongo que siguen habiendo cosas mal... como verás estoy empezando con la programación y hay cosas (básicas) que se me escapan aún... gracias por la ayuda, y a ver si pueden ayudarme a acabar este ejercicio, porqué me está dando guerra la verdad..


LGG
#4
Programación C/C++ / Programa NIF
2 Mayo 2015, 20:23 PM
Este es el enunciado del ejercicio:

Crea una clase Nif que se usará para mantener DNIs con su correspondiente letra. Los atributos de la clase serán el número de DNI (entero largo) y la letra que le corresponde.
La clase dispondrá de los siguientes métodos:
- Inicializador que reciba el número de DNI y establezca automáticamente la letra que le corresponde.
- Accedentes y mutador para el número de DNI (ajustando automáticamente la letra).
- Leer() : que pida el número de DNI (ajustando automáticamente la letra).
- Método que nos permita mostrar el NIF (DNI, un guión y la letra en mayúsculas; por ejemplo: 395469-F).
La letra se calculará con un método auxiliar (privado) de la siguiente forma:
se obtiene el resto de la división entera del número de DNI entre 23 y
se usa la siguiente tabla para obtener la letra correspondiente:

0 - T 12 - N
1 - R 13 - J
2 - W 14 - Z
3 - A 15 - S
4 - G 16 - Q
5 - M 17 - V
6 - Y 18 - H
7 - F 19 - L
8 - P 20 - C
9 - D 21 - K
10 - X 22 - E
11 - B




Me lo han pedido en forma de proyecto, como no puedo adjuntar archivos comprimidos (que yo sepa) os los copio aquí:



1r archivo.
Guardado como: "main.cpp"

Código (cpp) [Seleccionar]
#include <stdlib.h>
#include <iostream>
#include "Nif.h"

using namespace std;

int main(){

Nif p
;
char l, resp;
long int d;

p.setDni(d);
p.setLetra(l);

do{
   p.Leer(d);
   
   p.Letra(d,l);

   p.show();
   
   cout<<endl;
   cout<<"Quieres introducir otro numero? si<s> no<n>"<<endl;
   cin>>resp;
}while(resp=='s');
   
system("pause");
return 0;
}





2o archivo.
Guardado como: "Nif.h"


Código (cpp) [Seleccionar]
#ifndef NIF_H
#define NIF_H
#include <iostream>

using namespace std;

class Nif
{
private:
   long int dni;
   char letra;
   
public:
 
  Nif(){dni=0; letra='nada';}
  Nif(long int d, char l){dni=d; letra=l;}
  ~Nif(){cout<<"Destructor invocado.\n";};
 
  void setDni(long int d){dni=d;}
  void setLetra(char l){letra=l;}
 
  long int getDni()const {return dni;}
  char getLetra()const {return letra;}
 
  void Leer(long int d);
  void Letra(long int d, char l);
  void show();

};

#endif






3r archivo.
Guardado como: "Nif.cpp"



Código (cpp) [Seleccionar]
#include "Nif.h"


using namespace std;


void Nif::Leer(long int dni){  
  cout<<endl;
  cout<<"Introduzca el numero del DNI(8 car):  "<<endl;
  cin>>dni;
 
}

void Nif::Letra(long int dni, char letra){
int resto;
resto=dni%23;
switch(resto){
    case 0:
    letra=='T';
    break;
    case 1:
       letra=='R';
    break;
    case 2:
       letra=='W';
    break;
case 3:
       letra=='A';
    break;
case 4:
       letra=='G';
    break;
case 5:
       letra=='M';
    break;
case 6:
       letra=='Y';
    break;
case 7:
       letra=='F';
    break;
case 8:
       letra=='P';
    break;
case 9:
       letra=='D';
    break;
case 10:
       letra=='X';
    break;
case 11:
       letra=='B';
    break;
case 12:
       letra=='N';
    break;
case 13:
       letra=='J';
    break;
case 14:
       letra=='Z';
    break;
case 15:
       letra=='S';
    break;
case 16:
       letra=='Q';
    break;
case 17:
       letra=='V';
    break;
case 18:
       letra=='H';
    break;
case 19:
       letra=='L';
    break;
case 20:
       letra=='C';
    break;
case 21:
       letra=='K';
    break;
case 22:
       letra=='E';
    break;
   }
}

void Nif::show(){
cout<<"-------------------------------------------"<<endl;
   cout<<endl;
   cout<<"La letra correspondiente a tu DNI es: <"<<getLetra()<<endl;
   cout<<endl;
   cout <<"El NIF es: " <<getDni()<<"-"<<getLetra()<<endl;
cout<<endl;
   cout<<"-------------------------------------------"<<endl;
   cout<<endl;
}






El programa me compila pero a la hora de escribir (en la función "show") no me sale el numero del dni ni la letra bien...no sé donde esta el problema! Podrían ayudarme por favor????


Gracias,



LGG

Mod: los códigos deben ir en etiquetas GeSHi