Salve a tutti,
Come ben sapete, questo comando nella sintassi Perl esegue le seguenti operazioni:
Estrae il primo elemento del vettore
Riduce di uno la dimensione del vettore
Fa slittare avanti di uno tutti i vari elementi
Ossia:
Ecco il mio [Ruby]:
Dovrete fornire l'array come parametri del programma ossia:
oppure ho scritto un piccolissimo script che crea un array casuale e lo avvia con quello:
Esercizio:
Scrivete un programma che faccia questa operazione ( non è necessario che restituisca il valore estratto )
Come ben sapete, questo comando nella sintassi Perl esegue le seguenti operazioni:
Estrae il primo elemento del vettore
Riduce di uno la dimensione del vettore
Fa slittare avanti di uno tutti i vari elementi
Ossia:
Codice:
[ 1, 2, 3, 4, 5, 6, 7, 8, 9]
=> [2, 3, 4, 5, 6, 7, 8, 9]
Ecco il mio [Ruby]:
Codice:
$a = ARGV
exit if ARGV.size < 1
def shift(other)
x = other.size - 1 and tot = []
while x >= 1
tot << other[x]
x = x - 1
end
return tot.reverse
end
print "FIRST\t=>\t["
$a.each do |x|
print x,","
end
print "\b]\nAFTER\t=>\t["
(shift($a)).each do |x|
print x,","
end
print "\b]\n"
Codice:
tla@TLA-Winteriscoming:~/prog/Ruby$ ruby shift.rb 1 2 3 4 5 6 7 8 9
Codice:
tla@TLA-WinterIsComing:~/prog/Ruby$ cat shift-launcher.rb
t = []
30.times do
t << rand(100)
end
f = "ruby shift.rb #{t.join(" ")}"
system(f)
tla@TLA-WinterIsComing:~/prog/Ruby$ ruby shift-launcher.rb
FIRST => [39,20,99,94,33,94,66,27,99,5,14,16,16,26,48,59,96,65,85,92,41,31,26,63,94,18,61,0,55,60]
AFTER => [20,99,94,33,94,66,27,99,5,14,16,16,26,48,59,96,65,85,92,41,31,26,63,94,18,61,0,55,60]
tla@TLA-WinterIsComing:~/prog/Ruby$
Esercizio:
Scrivete un programma che faccia questa operazione ( non è necessario che restituisca il valore estratto )