algoritmos*e*estruturas*de*dados* i · algoritmos*e*estruturas*de*dados* i...
TRANSCRIPT
Algoritmos e Estruturas de Dados I
Prof. Marcos V. O. de Assis [email protected]
h>p://mvoassis.wordpress.com
Vetores
• Variáveis compostas homogêneas • Vetores (ja foi) • Matrizes (hoje!)
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?
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.
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).
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
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.
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
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
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 ;
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.
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;
Dúvidas?