Informatică, întrebare adresată de mimi23, 9 ani în urmă

Se dau doi vectori a si b. Daca a are mai multe elemente decat b, atunci vom elimina ultimele elemente din a pentru a-l egala cu b si invers.


Deni00: Probabil ca a "egala" vectorul a cu vectorul b inseamna pur si simplu a elimina elementele in plus. Sau inseamna sa facem ca amandoi vectorii sa aiba aceleasi elemente?
Deni00: C++ sau pseudocod?

Răspunsuri la întrebare

Răspuns de Deni00
1
Am pus intrebarea urmatoare:
Daca "egalam" vectorul a cu vectorul b, inseamna ca elimin ultimele elemente din a ca sa aiba atatea elemente cate are vectorul b, sau vice versa.
Sau, dupa ce le elimin, mai "egalez" cei doi vectori, adica sa aiba amandoi aceleasi elemente.

In orice caz, programul este acesta:
#include <iostream>
using namespace std;
int main(){    int m,n,a[100],b[100],i,k;    cout<<"m="; cin>>m;    cout<<"n="; cin>>n;    for(i=1;i<=m;i++) {        cout<<"a["<<i<<"]="; cin>>a[i];     }    for(i=1;i<=n;i++) {        cout<<"b["<<i<<"]="; cin>>b[i];    }    if(m>n) {        cout<<"S-a gasit vectorul a cu mai multe elemente"<<endl;        k=m-n;        cout<<"Se elimina "<<k<<" elemente din vectorul a"<<endl;        m=m-k;         for(i=1;i<=m;i++) {                cout<<"a["<<i<<"]="<<a[i]<<endl;            }            for(i=1;i<=n;i++) {                cout<<"b["<<i<<"]="<<b[i]<<endl;            }        }    else {        if(m<n) {            cout<<"S-a gasit vectorul b cu mai multe elemente"<<endl;            k=n-m;            cout<<"Se elimina "<<k<<" elemente din vectorul b"<<endl;            n=n-k;            for(i=1;i<=m;i++) {                cout<<"a["<<i<<"]="<<a[i]<<endl;            }            for(i=1;i<=n;i++) {                cout<<"b["<<i<<"]="<<b[i]<<endl;            }        }        else {            cout<<"Vectorii au acelasi numar de elemente"<<endl;             for(i=1;i<=m;i++) {                cout<<"a["<<i<<"]="<<a[i]<<endl;            }            for(i=1;i<=n;i++) {                cout<<"b["<<i<<"]="<<b[i]<<endl;            }        }    }    return 0;}Pe scurt, cum lucreaza programul:
Presupunem ca cei doi vectori au lungimi diferite, pentru a - m si pentru b - n.
Am citit cei doi vectori, apoi am comparat lungimile lor.
AM LUAT TREI CAZURI:
1) daca vectorul a are mai multe elemente decat b, atunci am pus intr-o variabila intermediara k diferenta lor(k=m-n), si apoi, am egalat lungimea primului vector astfel:
m=m-k (Am eliminat elementele in plus)
Si apoi am afisat elementele celor doi vectori.
2) La fel ca 1), doar ca variabila k primeste valoarea (k=n-m), adica b are mai multe elemente ca a si n = n-k.
Si am afisat vectorii.
3) Ultimul caz, daca au aceeasi lungime, afisez vectorii pur si simplu.

Am adaugat si niste mesaje ca programul sa fie usor de inteles, adica cel care il ruleaza si-i urmareste codul sa inteleaga ce executa si cum face.

Sper ca intelegi. Daca nu, trimite-mi PM.
Bafta la info!
Anexe:

Deni00: Daca nu intelegi programul pe care ti l-am scris, ti-am trimis si un PDF cu programul bine ordonat.
mimi23: multumesc mult pentru ajutor
mimi23: mai am postate doua probleme. daca ai timp sa te uiti peste ele si sa ma ajuti as fi recunoscatoare.
Alte întrebări interesante