Buscar

Vetores (Arrays) e Matrizes - Linguagem de Programação em C

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 30 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 30 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 30 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

C: Vetores e Matrizes 
Laboratório de Informática 
Adaptado do material da Profª Ms. Lília Marta 
Brandão Soussa Modesto 
1 
C: Vetores 
Laboratório de Informática 
Adaptado do material da Profª Ms. Lília Marta 
Brandão Soussa Modesto 
2 
Estrutura de dados – vetores 
!   A variável simples armazena somente um valor 
de cada vez. 
!   Os vetores são variáveis que armazenam vários 
valores ao mesmo tempo, que possuem os 
mesmos tipos de dados, sendo chamadas de 
estruturas de dados homogêneas. 
!   Os vetores também são chamados de: 
arrays, variáveis indexadas. 
3 
4 
Estrutura de dados – vetores 
Vetor: 
0 1 2 3 4 
0 
Coluna 
 ê 
Linha è 
Sintaxe: tipo <nome vetor> [dimensão]; 
exemplos: 
 float NOTA [4]; (Obs: de 0 a 3) 
 char NOME [20]; (Obs: de 0 a 19) 
5 
Estrutura de dados – vetores 
0 1 2 3 
NOTA 
0 1 2 3 4 ... 19 
NOME 
Exemplo 1: 
Crie um programa que leia as médias dos 8 
alunos e armazene em um vetor, depois 
calcule e apresente a média geral da turma. 
0 1 2 3 4 5 6 7 
4.5 6.5 8.0 3.5 6.0 7.0 6.5 6.0 
MEDIA da TURMA = 6.0 
6 
Estrutura de dados – vetores 
#include <stdio.h> 
#include <stdlib.h> 
void main(void){ 
int I; 
float SOMA = 0, MEDTUR, MEDIA[8]; 
printf ("\n O usuario devera digitar as 8 medias, teclando 
<ENTER> depois de cada uma delas."); 
for (I = 0; I < 8; I++) 
{ 
 printf ("\n Digite a media do aluno %d: ", I+1); 
 scanf("%f", &MEDIA[I]); 
 SOMA += MEDIA[I]; 
 } 
MEDTUR = SOMA / 8; 
 for (I = 0; I < 8; I++) 
{ 
 printf ("\n Nota do aluno %d : %f", I, MEDIA[I]); 
} 
printf ("\nMedia da Turma = %.2f \n\n", MEDTUR); 
} 
7 
Estrutura de dados – vetores 
Repete 8 vezes (0 a 7) para 
ler o vetor MEDIA e 
atualizar a SOMA 
Repete 8 vezes (0 a 7) para 
imprimir o vetor MEDIA 
Recapitulando: 
 
printf ("\n Digite a media do aluno %d: ", I+1); 
 
 
 
 
 
printf ("\nMedia da Turma = %.2f \n\n", MEDTUR); 
 
 
 
 
 
 
 
 
scanf("%f", &MEDIA[I]); 
8 
Estrutura de dados – vetores 
Imprime na tela a mensagem 
Digite a media do aluno 1: 
Onde: \n muda de linha, o %d 
informa ao compilador que 
neste local será impresso um 
valor inteiro que está descrito 
após a vírgula) 
Aqui o scanf está obtendo o valor da posição I do vetor 
MEDIA. O & é requerido pelo scanf para qq tipo de 
variável, inclusive vetores, com exceção de variáveis do 
tipo cadeia de caracteres. 
%.2f indica que será impresso um 
valor decimal (float) com duas 
casas decimais. Se a variável 
armazenada tiver mais de 2 casas 
decimais, a formatação usará a 
regra de arredondamento quando 
for apresentar o número. 
Exemplo 2: 
 
Crie um programa que: 
 
Leia dez elementos e armazene-os em um vetor 
A; 
 
Construa um vetor B de mesma dimensão, que 
é formado pela multiplicação dos elementos de 
A por 5; 
 
