La programmazione ti agevola i conti

Submitted by Nicola Rainiero on 2012-06-08 (last updated on 2012-06-17)

All'inizio per necessità: mi serviva un mezzo per verificare velocemente i risultati degli esercizi dell'Università, poi mi ha ridotto drasticamente i tempi di calcolo nei vari dimensionamenti.

La casualità alle volte porta a risultati davvero sorprendenti e inaspettati. Il ritrovamento di una vecchia calcolatrice programmabile, una Sharp PC-E500S del 1993, ancora nella sua confezione originale ed in buono stato, ne è un esempio rampante.

Era stata regalata a mio fratello per la Cresima e poi è andata dimenticata ed è rimasta ad impolverarsi in uno scatolone per più di 10 anni... Che farne?  Una piccola calcolatrice scientifica già ce l'avevo, ma questa era dotata di una tastiera qwerty ed in più era programmabile in BASIC, un linguaggio a me familiare. Ma non rispondeva ancora alla domanda precedente!

La scatola originale della Sharp PC-E500S, parte superioreLa scatola originale della Sharp PC-E500S, parte inferioreCopertina del manuale in italiano della Sharp PC-E500S

L'idea mi è venuta svolgendo alcuni esercizi ripetitivi di Costruzioni Idrauliche, dovevo ripetere più e più volte una serie lunghissima di operazioni e se sbagliavo qualche calcolo l'errore si propagava fino a valle rovinandomi tutti i risultati! Per non parlare di quando provavo a cambiare i dati di input del problema o volevo sapere se i miei conti finali erano corretti.

La calcolatrice ha risposto efficacemente a questi inconvenienti, fornendomi anche lo stimolo per riprendere le mie passate conoscenze informatiche. Si è trattato di convertire in BASIC le operazioni che svolgevo a mano e impostare qualche iterazione e ciclo di controllo per far convergere il tutto nei problemi più complessi.

Lo scoglio più grande è stata la poca memoria a disposizione (22 kbytes), che mi ha impedito di commentare il codice scritto e costretto a ricorrere all'istruzione GOTO[1], o per lo meno usandola mi ha dato l'impressione di risparmiare spazio ed evitare di riscrivere porzioni di codice in più parti.

Alla fine sono riuscito a farci stare 15 programmini lasciando 3374 byte liberi. Ecco l'elenco completo con la descrizione e la memoria occupata:

NOME PROGRAMMADESCRIZIONEDIMENSIONI  [in bytes]
PEQUI.BASPendenza di equilibrio di un torrente2025
PIPON.BASRigurgito e scavo da pila da ponte1876
SCO.BASScogliera a protezione del fondo e delle sponde891 
VCOLL.BASVasca colletrice di portata686 
VASCQUI.BASVasca di dissipazione con quinte1713 
VASCI.BASVasca di dissipazione con scivolo 2192 
DISS.BASDissabbiatore longitudinale683 
DISO.BAS Disoleatore longitudinale815 
SERBA.BASCondotte di un sistema di adduzione da 3 serbatoi1174 
DRENA.BAS Galleria drenante553 
POZPOT.BATPotenza di una pompa per pozzo in falda (confinata o libera)1068 
PAFFON.BASPozzo auto-affondante619
SFCALI.BAS Sfioratore a calice869 
ATTRAV.BASCanale di attraversamento798 
INVASO.BASFognatura bianca con il metodo dell'invaso2515 

Attualmente porto sempre con me la Sharp anche se la uso principalmente come calcolatrice per operazioni comuni. Ma vista l'utilità e la necessità di sveltire i conti, trovo molto utile e utilizzo regolarmente il programma per dimensionare una rete di fognatura di acque bianche. Certo la piccola tastiera e l'impossibilità di spostare l'output sul computer sono un grosso ostacolo, ma anche a questo ho posto rimedio...

Ho ripreso il listato del programma e senza stravolgere troppo la sintassi l'ho ricompilato e ottimizzato, migliorando l'output per potere inserire i risultati in una relazione di calcolo. Non è ancora esente da imperfezioni, lacune e forzature di codice, ma mi ha permesso di ridurre i tempi di dimensionamento e cambiare velocemente i tracciati e i parametri delle reti senza dover partire da zero ogni volta. Tutto questo è stato possibile grazie a FreeBasic (Wikipedia ne riporta una sommaria descrizione) che è pienamente compatibile con il Quickbasic e soprattutto open source.

Anche nella sua ultima incarnazione il codice è rimasto scarno di commenti e con il ricorso sistematico al GOTO, ma non ho ancora avuto il tempo per revisionarlo completamente, forse prima di pubblicarlo proverò a renderlo più leggibile e completo. Prossimamente ne mostrerò il codice sorgente ed il funzionamento.

 

 


[ 1]  In informatica, l'istruzione GO TO o GOTO (letteralmente "vai a") consente in vari linguaggi di effettuare salti incondizionati da un punto all'altro del codice. Spesso veniva usato in modo improprio, rendendo illeggibile o di difficile comprensione l'algoritmo. Fonte: Wikipedia




Related Content:

Nicola Rainiero

A civil geotechnical engineer with the ambition to facilitate own work with free software for a knowledge and collective sharing. Also, I deal with green energy and in particular shallow geothermal energy. I have always been involved in web design and 3D modelling.