algoritmos*e*estruturas*de*dados* i · algoritmos*e*estruturas*de*dados* i...

13
Algoritmos e Estruturas de Dados I Prof. Marcos V. O. de Assis [email protected] [email protected] h>p://mvoassis.wordpress.com

Upload: trantuong

Post on 22-Dec-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos*e*Estruturas*de*Dados* I · Algoritmos*e*Estruturas*de*Dados* I Prof.*Marcos*V.*O.*de*Assis* mvoassis@gmail.com marcos.assis@ufpr.br h>p://mvoassis.wordpress.com

Algoritmos  e  Estruturas  de  Dados  I

Prof.  Marcos  V.  O.  de  Assis  [email protected]

[email protected]

h>p://mvoassis.wordpress.com

Page 2: Algoritmos*e*Estruturas*de*Dados* I · Algoritmos*e*Estruturas*de*Dados* I Prof.*Marcos*V.*O.*de*Assis* mvoassis@gmail.com marcos.assis@ufpr.br h>p://mvoassis.wordpress.com

Vetores

•  Variáveis  compostas  homogêneas  •  Vetores  (ja  foi)  •  Matrizes  (hoje!)  

Page 3: Algoritmos*e*Estruturas*de*Dados* I · Algoritmos*e*Estruturas*de*Dados* I Prof.*Marcos*V.*O.*de*Assis* mvoassis@gmail.com marcos.assis@ufpr.br h>p://mvoassis.wordpress.com

Relembrando.. •  O  que  são  variáveis  simples?  •  De  quais  elementos  uma  variável  é  

composta?  •  O  que  acontece  se  eu  colocar  dois  valores  

dentro  de  uma  mesma  variável?

Page 4: Algoritmos*e*Estruturas*de*Dados* I · Algoritmos*e*Estruturas*de*Dados* I Prof.*Marcos*V.*O.*de*Assis* mvoassis@gmail.com marcos.assis@ufpr.br h>p://mvoassis.wordpress.com

Relembrando.. Inicio

NUM n1; NUM n2, n3, n4;

n1 = 2; n2 = 5; n3 = 1;

n4 = 10;

n1 n3

n2 n4 2

5 10

1

NUM n[4];

n[0] = 2; n[1] = 5; n[2] = 1; n[3] = 10;

2 5 1 10 n

Notem que o valor que utilizamos para o índice designa qual COLUNA

da linha n estamos nos referindo.

Page 5: Algoritmos*e*Estruturas*de*Dados* I · Algoritmos*e*Estruturas*de*Dados* I Prof.*Marcos*V.*O.*de*Assis* mvoassis@gmail.com marcos.assis@ufpr.br h>p://mvoassis.wordpress.com

Matrizes

•  Estruturas  de  dados  semelhantes  à  vetores:  •  Bidimensionais  (uQlizam  2  dimensões)  •  Conjunto  de  N  x  M  variáveis;  •  Armazenadas  “em  sequência”;  •  O  índice  do  vetor  começa  em  0;  •  Então  um  vetor  de  4  posições  tem  índices:  

•  0,  1,  2  e  3;  •  Armazenar  vários  valores  (sem  apagar  

anteriores).  

Page 6: Algoritmos*e*Estruturas*de*Dados* I · Algoritmos*e*Estruturas*de*Dados* I Prof.*Marcos*V.*O.*de*Assis* mvoassis@gmail.com marcos.assis@ufpr.br h>p://mvoassis.wordpress.com

Relembrando.. Inicio

NUM n1; NUM n2, n3, n4;

n1 = 2; n2 = 5; n3 = 1;

n4 = 10;

n1 n3

n2 n4 2

5 10

1

NUM n[2][3];

n[0][0] = 2; n[0][1] = 5; n[0][2] = 1;

2 5 1

n

n[1][0] = 3; n[1][1] = 6; n[1][2] = 2;

3 6 2

