Exemplo: Livro de endereços
Nesta seção vamos contruir um pequeno livro de endereços contendo informações sobre três amigos: Joseph, Melissa e Sandy.
Um livro de endereços é uma estrutura de complexidade satisfatória. Ele contem os contatos, e para cada um associa o nome, endereço e mais.
Nossa estratégia será dividir o problema em partes mais simples.
Primeiro Passo: requisitos
Primeiro, vamos definir quais informações nosso livro de endereços vai conter:
1. O livro de endereços vai conter um grupo de contato. Nos vamos organizar estes contatos alfabeticamente.
2. Cada contato terá o primeiro nome, o último nome, número de telefone e endereço..
3. Cada endereço conterá o nome da rua, da cidade, do estado e o CEP.
#Nós vamos começar definindo a estrutura do endereço e finalizar o livro de endereços.
Segundo passo: endereço
Temos várias escolhas para a estrutura dos endereços:
1. Array: É costumeiro que a ruavenha primeiro, depois a cidade, depois o estado e por último o CEP. Então um array daria certo.
2. Hash: É mais fácil lembrar algo como address["zip"] do que address[2]. Então, a hash é mais fácil de usar.
Neste caso, vamos ficar com a hash. Então, os três endereços serão:
# Melissa's address
melissa_addr = {
"street" => "23 St George St.",
"city" => "Silver Spring",
"state" => "MD",
"zip" => "20465"
}
# Sandy's address
sandy_addr = {
"street" => "324 Campus Dr.",
"city" => "College Park",
"state" => "MD",
"zip" => "23659"
}
# Joe's address
joe_addr = {
"street" => "43 Main St. W",
"city" => "Washington",
"state" => "DC",
"zip" => "29847"
}
|
Terceiro passo: Pessoas
Cada pessoa tem um primeiro nome, o último nome, um número de telefone e um endereço. Each person has a first name, last name, a phone number and an address. Esta ordem não é a mais óbiva para estes itens, então vamos definir a hash.
# Joe
joe = {
"first name" => "Joe",
"last name" => "Smith",
"phone" => "(301) 345-9837",
"address" => joe_addr
}
# Melissa
melissa = {
"first name" => "Melissa",
"last name" => "Adams",
"phone" => "(301) 364-8924",
"address" => melissa_addr
}
# Sandy
sandy = {
"first name" => "Sandy",
"last name" => "Koh",
"phone" => "(301) 354-2975",
"address" => sandy_addr
}
|
Quarto passo: Livro de endereços
Agora que temos toda a estrutura definida, é hora de criar o
livro de endereços. Vamos manter o livro de endereços em
uma ordem particular. Para isso, nós vamos usar um array:
addressbook = [ melissa, joe, sandy ]
|
E aí está. Uma estrutura completa de livro de endereços. Na próxima seção vamos aprender como ordenar este livro de endereços e algumas outras coisas legais.
|
Nota: Salve tudo isso num arquivo. Nós
vamos voltar a usá-lo nas próximas seções. |
Excercícios
1. Adicione um de seus amigos neste livro de endereços.
2. Mude o livro de endereços para que ele também
contenha o endereço de e-mail dos contatos.