codice:
Traccia:
Siano assegnati in ingresso, da tastiera, due vettori di interi V1 ed V2, ed i loro riempimenti n1 ed n2.
Si supponga che gli elementi del vettore V1 siano ordinati in senso crescente.
Si scriva un programma che inserisca in ordine nel vettore V1 tutti gli elementi del vettore V2.
Si stampi quindi il vettore V1 modificato.
Il programma deve essere articolato in funzioni (ad es.: input, output, inserisci).
Suggerimento: la funzione inserisci riceve in ingresso n1, V1, n2 e V2 e modifica il vettore V1 ed il suo riempimento.
Esempio
INPUT: n1 = 7 V1 = 1 4 7 9 12 15 22 n2 = 4 V2 = 14 3 5 25
OUTPUT: V1 = 1 3 4 5 7 9 12 14 15 22 25 */
#include<iostream>
#include<stdlib.h>
using namespace std;
void input_V1(int vett1[],int& riemp1);
void input_V2(int vett2[],int& riemp2);
void insert(int vett1[],int vett2[],int& riemp1,int riemp2);
void output(int vett1[],int riemp1);
int main()
{
int V1[100],V2[100];
int n1,n2;
input_V1(V1,n1);
input_V2(V2,n2);
insert(V1,V2,n1,n2);
output(V1,n1);
system("PAUSE");
return 0;
}
//Funzione input V1;
void input_V1(int vett1[],int& riemp1)
{
int i;
cout<<"\nAssegna valore intero al riempiemnto di V1:\t";
cin>>riemp1;
cout<<"\n\nAssegna "<<riemp1<<" valori interi a V1;\n";
for(i=0;i<riemp1;i++)
{
cin>>vett1[i];
}
}
//Funzione input V2;
void input_V2(int vett2[],int& riemp2)
{
int i;
cout<<"\nAssegna valore intero al riempiemnto di V2:\t";
cin>>riemp2;
cout<<"\n\nAssegna "<<riemp2<<" valori interi a V2;\n";
for(i=0;i<riemp2;i++)
{
cin>>vett2[i];
}
}
//Funzione insert;
void ric_posto(int vett1[],int vett2[],int riemp1,int riemp2,int& i,int& ins);
void insert(int vett1[],int vett2[],int& riemp1,int riemp2)
{
int i,k,j,ins;
ric_posto(vett1,vett2,riemp2,riemp2,i,ins);
if(ins)
{
for(k=riemp1-1;k>=i;k--)
{
vett1[k+1]=vett1[k];
}
for(j=0;j<riemp2;j++)
{
vett1[i]=vett2[j];
}
}
else
{
for(j=0;j<riemp2;j++)
{
vett1[i+1]=vett2[j];
}
}
riemp1++;
}
void ric_posto(int vett1[],int vett2[],int riemp1,int riemp2,int& i,int& ins)
{
i=0; ins=0;
int j;
while(i<riemp1 && !ins)
{
for(j=0;j<riemp2;j++)
{
ins=vett1[i]>vett2[j];
}
i++;
}
i--;
}
//Funzione output;
void output(int vett1[],int riemp1)
{
int i;
cout<<"\n\n V = ";
for(i=0;i<riemp1;i++)
{
cout<<vett1[i]<<" ";
}
cout<<"\n\n";
}