Tehtävä:
Neljännen luvun viimeisessä tehtävässä tehdään taulukkoa apunakäyttäen ohjelma, joka ylläpitää ostoslistaa.
Ohjelmassa on kolme toimintoa; (1) Lisää tuote (2) Poista listan viimeinen tuote ja (3) Lopeta. Valinta 1 lisää uuden tuotteen listaan, valinta 2 poistaa listan vanhimman merkinnän ja 3 lopettaa ohjelman. Lisäksi lista päivitetään joka kerta kun siihen lisätään jotain "Ostoslistalla on seuraavaa; [tuotteet]" ja lopuksi tulostetaan mitä koriin jäi: "Koriin jäi [määrä] tuotetta: [lista]".
Toimiessaan oikein ohjelma tulostaa seuraavaa:
Example output:
Ostoslistalla on seuraavaa;
(1) Lisää tuote (2) Poista listan viimeinen tuote (3) Lopeta:
1
Mitä lisätään?:
nakkeja
Ostoslistalla on seuraavaa;
nakkeja
(1) Lisää tuote (2) Poista listan viimeinen tuote (3) Lopeta:
2
Poistetaan nakkeja
Ostoslistalla on seuraavaa;
(1) Lisää tuote (2) Poista listan viimeinen tuote (3) Lopeta:
3
Koriin jäi 0 tuotetta:
Vastaus
#!/usr/bin/env ruby
# coding: utf-8
def kori(lista)
puts "Ostoslistalla on seuraavaa;"
lista.each{ |name| print name + " " }; print "\n"
puts "(1) Lisää tuote (2) Poista listan viimeinen tuote (3) Lopeta:"
valintaUser = Integer(gets.chomp)
case valintaUser
when 1
puts "Mitä lisätään?: "
lista.insert(-1,String(gets.chomp))
# Tai vaihtoehtoisesti
# lista.push(String(gets.chomp))
when 2
puts "Poistetaan #{lista.shift()}"
when 3
puts "Koriin jäi #{lista.length} tuotetta:"
puts lista
Process.exit(0)
else
warn "Virheellinen valinta"
end
end
ostoslista = []
while true
kori(ostoslista)
end