Programação de Computadores - · PDF fileEu gosto de programar em Ruby! /23...
Transcript of Programação de Computadores - · PDF fileEu gosto de programar em Ruby! /23...
INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIARIO GRANDE DO NORTE
Programação de Computadores
Mais arraysCopyright © 2013 IFRN
/23
O que veremos hoje?ArraysCópia de arraysIteração sobre os elementos do arrayString como arrays
Array de caracteresAcesso através do conteúdoMétodos split, joinMétodo gsub
Exercícios2
/23
RelembrandoO que são arrays?
Um agregado de elementosCapacidade de armazenar uma coleção de valoresÚnica variávelValores são acessados pelo seu índice
3
v0 1 2 3 4 5 . . . n-1. . .
x y media
Array
int,real,etcint,real,etc
Array
/23
CópiaAtribuição simples não copia
Método dup
4
1 2 3 4 5a10 1 2 3 4
1 2 3 4 5
a2
0 1 2 3 4
a1 = [1,2,3,4,5]a2 = a1
a1 = [1,2,3,4,5]a3 = a1.dup
a3
/23
CópiaCUIDADO
a1 e a2 são o mesmoIndiferente alterar a1 ou a2
Sempre use o dup para criar um novo array que é cópia de outro
5
1 2 9 4 5a10 1 2 3 4
1 2 3 4 5
a2
0 1 2 3 4a3a1[2] = 9
puts a2[2]
/23
IteraçãoOperação for sobre arrays
6
for x in array do ... ... usa x ...end
Processa o bloco com
cada elemento do array
atribuído a x
/23
IteraçãoExemplo
7
a = [12,3,13,34,65]
soma = 0for num in a do soma = soma+numend
soma = 0soma = soma+a[0]soma = soma+a[1]soma = soma+a[2]soma = soma+a[3]soma = soma+a[4]
Mesmo que
/23
IteraçãoExemplo
7
a = [12,3,13,34,65]
soma = 0for num in a do soma = soma+numend
soma = 0soma = soma+a[0]soma = soma+a[1]soma = soma+a[2]soma = soma+a[3]soma = soma+a[4]
Mesmo que
/23
ExemploSomar os quadrados dos elementos de um array
8
soma = 0for num in a do soma = soma+(num*num)endputs soma
/23
ArraysAdiciona elemento no fim de um array
Operador <<
10
a = [12,3,13,34,65]a << 20
1 2 9 4 5a
1 2 9 4 5 20a
Antes
Depois
/23
ExemploCriar dois array, um com as notas maiores que a média e outro com as menores que a média
11
notas = 30.times.map do gets.to_f end maiores = []menores = []for nota in notas do if (nota < 6.0) then menores << nota else maiores << nota endend
puts maioresputs menores
/23
Soma de arraysUm terceiro array é criado
12
a1 = [1,2,3,4]a2 = [5,4,3,2,1]a3 = a1+a2
1 2 3 4a1
1 2 3 4 5 4 3 2 1
a2
a3
5 4 3 2 1
/23
Soma de arraysUm terceiro array é criado
12
a1 = [1,2,3,4]a2 = [5,4,3,2,1]a3 = a1+a2
1 2 3 4a1
1 2 3 4 5 4 3 2 1
a2
a3
5 4 3 2 1
a4 = a3+[9]a5 = a1+[5,6,7,8]
/23
Soma de arraysUm terceiro array é criado
12
a1 = [1,2,3,4]a2 = [5,4,3,2,1]a3 = a1+a2
1 2 3 4a1
1 2 3 4 5 4 3 2 1
a2
a3
5 4 3 2 1
a4 = a3+[9]a5 = a1+[5,6,7,8] 1 2 3 4 5 4 3 2 1 9
a4 1 2 3 4 5 6 7 8
a5
/23
StringArray de caracteresCada caractere pode ser acessado pelo índice
Pode-se acessar um caracteresputs x[3]
13
x = "Uma string pode ser vista como um array!"
U m a s t r i n g p o d e s e r v i s t a c o m o u m a r r a y !x0 1 2 ... 39... 38
/23
StringsAcesso a partes pelo conteúdo
14
msg = "Eu gosto de programar em Ruby!"msg["gosto de"] = "adoro"
Eu gosto de programar em Ruby!
/23
StringsAcesso a partes pelo conteúdo
14
msg = "Eu gosto de programar em Ruby!"msg["gosto de"] = "adoro"
Eu gosto de programar em Ruby!
/23
StringsAcesso a partes pelo conteúdo
14
msg = "Eu gosto de programar em Ruby!"msg["gosto de"] = "adoro"
Eu adoro programar em Ruby!
Eu gosto de programar em Ruby!
/23
StringsAcesso a partes pelo conteúdo
14
msg = "Eu gosto de programar em Ruby!"msg["gosto de"] = "adoro"
Eu adoro programar em Ruby!
Eu gosto de programar em Ruby!
/23
Métodossplit
Divide a string em partes e coloca em um arrayO espaço é o separador de strings
15
texto = "teste de como dividir uma string"palavras = texto.split
/23
Métodossplit
Divide a string em partes e coloca em um arrayO espaço é o separador de strings
15
texto = "teste de como dividir uma string"palavras = texto.split
palavras = ["teste", "de", "como", "dividir", "uma", "string"]
/23
MétodosSplit aceita um parâmetro
O separador
16
texto = "teste de como dividir uma string"msg = texto.split("e")
/23
MétodosSplit aceita um parâmetro
O separador
16
texto = "teste de como dividir uma string"msg = texto.split("e")
msg = ["t", "st", " d", " como dividir uma string"]
/23
MétodosSplit
Separar a string em um array de caracteres
17
nome="Alfredo"a_nome=nome.split("")
a_nome = ["A", "l", "f", "r", "e", "d", "o"]
/23
ExemploContar palavras
18
txt = getspalavras = txt.splitputs "O texto tem #{palavras.size} palavras."
/23
ExemploContar palavras
18
txt = getspalavras = txt.splitputs "O texto tem #{palavras.size} palavras."
/23
ExemploContar frases
19
txt = getsfrases = txt.split(".")puts "O texto tem #{frases.size} frases."
/23
ExemploContar frases
19
txt = getsfrases = txt.split(".")puts "O texto tem #{frases.size} frases."
/23
Métodosjoin
Cria uma string a partir de um array
20
a1= ["Um","monte","de","palavras"]txt=a1.joinputs txt
/23
Métodosjoin
Cria uma string a partir de um array
20
a1= ["Um","monte","de","palavras"]txt=a1.joinputs txt
/23
Métodosjoin
Cria uma string a partir de um array
21
a1= ["Um","monte","de","palavras"]txt=a1.join (" ")puts txt
/23
Métodosjoin
Cria uma string a partir de um array
21
a1= ["Um","monte","de","palavras"]txt=a1.join (" ")puts txt
/23
Métodosgsub
Substitui um padrão na string
22
txt = "Teste de substituicao de texto"txt1 = txt.gsub("te","**")puts txt1
/23
Métodosgsub
Substitui um padrão na string
22
txt = "Teste de substituicao de texto"txt1 = txt.gsub("te","**")puts txt1