SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
Lógica de
Programação com
Ruby
Array’s e Hashes
Ricardo Silva
O que são e para que servem?
- De modo geral são coleções(listas) de elementos
identificados por ao menos um índice ou uma chave
- No Ruby os arrays não possuem um limite de elementos,
eles crescem conforme a necessidade.
Declarando e utilizando arrays
Recusos do Array
- Quando utilizamos Arrays ganhamos com ele alguns
recursos bem legais:
O first e o last são alguns deles
Utilizando “ << “ para adicionar
elementos em arrays
Podemos adicionar diferentes
tipos de dados em um Array?
- Sim. Ruby é uma linguagem com tipagem dinâmica,
lembra?
Percorrendo nosso Array
- Quando utilizamos o comando puts seguido do nosso
array herois , todos os valores do nosso array foram
impressos. Mas e se fosse preciso percorrer nosso array e
imprimir somente alguns desses elementos?
- Digamos que é queremos imprimir somente os elementos
“Batman” e “Superman”, como podemos resolver isso?
Podemos usar o comando .each para percorrer nosso array,
extraindo elemento por elemento e verificando se o elemento
em questão é igual a “Batman” ou “Superman
Utilizando o for
Também podemos utilizar o for para percer esse array.
Trabalhando com Hashes
- Arrays são ótimos, mas não resolvem todos os nossos
problemas.
- E se nossa lista de herois aumentasse um pouco mais? E
se nós precisassemos dividir esses heróis por gênero?
Hashes podem nos ajudar
- Para declarar um hash nós só precisamos fazer algumas
alterações. No lugar dos colchetes( [] ), por exemplo,
utilizamos chaves ( {} ).
- :homens: e :mulheres são Symbols, que se parece com um
nome de variável, mas prefixado por dois pontos(:). Aqui
nós utilizamos eles para definir as duas categorias
possíveis. Depois utilizamos colchetes ( [] ) para passar
uma lista de elementos pertecentes aquela categoria(o
uso do colchete só é necessário caso existam mais de um
elemento pertecente a um Symbol)
Os métodos values
- Da mesma forma que arrays nos entregam alguns
recursos próprios, os hashes também fazem isso.
Podemos citar como exemplo o values
Values
- Utilizado quando precisamos obter todos os valores de
um determinado hash, esse método retorna todos os
valores dentro de um hash dentro de um array ,
independente dos symbols
- Para adicionar elementos no hash e percorrer o mesmo
fazemos isso de forma muito parecida com arrays.
- Vamos tentar buscar no nosso hash somente o herói que
se chamar Batman ou Mulher Gavião e que pertença a
categoria homens. Perceba que Mulher Gavião está no
nosso hash, mas não está em homens, então ela não
deverá ser impressa na tela
Exercicios
1- Faça um programa que receba o nome de 10 pessoas e
imprima na tela todas as pessoas pessoas cadastradas
2 - Crie um algoritmo em que o usuario entre com 10 letras.
Após isso o usuário deverá informar qual a letra deseja
procurar nessa lista e o programa deverá dizer se essa letra
está ou não está na lista.
Mais exercícios
3 - Escreva um programa que o usuário informe 5 valores e o
programa exiba esses valores em ordem crescente
4 - Crie um programa que receba 15 valores e ao final informe
qual é o maior e qual o menor valor informado
5 - Vc precisa criar um sistema que receba o nome e o gênero
da pessoa. Essas pessoas cadastradas precisam ser exibidas
em uma lista onde de um lado constarão somente as pessoas
do gênero masculino, e do outro, do gênero feminino

Mais conteúdo relacionado

Mais procurados

Um roadmap do Framework Ruby on Rails, do Rails 1 ao Rails 4 - DevDay 2013
Um roadmap do Framework Ruby on Rails, do Rails 1 ao Rails 4 - DevDay 2013Um roadmap do Framework Ruby on Rails, do Rails 1 ao Rails 4 - DevDay 2013
Um roadmap do Framework Ruby on Rails, do Rails 1 ao Rails 4 - DevDay 2013Joao Lucas Santana
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareÁlvaro Farias Pinheiro
 
As vantagens e desvantagens da aplicação de padrões de projeto
As vantagens e desvantagens da aplicação de padrões de projetoAs vantagens e desvantagens da aplicação de padrões de projeto
As vantagens e desvantagens da aplicação de padrões de projetoGabriel Galdino
 
