01 maggio, 2019

Creatività ovvero la programmazione dove non te l'aspetti


Cosa non sono capaci a fare i creativi! L'altro giorno ho visto una cosa che non so se sarò creduto ma la racconto lo stesso. Si può giudicare in modi diversi, io la metto nella categoria di quelli che hanno detto "💡idea!💡" quando hanno visto che si poteva fare il fuoco battendo due pietre o la ruota (la prima, non le successive re-invenzioni quotidiane). Vado con il racconto, semplifico di molto, non entro nei dettagli, solo l'idea.

Ci sono casi in cui la soluzione non è immediata, c'è la formula ma da quella non si ottiene subito quel che si cerca, per esempio  Riemann  Newton-Raphson. Ecco, qualcosa così; io che non sono tanto addentro --anzi è il mio primo aproccio-- mi limiterò a un esempio molto più semplice, un ciclo.

Il compito che mi propongo è di calcolare N2, N3 e √(N) per N intero da 1 a 10.
Nota: l'Unicode per è 0x221A.

Tra gli infiniti (quasi) linguaggi di programmazione userò VisiCalc, il foglio di calcolo, o meglio una sua evoluzione. In particolare il modulo Calc di LibreOffice, il mio giovane amico nerd usa Excel, sono perfettamente intercambiabili per quanto mi serve.

Lancio il programma e nella colonna A inserisco 1 e 2 nelle celle 2 e 3 peché nella prima riga inserirò i titoli delle colonne. Seleziono le due celle ed estendo la selezione (lo so che lo sapete, lo scrivo per me) a piacere; le celle vengono riempite con la serie desunta dalla selezione di partenza, nel mio caso la serie aritmetica [1..10].
I valori che voglio calcolare devo inserirli solo per la riga 2, quella per N = 1, rispettivamente:
  • cella B2: =A2*A2
  • cella C2: =B2*A2
  • cella D2: =RADQ(A2) #questo era difficile!

Adesso il bello: seleziono la regione B2-D2 e trascino verso il basso. Fatto 💥 la mia tabella è pronta, questa:


Ovviamente il caso che ho visto aveva una condizione/formula diversa, meno semplice ma concettualmente equivalente.

Fine del racconto; ma --personalmente-- un paio di considerazioni, assolutamente personali, nèh!
  • In casi come questo a me viene in mente (anzi no, c'è già da prima) di usare Python, interattivamente o costruendo uno script di poche righe; si può fare nello stesso modo anche con Windows, vero che Python dev'essere installato, esattamente come si è installato Office;
  • Python è una delle possibilità, ho visto che altri preferiscono/conoscono JavaScript (Node), MATLAB (in realtà Octave) o C++ (orrore, sì, qualcuno);
  • Per usare Excel (o equivalente) occorre apprenderlo, non è dato a priori. Dove viene insegnato, a scuola o nell'ambiente di lavoro? Perché non (anche) un linguaggio di programmazione (script)? Anzi, le macro del foglio di calcolo sono un linguaggio anche loro, e vengono usate (non sempre, magari copiate da chi sa farle).
Non si finisce mai d'imparare, ma tanto io sono vecchio, largo ai giovani 🧐

(devo ancora impratichirmi di Blogger, per esempio trovare le emoji che gli piacciono; le mie non me le colora 😡)

Nessun commento:

Posta un commento