Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Algoritmos
Gellars M. S. Tavares
Aula 10
2
CONTEÚDO PROGRAMÁTICO DESTA AULA
Matriz bidimensional
Declarar matrizes bidimensionais;
Trecho de atribuição;
Trecho de entrada;
Trecho de saída ;
Operações básicas;
Entendendo a matriz de char ;
MATRIZES BIDIMENSIONAIS
3
a11 a12 a13 ... a1n
a21 a22 a23 ... a3n
a31 a32 a33 ... a3n
... ... ... ... ...
am1 am1 am2 ... amn
Amxn
8 9 7 8.5
9 5 7 8
10 4 6 7
6 5 9 5.5
Notas4x4
4
MATRIZES BIDIMENSIONAIS
2 9
3 10 
1 20
13 7
A4x2
4 7
6 8 
2 9
6 10
B4x2
6 16
9 18 
3 29
19 17
S4x2
=
+
Operação – Somar duas matrizes
Aplicação: Controle de Vendas bimestral de quatro produtos de duas lojas
5
MATRIZES BIDIMENSIONAIS
70 30 150
300 50 200 
120 80 100
130 70 200
A4x3
Resulta em uma matriz 4x1
Operação – Somar linhas
250
550 
300
400
Somalinha
Aplicação: Controle trimestral de quatro despesas
6
MATRIZES BIDIMENSIONAIS
70 30 150
300 50 200 
120 80 100
130 70 200
A4x3
Operação – Somar colunas
Aplicação: Controle mensal das despesas durante três meses.
Somacoluna
620 230 650
7
MATRIZES BIDIMENSIONAIS
int 
float
double
char
long long int
...
Dimensionando Matriz - bidimensional 
8
Praticando
MATRIZES BIDIMENSIONAIS
9
1) Armazenar 3 notas e a média de 40 alunos.
2) Armazenar quantidade vendida de 100 produtos em seis meses.
MATRIZES BIDIMENSIONAIS
10
3) Armazenar os 13 salários de 50 funcionários.
4) Controle de pressão arterial em uma semana com 24 aferições por dia.
MATRIZES BIDIMENSIONAIS
11
5) Armazenar três saltos de 12 atletas de salto em distância.
6) Armazenar a profissão de 200 pessoas com até 20 caracteres.
MATRIZES BIDIMENSIONAIS
12
7) Armazenar o nome de 100 pessoas até 30 caracteres.
char nome[100] [31];
MATRIZES BIDIMENSIONAIS
13
Matriz do tipo float com 5 linhas e 4 colunas que deverá armazenar três notas e a média, totalizando 20 variáveis
Armazenamento na Memória Principal 
MATRIZES BIDIMENSIONAIS
14
O nome de uma matriz corresponde ao primeiro endereço do conjunto de endereços da Memória Principal. 
Para nos deslocarmos entre linhas e localizarmos o primeiro endereço de uma linha da matriz, usamos a expressão abaixo.
Armazenamento na Memória Principal 
Endereço-base + número de colunas da matriz * deslocamento linha * tamanho do tipo 
MATRIZES BIDIMENSIONAIS
15
Para nos deslocarmos entre colunas de uma linha e localizarmos o primeiro endereço do elemento, usamos a expressão abaixo.
Armazenamento na Memória Principal 
Endereço calculado pela fórmula anterior + deslocamento coluna * tamanho do tipo 
MATRIZES BIDIMENSIONAIS
16
MATRIZES BIDIMENSIONAIS
2000
Localizando: elemento linha 2/ coluna 3
Armazenamento na Memória Principal 
17
MATRIZES BIDIMENSIONAIS
Armazenamento na Memória Principal 
Localizando a linha 2
2000 + 4(colunas) * 2(deslocamento linha) * 4(tamanho do float) = 2032
0
1
2
3
4
Endereço base
18
MATRIZES BIDIMENSIONAIS
Localizando a coluna 3
Armazenamento na Memória Principal 
e
n
d
e
r
e
ç
o
2032 + 3(deslocamento coluna) * 4(tamanho do float) = 2044
X
19
MATRIZES BIDIMENSIONAIS
Vamos praticar
20
MATRIZES BIDIMENSIONAIS
Suponha que um médico deseje contratar você para construir um programa que possa armazenar nome completo, peso, altura e IMC de 10 pacientes. 
Ele lhe entregou um desenho parecido com o do próximo slide.
21
MATRIZES BIDIMENSIONAIS
22
Uma matriz 10 x 30 char
MATRIZES BIDIMENSIONAIS
23
Uma matriz 10 x 3 
float
MATRIZES BIDIMENSIONAIS
24
Declarando as Matrizes 
MATRIZES BIDIMENSIONAIS
25
Quando armazenamos um nome numa Matriz Unidimensional, tratamos como se ela fosse uma variável simples.
gets(nome);
MATRIZES BIDIMENSIONAIS
26
0 1
2 3
4 5
6 7
8 9
10 11
12 13
28 29
14 15
...
0
1
2
3
4
5
6
7
8
0
Quando armazenamos nomes numa matriz Bidimensional, tratamos como se ela fosse uma matriz Unidimensional.
gets(nome[variavel]);
MATRIZES BIDIMENSIONAIS
27
27
valor é uma expressão que pode envolver constante ou operações com outra(s) matriz(es).
TRECHO de ATRIBUIÇÃO 
MATRIZES BIDIMENSIONAIS
28
A matriz Bidimensional mat é assumida como tendo quatro linhas.
DECLARAÇÃO / ATRIBUIÇÃO 
Temos que informar o tamanho da coluna
MATRIZES BIDIMENSIONAIS
29
A matriz Bidimensional pal é assumida como tendo quatro linhas.
DECLARAÇÃO / ATRIBUIÇÃO 
MATRIZES BIDIMENSIONAIS
30
TRECHO de ENTRADA 
Numérico – bidimensional 
MATRIZES BIDIMENSIONAIS
31
TRECHO de ENTRADA 
mas o trecho é de Unidimensional.
Matriz de char: declarada como Bidimensional,
char nomematriz[tamanholinha][tamanhocoluna];
for(var=0; var<tamanholinha; var++)
{
cout<<“ \n Mensagem: “;
gets(nome[var]);
}
MATRIZES BIDIMENSIONAIS
32
TRECHO de SAÍDA 
Numérico – bidimensional 
MATRIZES BIDIMENSIONAIS
33
Declarada como Bidimensional, mas o trecho é de Unidimensional.
TRECHO de SAÍDA 
char – bidimensional 
MATRIZES BIDIMENSIONAIS
34
O programa do Médico
VAMOS EXERCITAR?
35
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cmath>
#define TL 3
using namespace std;
int main()
{ 
 
int L, C;
float dadospaciente[TL][3];
char nome[TL][30];
SOLUÇÃO
36
// TRECHO DE ENTRADA
for(L=0; L< TL; L++)
{
 fflush(stdin); // limpa o buffer
 cout<<"Digite "<<L+1<<" Nome: ";
 gets(nome[L]);
 strupr(nome[L]); //converte todos os caracteres para maiúsculo
 cout<<"Digite Peso: ";
 cin>>dadospaciente[L][0];
 cout<<"Digite Altura: ";
 cin>>dadospaciente[L][1];
 dadospaciente[L][2]= dadospaciente[L][0] / pow(dadospaciente[L][1],2);
 }
SOLUÇÃO
37
// TRECHO DE SAÍDA
system(“cls”);
cout<<“\n FICHAS INDIVIDUAIS \n”;
cout<<“\n ------------------------------------ \n”;
for(L=0; L< TL; L++)
{
cout<<“ \n Nome: “ << nome[L];
cout<<“ \n Peso: “ <<dadospaciente[L][0];
cout<<“ \n Altura: “ <<dadospaciente[L][1];
cout<<“ \n IMC: “ <<dadospaciente[L][2];
cout<<“ \n ------------------------------------ \n”;
}
system(“pause”);
}
SOLUÇÃO
38
SOLUÇÃO
39
SOLUÇÃO
40
Vamos praticar agora?
Algoritmos
Gellars M. S. Tavares
Atividade 10
42
PROBLEMA 
Construa um programa em C++ que leia e armazene o nome e valor de compra de cinco produtos. Calcule e armazene o valor da venda com 10% em cima do valor da compra. Imprimir uma listagem com o nome dos produtos, valor da compra e valor da venda. 
43
SOLUÇÃO 
#include<iostream>
#include<cstdlib>
#include<cstring>
using namespace std;
int main()
{ 
 int x;
 float preco[5][2];
 char nome[5][20];
 
44
// TRECHO DE ENTRADA
for(x=0;x<=4;x++)
 {
 fflush(stdin); //limpa o buffer
 cout<<"Digite "<<x+1<<" Nome: ";
 gets(nome[x]);
 strupr(nome[x]);
 cout<<"Digite Valor da compra: ";
 cin>>preco[x][0];
 }
SOLUÇÃO 
45
//TRECHO DE SAÍDA
system(“cls”) //limpando a tela
for(x=0;x<=4;x++)
 {
 preco[x][1] = preco[x][0]*1.1; //Calculando os 10%
 cout<<“\n Produto: “<<nome[x] ;
 cout<<“\n Valor da Compra: “<<preco[x][0] ;
 cout<<“\n Valor da Venda: “<<preco[x][1];
 cout<<“\n ...................\n";
 }
system("pause");
return 0;
}
SOLUÇÃO 
46
SOLUÇÃO 
47
SOLUÇÃO

Mais conteúdos dessa disciplina