Anda di halaman 1dari 12

CENTRO UNIVERSITRIO ANHANGUERA DE SO PAULO

TECNOLOGIA EM ANLISE E DESENVOLVIMENTO DE SISTEMAS

ATPS
PROGRAMAO ESTRUTURADA II

Fabio Angelo de Freitas 8830405542


Marcio Rogrio de Arajo Pereira 9911147774
Matheus Andrade Sobreira Sampaio 9894558950
Regina Clia Moreira de Paula 1299107328
Tatiana de Sousa Oliveira 9859411899
Vitor Costa de Brito 9902006200

SANTO ANDR
2015

Matrizes

Matrizes so arranjos ordenados que ao contrrio dos vetores podem


ter n dimenses, sendo que estas dimenses lhes do o nome n-dimensional.
composta de n variveis do mesmo tipo de dado primitivo, identificada por um nome e,
possuindo mais de uma dimenso, cujos elementos so endereados, (acessados), por
mais de um ndice.
VARIVEL COMPOSTA HOMOGNEA MULTIDIMENSIONAL OU MATRIZ...
Uma

Varivel

Composta

Homognea

Multidimensional

(VCHM),

ou

simplesmente Matriz, corresponde a posies de memria identificadas por um nico


nome, individualizadas por ndices, e cujo contedo de um mesmo tipo de dado.
Podemos imaginar um edifcio residencial. Esse edifcio possui 12 andares, alm do
trreo.
Supondo que cada andar tenha 4 apartamentos, ento o edifcio tem um nmero
finito de 48 apartamentos.
Anlogo a uma estrutura de dados, o edifcio a estrutura, e os apartamentos
so os elementos dessa estrutura. Sendo os andares e apartamentos uma diviso
direta do edifcio, estes formam ento o que chamamos de estrutura bidimensional
(duas dimenses- linha e coluna). Dentro dos apartamentos temos pessoas (que seriam
os tipos de dados), e para ter acesso a elas (visita-las) precisamos conhecer o nome do
edifcio (identificador da matriz), o nmero do andar e do apartamento (dois ndices),
em que residem.
MATRIZ COM O MESMO NMERO DE LINHAS E COLUNAS DENOMINADA
MATRIZ QUADRADA.
Um exemplo de uma VCHM ou matriz multidimensional so as agendas,
eletrnicas ou em papel.

Se pensarmos em termos de armazenamento de dados, a agenda armazenada


em um nico tipo de dado descritivo, que textual ou cadeia de caracteres, dos
compromissos agendados.
Para ter acesso a determinado compromisso nessa agenda, preciso saber o
ano, ms ou semana, dia, dia da semana e horrio (dimenses), onde esto
armazenados os dados sobre o compromisso agendado. Portanto, inferimos que essa
Matriz possui 5 dimenses, e para acess-las preciso de 5 ndices.
Os apontadores, ou indexadores da matriz, so denominados: ndices da
Matriz.
Ao contrrio do vetor que precisa somente de um apontador ou ndice, para
acessar um elemento contido nele, uma matriz bidimensional precisa de dois ndices,
um que aponte para a linha e outro para a coluna e na interseco da linha com a
coluna tem-se o elemento de dado cujo contedo se quer acessar.
Uma matriz de duas dimenses ser chamada bidimensional, uma de trs
dimenses tridimensional e assim consecutivamente. Funciona praticamente da mesma
forma que um vetor exceto que utilizaremos o nmero n de ndices para acessar um
dado que queremos. Segue exemplo abaixo de uma matriz bidimensional de duas
linhas e colunas.
3

6
Consideramos que para acessarmos o valor 3, localizamos o ndice por sua linha

(1) e coluna (1), deste modo seu ndice (1,1). O valor quatro, por exemplo ser (1, 2).
A construo de uma Tabela na qual se acrescentam informaes de
aproveitamento escolar de 5 turmas em 2 matrias diferentes pode ser definida abaixo:

Turma

Portugus

Matemtica

10

7,5

E
8,5
6,5
A mesma tambm definida como uma Matriz Bidimensional (5x2).

Na informtica temos os exemplos clssicos de matrizes, em programas onde