Técnicas de Testes Funcionais Caixa-Preta
Técnicas de Testes Funcionais Caixa-PretaTécnicas de Testes Funcionais Caixa-Preta
Técnicas de Testes Funcionais Caixa-PretaLucas Amaral
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseRegis Magalhães
 
Estruturas de dados com C++ e STL
Estruturas de dados com C++ e STLEstruturas de dados com C++ e STL
Estruturas de dados com C++ e STLMarcos Castro
 

Mais procurados (9)

Um roadmap do Framework Ruby on Rails, do Rails 1 ao Rails 4 - DevDay 2013
Um roadmap do Framework Ruby on Rails, do Rails 1 ao Rails 4 - DevDay 2013Um roadmap do Framework Ruby on Rails, do Rails 1 ao Rails 4 - DevDay 2013
Um roadmap do Framework Ruby on Rails, do Rails 1 ao Rails 4 - DevDay 2013
 
Aula 4 - Estruturas condicionais
Aula 4 - Estruturas condicionaisAula 4 - Estruturas condicionais
Aula 4 - Estruturas condicionais
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de Software
 
As vantagens e desvantagens da aplicação de padrões de projeto
As vantagens e desvantagens da aplicação de padrões de projetoAs vantagens e desvantagens da aplicação de padrões de projeto
As vantagens e desvantagens da aplicação de padrões de projeto
 
Técnicas de Testes Funcionais Caixa-Preta
Técnicas de Testes Funcionais Caixa-PretaTécnicas de Testes Funcionais Caixa-Preta
Técnicas de Testes Funcionais Caixa-Preta
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De Classe
 
Apostila cobol
Apostila cobolApostila cobol
Apostila cobol
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
 
Estruturas de dados com C++ e STL
Estruturas de dados com C++ e STLEstruturas de dados com C++ e STL
Estruturas de dados com C++ e STL
 

Destaque

Estrutura de repetição com Ruby[AULA-3]
Estrutura de repetição com Ruby[AULA-3]Estrutura de repetição com Ruby[AULA-3]
Estrutura de repetição com Ruby[AULA-3]Ricardo Silva
 
Logica de programação. introdução[AULA-1]
Logica de programação. introdução[AULA-1]Logica de programação. introdução[AULA-1]
Logica de programação. introdução[AULA-1]Ricardo Silva
 
Funções com Ruby[AULA 5]
Funções com Ruby[AULA 5]Funções com Ruby[AULA 5]
Funções com Ruby[AULA 5]Ricardo Silva
 
Rest API's with Ruby on Rails
Rest API's with Ruby on RailsRest API's with Ruby on Rails
Rest API's with Ruby on RailsRicardo Silva
 
Ruby Language: Array, Hash and Iterators
Ruby Language: Array, Hash and IteratorsRuby Language: Array, Hash and Iterators
Ruby Language: Array, Hash and IteratorsSarah Allen
 
Codeplay Software - Open Standards for Automotive Vision Processing & Machine...
Codeplay Software - Open Standards for Automotive Vision Processing & Machine...Codeplay Software - Open Standards for Automotive Vision Processing & Machine...
Codeplay Software - Open Standards for Automotive Vision Processing & Machine...Charles Macfarlane
 
Taller de Creatividad - Escuela Da Vinci - Clase 3
Taller de Creatividad - Escuela Da Vinci - Clase 3Taller de Creatividad - Escuela Da Vinci - Clase 3
Taller de Creatividad - Escuela Da Vinci - Clase 3José Francisco Hiebaum
 
Intro.deck.0-3
Intro.deck.0-3Intro.deck.0-3
Intro.deck.0-3Will Shown
 
Learning Object #1 Energy in a Mass Spring System
Learning Object #1 Energy in a Mass Spring SystemLearning Object #1 Energy in a Mass Spring System
Learning Object #1 Energy in a Mass Spring Systemtony2sun
 
Reglamento qh 2015_es
Reglamento qh 2015_esReglamento qh 2015_es
Reglamento qh 2015_esMartaSayas
 
Análisis morfológigo nivel alto 1
Análisis morfológigo nivel alto 1Análisis morfológigo nivel alto 1
Análisis morfológigo nivel alto 1Marga Casaus
 
先用再学 - 借助 XNA 快速开发游戏原型
先用再学  - 借助 XNA 快速开发游戏原型先用再学  - 借助 XNA 快速开发游戏原型
先用再学 - 借助 XNA 快速开发游戏原型onlyfeng
 
Análisis morfológico nivel inicial 1
Análisis morfológico nivel inicial 1Análisis morfológico nivel inicial 1
Análisis morfológico nivel inicial 1Marga Casaus
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOMicrosoft
 
