Ruby fundamentals through coding exercises
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

1.7 KiB

5 Ostoslistaaja

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