Mostrar o conteúdo do vetor A e B. 
9 
Estrutura de dados – vetores 
0 1 2 3 4 ... 9 
A 
0 1 2 3 4 ... 9 
B 
10 
Estrutura de dados – vetores #include <stdio.h> 
#include <stdlib.h> 
int main(void) 
{ 
int I, A[10], B[10]; 
printf ("\n Digite 10 valores inteiros, teclando <ENTER> 
após cada um. \n "); 
for (I = 0; I < 10; I++) 
{ printf ("\n Digite o %do.: ", I+1); 
 scanf("%d", &A[I]); 
 B[I] = A[I] * 5; 
} 
printf ("Os valores calculados sao: \n"); 
for (I = 0; I < 10; I++) 
 printf ("Valor de A[%d] eh: %d - Valor de B[%d] 
 eh: %d ", I, A[I], I, B[I]); 
system("pause"); 
return(0); 
} 
Repete 10 vezes (0 a 9) 
para ler o vetor A e 
atualizar o vetor B 
Repete 10 
vezes (0 a 9) 
para escrever 
os vetores A e 
B 
 
 
Exercícios vetores 
1) Ler 10 elementos, armazená-los em um vetor e 
apresentá-los. 
2) Ler 8 elementos e armazená-lo em um vetor A. 
Construir um vetor B de mesma dimensão com os 
elementos do vetor A multiplicados por 3. O 
elementos B[0] deverá ser multiplicado pelo 
elemento A[0] * 3, o elemento B[1] multiplicado 
pelo elemento A[2]*3 e assim por diante, até 7. 
Apresentar o vetor B. 
3) Ler dois vetores A e B com 20 elementos cada. 
Construir um vetor C, onde cada elemento de C é a 
subtração do elemento correspondente de A com 
B. Apresentar o vetor C. 
11 
 
 
Exercícios vetores 
4) Ler 15 elementos e armazená-los em um vetor A. Construir um 
vetor B de mesmo tipo, observando a seguinte lei de formação: 
“Todo elemento de B deverá ser o quadrado do elemento de A 
correspondente”. Apresentar os vetores A e B. 
5) Ler um vetor A com 15 elementos. Construir um vetor B de 
mesmo tipo, sendo que cada elemento do vetor B seja o fatorial 
do elemento correspondente no vetor A. Apresentar os vetores 
A e B (Dica: colocar a estrutura de repetição (for) que calcula o 
fatorial dentro da estrutura de repetição (for) que lê o vetor A e 
preenche o vetor B). 
6) Ler dois vetores A e B com 15 elementos cada. Construir um 
vetor C, sendo esta a junção dos dois outros vetores. Desta 
forma, C deverá ter o dobro de elementos, ou seja, 30. 
Apresentar o vetor C. 
12 
 
 
7) Ler 20 elementos de um vetor A e construir um 
vetor B de mesma dimensão com os mesmos 
elementos de A, sendo que deverão estar 
invertidos. Ou seja, o primeiro elemento de A passa 
a ser o último de B, o segundo elemento passa a 
ser o penúltimo de B e assim por diante. 
Apresentar os vetores A e B. 
8) Ler três vetores (A, B e C) com 5 elementos cada. 
Construir um vetor D, sendo este a junção dos três 
outros vetores. Desta forma D deverá ter o triplo 
de elementos, ou seja, 15. Apresentar os 
elementos de D. 
13 
Exercícios vetores 
 
 
9) Elaborar um programa que efetue o cálculo de 
uma tabuada de um número qualquer e armazene 
os resultados em um vetor A de 10 elementos. 
Apresentar os valores armazenados no vetor. 
10) Ler 6 elementos (valores inteiros) para os 
vetores A e B. Construir os vetores C e D de 
mesmo tipo e dimensão, sendo que o vetor C 
deverá ser formado pelos elementos de índice 
ímpar dos vetores A e B, e o vetor D deverá ser 
formado pelos elementos de índice par dos 
vetores A e B. Apresentar os vetores C e D. 
14 
Exercícios vetores 
C: Matrizes 
Laboratório de Informática 
Adaptado do material da Profª Ms. Lília Marta 
Brandão Soussa Modesto 
15 
Estrutura de dados – Matrizes 
!   As matrizes também são variáveis que armazenam 
vários valores ao mesmo tempo, que possuem os 
mesmos tipos de dados, sendo chamadas de 
estruturas de dados homogêneas. 
!   A Matriz unidimensional é chamada de . 
!   As matrizes também são chamadas de: 
tabelas, arrays, variáveis indexadas, variáveis 
compostas, variáveis subscritas ou arranjos. 
16 
0 1 2 3 4 
0 
1 
2 
3 
Coluna 
 ê 
Linha è Matriz: 
17 
Estrutura de dados – Matriz 
Vetor: 
0 1 2 3 4 
0 
Coluna 
 ê 
