La programmazione ti agevola i conti
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!
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 PROGRAMMA | DESCRIZIONE | DIMENSIONI [in bytes] |
PEQUI.BAS | Pendenza di equilibrio di un torrente | 2025 |
PIPON.BAS | Rigurgito e scavo da pila da ponte | 1876 |
SCO.BAS | Scogliera a protezione del fondo e delle sponde | 891 |
VCOLL.BAS | Vasca colletrice di portata | 686 |
VASCQUI.BAS | Vasca di dissipazione con quinte | 1713 |
VASCI.BAS | Vasca di dissipazione con scivolo | 2192 |
DISS.BAS | Dissabbiatore longitudinale | 683 |
DISO.BAS | Disoleatore longitudinale | 815 |
SERBA.BAS | Condotte di un sistema di adduzione da 3 serbatoi | 1174 |
DRENA.BAS | Galleria drenante | 553 |
POZPOT.BAT | Potenza di una pompa per pozzo in falda (confinata o libera) | 1068 |
PAFFON.BAS | Pozzo auto-affondante | 619 |
SFCALI.BAS | Sfioratore a calice | 869 |
ATTRAV.BAS | Canale di attraversamento | 798 |
INVASO.BAS | Fognatura bianca con il metodo dell'invaso | 2515 |
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
Add new comment