• Nenhum resultado encontrado

Estrutura de Dados e

N/A
N/A
Protected

Academic year: 2022

Share "Estrutura de Dados e"

Copied!
110
0
0

Texto

(1)

Estrutura de Dados e Algoritmos I

Capítulo 3. Vetores

Márcio Palheta, M.Sc.

[email protected]

(2)

O instrutor

Desenvolve SW desde 2000

Mestre em BD-RI pela UFAM 2013

Especialista Aplicações Web pela FUCAPI 2008

[email protected]

Site das disciplinas:

https://sites.google.com/sit

e/marciopalheta/ Professor e Arquiteto de Software

MARCIO PALHETA

(3)

Plano de aula do 1º Bimestre

Funções e procedimentos (18/07)

Vetores (23, 25, 30/07, 01, 06 e 08/08)

Lista 01 – [AV1] (13 e 15/08)

Matrizes (20, 22, 27 e 29/08)

Recursividade e Strings (03, 10 e 12/09)

Lista 02 [AV2] (17 e 19/09)

Avaliação Bimestral [AVB1] (24 e 26/09)

(4)

Plano de aula do 2º Bimestre

Registros e ponteiros(08 e 10/10)

Alocação dinâmica(15, 17 e 22/10)

Lista03 - AV3 (29 e 31/10)

Arquivos(05, 07, 12 e 14/11)

Lista04 - AV4 (19 e 21/11)

Trabalho Prático TP2 (26 e 28/11)

Avaliação Bimestral AVB2 (03 e 05/12)

(5)

O problema do somatório

Oi star, tô com outro problema

(6)

O problema do somatório

Pow trek, diz aí, qualé?

Oi star, tô com outro problema

(7)

Somatório com muitas variáveis

Preciso criar uma função que receba cinquenta

números inteiros...

(8)

Somatório com muitas variáveis

Preciso criar uma função que receba cinquenta

números inteiros...

... e devolva o maior elemento entre eles

(9)

Botando a mão na massa

Comecei a fazer, mas

encontrei um problema...

(10)

O ombro amigo

Diz aí trek, qual foi o problema?

(11)

A hora da onça beber água

A lista de parâmetros tem cinquenta variáveis

do mesmo tipo

(12)

A hora da onça beber água

A lista de parâmetros tem cinquenta variáveis

do mesmo tipo

E tenho que manipular uma por uma

(13)
(14)

Tá doido, maluco ???

(15)

Tá doido, maluco ???

Pelo bem da

humanidade, nunca mais repita isso

(16)

Tá doido, maluco ???

Pelo bem da

humanidade, nunca mais repita isso

Você vai usar uma estrutura de dados

(17)

Pensando em conteúdo novo

E como é isso...

de VETOR?

(18)

Um VETOR ou Array é uma estrutura de

dados simples...

(19)

... que usamos para manipular conjuntos

de variáveis...

Um VETOR ou Array é uma estrutura de

dados simples...

(20)

... que usamos para manipular conjuntos

de variáveis...

... onde todas as variáveis Um VETOR ou Array

é uma estrutura de dados simples...

(21)

<tipo> nome_vetor [ tamanho ];

Você 1º precisa conhecer os passos para usar vetores

Passo 1: declaração do vetor

(22)

<tipo> nome_vetor [ tamanho ];

Você 1º precisa conhecer os passos para usar vetores

Passo 1: declaração do vetor

Tipo das variáveis

(23)

<tipo> nome_vetor [ tamanho ];

Você 1º precisa conhecer os passos para usar vetores

Passo 1: declaração do vetor

Nome do vetor

(24)

<tipo> nome_vetor [ tamanho ];

Você 1º precisa conhecer os passos para usar vetores

Passo 1: declaração do vetor

Número de variáveis armazenadas

(25)

Você 1º precisa conhecer os passos para usar vetores

Passo 1: declaração do vetor

(26)

Você 1º precisa conhecer os passos para usar vetores

int meuVetor [5];

O comando:

Passo 1: declaração do vetor

(27)

Você 1º precisa conhecer os passos para usar vetores

int meuVetor [5];

O comando:

Reserva 5 endereços de memória

Passo 1: declaração do vetor

(28)

Você 1º precisa conhecer os passos para usar vetores

int meuVetor [5];

O comando:

Reserva 5 endereços

de memória Espaços seguidos Passo 1: declaração do vetor

(29)

Você 1º precisa conhecer os passos para usar vetores

int meuVetor [5];

O comando:

Acessados a partir de

índices 0 - 4 0 1 2 3 4 Passo 1: declaração do vetor

(30)

Você 1º precisa conhecer os passos para usar vetores

Passo 2: atualização das variáveis

(31)

Você 1º precisa conhecer os passos para usar vetores

meuVetor[0]=10;