elas aparecem no auxlio dos clculos matemticos, editores de imagem, o prprio
teclado onde sua configurao realizada por um sistema de matrizes, entre outros
tantos.
Na economia por exemplo as matrizes auxiliam como grande ferramenta na
interpretao de grficos que tambm podem ser originados de tabelas que usamos as
matrizes. Junto com a economia temos as organizaes comerciais que fazem uso da
tabela, ou seja trabalham com matrizes.
Engenheiros civis fazem constantemente o uso das matrizes, que so de
extrema importncia para a diviso dos metros e distribuio de material na construo
de uma estrutura de sustentao (lage). Na Fsica feito o uso das matrizes a partir de
tabelas relacionando o deslocamento e o tempo. Entre tantos outros exemplos, esse
o uso da matemtica no dia a dia relacionando ao estudo de matrizes.
DECLARAO DE MATRIZ

Declarao e inicializao de uma matriz


A declarao de uma matriz segue as mesmas regras sintticas para a declarao

de vetores, alterando somente a dimenso dessa varivel, ou seja, o seu tamanho. Da


mesma forma que em vetor, a declarao da dimenso da matriz requer reserva de
memria, mesmo que no utilizemos na sua totalidade.

Dimensionar uma matriz determinar a quantidade de elementos de dados que ela


ir conter.
Da mesma forma que um vetor, a matriz tambm possui quatro atributos:
identificador, tamanho, tipo de dado e contedo. A declarao da matriz ocorre
diretamente na rea de variveis ou constantes, do algoritmo/programa.
Para utilizarmos uma matriz necessrio defini-la em detalhes, isto , preciso
atribuir um nome para a matriz, definir qual ser sua dimenso (quantos elementos ela
ir conter) e de qual tipo de dado sero esses elementos. A declarao de uma matriz
em portugus estruturado pode ser da seguinte forma:
tipo Nome_Matriz [tamanho_linha][tamanho_coluna]
Assim temos como exemplo de declaraes:
Inteiro matriz [10] [10]
Ou seja, 10 linhas e 10 colunas. (100 espaos)
Real media [3] [3]
Ou seja, 3 linhas e 3 colunas. (9 Espaos)
Abaixo h um algoritmo em que um usurio digita 100 elementos e estes
aparecem na tela:
Incio
inteiro matriz [10][10]
inteiro i , j (i ser o ndice linha e j o ndice coluna)
para (incio: i=0 fim i<10 alteraoi+1 )
para (incio: j=0 fim j<10 alteraoj+1 )
exibe Escreva um nmero
recebe matriz [i][j]
fecha_para
fecha_para
para (incio: i=0 fim i<10 alteraoi+1 )
para (incio: j=0 fim j<10 alteraoj+1 )
exibe Estes so os nmeros digitados:
exibe matriz [i][j]

fecha_para
Fim

Relatrio
Como vimos na descrio sobre matrizes, ela pode ser utilizada quando
precisamos armazenar vrios dados, ao invs de declararmos vrias variveis usamos
a matriz (nxn...) para facilitar o trabalho. Podemos utiliza-la para definir um
apartamento, tendo como exemplo um prdio de 10 andares, sendo que em cada andar
temos 2 apartamentos.
Cada apartamento ser reconhecido por uma numerao. Neste exemplo, temos
uma matriz do tipo bidimensional (7x2).

Stimo Andar

[13

14]

Sexto Andar

[11

12]

Quinto Andar

[09

10]

Quarto Andar

[07

08]

Terceiro Andar

[05

06]

Segundo Andar

[03

04]

Primeiro Andar

[01

02]

Exerccio 01
Faa um programa que gerencie as vendas semanal de uma loja. Levando em
considerao que essa loja possui 5 vendedores que ganham 5% de comisso sobre
suas vendas o programa dever demonstrar:

A- O valor total de comisso a ser pago para os vendedores;