Page 7: Algoritmos*e*Estruturas*de*Dados* I · Algoritmos*e*Estruturas*de*Dados* I Prof.*Marcos*V.*O.*de*Assis* mvoassis@gmail.com marcos.assis@ufpr.br h>p://mvoassis.wordpress.com

Exemplo  1

•   Exemplo  de  uso  de  variável  composta  bidimensional  

•   Faça  um  algoritmo  que  leia  6  valores  inseridos  pelo  usuário  e  os  armazene  em  uma  matriz  2x3.  

Page 8: Algoritmos*e*Estruturas*de*Dados* I · Algoritmos*e*Estruturas*de*Dados* I Prof.*Marcos*V.*O.*de*Assis* mvoassis@gmail.com marcos.assis@ufpr.br h>p://mvoassis.wordpress.com

Ex1

lin  <  2 Sim “Insira um

número:”

Inicio

NUM mat[2][3]; NUM lin, col;

lin = 0; col = 0;

mat[lin][col]; FIM

Não

lin = lin + 1; col = 0;

mat

col 0

5 8 2

lin

col<  3

col = col+1;

Sim

Não

0 1 2 3 1

3 6 9

2

Page 9: Algoritmos*e*Estruturas*de*Dados* I · Algoritmos*e*Estruturas*de*Dados* I Prof.*Marcos*V.*O.*de*Assis* mvoassis@gmail.com marcos.assis@ufpr.br h>p://mvoassis.wordpress.com

Exemplo  2

•  Faça  um  algoritmo  que  crie  uma  matriz  idenQdade  3x3  (usuário  não  precisa  inserir  nenhum  valor).  

1 0 0 0 1 0 0 0 1

Page 10: Algoritmos*e*Estruturas*de*Dados* I · Algoritmos*e*Estruturas*de*Dados* I Prof.*Marcos*V.*O.*de*Assis* mvoassis@gmail.com marcos.assis@ufpr.br h>p://mvoassis.wordpress.com

Ex2

linha  <  3 Sim

Inicio

NUM mat[3][3]; NUM linha;

NUM coluna;

linha=0; coluna=0;

FIM

Não

linha = linha + 1; coluna = 0;

coluna  <  3

Sim

Não linha  ==  coluna

mat[linha][coluna] = 0 ;

mat[linha][coluna] = 1 ;

Sim Não

coluna = coluna + 1 ;

Page 11: Algoritmos*e*Estruturas*de*Dados* I · Algoritmos*e*Estruturas*de*Dados* I Prof.*Marcos*V.*O.*de*Assis* mvoassis@gmail.com marcos.assis@ufpr.br h>p://mvoassis.wordpress.com

Exemplo  3

•   Faça  um  algoritmo  que  leia  6  valores  inseridos  pelo  usuário  e  os  armazene  em  uma  matriz  2x3,  mostrando  ao  final  quantos  desses  valores  são  pares.  

Page 12: Algoritmos*e*Estruturas*de*Dados* I · Algoritmos*e*Estruturas*de*Dados* I Prof.*Marcos*V.*O.*de*Assis* mvoassis@gmail.com marcos.assis@ufpr.br h>p://mvoassis.wordpress.com

Ex3

lin  <  2 Sim

“Insira um número:” Inicio

NUM mat[2][3]; NUM lin, col; NUM pares;

lin = 0; col = 0;

pares = 0;

mat[lin][col];

FIM

Não

lin = lin + 1; col = 0;

col<  3

col = col+1;

Sim Não

mat[lin][col] % 2  ==0

pares = pares + 1;

Sim

Não

“Existem __ pares.”,pares;

Page 13: Algoritmos*e*Estruturas*de*Dados* I · Algoritmos*e*Estruturas*de*Dados* I Prof.*Marcos*V.*O.*de*Assis* mvoassis@gmail.com marcos.assis@ufpr.br h>p://mvoassis.wordpress.com

Dúvidas?