O comando:

Passo 2: atualização das variáveis

(32)

Você 1º precisa conhecer os passos para usar vetores

O comando:

Altera o valor da posição 0

10

0 1 2 3 4 meuVetor[0]=10;

Passo 2: atualização das variáveis

(33)

Você 1º precisa conhecer os passos para usar vetores

O comando:

Altera o valor da posição 1

10 3

0 1 2 3 4 meuVetor[1]=3;

Passo 2: atualização das variáveis

(34)

Você 1º precisa conhecer os passos para usar vetores

O comando:

Altera o valor da posição 4

10 3 50

0 1 2 3 4 meuVetor[4]=50;

Passo 2: atualização das variáveis

(35)

Opa, posso deixar espaços vazios?

(36)

Opa, posso deixar espaços vazios?

Pode sim

(37)

Tá pra mim

(38)

Você 1º precisa conhecer os passos para usar vetores

O comando:

Altera o valor da posição 2

10 3 20 50 0 1 2 3 4 meuVetor[2]=20;

Passo 2: atualização das variáveis

(39)

Você 1º precisa conhecer os passos para usar vetores

O comando:

Altera o valor da posição 3

10 3 20 15 50 0 1 2 3 4 meuVetor[3]=15;

Passo 2: atualização das variáveis

(40)

Então basta saber o índice do elemento

que quero alterar?

(41)

Isso

Então basta saber o índice do elemento

que quero alterar?

(42)

Isso Shooooow!!!

Então basta saber o índice do elemento

que quero alterar?

(43)

Você 1º precisa conhecer os passos para usar vetores

Passo 3: acesso a variáveis

(44)

Você 1º precisa conhecer os passos para usar vetores

O comando:

printf(“%d”, meuVetor[4]);

Passo 3: acesso a variáveis

10 3 20 15 50

(45)

Você 1º precisa conhecer os passos para usar vetores

O comando:

printf(“%d”, meuVetor[4]);

Passo 3: acesso a variáveis

Imprime o conteúdo do índice 4 10 3 20 15 50

(46)

Você 1º precisa conhecer os passos para usar vetores

O comando:

printf(“%d”, meuVetor[4]);

Passo 3: acesso a variáveis

Ou seja, imprime o valor: 15

10 3 20 15 50

(47)

Star, e se seu tentar acessar um índice

inválido?

(48)

O quê que tu achas, trek?

Star, e se seu tentar acessar um índice

inválido?

(49)

Dá erro?

(50)

Claaaaaaro Dá erro?

(51)

Bem que eu suspeitei

(52)

Então... Vai praticar

(53)

Então... Vai praticar

Que tu só aprendes a programar...

programando, pow!

(54)

Exercícios

1. No método main(), peça do usuário cinco valores inteiros e armazene-os em um vetor;

2. Crie um procedimento que recebe um vetor de inteiros com cinco elementos e imprima seu conteúdo;

3. Utilize o método main() para testar o procedimento gerado;

(55)

Você ficaria muito chateado...

(56)

...se eu pedisse para resolvermos

juntos?

Você ficaria muito chateado...

(57)

Tá bom, sem problemas!

(58)

Vamos lá...

Tá bom, sem problemas!

(59)

Vamos começar definindo os

componentes necessários

(60)

Vamos começar definindo os componentes necessários

Constante de

tamanho do vetor

(61)

Vamos começar definindo os componentes necessários

Constante de

tamanho do vetor

Não é obrigatória

(62)

Vamos começar definindo os componentes necessários

Constante de

tamanho do vetor

Não é obrigatória Mas é melhor do

que “decorar” o tamanho do vetor

(63)

Vamos começar definindo os componentes necessários

Método para

impressão do vetor

(64)

Vamos começar definindo os componentes necessários

SEM retorno

(65)

Vamos começar definindo os componentes necessários

SEM retorno

Recebe o vetor como parâmetro

(66)

Então, ao invés de

passar cinco variáveis...

(67)

Então, ao invés de

passar cinco variáveis...

...passo apenas o vetor?

(68)

Isso mesmo Então, ao invés de

passar cinco variáveis...

...passo apenas o vetor?

(69)

Shooooow!

(70)

Vamos começar definindo os componentes necessários

Método principal, onde iremos...

(71)

Vamos começar definindo os componentes necessários

Método principal, onde iremos...

...ler o conteúdo do vetor e chamar o

método de impressão

(72)

Agora vamos implementar...

(73)

Agora vamos implementar...

...e explicar cada método?

(74)

Agora vamos implementar...

Sim, sim...

Por favor!

...e explicar cada método?

(75)

Método de impressão

(76)

Método de impressão

Precisamos percorrer o

vetor...

(77)

Método de impressão

Precisamos percorrer o