B- O valor liquido ganho pela loja sobre as vendas;
C- O valor total de vendas da segunda- feira;
Resoluo:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char semana[][10] ={"segunda", "terca", "quarta", "quinta", "sexta", "sabado",
"domingo"};
float vendas[8][4], comissao[5], liquido[5], total_com=0, total_saldo=0, segunda=0;
int i,j;
fflush(stdin);
for(i=0; i<=6; i++)
{
printf("\n CONTROLE DE VENDAS\n\n");
for(j=0; j<=4; j++)
{
printf("\n Digite o valor das vendas do vendedor %d referente a %s: ", j+1,
semana[i]);
scanf ("%f", & vendas[i][j]);
comissao[i] = vendas[i][j]*0.05;
liquido[i] = vendas[i][j] - comissao[i];
total_com = total_com + comissao[i];
total_saldo = total_saldo + liquido[i];
}
segunda = segunda + vendas[1][j];
system("cls");
}

printf("\n\n O valor total de comissao paga foi %.2f", total_com);


printf("\n\n O valor liquido sobre as vendas e %.2f", total_saldo);
printf("\n\n O valor total de vendas na segunda-feira foi %.2f \n", segunda);
system("pause>null");
}
Teste de mesa:
Para simplificar e comprovar a funcionalidade do programa usaremos um mesmo
valor para todos os vendedores e todos os dias da semana, valor esse que ser de
10,00 reais.
Dia da
Semana
Vendedor
1
2
3
4
5

Segunda

Tera

Quarta

Quinta

Sexta

Sbado

Domingo

R$ 10,00
R$ 10,00
R$ 10,00
R$ 10,00
R$ 10,00

R$ 10,00
R$ 10,00
R$ 10,00
R$ 10,00
R$ 10,00

R$ 10,00
R$ 10,00
R$ 10,00
R$ 10,00
R$ 10,00

R$ 10,00
R$ 10,00
R$ 10,00
R$ 10,00
R$ 10,00

R$ 10,00
R$ 10,00
R$ 10,00
R$ 10,00
R$ 10,00

R$ 10,00
R$ 10,00
R$ 10,00
R$ 10,00
R$ 10,00

R$ 10,00
R$ 10,00
R$ 10,00
R$ 10,00
R$ 10,00

Vendas
Seman

Comisso Sobre

Rendimento Sobre

a
R$

Vendas

Vendas

Segunda

70,00
R$

R$ 3,50

R$ 66,50

R$ 10,00

70,00
R$

R$ 3,50

R$ 66,50

R$ 10,00

70,00
R$

R$ 3,50

R$ 66,50

R$ 10,00

70,00
R$

R$ 3,50

R$ 66,50

R$ 10,00

70,00

R$ 3,50
R$ 17,50

R$ 66,50
R$ 332,50

R$ 10,00
R$ 50,00

Exerccio 2
Leia uma matriz 5 x 5 e imprima os elementos da diagonal e 0 para todo resto.
Resoluo:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int matriz[5][5],i,j;
for(i=0; i<=4; i++)
{
system("cls");
for(j=0; j<=4; j++)
{
printf("\n Digite um numero para a linha %d da coluna %d: ", j+1, i+1);
scanf ("%d", & matriz[i][j]);
}
}

for(i=0; i<=4; i++)


{
printf("\n");
for(j=0; j<=4; j++)
if(i==j)
printf("%d" , matriz[i][j]);
else
printf("0");
}
system("pause>null");
}
Teste de mesa:
Para comprovar a funcionalidade do programa entraremos com o nmero 4 para
todas posies deixando o programa carregado da seguinte forma.

Linh
a

1
2
3
4
5

1
4
4
4
4
4

2
4
4
4
4
4

Coluna
3
4
4
4
4
4

4
4
4
4
4
4

5
4
4
4
4
4

4
0
0
0
4
0

5
0
0
0
0
4

No qual teremos a seguinte sada de dados:

Linh
a

1
2
3
4
5

1
4
0
0
0
0

2
0
4
0
0
0

Coluna
3
0
0
4
0
0

Referncia Bibliogrfica
Algoritmos e Programao de Computadores
Autores: Dilermando Piva Junior
Gilberto Shigueo Nakamiti
ngela de M.Engelbrecht

Francisco Bianchi
http://pt.wikibooks.org/wiki/Algoritmos_e_Estruturas_de_Dados/Vetores_e_Matrizes#Ma
trizes
Acesso em 25/03/2015 s 22:06.
http://www.infoescola.com/matematica/matrizes-no-dia-a-dia/
Acesso em 25/03/2015 s 22:47.

Anda mungkin juga menyukai