Buscar

Biblioteca_724004

Prévia do material em texto

Estruturas Homogêneas 
 Matrizes Unidimensionais (vetores)
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Construa um programa em C++ que deixe entrar com cinco números e exiba uma listagem contendo os números na primeira zona e os quadrados, na segunda zona.
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 int num, x;
 for(x= 0; x<5; x++)
 {
 cout<<"\nNumero: "; cin>>num;
 }
 cout<<"\n\nNumero\tQuadrado\n";
 for(x= 0; x<5; x++)
 cout<<"\n"<< num<<"\t"<< num* num;
 cout<<"\n\n";
 system("pause"); 
}
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
O que aconteceu? Por que só saiu o último cinco vezes?
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Você só tinha uma variável para armazenar o número. Precisa aprender matriz!
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
2
3
1
13
A4x1
2 3 1 13
A1x4
MATRIZES
a11 a12 a13 ... a1n
a21 a22 a23 ... a3n
a31 a32 a33 ... a3n
... ... ... ... ...
am1 am1 am2 ... amn
Amxn
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
unidimensional
bidimensional
MATRIZES
2
3
1
13
A4x1
2 3 1 13
A1x4
a11 a12 a13 ... a1n
a21 a22 a23 ... a3n
a31 a32 a33 ... a3n
... ... ... ... ...
am1 am1 am2 ... amn
Amxn
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Operação – Multiplicar por um escalar
4
6
2
26
D4x1
2
3
1
13
A4x1
X 2 =
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Operação – Multiplicar por um escalar
Aplicação: Gerar os novos salários
Salarios
2415
1890
1155
2100
Nsalarios
2300
1800
1100
2000
X 1.05 =
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Operação – Somar duas matrizes
2
3
1
13
A
6
9
3
39
S
+
=
4
6
2
26
B
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Operação – Somar duas matrizes
Loja
25
38
120
13
40
50
150
20
Total
+
=
15
12
30
7
Estoque
Aplicação: Controle de material
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Operação: calcular média aritmética
4
5
6
10
A
6
6
7.5
7
M
+
/ 2 =
8
7
9
4
B
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Operação: calcular média aritmética
Aplicação: Média das duas maiores notas/ Média de vendas em um bimestre
4
5
6
10
A
6
6
7.5
7
M
+
/ 2 =
8
7
9
4
B
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Operação: somar os elementos da matriz
4
5
6
10
A
Soma = 25
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Operação: somar os elementos da matriz
4200
5800
3000
7000
Salarios
Soma = 20000
Aplicação: Total da Folha de Pagamento
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Dimensionando Matriz - unidimensional 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
int 
float
double
char
long long int
...
Dimensionando Matriz - unidimensional 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Praticando
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
1) Guardar 10 idades.
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
1) Guardar 10 idades.
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
2) Duas notas e a média de 50 alunos.
1) Guardar 10 idades.
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
2) Duas notas e a média de 50 alunos.
1) Guardar 10 idades.
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
3) Matrícula e CR de 60 alunos.
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
3) Matrícula e CR de 60 alunos.
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
4) Sexo de 30 pessoas.
3) Matrícula e CR de 60 alunos.
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
4) Sexo de 30 pessoas.
3) Matrícula e CR de 60 alunos.
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
5) Nome de uma pessoa.
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
5) Nome de uma pessoa.
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
string nome;
Não temos o tipo string?
O tipo string é da Biblioteca string e armazena um conjunto de caracteres. Você poderá usá-lo.
5) Nome de uma pessoa.
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Vetor de tamanho 5 e do tipo inteiro de quatro bytes
Armazenamento na Memória Principal 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Vetor idades
Vetor de tamanho 5 e do tipo inteiro de quatro bytes
Armazenamento na Memória Principal 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Vetor idades
Vetor de tamanho 5 e do tipo inteiro de quatro bytes
Armazenamento na Memória Principal 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Por que a primeira variável tem deslocamento 0?
Armazenamento na Memória Principal 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
endereço-base + deslocamento * tamanho do tipo 
O nome de uma matriz corresponde ao primeiro endereço do conjunto de endereços da Memória Principal. Para localizarmos um elemento da matriz, usamos a fórmula abaixo.
Armazenamento na Memória Principal 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
10000
endereço-base + deslocamento * tamanho do tipo 
endereço-base
Armazenamento na Memória Principal 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
10000
endereço-base + deslocamento * tamanho do tipo 
Armazenamento na Memória Principal 
endereço-base + 2 * 4 = 1008
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
10000
endereço-base + deslocamento * tamanho do tipo 
Armazenamento na Memória Principal 
endereço-base + 2 * 4 = 1008
10008
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
10000
endereço-base + deslocamento * tamanho do tipo 
Armazenamento na Memória Principal 
endereço-base
10012
10016
10004
10008
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Então, conclui-se que 0 significa que não existe deslocamento em relação ao endereço-base?
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Sim. Vou Provar!
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
& retorna endereço
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
& retorna endereço
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
E onde indicamos isso?
Armazenamento na Memória Principal 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Observe o vetor idades[5]. Ele é formado por cinco variáveis todas com nome, idades. Dentro de um par de colchetes, fica o deslocamento.
Armazenamento na Memória Principal 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Vetor de char
Armazenamento na Memória Principal 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Vetor de char
Armazenamento na Memória Principal 
nome[1] = toupper(nome[1]); REnato
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
O \0(terminador nulo) serve para finalizar o vetor de char. Dessa forma, não se esqueçade acrescentar mais uma posição quando dimensionar um vetor de char. 
Vetor de char
Armazenamento na Memória Principal 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Numérico ou vetor de char – unidimensional 
DECLARAÇÃO / ATRIBUIÇÃO 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Numérico ou vetor de char – unidimensional 
DECLARAÇÃO / ATRIBUIÇÃO 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Numérico ou vetor de char – unidimensional 
DECLARAÇÃO / ATRIBUIÇÃO 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Numérico ou char* de um caracter – unidimensional 
TRECHO de ENTRADA 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
TRECHO de ENTRADA 
Numérico ou char* de um caracter – unidimensional 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
TRECHO de ENTRADA 
Vetor de char – unidimensional 
Uma palavra
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
TRECHO de ENTRADA 
Mais de uma palavra
Vetor de char – unidimensional 
Uma palavra
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
TRECHO de ENTRADA 
Mais de uma palavra
Vetor de char – unidimensional 
Uma palavra
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
TRECHO de ENTRADA 
Lembrete
 Não confunda vetor de char com o tipo(classe) string.
