Programação de Computadores - · PDF fileEu gosto de programar em Ruby! /23...

37
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Programação de Computadores Mais arrays Copyright © 2013 IFRN

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

ExemploMostrar os números pares

9

for num in a do if (num%2 == 0) then puts num endend

/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("")

/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

/23

Dúvidas?23