Você está na página 1de 31

Algoritmos e Programao

Vetores e Matrizes
Tema 4

Prof. Jeanne Dobgenski


Vetores

Um vetor unidimensional, ou um array, uma


sequncia de posies de memria usada
para armazenar um conjunto de dados do
mesmo tipo e usando o mesmo nome.
Para acessar separadamente cada informao
armazenada, usa-se um ndice representado
por uma varivel inteira.
Vetores Representao

Nome da varivel vetor Contedo

temperatura[0] 18,0
temperatura[1] 19,2
temperatura[2] 19,7
... ....
temperatura[142] 20,5
temperatura[143] 20,3
Vetores Consideraes Importantes

Observaes importantes:
Os elementos de um vetor so sempre
armazenados em posies adjacentes de
memria.
Os elementos de um vetor que foi declarado,
mas em que os dados ainda no foram
atribudos, contero valores aleatrios e que j
estavam na memria do computador.
O ndice do primeiro elemento do vetor pode ser
0 ou 1, depender da linguagem de
programao usada, em C 0.
Vetores Consideraes Importantes

Cada linguagem de programao trabalha de


forma distinta com relao atribuio de
dados, declarao e dimensionamento do vetor.
muito importante observar se a manipulao
do ndice do vetor est correta, ou seja, se est
sendo acessado o elemento correto do vetor.
Esse tipo de erro no detectvel pelos
compiladores das linguagens de programao e
so difceis de identificar.
A estrutura de repetio mais adequada para
manipular dados de um vetor o lao for.
Vetores Representao

Nome da varivel vetor Contedo

temperatura[0] 18,0
temperatura[1] 19,2
temperatura[2] 19,7
... ....
temperatura[142] 20,5
temperatura[143] 20,3
Vetores Cdigo em C

/* Programa temperatura - verso 2*/


#include<stdio.h>
int main()
{
float temperatura[144]; // declarao de vetor
int i; // declarao do ndice
for (i = 0; i<144; i++)
{
printf(Digite a temperatura %d\n, i+1);
scanf(%f, &temperatura[i]);
}// fim para
}//Fim main
Vetores e Matrizes

Os arrays de uma nica dimenso, ou seja,


vetores so graficamente representados por
uma linha ou uma coluna.
Tambm possvel trabalhar com arrays de
duas ou mais dimenses.
O array bidimensional, ou matriz, muito
conhecido e utilizado em desenvolvimento
de algoritmos e formado por linhas e
colunas, como numa tabela.
Vetores e Matrizes

Continuando
Matrizes

Assim como os vetores, as matrizes


tambm so variveis compostas
homogneas.
Composta por ser uma varivel que contm
um nmero finito de dados e homognea
porque todos so do mesmo tipo.
Uma matriz considerada quadrada quando
possui o mesmo nmero de linhas e de
colunas.
Matrizes

Colunas 0 1 2 3 4 5 6
Linha 0 5 9 6 4 3 8 7
Linha 1 4 1 3 5 6 8 7
Linha 2 3 1 4 5 6 8 7
Linha 3 1 3 4 5 6 8 7
Linha 4 1 3 4 5 6 8 7
Linha 5 1 3 4 5 2 7 8
Linha 6 1 3 4 5 6 7 8
Matrizes Cdigo em C
/* Programa atribuio de valores a uma matriz - verso 1 Fixa linha e
varia coluna. */
#include<stdio.h>

int main()
{
int a[7][7]; // declarao da matriz
int i,j; // declarao dos ndices
for (i = 0; i<7; i++) // variao das linhas da matriz
for (j = 0; j<7; j++) // variao das colunas da matriz
{
printf(Digite o elemento %d,%d da matriz\n,i+1, j+1);
scanf(%d, &a[i][j]);
}// fim para j
}//Fim main
Matrizes Manipulao: Fixa Linha (i)
e Varia Coluna (j)
j= 0 1 2 3 4 5 6
i=0 5 9 6 4 3 8 7

i=1 4 1 3 5 6 8 7
i=2 3 1 4 5 6 8 7
i=3 1 3 4 5 6 8 7
i=4 1 3 4 5 6 8 7
i=5 1 3 4 5 2 7 8
i=6 1 3 4 5 6 7 8

a[0][0] = 5, a[0][1] = 9, a[0][2] = 6, a[0][3]=4, a[0][4]=3,


a[0][5]= 8 e a[0][6] = 7 (i = 0 e j varia de 0 a 6)
Matrizes Cdigo em C

/* Programa atribuio de valores a uma matriz - verso 2 fixa


coluna e varia linha*/
#include<stdio.h>

int main()
{
int a[7][7]; // declarao da matriz
int i,j; // declarao dos ndices
for (j = 0; j<7; j++) // variao das colunas da matriz
for (i = 0; i<7; i++) // variao das linhas da matriz
{
printf(Digite o elemento %d,%d da matriz\n,i+1, j+1);
scanf(%d, &a[i][j]);
}// fim para i
}//Fim main
Matrizes Manipulao: Fixa Coluna
(j) e Varia Linha (i)

