Sei sulla pagina 1di 16

Algoritmos

Aula 10
Mairum Ceoldo Andrade

Contedo
Matriz bidimensional
Conceito de matriz
Declarao de uma matriz
Incluso de dados em uma matriz
Leitura de dados de uma matriz

Matriz
Quero fazer um programa para controlar a notas dos
alunos, preciso registrar quatro notas diferentes mais
a frequncia, tenho ao todo 60 alunos!
Vetor Notas 1
A1

A2

A3

A4

.....

A59

A60

A3

A4

.....

A59

A60

A3

A4

.....

A59

A60

A2

A3

A4

.....

A59

A60

A2

A3

A4

.....

A59

A60

Vetor Notas 2
A1

A2

Vetor Notas 3
A1

A2

Vetor Notas 4
A1
Vetor Faltas
A1

Matriz
5 vetores?
Ser que a melhor opo?
Como faramos em papel?
Aluno1

Aluno2

Aulno3

Aluno4

Aluno60

Nota 1

V1

V2

V3

V4

.....

V60

Nota 2

V1

V2

V3

V4

.....

V60

Nota 3

V1

V2

V3

V4

.....

V60

Nota 4

V1

V2

V3

V4

.....

V60

Faltas

V1

V2

V3

V4

.....

V60
4

Matriz Declarao
Linguagem C++
tipo nomeDaMatriz[tamanahoD1] [tamanahoD2] ;

Exemplos de uso
/* declara uma matriz para guardar 3 informaes diferente de 300 paciente */
float pacientes[300] [3];
/* declara uma matriz de 4 notas para 100 alunos */
float notas[100] [4];
/* Declara uma matriz para guardar 1000 nomes de at 30 caracteres */
char nome[1000] [31];
5

Matriz
float notas[8] [4];
Aluno1 Aluno2 Aulno3 Aluno4

Aluno60

Nota 1

V1

V2

V3

V4

.....

V60

Nota 2

V1

V2

V3

V4

.....

V60

Nota 3

V1

V2

V3

V4

.....

V60

Nota 4

V1

V2

V3

V4

.....

V60

Faltas

V1

V2

V3

V4

.....

V60

float notas[4] [8];

Qual correto?

Matriz
Representao em Memria

Endereo Base: 1200

Posio mat[1][1]
1200 + 2*1*4 + 1*4 = 1212

Endereo-base + num_colunas_matriz * deslocamento_linha * tamanho_tipo


+
deslocamento_coluna * tamanho_tipo
7

Matriz Inicializao
Linguagem C++
tipo nomeDaMatriz[tamanahoD1] [tamanahoD2] = { dado1, dado2, ..., dadotamanhoD1xD2};

Linguagem C++
/* Inicializa um matriz de 3 linhas e 4 colunas */
int matrx [3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
/* Inicializa uma matriz com 3 nomes de at 10 caracteres */
char str_vect [3][11] = {"Joao", "Maria", "Jose"};
/* Inicializa uma matriz de 5 linhas e 2 colunas */
int matrx [][2] = {1,2,2,4,3,6,4,8,5,10};
8

Matriz Incluso de dados


Linguagem C++
tipo nomeDaMatriz[posioLinha] [posioColuna] = ValorDesejado;

Linguagem C++
/* atribuir o valor 13 primeira posio da primeira linha */
matrx [0][0] = 13;
/* Atribuir o caracter P a primeira posio da linha terceira linha */
char str_vect [2][0] = P;
/* Atribuir o valor 11 a segunda coluna da segunda linha */
int matrx [1][1] = 11;
9

Matriz Incluso de dados


Matriz genrica
Linguagem C++
for(int L = 0; L<tamanhoLinha; L++) {
for(int C = 0; C<tamanhoColuna; C++) {
cout<<"\nLinha <<L+1 << coluna "<<C+1<<:;
cin>>nomeMatriz[L] [C];
}
}

Matriz char
Linguagem C++
for(int L = 0; L<tamanhoLinha; L++) {
cout<<"\nLinha nmero <<L+1 <<: ";
cin.getline(nomeMatriz[L], tamanhoDeclardoNaColuna);
}
10

Matriz Leitura de dados


Linguagem C++
/* IMPRESSO COMO COLUNA */
cout << \nTtulo\n;
for(int L = 0; L<tamanhoLinha; L++) {
for(int C = 0; C<tamanhoColuna; C++) {
cout<< nomeMatriz[L] [C];
}
cout<<\n;
}
/* IMPRESSO COMO LINHA */
cout << \nTtulo\n;
for(int L = 0; L<tamanhoLinha; L++) {
cout<< nomeMatrizChar[L] <<\n;
}
11

na
ia c a
r
o ti
e
T r
P

Cinco produtos e seus


valores de compra e venda
C++

12

Algoritmos

Atividade 10
Mairum Ceoldo Andrade

1) S existem matrizes Unidimensionais e


Bidimensionais?
R: No

2) Se for uma matriz tridimensional,


ter trs pares de colchetes?
R: Sim

14

3) Na entrada e na sada, a matriz Bidimensional de char


tratada como Unidimensional j que usamos uma par
de colchetes. Quando faremos uso dos dois pares de
colchetes?

15

R: Quando precisarmos buscar um nico carcter.


Exemplos:
1) Converter para maiscula uma letra minscula
ou vice-versa;
2) Contar vogais de uma frase;
3) Criptografar uma mensagem;
4) Inverter a frase para saber se palndromo.

16

Potrebbero piacerti anche