Vectori de aparitie/frecventa



Vector de aparitie


#include <iostream>

using namespace std;

int main()
{
   const int val_max=10; //nu e necesar sa fie 10, e mai usor de prezentat...
   bool aparitii[val_max+1];
   //initializam fiecare element al vectorului cu 0
   for(int i=0;i<=val_max;i++)
      aparitii[i]=0;
   int n, x;
   cin>>n;
   for(int i=1;i<=n;i++)
   {
      cin>>x;
      aparitii[x]=1;
   }
   for(int i=0;i<=val_max;i++)
      if(aparitii[i]==1)
         cout<<"numarul "<<i<<" a aparut\n";
      else
         cout<<"numarul "<<i<<" nu a aparut\n";
}

Explicatie:

- vom folosi un vector a carui lungime este data de valoarea maxima pe care o pot avea elementele ce urmeaza sa fie citite +1 (deoarece numerotarea este de la 0, indiferent daca 0 conteaza sau nu)
- acest vector va fi initializat cu 0, semnificand faptul ca elementele nu au fost gasite inca
- in momentul in care citim cate un numar, ii vom creste valoare in vector cu 1 (sa zicem ca citim numarul in x, ca sa il marcam ca l-am gasit vom pune in vector, pe pozitia x, vom creste valoarea cu 1)




Vector de frecventa


#include <iostream>

using namespace std;

int main()
{
   const int val_max=10; //nu e necesar sa fie 10, e mai usor de prezentat...
   int frecv[val_max+1];
   //initializam fiecare element al vectorului cu 0
   for(int i=0;i<=val_max;i++)
      frecv[i]=0;
   int n, x;
   cin>>n;
   for(int i=1;i<=n;i++)
   {
      cin>>x;
      frecv[x]++;
   }
   for(int i=0;i<=val_max;i++)
      if(frecv[i]!=0)
         cout<<"numarul "<<i<<" a aparut de "<<frecv[i]<<" ori\n";
      else
         cout<<"numarul "<<i<<" nu a aparut\n";
}

Explicatie:

- vom folosi un vector a carui lungime este data de valoarea maxima pe care o pot avea elementele ce urmeaza sa fie citite +1 (deoarece numerotarea este de la 0, indiferent daca 0 conteaza sau nu)
- acest vector va fi initializat cu 0, semnificand faptul ca elementele nu au fost gasite inca
- in momentul in care citim cate un numar, il vom marca in vector cu 1 (sa zicem ca citim numarul in x, ca sa il marcam ca l-am gasit vom pune in vector, pe pozitia x, valoarea 1)