Esercizio B
Modificando il programma realizzato
nell'esercizio precedente, realizzare un programma in assembly MIPS
che, oltre a quanto gią specificato nell'esercizio A, legga un secondo
array di float e determini quanti elementi di questo siano
maggiori della media calcolata sul primo array. Il risultato del
conteggio sia salvato in uno spazio opportunamente allocato nel segmento
.data
e quindi stampato.
Si consideri a titolo di
riferimento il
seguente codice C:
float vet1[64], vet2[64];
int num1,num2;
float media;
int numag;
void main()
{
int i,cont;
float sum;
float fnum;
leggi_vet_float(vet1,num1);
leggi_vet_float(vet2,num2);
sum=0.0;
for(i=0;i<num1;i++)
sum=sum+vet1[i];
fnum=(float)num;
sum=sum/fnum;
media=sum;
cout << "La media e': "
<< media;
cout << "\n";
cont=0;
for(i=0;i<num2;i++)
if(vet2[i]>media)
cont=cont+1;
numag=cont;
cout<<"Nel vettore 2 ci sono ";
cout << numag << "elementi maggiori di
" << media << "\n";
}
void leggi_vet_float(float v[],int &n)
{
int i;
float x;
cout << "Numero elementi: ";
cin >> n;
for(i=0;i<n;i++)
{
cout << "Elemento:
" ;
cin >> x; // qui va utilizzata la syscall read float
vet[i]=x;
}
}
|