La Cultura Escolar y el Clima Escolar ccesa007
La Cultura Escolar y el Clima Escolar  ccesa007La Cultura Escolar y el Clima Escolar  ccesa007
La Cultura Escolar y el Clima Escolar ccesa007Demetrio Ccesa Rayme
 

Destaque (20)

Estrutura de repetição com Ruby[AULA-3]
Estrutura de repetição com Ruby[AULA-3]Estrutura de repetição com Ruby[AULA-3]
Estrutura de repetição com Ruby[AULA-3]
 
Logica de programação. introdução[AULA-1]
Logica de programação. introdução[AULA-1]Logica de programação. introdução[AULA-1]
Logica de programação. introdução[AULA-1]
 
Funções com Ruby[AULA 5]
Funções com Ruby[AULA 5]Funções com Ruby[AULA 5]
Funções com Ruby[AULA 5]
 
Rest API's with Ruby on Rails
Rest API's with Ruby on RailsRest API's with Ruby on Rails
Rest API's with Ruby on Rails
 
Ruby Language: Array, Hash and Iterators
Ruby Language: Array, Hash and IteratorsRuby Language: Array, Hash and Iterators
Ruby Language: Array, Hash and Iterators
 
Codeplay Software - Open Standards for Automotive Vision Processing & Machine...
Codeplay Software - Open Standards for Automotive Vision Processing & Machine...Codeplay Software - Open Standards for Automotive Vision Processing & Machine...
Codeplay Software - Open Standards for Automotive Vision Processing & Machine...
 
10 augusto salazar bondy
10 augusto salazar bondy10 augusto salazar bondy
10 augusto salazar bondy
 
Katja Henttonen ja Maija Federley: Yhteistoimintatalouden tulevaisuutta etsim...
Katja Henttonen ja Maija Federley: Yhteistoimintatalouden tulevaisuutta etsim...Katja Henttonen ja Maija Federley: Yhteistoimintatalouden tulevaisuutta etsim...
Katja Henttonen ja Maija Federley: Yhteistoimintatalouden tulevaisuutta etsim...
 
newsmag
newsmagnewsmag
newsmag
 
Company Profile Final
Company Profile FinalCompany Profile Final
Company Profile Final
 
Taller de Creatividad - Escuela Da Vinci - Clase 3
Taller de Creatividad - Escuela Da Vinci - Clase 3Taller de Creatividad - Escuela Da Vinci - Clase 3
Taller de Creatividad - Escuela Da Vinci - Clase 3
 
oric1
oric1oric1
oric1
 
Intro.deck.0-3
Intro.deck.0-3Intro.deck.0-3
Intro.deck.0-3
 
Learning Object #1 Energy in a Mass Spring System
Learning Object #1 Energy in a Mass Spring SystemLearning Object #1 Energy in a Mass Spring System
Learning Object #1 Energy in a Mass Spring System
 
Reglamento qh 2015_es
Reglamento qh 2015_esReglamento qh 2015_es
Reglamento qh 2015_es
 
Análisis morfológigo nivel alto 1
Análisis morfológigo nivel alto 1Análisis morfológigo nivel alto 1
Análisis morfológigo nivel alto 1
 
先用再学 - 借助 XNA 快速开发游戏原型
先用再学  - 借助 XNA 快速开发游戏原型先用再学  - 借助 XNA 快速开发游戏原型
先用再学 - 借助 XNA 快速开发游戏原型
 
Análisis morfológico nivel inicial 1
Análisis morfológico nivel inicial 1Análisis morfológico nivel inicial 1
Análisis morfológico nivel inicial 1
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
 
La Cultura Escolar y el Clima Escolar ccesa007
La Cultura Escolar y el Clima Escolar  ccesa007La Cultura Escolar y el Clima Escolar  ccesa007
La Cultura Escolar y el Clima Escolar ccesa007
 

Semelhante a Arrays e Hashes com Ruby[AULA 4]

Semelhante a Arrays e Hashes com Ruby[AULA 4] (12)

PHP - Arrays
PHP - ArraysPHP - Arrays
PHP - Arrays
 
Aula15 - Array PHP
Aula15 - Array PHPAula15 - Array PHP
Aula15 - Array PHP
 
4234 mysql
4234 mysql4234 mysql
4234 mysql
 
Apostila php 01
Apostila php 01Apostila php 01
Apostila php 01
 
