25 April 2008

Ní fhágfaidh tú a beo ag uimhir draíochta!

Bíonn gá go minic le huimhreacha tairiseacha i gcód clár ríomhaireachta, go hairithe san réimse innealtóireachta agus eolaíochta.
Ach níl rud ar bith níos measa ná líne cód mar seo:

a = (a + 0.7071067 * b)/ 3.14159 * c;

Tá an leagan seo rud beag níos fearr:

a = (a + 1.0/sqrt(2.0)* b)/ pi * c;

Tugtar “uimhreacha draíochta” ar a mhacasamhail de uimhreacha fite tríd cód. Agus is gráin liom iad.
Tá sé i bhfad níos fearr na tairisigh a shainiú ag tús an cód. Agus is fearr liomsa feidhm a bhaint as na feidhmeanna atá mar chuid den tiomsaitheoir chun an sainiú seo a chur i gcrích:
Fágann sin go mbeidh na huimhreacah snámhphointe ar chomhcruinneas leis na huimhreacah a ríomhtar le linn don gclár a bheith ag rith.

const float PI = acos(-1.0)
const float DRONNUILEANN = PI/2.0
const float FREAMH_LEATH = 1.0/sqrt(2.0)


ansin bíonn an cód níos soléite:

a = (a + (FREAMH_LEATH * b))/ PI * c;


Is samplaí simplí iad seo: bíonn nithe eile i gceist, mar shampla, an líon iontráil i dtábla.

float tabla = {1.0, 2.0, 3.0, 5.0, 7.0};

Bíonn gá le bheith cinnte nach dtéitear lasmuigh den tábla. Is ceart tairiseach a úsáid:

#define MEID_TABLA sizeof(table)/sizeof(float)
#define IONTRAIL_DEIRIDH_TABLA (MEID_TABLA - 1)


Tá an cód leis na tairisigh seo i bhfad níos soléite

suim = 0.0;
for (i = 0; i <= IONTRAIL_DEIRIDH_TABLA; i++) {
suim = suim + tabla[i]
}


Mar sin, má saor cláir thú, ná fág a beo ag uimhir draíochta!

Nóta: Is cód san ríomhtheanga C atá in úsáid agam anseo; ach tá nósanna gaolmhara ag baint le achan teanga ríomhaireachta.

No comments: