Algoritmo e Estrutura de
Dados I
Aulas 13 – Variáveis Compostas
Multidimensionais
Márcia Marra
[email protected]
Variáveis Compostas
Multidimensionais
• Conjunto de dados referenciado por um
mesmo nome e que necessita de
mais de um índice
ESCANINHO
para ter os seus
1
2
3
1
elementos
individualizados.
4
2
3
4
2
Variáveis Compostas
Multidimensionais
• O primeiro índice representa a linha e o
segundo a coluna
– ESCANINHO [3,2]
• Terceira linha e segunda coluna.
• Quando a variável composta é
tridimensional, o terceiro índice pode ser
encarado como o número da variável que
está sendo referenciado com os dois
primeiros índices.
3
Declaração
declare lista_de_identificadores
[li1:ls1,...,lin:lsn] t
onde:
– declare:
palavra chave
– lista de identificadores: nomes associados às
variáveis que se deseja declarar
– li1:ls1, ..., lin:lsn: são os limites dos intervalos de
variação dos índices da variável, onde cada par de
limites está associado a um índice.
– t:
tipo dos componentes da
variável (numérico,
literal, lógico)
4
Exemplos de variáveis
• Exemplos:
– declare LIVRO [1:4,1:6] numérico
– declare NOTAS [1:55, 1:10] numérico
– declare EXEMPLO [1:15, 1:15] numérico
– declare PARALELEPIPEDO[1:6, 1:4, 1:6]
numérico
– declare MULTI[1:4, 1:7, 1:8] numérico
5
Exemplo 1
• Na matemática é comum o uso de
matrizes de números.
• Dada uma matriz 4 x 4, escrever um
algoritmo para ler a matriz e escreve-la
após ter multiplicado os elementos da
diagonal principal por uma constante k.
6
Exemplo 1
Algoritmo
Defina o tipo das variáveis
leia A[1,1] ... A[4,4]
leia K
Calcule o produto da diagonal
principal por K
escreva A[1,1] ... A[4,4]
Fim Algoritmo
7
Refinamentos sucessivos do
exemplo 1
Ref. Calcule o produto da diagonal principal por k
I ← 1
repita
se I > 4
então interrompa
fim se
A[I,I] ← A[I,I] x K
I ← I + 1
fim repita
Fim Ref.
Ref. Defina o tipo das variáveis
declare A[1:4,1:4] numérico
declare I, K numérico
Fim Ref
8
Exemplo 1 completo
Algoritmo
declare A[1:4,1:4] numérico
declare I, K numérico
leia A[1,1] ... A[4,4]
leia K
I ← 1
repita
se I > 4
então interrompa
fim se
A[I,I] ← A[I,I] x K
I ← I + 1
fim repita
escreva A[1,1] ... A[4,4]
Fim Algoritmo
9
Exemplo 2
• O produto de duas matrizes A e B só é
possível se o número de colunas da
matriz A for igual ao número de linhas da
matriz B.
• Desta forma, se A é uma matriz m x n e B
é uma matriz n x p, a multiplicação será
possível e o produto será uma matriz C de
tamanho m x p.
10
Exemplo 2
• O produto matricial pode ser muito útil em várias
aplicações.
• Uma certa fábrica produziu dois tipos de motores M1 e
M2 nos meses janeiro a dezembro e o número de
motores produzidos foi registrado na tabela abaixo:
M1
M2
Jan
30
20
Fev
5
10
...
...
...
Dez
18
25
11
Exemplo 2
• O setor de controle de vendas tem uma tabela
do custo e do lucro (em unidades monetárias)
obtidos em cada motor.
M1
M2
Custo
Lucro
10
3
15
2
12
Exemplo 2
• Para saber o custo e o lucro nos meses de
janeiro a dezembro, basta que seja realizado o
produto matricial das duas tabelas
Custo
M1
Jan
Fev
...
Dez
30
5
...
18
Lucro
M2
20
10
...
25
Jan
Custo Lucro
M1
10
3
M2
15
2
Fev
30 X 10 +
20 X 15
5 X 10 +
10 X 15
...
Dez
13
Exemplo 2
• Fazer um algoritmo que, a partir da
produção mensal de motores M1 e M2 e
seus respectivos custos e lucros, calcule o
custo e o lucro em cada um dos meses e
o custo e lucro anuais.
14
Exemplo 2
Algoritmo
Declare as variáveis
leia PRODUCAO[1,1]...PRODUCAO[12,2]
leia VALORES[1,1]...VALORES[2,2]
Calcule o custo e lucro mensais
Calcule o custo e o lucro anuais
Escreva os resultados obtidos
Fim Algoritmo
15
Refinamentos sucessivos
Ref. Calcule o custo e o lucro mensais
I ← 1
repita
se I > 12
então interrompa
fim se
J ← 1
repita
se J > 2
então interrompa
fim se
CLM[I,J] ← 0
K ← 1
repita
se K > 2
então interrompa
fim se
CLM[I,J] ← CLM[I,J] + PRODUCAO[I,K] x VALORES[K,J]
K ← K + 1
fim repita
J ← J + 1
fim repita
I ← I + 1
fim repita
Fim Ref
16
Refinamentos sucessivos
Ref. Calcule o custo e o lucro anuais
J ← 1
repita
se J > 2
então interrompa
fim se
CLA[J] ← 0
I ← 1
repita
se I > 12
então interrompa
fim se
CLA[J] ← CLA[J] + CLM[I,J]
I ← I + 1
fim repita
J ← J + 1
fim repita
Fim Ref
17
Refinamentos sucessivos
Ref. Escreva os resultados obtidos
escreva CLM[1,1]...CLM[12,2]
escreva CLA[1]...CLA[2]
Fim Ref.
Ref. Declare as variáveis
declare PRODUCAO, {producao mensal de cada motor}
CLM[1:12,1:2], {custo e lucro mensais dos
motores}
VALORES[1:2,1:2], {custo e lucro de cada motor}
CLA[1:2] {custo e lucro anuais dos motores}
numérico
declare I, J, K numérico
Fim Ref.
18
Exemplo 2 completo
Algoritmo
declare PRODUCAO,
{producao mensal
de cada motor}
CLM[1,12:1,2], {custo e lucro
mensais dos motores}
VALORES[1:2,1:2], {custo e
lucro de cada motor}
CLA[1:2] {custo e lucro
anuais dos motores}
numérico
declare I, J, K numérico
19
Exemplo 2 completo
{ Cálculo do custo e lucro mensais}
I ← 1
repita
se I > 12
então interrompa
fim se
J ← 1
repita
se J > 2
então interrompa
fim se
CLM[I,J] ← 0
K ← 1
repita
se K > 2
então interrompa
fim se
CLM[I,J] ← CLM[I,J] + PRODUCAO[I,K] x VALORES[K,J]
K ← K + 1
fim repita
J ← J + 1
fim repita
I ← I + 1
fim repita
20
Exemplo 2 completo
{ Cálculo do custo e lucro anuais}
J ← 1
repita
se J > 2
então interrompa
fim se
CLA[J] ← 0
I ← 1
repita
se I > 12
então interrompa
fim se
CLA[J] ← CLA[J] + CLM[I,J]
I ← I + 1
fim repita
J ← J + 1
fim repita
{ Escrita dos resultados obtidos }
escreva CLM[1,1]...CLM[12,2]
escreva CLA[1]...CLA[2]
Fim Algoritmo
21
Download

Variáveis Compostas Multidimensionais