Linha è 
Sintaxe: 
tipo <nome matriz> [dimensão linha][dimensão coluna]; 
Exemplos: 
 float NOTA [30][4]; 
 char NOME [10][40]; 
0 1 2 3 
 0 
 1 
 ... 
29 
 0 
 1 
 ... 
 9 
NOME NOTA 
0 1 2 3 ... 39 
18 
Estrutura de dados – matrizes 
Exemplo 1: 
 
Crie um programa que: 
 
Leia duas matrizes A e B com 5 linhas e 3 colunas; 
 
 
Construir uma matriz C de mesma dimensão, que 
é formada pela soma dos elementos de A com B; 
 
 
Mostrar o conteúdo da matriz C. 
19 
Estrutura de dados – matrizes 
20 
Estrutura de dados – matrizes #include <stdio.h> #include <stdlib.h> void main(void){ 
int I, J, A[5][3], B[5][3], C[5][3]; 
printf("\n Digite 15 números para A: "); 
for (I = 0; I < 5; I++) 
 for (J = 0; J < 3; J++) 
 { 
 printf ("\n Digite o A[%d][%d]: ", I, J); 
 scanf("%d", &A[I][J]); 
 } 
printf ("\n Digite 15 números para B: "); 
for (I = 0; I < 5; I++) 
 for (J = 0; J < 3; J++) 
 { 
 printf ("\n Digite B[%d][%d]: ", I, J); 
 scanf("%d", &B[I][J]); 
 } 
for (I = 0; I < 5; I++) 
 for (J = 0; J < 3; J++) 
 { 
 C[I][J] = A[I][J] + B[I][J]; 
 printf ("\n C[%d][%d] = %d ", I, J, C[I][J]); 
 } 
printf("\n\n"); 
system("pause"); 
} 
Exemplo 2: 
 
 
Crie um programa que: 
 
Leia 10 nomes de pessoas ; 
 
Mostre-os na tela. 
 
Considere que cada nome tenha 40 caracteres de 
comprimento. 
21 
Estrutura de dados – matrizes 
#include <stdio.h> 
#include <stdlib.h> 
 
void main(void){ 
int I; char NOME [10] [40]; 
 
for (I = 0; I < 10; I++) 
{ 
 printf ("\n Digite o %2do. nome e tecle <ENTER>: ", I+1); 
 fflush(stdin); 
 fgets(NOME [I], 40, stdin); 
} 
 
for (I = 0; I <= 9; I++) 
 printf ("\n\n %2do. Nome: %s", I+1, NOME[I]); 
 
system("pause"); 
} 
22 
Estrutura de dados – matrizes 
Um vetor de cadeias de 
caracteres na verdade é 
uma matriz! 
Adição e Subtraçao -Matrizes 
23 
Processo que pode ser feito SOMENTE quando as 
matrizes tem o número de linhas e colunas igual. 
Matriz A “mxn” + Matriz B “mxn” = Matriz C “mxn” 
Matriz A “mxn” - Matriz B “mxn” = Matriz C “mxn” 
 
Exemplo: Adição 
a11	
   a12	
  
a21	
   a22	
  
Matriz A 
(2X2) 
b11	
   b12	
  
b21	
   b22	
  
Matriz B 
(2X2) 
Matriz C 
(2X2) 
a11+b11 a12+b12 
a21+b21 a22 + b22 
3	
   1	
  
4	
   3	
  
7	
   4	
  
5	
   8	
  
10	
   5	
  
9	
   11	
  
24 
Adição e Subtraçao -Matrizes 
#include <stdio.h> 
#include <stdlib.h> 
int main(void){ 
 int I, J, Y, AUX, A[2][2], B[2][2], C[2][2]; 
 printf ("\n Digite matriz A \n"); 
 for (I = 0; I <= 1; I++) 
 for (J = 0; J <= 1; J++) 
 { 
 printf ("\n A[%d][%d]: ", I,J); 
 scanf("%d", &A[I][J]); 
 } 
 printf ("\n Digite matriz B \n"); 
 for (I = 0; I <= 1; I++) 
 for (J = 0; J <= 1; J++) 
 { 
 printf ("\n B[%d][%d]: ", I,J); 
 scanf("%d", &B[I][J]); 
 } 
for (I = 0; I<=1; I++) 
{ printf("\n"); 
 for (J=0;J<=1;J++) 
 { 
 C[I][J]=A[I][J]+B[I][J]; 
 printf ("\tC[%d][%d] = %3d ", I, J, C[I][J]); 
 } 
 } 
 printf("\n"); 
 system ("pause"); 
 return(0); 
} 
Multiplicação com Matrizes 
25 
Processo que pode ser feito SOMENTE quando o 
número de colunas da primeira matriz é igual ao 
número de linhas da segunda matriz. 
 
