Testo dell'esercizio
dato un vettore di nomi e di eta effettuare le seguenti operazioni:
minimo
masismo
media
ricerca di nomi corrispondenti ad un eta
ricerca dell'eta di un nome
ordinamento
mostra soluzione
013 | print "quanti nomi : " ; |
014 | fscanf (STDIN, "%d" , $n ); |
015 | for ( $i = 0; $i < $n ; $i ++){ |
017 | fscanf (STDIN, "%s" , $nomi [ $i ]); |
019 | fscanf (STDIN, "%d" , $eta [ $i ]); |
024 | print "0) esci\n1) minimo\n2) massimo\n3) media\n4) nomi corrispondenti ad un eta`\n5) ricerca\n6) ordinamento\nscelta : " ; |
025 | fscanf (STDIN, "%d" , $scelta ); |
030 | print minimo( $eta , $n ). "\n" ; |
033 | print massimo( $eta , $n ). "\n" ; |
036 | print media( $eta , $n ). "\n" ; |
039 | print "quale eta : " ; |
040 | fscanf (STDIN, "%d" , $etap ); |
041 | eton( $nomi , $eta , $etap , $n ); |
045 | fscanf (STDIN, "%s" , $nome ); |
046 | ricerca( $nomi , $nome , $eta , $n ); |
049 | $ordinato = ordina( $nomi , $n ); |
051 | print $nomi [ $ordinato [ $i ]]. " - " . $eta [ $ordinato [ $i ]]. "\n" ; |
054 | print "opzione non valida\n" ; |
059 | function minimo( $vet , $n ){ |
065 | if ( $vet [ $i ]< $vet [ $pos ]) |
072 | function massimo( $vet , $n ){ |
078 | if ( $vet [ $i ]> $vet [ $pos ]) |
085 | function media( $vet , $n ){ |
096 | function eton( $nomi , $eta , $etap , $n ){ |
104 | print $nomi [ $i ]. "\n" ; |
107 | print "non c'e` nessuno che ha " . $etap . " anni\n" ; |
110 | function ricerca( $vet , $str , $eta , $n ){ |
116 | while ( $i < $n && ! $flag ) |
124 | print $str . " ha " . $eta [ $i ]. " anni\n" ; |
126 | print $str . " non è presente`\n" ; |
129 | function ordina( $vet , $n ){ |
135 | for ( $i =0; $i < $n -1; $i ++) |
136 | if ( $vet [ $ordinato [ $i ]]> $vet [ $ordinato [ $i +1]]){ |
137 | $aux = $ordinato [ $i ]; |
138 | $ordinato [ $i ] = $ordinato [ $i +1]; |
139 | $ordinato [ $i +1] = $aux ; |
torna