martedì 27 novembre 2012

Brevi Esercizi #7 Il quadrato di un numero con AWK

Ormai vado a letto prestissimo. Ieri sera, ad esempio, sono andato a letto alle 9. Sono finiti i tempi in cui la sera ci si riuniva con gli amici per scolarsi un paio di bottiglie di vino...Si, anche se dopo cena c'era studiare, si beveva lo stesso...e non vi nascondo che si rendeva pure di più... Vabbè, tutto cambia nella vita... Solo che ora mi capita di svegliarmi verso le tre, o ancora prima...e a quell'ora è difficile trovare qualcosa da fare...Perciò tendo voli pindarici con Bash o Awk e qualche volta anche con Python.

In genere vengono fuori cose carine. Forse non è il caso di stamattina... Infatti ho creato uno script interattivo in AWK. Uno script che restituisce il quadrato di un numero...E' inutile dirvi che ancora una volta ho "dirottato" lo scopo per cui awk è stato concepito...E come al solito chiedo scusa ai signori A., W. e K. :)
#!/usr/bin/awk -f
#script che restituisce il quadrato di un numero

BEGIN {
    print "Digita un numero:\n";
}
{
    print system("clear")
    if ($1 ~ /^[.| 1-9]/) { 
            print "\tIl quadrato di ", $1, " è ", $1*$1"\n";
            print system("sleep 2")
            print "\tDigita un altro numero: (digita 0 per uscire)\n";
    }
    else if ($1 ~ /^[a-z | A-Z]/) {
             print "ho detto di digitare un numero\n"
             print "(digita 0 per uscire)\n";
    }
    else if ($1 == 0) {
                 exit;
    }
    else {
          exit;
   }
}
END {
   print "\nArrivederci\n"
}

Lo script è interattivo....infatti vi chiederà un numero e vi restituirà il suo quadrato...e ve lo chiederà tante volte....Se cercate di scrivere una lettera, si incavola pure...per uscire basta digitare "0". Un'altra cosa, per scrivere 0.1xxx usate quest'altra forma .1xxx.
Sono tutte cose che abbiamo già visto in "un po' di AWK" il cui indice lo trovate qui.  Ciò che non è stato trattato, è di facile comprensione... come, ad esempio, la funzione print system (). Ogni cosa a suo tempo. :))  Lo script è migliorabile, ogni vostra proposta è ben accetta... E poi ci sarebbero pure le espressioni regolari....Insomma, tante cose...
Alla prossima!

Ah dimenticavo, ora anche il sequel "Brevi Esercizi" ha un indice, lo trovate qui
Oltre all'indice, ha pure un logo!!! :D

Nessun commento:

Posta un commento