Matriz A “mxn” + Matriz B “nxp” = mxp 
a11	
   a12	
  
a21	
   a22	
  
a31	
   a32	
  
Matriz A (3X2) 
b11	
   b12	
   b13	
   b14	
  
b21	
   b22	
   b23	
   b24	
  
Matriz B (2X4) Matriz C (3X4) 
(a11*b11) 
+ a12*b21) 
(a11*b12) 
+ a12*b22) 
(a11*b13) 
+ a12*b23) 
(a11*b14) 
+ a12*b24) 
(a21*b11) 
+ a22*b21) 
(a21*b12) 
+ a22*b22) 
(a21*b13) 
+ a22*b23) 
(a21*b14) 
+ a22*b24) 
(a31*b11) 
+ a32*b21) 
(a31*b12) 
+ a32*b22) 
(a31*b13) 
+ a32*b23) 
(a31*b14) 
+ a32*b24) 
3 1 
4 3 
6 2 
7 4 5 3 
5 8 2 2 
21 + 5 12 + 8 15 + 2 9 + 2 
28 + 15 16 + 24 20 + 6 12 + 6 
42 + 10 24 + 16 30 + 4 18 + 4 
26 
#include <stdio.h> 
#include <stdlib.h> 
int main(void) 
{ 
 int I, J, Y, AUX, A[3][2], B[2][4], C[3][4]; 
 printf ("\n Digite matriz A \n"); 
 for (I = 0; I <= 2; I++) 
 for (J = 0; J <= 1; J++) 
 { 
 printf ("\n A[%d][%d]: ", I,J); 
 scanf("%d", &A[I][J]); 
 } 
 printf ("\n Digite matriz B \n"); 
 for (I = 0; I < 2; I++) 
 for (J = 0; J < 4; J++) 
 { 
 printf ("\n B[%d][%d]: ", I,J); 
 scanf("%d", &B[I][J]); 
 } 
Multiplicação com Matrizes 
27 
 for (I = 0; I<3; I++) 
 for (J=0;J<4;J++) 
 { 
 AUX = 0; 
 for (Y=0;Y<2;Y++) 
 AUX=AUX+A[I][Y]*B[Y][J]; 
 C[I][J]=AUX; 
 printf ("\tC[%d][%d] = %3d ", I, J, C[I][J]); 
 } 
 system ("pause"); 
 return(0); 
} 
Multiplicação com Matrizes 
11) Ler dois vetores A e B, cada um com 7 
elementos. Construir uma matriz C de duas 
dimensões. A primeira coluna deve ser formada 
pelos elementos de A e a segunda coluna deve 
ser formada pelos elementos de B. 
 
12) Ler dois vetores A e B, cada um com 12 
elementos. Construir uma matriz C de duas 
dimensões. A primeira coluna de C deve ser 
formada pelos elementos de A multiplicados por 
2 e a segunda coluna deve ser formada pelos 
elementos de B subtraídos de 5. 
28 
Exercício 
13) Ler um vetor A de 10 elementos. Construir uma 
matriz B de duas dimensões com três colunas. A 
primeira coluna de B é formada pelos elementos 
de A somados com mais 5, a segunda coluna é 
formada pelo valor do cálculo da fatorial de cada 
elemento correspondente de A e a terceira e 
última coluna deve ser formada pelos quadrados 
dos elementos correspondentes de A. 
14) Ler uma matriz A de 5 linhas e 5 colunas. 
Construir uma matriz B de mesma dimensão, 
sendo que cada elemento de B deverá ser o 
dobro de cada elemento correspondente de A, 
exceto para os valores situados na diagonal 
principal, os quais deverão ser o triplo de cada 
elemento correspondente de A. Imprimir B. 
29 
Exercício 
C: Vetores e Matrizes 
Laboratório de Informática 
Adaptado do material da Profª Ms. Lília Marta 
Brandão Soussa Modesto 
30