vetor... ...e imprimir seu conteúdo

(78)

Método de impressão

Por isso usamos um laço de repetição

(79)

Método de impressão

Por isso usamos um laço de repetição

Que inicia em ZERO...

(80)

Método de impressão

Por isso usamos um laço de repetição

Que inicia

em ZERO... ...percorre todos os índices do vetor...

(81)

Método de impressão

Por isso usamos um laço de repetição

Que inicia

em ZERO... ...percorre todos os índices do vetor...

...atualizando o índice, ao final de cada iteração

(82)

Método de impressão

A cada iteração...

(83)

Método de impressão

A cada iteração...

...imprimimos o conteúdo de uma

posição do vetor

(84)

Simples assim

(85)

Simples assim

Shooooow!

(86)

Vamos ao método main()

(87)

Vamos ao método main()

Declaração de variáveis

(88)

Vamos ao método main()

Declaração de variáveis

Vetor

(89)

Vamos ao método main()

Declaração de variáveis

Vetor

Variável comum

(90)

Posso declarar o vetor junto com as variáveis

primitivas?

(91)

Posso declarar o vetor junto com as variáveis

primitivas?

SIM

(92)

Posso declarar o vetor junto com as variáveis

primitivas?

SIM

Shooooow!

(93)

Vamos ao método main()

Precisamos

percorrer o vetor

(94)

Mas esse laço de repetição parece aquele que usamos na impressão do conteúdo.

(95)

Mas esse laço de repetição parece aquele que usamos na impressão do conteúdo.

É sim.

(96)

Mas esse laço de repetição parece aquele que usamos na impressão do conteúdo.

Usamos laços sempre que precisamos

É sim.

(97)

De volta ao método main()

(98)

De volta ao método main()

A cada iteração...

(99)

De volta ao método main()

A cada iteração... ... lemos um valor...

(100)

De volta ao método main()

A cada iteração...

... e atualizamos a posição do vetor

(101)

De volta ao método main()

E no final...

(102)

De volta ao método main()

E no final...

...chamamos o

método que imprime o conteúdo do vetor

(103)

Gostei, mas

poderíamos fazer mais exercícios?

(104)

SIM

Gostei, mas

poderíamos fazer mais exercícios?

(105)

SIM

Shooooow!

Gostei, mas

poderíamos fazer mais exercícios?

(106)

Exercícios

1. Escreva uma função que receba um

array A e devolva o maior elemento de A;

2. Escreva uma função que receba um vetor de inteiros e devolva a soma de seus elementos;

3. Escreva um procedimento que receba um vetor A e imprima a ordem inversa de seus elemento;

(107)

Exercícios

4. Escreva uma função que um vetor A com as 5 notas de um aluno e devolva a media aritmética das avaliações;

5. Escreva uma função que receba um vetor A e um escalar X e devolva o número de vezes que X ocorre em A

(108)

Bibliografia

ASSENCIO, Ana Fernandes Gomes. Fundamentos da

programação de computadores, 3ª edição, Pearson, 2012.

ASSENCIO, Ana Fernandes

Gomes. Estruturas de Dados, Pearson, 2010.

(109)

Referências

ASSENCIO, Ana Fernandes Gomes.

Fundamentos da programação de

computadores, 3ª edição, Pearson, 2012.

ASSENCIO, Ana Fernandes Gomes.

Estruturas de Dados, Pearson, 2010.

FORBELONE, André. Lógica de Programação.

Editora Makron Books, 2000

Projetos Pedagógicos dos Cursos de SIS, CCP e ECP;

(110)

Estrutura de Dados e Algoritmos I

Capítulo 3. Vetores

Márcio Palheta, M.Sc.

[email protected]

Referências

Documentos relacionados

SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS..

Daí tu te perguntas “o que danado isso vai afetar na vida deles?” A gente sabe da importância que a areia tem para as construções, pro desenvolvimento do

[r]

Não pode ser copiado, escaneado, ou duplicado, no todo ou em parte, exceto para uso como permitido em uma licença distribuída com um certo produto ou serviço ou de outra forma em

O Vereador WASHINGTON CORRÊA LIMA NETO fez uso da palavra propondo nova REITERAÇÃO ao Executivo Municipal visando que seja informado a esta Casa Legislativa se a

O retardo de grupo é definido nas unidades de tempo, tipicamente os nanossegundos (ns). Em um sistema, em uma rede, ou em um componente sem o retardo de grupo, todas as frequências

Até 31 de maio, todos os comércios e serviços do Estado de São Paulo considerados não essenciais devem permanecer fechados para evitar a transmissão do novo coronavírus

Visando analisar o projeto pedagógico de quatro cursos de licenciatura da UNIPLAC, essa pesquisa de modo exploratório, teve em sua primeira etapa, uma investigação sobre