j= 0 1 2 3 4 5 6
i=0 5 9 6 4 3 8 7
i=1 4 1 3 5 6 8 7
i=2 3 1 4 5 6 8 7
i=3 1 3 4 5 6 8 7
i=4 1 3 4 5 6 8 7
i=5 1 3 4 5 2 7 8
i=6 1 3 4 5 6 7 8
a[0][0]=5, a[1][0]=4, a[2][0]=3, a[3][0]=1, a[4][0], =1
a[5][0] =1 e a[6][0] =1 (j= 0 e i varia de 0 a 6)
Matrizes Multidimensionais

Fonte: extrado de Microsoft Developer Network. Disponvel em:


http://msdn.microsoft.com/en-us/library/02e7z943.aspx. Acesso em: 04 jul. 2014.
Vetores e Matrizes

Agora sua vez


Exerccio 1

Desenvolva um programa que apresente a


quantidade de dias que cada um dos doze
meses possui. Os a quantidade de dias deve
ser armazenada num vetor de inteiros.
Exerccio 1 Soluo
Exerccio 2

Faa um programa que encontre o menor


valor de um vetor com 10 elementos
inteiros.
Exerccio 2 Soluo
Exerccio 3

Faa um programa que gere uma matriz


3x4, cujos elementos sejam 1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12 e que depois os imprima.

Colunas 0 1 2 3
Linha 0 1 2 3 4
Linha 1 5 6 7 8
Linha 2 9 10 11 12
Exerccio 3 Soluo

#include <stdio.h>
void main()
{
int j, i, num[3][4];

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


for(j=0; j<4; ++j)
num[i][j] = (i*4)+j+1;
for(i=0; i<3; ++i) // impresso dos elementos da matriz
{
for(j=0; j<4; ++j)
printf("%3d ", num[i][j]);
printf("\n");
} // end for i
} // end main
Vetores e Matrizes

Finalizando
Vetores Representao

Nome da varivel vetor Contedo

temperatura[0] 18,0
temperatura[1] 19,2
temperatura[2] 19,7
... ....
temperatura[142] 20,5
temperatura[143] 20,3
Vetores Cdigo em C

/* Programa temperatura - verso 2*/


#include<stdio.h>
int main()
{
float temperatura[144]; // declarao de vetor
int i; // declarao do ndice
for (i = 0; i<144; i++)
{
printf(Digite a temperatura %d\n, i+1);
scanf(%f, &temperatura[i]);
}// fim para
}//Fim main
Matrizes Cdigo em C

/* Programa atribuio de valores a uma matriz - verso 1 Fixa linha


e varia coluna. */
#include<stdio.h>

int main()
{
int a[7][7]; // declarao da matriz
int i,j; // declarao dos ndices
for (i = 0; i<7; i++) // variao das linhas da matriz
for (j = 0; j<7; j++) // variao das colunas da matriz
{
printf(Digite o elemento %d,%d da matriz\n,i+1, j+1);
scanf(%d, &a[i][j]);
}// fim para j
}//Fim main
Matrizes Manipulao: Fixa Linha (i)
e Varia Coluna (j)
j= 0 1 2 3 4 5 6
i=0 5 9 6 4 3 8 7

i=1 4 1 3 5 6 8 7
i=2 3 1 4 5 6 8 7
i=3 1 3 4 5 6 8 7
i=4 1 3 4 5 6 8 7
i=5 1 3 4 5 2 7 8
i=6 1 3 4 5 6 7 8

a[0][0] = 5, a[0][1] = 9, a[0][2] = 6, a[0][3]=4, a[0][4]=3,


a[0][5]= 8 e a[0][6] = 7 (i = 0 e j varia de 0 a 6)
Matrizes Cdigo em C

/* Programa atribuio de valores a uma matriz - verso 2 fixa


coluna e varia linha*/
#include<stdio.h>

int main()
{
int a[7][7]; // declarao da matriz
int i,j; // declarao dos ndices
for (j = 0; j<7; j++) // variao das colunas da matriz
for (i = 0; i<7; i++) // variao das linhas da matriz
{
printf(Digite o elemento %d,%d da matriz\n,i+1, j+1);
scanf(%d, &a[i][j]);
}// fim para i
}//Fim main
Matrizes Manipulao: Fixa Coluna
(j) e Varia Linha (i)

j= 0 1 2 3 4 5 6
i=0 5 9 6 4 3 8 7
i=1 4 1 3 5 6 8 7
i=2 3 1 4 5 6 8 7
i=3 1 3 4 5 6 8 7
i=4 1 3 4 5 6 8 7
i=5 1 3 4 5 2 7 8
i=6 1 3 4 5 6 7 8
a[0][0]=5, a[1][0]=4, a[2][0]=3, a[3][0]=1, a[4][0], =1
a[5][0] =1 e a[6][0] =1 (j= 0 e i varia de 0 a 6)
Matrizes Multidimensionais

Fonte: extrado de Microsoft Developer Network. Disponvel em:


http://msdn.microsoft.com/en-us/library/02e7z943.aspx. Acesso em: 04 jul. 2014.

Você também pode gostar