Quantcast
Channel: C/C++ – Ok, panico
Viewing all articles
Browse latest Browse all 27

Ancora sull’elevazione a potenza

$
0
0

hand-truckA una certa ora (comunque troppo presto) mi accorgo che non capisco più quello che tento di fare, allora chiudo tutto e smetto. Poi capace che vado anche a dormire presto, come ieri. E mi capita di sognare che sono al Paradiso della Brugola che sto movimentando tweets con un hand-truck (sì, lo so che da noi non si chiamano così ma il sogno era quello). Sì lo so che non si usa un carrello per spostare i tweets (spostarli dove?) ma nel sogno era così. E il sogno è mio (quello) :wink:
Mi sono svegliato con la convinzione che dovevo riprendere un argomento discusso su Facebook e del quale ho anche fatto un post: Sul calcolo di base elevato esponente.
Colpa anche di GLF, Gianluigi Filippelli, che l’altro giorno ha messo su Schema per affrontare il calcolo di un esponenziale.
Prima o poi ritorno sullo schema di GLF, ma intanto continuavo a chiedermi come si deve intendere il segno del numero da elevare a potenza.

Cioè quando scrivo: r = b ^ e cosa intendo davvero? b è negativo di suo o invece sto calcolando un’espressione che deve dare un risultato negativo?
Secondo me –potrei sbagliare, anzi aiuto!!!– nei casi normali (ahemmm…) mi viene da pensare che sia r = s * b ^ e dove s è il segno.
In queste condizioni ecco il programmino (elementare; non so se esista una funzione tipo sign(), la mia riga 6), pows.c:

#include <stdio.h>
#include <math.h>

double pows(double n, double e) {
    double s;
    s = ((n - fabs(n)) >= 0.0 ? 1.0 : -1.0);
    return(s * pow(fabs(n), e));
}

int main () {
    double bp = 2.0, bn = -2.0,
           e = 7.0 / 3.0;

    printf("%lf ^ %lf = %lf\n", bp, e, pows(bp, e));
    printf("%lf ^ %lf = %lf\n", bn, e, pows(bn, e));
    return(0);
}

pows

Niente più nan. Sensato? (Help!!!) :mrgreen:

pdbNota: Il Paradiso della Brugola esiste davvero; e io che mi pensavo che era una cosa di Jane e –prima ancora– di Matteo e invece no, c’è. Se siete di quelle parti provatelo. E dite che vi mandiamo noi, Jane, Matteo e me. Nèh! (come si dice “nèh” in milanese?) :grin:


Archiviato in:C/C++, Linguaggi

Viewing all articles
Browse latest Browse all 27

Latest Images

Trending Articles