string nome;
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Onde estão os [ ]?
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
A matriz unidimensional de char(vetor de char) e a bidimensional têm um tratamento diferenciado.
Isso significa que você dimensiona como unidimensional(vetor) e trata como variável simples ou dimensiona como bidimensional e trata como vetor. 
*
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
TRECHO de SAÍDA 
Numérico ou char* (Matriz Coluna) – unidimensional 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
TRECHO de SAÍDA 
Numérico ou char* (Matriz Linha) – unidimensional 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
TRECHO de SAÍDA 
Vetor de char – unidimensional 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Um pouco sobre o vetor de char 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Um pouco sobre o vetor de char 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Um pouco sobre o vetor de char 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Um pouco sobre o vetor de char 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Juntando tudo
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
DECLARAÇÕES 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
TRECHO DE ENTRADA 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
TRECHO DE SAÍDA 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Exercícios
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
1) Existe alguma palavra para declarar matrizes?
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
R: Não.
1) Existe alguma palavra para declarar matrizes?
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
R: Não.
1) Existe alguma palavra para declarar matrizes?
2) Em uma matriz posso armazenar dados numéricos e caracteres? 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
R: Não.
1) Existe alguma palavra para declarar matrizes?
R: Não em matrizes homogêneas.
2) Em uma matriz posso armazenar dados numéricos e caracteres? 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
R: Não.
1) Existe alguma palavra para declarar matrizes?
R: Não em matrizes homogêneas.
2) Em uma matriz posso armazenar dados numéricos e caracteres? 
3) O que é o terminador nulo?
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
R: Não.
1) Existe alguma palavra para declarar matrizes?
R: Não em matrizes homogêneas.
2) Em uma matriz posso armazenar dados numéricos e caracteres? 
R: É o caracter \0 que finaliza um vetor de char, colocado automaticamente e ocupando a última posição do vetor de char. 
3) O que é o terminador nulo?
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
4) Por que não devemos usar cin para ler para um vetor de char?
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
R: Porque no primeiro espaço, a leitura é abandonada .
4) Por que não devemos usar cin para ler para um vetor de char?
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
R: Porque no primeiro espaço, a leitura é abandonada .
4) Por que não devemos usar cin para ler para um vetor de char?
5) Qual o comando que deve ser usado, então? 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
R: Porque no primeiro espaço, a leitura é abandonada .
4) Por que não devemos usar cin para ler para um vetor de char?
R: Uma função é usada, combinada com cin, formando então, cin.getline(..., ...);
5) Qual o comando que deve ser usado, então? 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
R: Porque no primeiro espaço, a leitura é abandonada .
4) Por que não devemos usar cin para ler para um vetor de char?
5) Qual o comando que deve ser usado, então? 
6) Para que cin.ignore()? 
R: Uma função é usada, combinada com cin, formando então, cin.getline(..., ...);
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
R: Porque no primeiro espaço, a leitura é abandonada .
4) Por que não devemos usar cin para ler para um vetor de char?
5) Qual o comando que deve ser usado, então? 
R: Para ler um caracter do buffer e depois descartá-lo.
R: Uma função é usada, combinada com cin, formando então, cin.getline(..., ...);
6) Para que cin.ignore()? 
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013
Espero que goste
Prof. ANITA LOPES
Produzido em 2013
Prof. ANITA LOPES
Produzido em 2013

Continue navegando