Buscar

VETORES E MATRIZES

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

VETORES E MATRIZES
UNIDADE
4
PROFESSOR: SÉRVULO JUNIOR
FALCULDADE PITÁGORAS
ALGORITMOS E PROGRAMAÇÃO
4 VETORES E MATRIZES 
4.1 Vetores
4.2 Matrizes
ROTEIROROTEIRO
PROFESSOR: SÉRVULO JUNIOR 2/41
É uma técnica de programação que permitirá trabalhar com o
agrupamento de várias informações dentro de uma mesma variável,
sendo essa variável do mesmo tipo e por essa razão podemos chamar
de estrutura de dados homogêneos.
A utilização deste tipo de estrutura de dados recebe diversos
nomes, como: variáveis indexadas, variáveis compostas, variáveis
subscritas, arranjos, vetores, matrizes, tabelas em memória ou arrays (do
inglês).
As matrizes (tabelas em memória) são tipos de dados que podem
ser “construídos” à medida que se fazem necessários, pois não é sempre
que os tipos básicos (real, inteiro, caractere e lógico) e/ou variáveis
simples são suficientes para representar a estrutura de dados utilizada
em um programa.
ROTEIRO4 VETORES E MATRIZES
PROFESSOR: SÉRVULO JUNIOR 3/41
Vetores ou Matrizes de uma Dimensão
Vetor pode também ser denominado por matrizes unidimensionais
e caracteriza-se por ser definida uma única variável dimensionada com
um determinado tamanho. Os nomes dados as matrizes seguem as
mesmas regras de nomes utilizados para indicar as variáveis simples.
A manipulação de uma matriz tipo vetor é utilizada uma única
instrução de looping (enquanto, para ou repita).
Para ter uma ideia de como utilizar matrizes em uma determinada
situação, considere o seguinte problema: “Calcular e apresentar a média
geral de uma turma de 8 alunos. A tabela seguinte mostra esse cenário.
ROTEIRO4.1 Vetores
PROFESSOR: SÉRVULO JUNIOR 4/41
ROTEIRO4.1 Vetores
PROFESSOR: SÉRVULO JUNIOR
ALUNO NOTA1 NOTA2 NOTA3 NOTA4 MEDIA
1 4.0 6.0 5.0 3.0 4.5
2 9.0 8.0 9.0 6.0 8.0
3 3.0 5.0 4.0 2.0 3.5
4 6.0 7.0 5.0 8.0 6.5
5 4.0 6.0 6.0 8.0 6.0
6 7.0 7.0 7.0 7.0 7.0
7 8.0 7.0 6.0 5.0 6.5
8 6.0 7.0 2.0 9.0 6.0
TABELA 1: REPRESENTAÇÃO DE UM VETOR EM UMA TABELA.
5/41
Para utilizar matrizes, será definida a instrução conjunto que indicará em
postuguês estruturado a utilização de uma matriz, tendo como sintaxe:
VARIÁVEL : conjunto [<dimensão>] de <tipo de dado>
Onde:
<dimensão> será a indicação dos valores inicial e final do tamanho do
vetor;
<tipo de dado> se o vetor em questão irá utilizar valores reais, inteiros,
lógicos ou caracteres.
Na linguagem C: tipo VARIÁVEL [<dimensão>];
ROTEIRO4.1 Vetores
PROFESSOR: SÉRVULO JUNIOR 6/41
Na linguagem C
tipo VARIÁVEL [<dimensão>];
Onde:
<dimensão> será a indicação dos valores inicial e final do tamanho do
vetor;
<tipo de dado> se o vetor em questão irá utilizar valores reais, inteiros,
lógicos ou caracteres.
A seguir um Portugol onde efetua a leitura das notas de 8 alunos,
cálculo da média e a sua apresentação do vetor.
ROTEIRO4.1 Vetores
PROFESSOR: SÉRVULO JUNIOR 7/41
programa MEDIA_TURMA
var
MD [0..7] : real;
SOMA, MEDIA : real;
I : inteiro;
inicio
SOMA = 0;
para I de 0 até 7 passo 1 faça
leia (MD[I]);
SOMA = SOMA + MD[I];
fim para;
MEDIA = SOMA / 8;
escreva (“Media = “, MEDIA);
fim.
ROTEIRO4.1 Vetores
PROFESSOR: SÉRVULO JUNIOR 8/41
Em C o portugol fica:
//programa MEDIA_TURMA
#include <stdio.h>
#include <stdlib.h>
float MD [8];
float SOMA, MEDIA;
int I;
main (){
SOMA = 0;
for(I = 0; I <= 7; I++){
printf("Digite a %i. nota: ",I+1);
scanf("%f", &MD[I]);
SOMA = SOMA + MD[I];
}
MEDIA = SOMA / 8;
printf("Media = %.2f\n\n",MEDIA);
system("pause");
return 0;
}
ROTEIRO4.1 Vetores
PROFESSOR: SÉRVULO JUNIOR 9/41
Em uma matriz não podemos confundir o índice com o elemento. O índice
é o endereço de alocação de uma unidade da matriz, enquanto elemento é o
conteúdo armazenado em um determinado endereço.
ROTEIRO4.1 Vetores
PROFESSOR: SÉRVULO JUNIOR
Índice Elemento
1 4.5
2 8.0
3 3.5
4 6.5
5 6.0
6 7.0
7 6.5
8 6.0
TABELA 2: Índice e elemento de uma matriz, Coluna Média
10/41
A seguir um programa que ler e escreve 8 notas de alunos.
programa MEDIA_TURMA
var
MD [0..8] : real;
SOMA, MEDIA : real;
I : inteiro;
inicio
SOMA = 0;
para i de 0 até 7 passo 1 faça
leia (MD[I]);
SOMA = SOMA + MD[I];
fim para;
MEDIA = SOMA / 8;
para I de 0 até 2 passo 1 faça
escreva (MD[I]);
fim para;
escreva (“Media = “, MEDIA);
fim.
ROTEIRO4.1 Vetores
PROFESSOR: SÉRVULO JUNIOR 11/41
//programa MEDIA_TURMA
#include <stdio.h>
#include <stdlib.h>
float MD [7];
float SOMA, MEDIA;
int I;
main (){
SOMA = 0;
for(I = 0; I <= 7; I++){
printf("Digite a %i. nota: ",I+1);
scanf("%f", &MD[I]);
SOMA = SOMA + MD[I];
}
MEDIA = SOMA / 8;
for(I = 0; I <= 7; I++){
printf("%i. nota: %.2f\n",I+1, MD[I]);
}
printf("Media = %.2f\n\n",MEDIA);
system("pause");
return 0;
}
ROTEIRO4.1 Vetores
PROFESSOR: SÉRVULO JUNIOR 12/41
O exemplo a seguir efetua a leitura de dez elementos de uma matriz
A, o objetivo é construir uma matriz B de mesmo tipo, observando a
seguinte lei de formação: se o valor do índice for par, o valor deverá ser
multiplicado por 5, se for ímpar devera ser somado com 5. Ao final
mostrar o conteúdo da matriz B.
Como resolver:
1. Iniciar o contador de índice, variável I como 0 em um contador até 9;
2. Ler os 10 valores, um a um;
3. Verificar se o índice é par se sim multiplicar por 5, se não somar 5.
Criar a matriz B;
4. Apresentar os conteúdos das duas matrizes.
ROTEIRO4.1 Vetores
PROFESSOR: SÉRVULO JUNIOR 13/41
Programa INDICE_PAR_OU_IMPAR;
var
A, B : conjunto [1..10]: inteiro;
I, R: inteiro;
Inicio
para I de 0 até 9 passo 1 faça
leia A[I];
fim para;
para I de 0 até 9 passo 1 faça
R = I – 2 * (I div 2);
se (R = 0) então
B[I] = A[I] * 5;
senão
B[I] = A[I] + 5;
fim se;
fim para;
para I de 0 até 9 passo 1 faça
escreva B[I];
fim para;
fim.
ROTEIRO4.1 Vetores
PROFESSOR: SÉRVULO JUNIOR 14/41
//Programa INDICE_PAR_OU_IMPAR;
#include <stdio.h>
#include <stdlib.h>
int A[9], B[9], I, R;
main(){
for(I = 0; I <= 9; I++){
printf("Digite o %i. numero: ",I+1);
scanf("%i", &A[I]);
}
for(I = 0; I <= 9; I++){
R = I%2;
if(R == 0){
B[I] = A[I] * 5;
} else {
B[I] = A[I] + 5;
}
}
printf("\n\nO VETOR B E\n\n");
for(I = 0; I <= 9; I++){
printf("%i. numero: %i %i\n",I+1, A[I],B[I]);
}
system("pause");
return 0;
}
ROTEIRO4.1 Vetores
PROFESSOR: SÉRVULO JUNIOR 15/41
ROTEIRO4.1 Vetores
PROFESSOR: SÉRVULO JUNIOR
Desenvolver um programa que efetue a leitura de cinco elementos de
uma matriz A do tipo vetor. No final apresente o total da soma de todos os
elementos que sejam ímpares.
Como resolver:
1. Iniciar o contador de índice, variável I como 0 em um contador até 4;
2. Ler os 5 valores, um a um;
3. Verificar se o elemento é impar; se sim efetuar a soma dos
elementos;
4. Apresentar o total somado de todos os elementos ímpares da matriz.
16/41
Programa ELEMENTO_IMPAR;
var
A [0..4]: inteiro;
R, I, SOMA: inteiro;
Inicio
SOMA = 0;
para I de 0 até 4 passo 1 faça
leia A[I];
fim para;
para I de 0 até 4 passo 1 faça
R = (A[I] div 2);
se (R = 1) então
SOMA = SOMA + A[I];
fim se;
fim para;
escreva SOMA;
fim.
ROTEIRO4.1 Vetores
PROFESSOR: SÉRVULO JUNIOR 17/41
//Programa ELEMENTO_IMPAR;
#include <stdio.h>
#include <stdlib.h>
int A[5], I, R, SOMA;
main(){
SOMA = 0;
for(I = 0; I <= 4; I++){
printf("Digite o %i. numero: ",I+1);
scanf("%i", &A[I]);
}
for(I = 0; I <= 4; I++){
R = A[I]%2;
if(R == 1){
SOMA = SOMA + A[I];
}
}printf("\n\nA SOMA DOS VALOR E %i \n\n", SOMA);
system("pause");
return 0;
}
ROTEIRO4.1 Vetores
PROFESSOR: SÉRVULO JUNIOR 18/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
Classificação dos elementos de uma matriz
Colocar em ordem crescente 5 valores numéricos armazenados numa 
matriz A e apresentá-los.
Como resolver:
1. Iniciar o contador de índice, variável I como 0 em um contador até 4;
2. Ler os 5 valores, um a um;
3. Verificar se o elemento seguinte é maior que o elemento atual;
4. Apresentar o vetor em ordem crescente.
19/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
Programa ORDENA_VETOR
var
N [0..4]: inteiro;
I, J, X: inteiro;
inicio
para I de 0 até 4 passo 1 faça
leia (N[I]);
fim para;
para I de 0 até 3 passo 1 faça
para J de I + 1 até 4 passo 1 faça
se (N[I] > N[J]) então
X = N[I];
N[I] = N[J];
N[J] = X;
fim se;
fim para;
fim para;
para I de 0 até 4 passo 1 faça
escreva (N[I]);
fim para; 
fim.
20/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
//Programa ORDENA_VETOR;
#include <stdio.h>
#include <stdlib.h>
int N[5], I, J, X;
main(){
for(I = 0; I <= 4; I++){
printf("Digite o %i. numero: ",I+1);
scanf("%i", &N[I]);
}
for(I = 0; I <= 3; I++){
for(J = I+1; J <= 4; J++){
if(N[I] > N[J]){
X = N[I];
N[I] = N[J];
N[J] = X;
}
}
}
printf("\n\nO VETOR ORDENADO \n\n");
for(I = 0; I <= 4; I++){
printf("%i\n",N[I]);
}
system("pause");
return 0;
}
21/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
MÉTODO DE PESQUISA EM UMA MATRIZ
Pesquisa sequencial
Consiste em efetuar a busca da informação a partir do primeiro elemento
sequencialmente até o último. Este método é lento, porém eficiente nos casos em
que a matriz encontra-se com seus elementos desordenados.
Pesquisa binária
Este método de pesquisa é em média mais rápida, porém exige que a matriz
esteja previamente classificada, pois este método divide a lista em duas partes e
procura saber se a informação a ser pesquisada está acima ou abaixo da linha
de divisão. Se estiver acima, por exemplo, toda a metade abaixo é desprezada.
Em seguida, se a informação não foi encontrada, é novamente dividida em duas,
e pergunta se aquela informação está acima ou abaixo, e assim vai sendo
executada até encontrar ou não a informação pesquisada. Pelo fato de ir
dividindo sempre em duas partes o volume de dados é que o método recebe a
denominação de pesquisa binária.
22/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
A seguir um exemplo utilizando Pesquisa sequencial onde o programa dar
entrada de 10 nomes e a apresentação desses nomes que venham a ser
solicitados durante a fase de pesquisa.
Consiste em efetuar a busca da informação a partir do primeiro elemento
sequencialmente até o último. Este método é lento, porém eficiente nos casos em
que a matriz encontra-se com seus elementos desordenados.
Como resolver:
1. Iniciar o contador de índice, variável I como 0 em um contador até 9;
2. Criar um looping que efetue a pesquisa enquanto o usuário assim desejar.
Durante a fase de pesquisa, deverá ser solicitada a informação a ser
pesquisada. Essa informação deverá ser comparada com o primeiro
elemento; sendo igual mostra, caso contrário avança para o próximo. Se não
achar em toda a lista, informar que não existe o elemento pesquisado; se
existir deverá mostrá-lo;
3. Encerrar a pesquisa quando desejado.
23/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
Programa PESQUISA_SEQUENCIAL
var
NOME [0..9]: caractere;
I: inteiro;
PESQ, RESP : caractere;
ACHA: lógico;
inicio
para I de 0 até 9 passo 1 faça
leia (NOME [I]);
fim para;
RESP = “SIM”;
enquanto (RESP = “SIM”) faça
escreva “Entre com o nome a ser pesquisado: “;
leia PESQ;
I = 0;
ACHA = falso;
24/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
enquanto (I <= 9) e (ACHA = falso) faça
se (PESQ = NOME[I]) então
ACHA = verdadeiro;
se não 
I = I + 1;
fim se;
fim enquanto;
se (ACHA = verdadeiro) então
escreva (PESQ, “ foi localizado na posição ”, I);
se não
escreva (PESQ, “ não foi localizado”);
fim se;
escreva (“Deseja continuar? “);
leia (RESP);
fim enquanto;
fim.
25/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
//Programa PESQUISA_SEQUENCIAL;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char NOME[4][100];
int I;
char PESQ[100], RESP, ACHA;
main(){
for(I = 0; I <= 3; I++){
printf("Digite o %i. nome: ",I+1);
gets (NOME[I]);
}
RESP = 'S';
while(RESP == 'S' || RESP == 's'){
printf("Entre com o nome a ser pesquisado: ");
fflush (stdin);
gets(PESQ);
26/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
I = 0;
ACHA = 'F';
while((I <= 3) && (ACHA == 'F')){
if(strcmp(PESQ, NOME[I]) == 0){
ACHA = 'V';
} else {
I++;
}
}
if(ACHA == 'V'){
printf("%s foi localizado na posicao %i\n\n", PESQ, I);
} else {
printf("%s nao foi localizado\n\n", PESQ);
}
printf("Deseja continuar (S/N)?");
scanf("%s", &RESP);
}
system("pause");
return 0;
}
27/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
Agora um exemplo utilizando Pesquisa binária, para esse exemplo iremos
utilizar o problema anterior onde o algoritmo lê 10 nomes e a apresentação
somente de nomes que venham a ser solicitadas pelo usuário durante a
execução do programa.
Como resolver:
1. Iniciar o contador de índice, variável I como 0 em um contador até 9;
2. Criar um looping que efetue a pesquisa enquanto o usuário assim desejar.
Durante a fase de pesquisa, deverá ser solicitada a informação a ser
pesquisada. Essa informação deverá ser comparada utilizando-se o método
de pesquisa binária. Sendo igual mostra, caso contrário avança para o
próximo. Se não achar em toda a lista, informar que não existe o elemento
pesquisado; se existir deverá mostrá-lo;
3. Encerrar a pesquisa quando desejado.
28/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
Programa PESQUISA_BINÁRIA
var
NOME [0..9]: caractere;
I, X, J: inteiro;
PESQ, RESP : caractere;
ACHA: lógico;
inicio
para I de 0 até 9 passo 1 faça
leia (NOME [I]);
fim para;
//ordenação
para I de 0 até 8 passo 1 faça
para J de I + 1 até 9 passo 1 faça
se (NOME[I] > NOME[J]) então
X = NOME[I];
NOME[I] = NOME[J] ;
NOME[J] = X;
fim se;
fim para;
fim para;
29/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
//treco de pesquisa
enquanto (RESP = “SIM”) faça
escreva “Entre com o nome a ser pesquisado: “;
leia PESQ;
COMECO = 0;
FINAL = 9;
ACHA = falso;
enquanto (COMECO <= FINAL) e (ACHA = falso) faça
MEIO = (COMECO + FINAL) / 2;
se (PESQ = NOME[MEIO]) então
ACHA = verdadeiro;
se não
se (PESQ < NOME[MEIO]) então
FINAL = MEIO -1;
se não
COMECO = MEIO + 1;
fim se;
fim se;
fim enquanto;
30/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
se (ACHA = verdadeiro) então
escreva (PESQ, “ foi localizado na posição ”, MEIO);
se não
escreva (PESQ, “ não foi localizado”);
fim se;
escreva (“Deseja continuar? “);
leia (RESP);
fim enquanto;
fim.
31/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
O exemplo na linguagem C.
//Programa PESQUISA_BINARIA;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char NOME[10][100];
int I, J, COMECO, MEIO, FINAL;
char PESQ[100], RESP, ACHA;
char X[100];
main(){
for(I = 0; I <= 9; I++){
printf("Digite o %i. nome: ",I+1);
gets (NOME[I]);
}
//ordenação
for(I = 0; I <= 8; I++){
for(J = I+1; J <= 9; J++){
if(strcmp(NOME[I], NOME[J]) > 0){strcpy(X, NOME[I]);
strcpy(NOME[I], NOME[J]);
strcpy(NOME[J], X);
}
} 
}
32/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
//treco de pesquisa
RESP = 'S';
while(RESP == 'S' || RESP == 's'){
printf("Entre com o nome a ser pesquisado: ");
fflush (stdin);
gets(PESQ);
COMECO = 0;
FINAL = 9;
ACHA = 'F';
while((COMECO <= FINAL) && (ACHA == 'F')){
MEIO = (COMECO + FINAL) / 2;
if(strcmp(PESQ, NOME[MEIO]) == 0){
ACHA = 'V';
} else {
if(strcmp(PESQ, NOME[MEIO]) < 0){
FINAL = MEIO -1;
} else {
COMECO = MEIO + 1;
}
}
}
33/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
if(ACHA == 'V'){
printf("%s foi localizado na posicao %i\n\n", PESQ, MEIO);
} else {
printf("%s nao foi localizado\n\n", PESQ);
}
printf("Deseja continuar (S/N)?");
scanf("%s", &RESP);
}
system("pause");
return 0;
}
34/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
Matrizes com mais de uma dimensão
Também conhecida como matrizes bidimensionais ou arranjos (arrays) as 
matrizes com mais de uma dimensão tem variáveis no sentido horizontal 
e vertical. Uma matriz de duas dimensões deverá ser controlada com 
dois looping de três dimensões deverá ser controlado por três loopings e 
assim por diante.
Em matrizes de mais de uma dimensão os seus elementos são também 
manipulados de forma individualizada, sendo a referência feita sempre 
por meio de dois índices: o primeiro para indicar a linha e o segundo para 
indicar a coluna.
35/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
Operações básicas com matrizes de duas dimensão
Uma matriz de duas dimensões está sempre fazendo menção a linhas e 
colunas e é representada por seu nome e seu tamanho (dimensão) entre 
colchetes. Desta forma é uma matriz de duas dimenções.
TABELA [0..8, 0..5]
Onde:
TABELA -> nome o nome da matriz;
0..8 -> quantidade de linhas;
0..5 -> quantidade de colunas;
No exemplo acima quer dizer que podemos armazenar até 45 elementos.
36/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
Como exemplo temos: leia um valor numérico X e uma matriz A 4x2,
elabore um algoritmo que calcule e exiba uma outra matriz B que deverá
conter cada elemento da matriz A dividido pelo valor numérico X.
Para resolver este problema, vamos criar uma tabela com 10 linha [0..9] 
para guardar pessoas e 5 colunas [0..4] para guardar dados pessoais.
[0] [1]
[1]
[2]
[3]
[4]
37/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
//algoritmo "Calcula Matriz B"
var
A, B: vetor[1..4,1..2]: inteiro
X real
I, J: inteiro
inicio
leia(X)
para I de 1 ate 4 faca
para J de 1 ate 2 faca
leia(A[I, J]);
B[I, J] = A[I, J]/X;
fim para;
fim para;
para I de 0 ate 3 faca
para J de 0 ate 1 faca
escreva( B[I, J]);
fim para;
fim para;
Fim.
38/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
NOSSO EXEMPLO DESENVOLVIDO NA LINGUAGEM C
//algoritmo "Calcula Matriz B"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int A[4][2];
int B[4][2];
int X, I, J;
39/41
ROTEIRO4.2 Matrizes
PROFESSOR: SÉRVULO JUNIOR
main(){
printf("Digite o valor de X: ");
scanf("%i",&X);
printf("ELEMENTOS DA MATRIZ A \n\n");
for(I = 0; I <= 3; I++){
for(J = 0; J < 2; J++){
printf("digite o elemento da linha %i coluna %i: ",I, J);
scanf("%i",&A[I][J]);
B[I][J] = A[I][J]/X;
}
}
printf("\n\nELEMENTOS DA MATRIZ B (elemento da matriz A dividido pelo valor numérico X) \n\n");
for(I = 0; I <= 3; I++){
for(J = 0; J < 2; J++){
printf("elementos da matriz B [%i, %i]........: %i \n",I, J, B[I][J]);
}
}
system("pause");
return 0;
}
40/41
ARAÚJO, Everton C. Algoritmos: fundamento e prática. Capítulo 6 – Estrutura de Dados Homogêneas I; Capítulo 
7 – Aplicações Práticas do Uso de Matrizes do Tipo Vetor; e Capítulo 8 – Estrutura de Dados Homogêneas II.
VICTORINA, VIVIANE, MIZRANE. Treinamento em Linguagem C: curso completo. Capítulo 7 – Matrizes e 
Strings; Capítulo 1 – Introdução e Capítulo – Funções.
ROTEIROBibliografia
PROFESSOR: SÉRVULO JUNIOR 41/41

Outros materiais