Manipulacao de arrays
Manipulacao de arraysManipulacao de arrays
Manipulacao de arrays
 
Java: strings e arrays
Java: strings e arraysJava: strings e arrays
Java: strings e arrays
 
Aula 02 - JavaScript: Arrays
Aula 02 - JavaScript: ArraysAula 02 - JavaScript: Arrays
Aula 02 - JavaScript: Arrays
 
Curso ruby on rails
Curso ruby on railsCurso ruby on rails
Curso ruby on rails
 
Java básico - Módulo 06: Array
Java básico - Módulo 06: ArrayJava básico - Módulo 06: Array
Java básico - Módulo 06: Array
 
PHP Básico - Parte 3
PHP Básico - Parte 3PHP Básico - Parte 3
PHP Básico - Parte 3
 
Aprendendo ruby
Aprendendo rubyAprendendo ruby
Aprendendo ruby
 
Capítulo 6
Capítulo 6Capítulo 6
Capítulo 6
 

Arrays e Hashes com Ruby[AULA 4]

  • 2. O que são e para que servem? - De modo geral são coleções(listas) de elementos identificados por ao menos um índice ou uma chave - No Ruby os arrays não possuem um limite de elementos, eles crescem conforme a necessidade.
  • 3.
  • 5. Recusos do Array - Quando utilizamos Arrays ganhamos com ele alguns recursos bem legais:
  • 6. O first e o last são alguns deles
  • 7. Utilizando “ << “ para adicionar elementos em arrays
  • 8. Podemos adicionar diferentes tipos de dados em um Array? - Sim. Ruby é uma linguagem com tipagem dinâmica, lembra?
  • 9.
  • 10. Percorrendo nosso Array - Quando utilizamos o comando puts seguido do nosso array herois , todos os valores do nosso array foram impressos. Mas e se fosse preciso percorrer nosso array e imprimir somente alguns desses elementos? - Digamos que é queremos imprimir somente os elementos “Batman” e “Superman”, como podemos resolver isso?
  • 11. Podemos usar o comando .each para percorrer nosso array, extraindo elemento por elemento e verificando se o elemento em questão é igual a “Batman” ou “Superman
  • 12. Utilizando o for Também podemos utilizar o for para percer esse array.
  • 13. Trabalhando com Hashes - Arrays são ótimos, mas não resolvem todos os nossos problemas. - E se nossa lista de herois aumentasse um pouco mais? E se nós precisassemos dividir esses heróis por gênero?
  • 15. - Para declarar um hash nós só precisamos fazer algumas alterações. No lugar dos colchetes( [] ), por exemplo, utilizamos chaves ( {} ). - :homens: e :mulheres são Symbols, que se parece com um nome de variável, mas prefixado por dois pontos(:). Aqui nós utilizamos eles para definir as duas categorias possíveis. Depois utilizamos colchetes ( [] ) para passar uma lista de elementos pertecentes aquela categoria(o uso do colchete só é necessário caso existam mais de um elemento pertecente a um Symbol)
  • 16.
  • 17. Os métodos values - Da mesma forma que arrays nos entregam alguns recursos próprios, os hashes também fazem isso. Podemos citar como exemplo o values
  • 18. Values - Utilizado quando precisamos obter todos os valores de um determinado hash, esse método retorna todos os valores dentro de um hash dentro de um array , independente dos symbols
  • 19.
  • 20. - Para adicionar elementos no hash e percorrer o mesmo fazemos isso de forma muito parecida com arrays. - Vamos tentar buscar no nosso hash somente o herói que se chamar Batman ou Mulher Gavião e que pertença a categoria homens. Perceba que Mulher Gavião está no nosso hash, mas não está em homens, então ela não deverá ser impressa na tela
  • 21.
  • 22. Exercicios 1- Faça um programa que receba o nome de 10 pessoas e imprima na tela todas as pessoas pessoas cadastradas 2 - Crie um algoritmo em que o usuario entre com 10 letras. Após isso o usuário deverá informar qual a letra deseja procurar nessa lista e o programa deverá dizer se essa letra está ou não está na lista.
  • 23. Mais exercícios 3 - Escreva um programa que o usuário informe 5 valores e o programa exiba esses valores em ordem crescente 4 - Crie um programa que receba 15 valores e ao final informe qual é o maior e qual o menor valor informado 5 - Vc precisa criar um sistema que receba o nome e o gênero da pessoa. Essas pessoas cadastradas precisam ser exibidas em uma lista onde de um lado constarão somente as pessoas do gênero masculino, e do outro, do gênero feminino