[PLUTO-help] Esercizio script di shell! Risolto!

Gian Uberto Lauri GianUberto.Lauri a eng.it
Gio 28 Ott 2004 16:19:54 CEST


>>>>> "l" == lkk  <lkk a interfree.it> writes:

l> #!/bin/awk -f
l> BEGIN{
l>   for(i=1;i<ARGC;i++)
l>     {
l>       f=((3*ARGV[i]^2)+(4*ARGV[i+1])+(5*ARGV[i+2]));
l>       printf("%d",f);
l>       printf("\n");
l>       i=i+2;
l>     }
l> }

Oddio, ad awk  non avevo pensato. Ha forse trascritto  male il path di
awk (o nella tua distribuzione non e` in /usr/bin) e puoi riscriver il
ciclo in modo piu` compatto in questo modo

  for(i=1;i<ARGC;i+=3)
    {
      f=((3*ARGV[i]^2)+(4*ARGV[i+1])+(5*ARGV[i+2]));
      printf("%d",f);
      printf("\n");
    }

sfruttando l'operatore +=. Ma bella soluzione, non c'e` che dire.

Ma c'e` ancora un'altra soluzione che usa dc o bc (che son nati per
questo) per fare i conti.

#/bin/bash
while [ "$1" ];
do
    echo $1'*3*'$1'+4*'$2'+5*'$3 | bc
    shift 3
done 

Il Perl non l'ha inventata lui la storia che non c'e` mai un solo modo
per fare le cose.


-- 
 /\            ___
/___/\__|_|\_|__|___Gian Uberto Lauri_____________________
  //--\ | | \|  |   Integralista GNUslamico e fancazzista 
\/





More information about the pluto-help mailing list