













Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Aula da universidade federal do tocantins sobre a introdução à programação em c, com ênfase em vetores e matrizes. Explicações sobre a declaração, acesso e atribuição de valores a vetores e matrizes, além de exercícios de fixação.
Tipologia: Notas de aula
1 / 21
Esta página não é visível na pré-visualização
Não perca as partes importantes!














Universidade Federal do Tocantins
Prof. Dr. Luiz Bertucci
Gurupi
2013
Aulas 9 e 10 – Introdução a Linguagem C: Vetores e Matrizes
um vetor (ou array ) corresponde a um conjunto de elementos
consecutivos, todos do mesmo tipo , que podem ser acessados
individualmente a partir de um único nome ;
a vantagem de se usar vetores é que evita-se declarar uma variável
para cada valor armazenado.
o processo de declaração de um vetor é similar a declaração de
uma variável comum;
tomando ainda como base o exemplo do slide anterior, para
declararmos um vetor de nome “pagamentos” de modo que ele
possa receber 5 valores inteiros, como mostrado na figura, teremos
que fazer o seguinte:
Tipo dos dados do vetor
(int, float, double, char)
Número máximo de
registros que o vetor
pode armazenar
Nome do vetor
cada posição de um vetor pode ser acessada pelo respectivo
índice ;
em linguagem C, os índices de um vetor sempre iniciam em 0.
Desta forma, os índices de um vetor com N elementos variam
sempre de 0 a (N-1).
int v[6];
Exercício de fixação 1
Escrever um programa que armazene dez números inteiros em um
vetor denominado a e multiplique todos os elementos desse vetor
por três, armazenando o resultado em um vetor denominado b.
Imprima os vetores a e b após a operação. (Exercício 16 da lista)
Exercício de fixação 1: possível resolução
#include <stdio.h>
#include <conio.h>
main(){
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int b[10];
/* atribuindo valores para o vetor b (cada posição do vetor a multiplicado por 3) */
for(int i = 0; i < 10; i++){
b[i] = a[i]*3;
}
printf("\n\n");
/* imprimindo vetor a */
for(int i = 0; i < 10; i++){
printf(" %i ", a[i]);
}
printf("\n\n");
/* imprimindo vetor b */
for(int i = 0; i < 10; i++){
printf(" %i ", b[i]);
}
getch();
}
Exercício de fixação 2
Escrever um programa que leia a altura de 10 indivíduos em um
vetor ( altura ). Em seguida, determine a maior destas alturas e
imprima a posição onde ela foi encontrada. Suponha a
impossibilidade de empate na entrada de dados. (Exercício 18 da
lista)
Exercício de fixação 2: possível resolução
#include <stdio.h>
#include <conio.h>
main(){
float altura[10];
/* obtendo os valores e alocando sequencialmente nas posções do vetor */
for(int i = 0; i < 10; i++){
printf("Digite o valor de sua altura: ");
scanf("%f" , &altura[i]);
}
printf("\n\n");
/* obtendo a maior altura */
float maior = altura[0]; // iniciando a variável maior com o primeiro valor do vetor altura
int indice; // armazena a posição do vetor com a maior altura
for(int i = 0; i < 10; i++){
if(maior < altura[i]){
maior = altura[i];
indice = i;
}
}
printf("\n\n");
// imprimindo o resultado
printf("A maior altura digitada foi %0.2f. Este valor foi a %i altura digitada e esta alocada na posicao de indice %i no
vetor altura", maior, indice+1, indice);
getch();
}
uma matriz nada mais é que um vetor de duas dimensões ;
o processo de declaração de uma matriz é similar a declaração de
um vetor de uma dimensão;
por exemplo, a declaração de uma matriz de três linhas por 3
colunas, seria:
Tipo dos dados da matriz
(int, float, double, char)
linhas
Nome da matriz
colunas
assim como nos vetores, cada posição da matriz pode ser acessada
pelos respectivos índices ;
relembrando: em linguagem C, os índices de um vetor sempre
iniciam em 0.
int M[3][3];
Exercício de fixação 3
Escrever um programa que leia duas matrizes ( a e b ) de 2 linhas x
2 colunas com números inteiros; em seguida, some as posições
relativas dessas duas matrizes, armazenando o resultado em uma
terceira matriz ( soma ). (Exercício 19 da lista)
Exercício de fixação 3: possível resolução
#include <stdio.h>
#include <conio.h>
main(){
int a[2][2];
int b[2][2];
int soma[2][2];
/* obtendo os valores e alocando sequencialmente nas posições da matriz a */
for(int i = 0; i < 2; i++){
for(int j = 0; j < 2; j++){
printf("Digite um valor para a matriz a: ");
scanf("%i" , &a[i][j]);
}
}
printf("\n\n");
/* obtendo os valores e alocando sequencialmente nas posições da matriz b */
for(int i = 0; i < 2; i++){
for(int j = 0; j < 2; j++){
printf("Digite um valor para a matriz b: ");
scanf("%i" , &b[i][j]);
}
}
printf("\n\n");
/* obtendo o vetor soma a partir das matrizes a e b */
for(int i = 0; i < 2; i++){
for(int j = 0; j < 2; j++){
soma[i][j] = a[i][j] + b[i][j];
}
}
printf("\n\n");
// imprimindo a matriz soma
for(int i = 0; i < 2; i++){
for(int j = 0; j < 2; j++){
printf(" soma[%i][%i] = %i \n", i,j,soma[i][j]);
}
}
printf("\n\n");
getch();
}
Exercício de fixação 4
Escrever um programa que leia uma matriz ( a ) de 4 linhas x 4
colunas com números inteiros; em seguida, multiplique os
elementos da diagonal principal por uma constante k (também
lida) e imprima a matriz resultante. (Exercício 20 da lista)
Exercício de fixação 4: possível resolução
#include <stdio.h>
#include <conio.h>
main(){
int matriz[4][4];
int k;
/* obtendo os valores e alocando sequencialmente nas posições da matriz */
for(int i = 0; i < 4; i++){
for(int j = 0; j < 4; j++){
printf("Digite um valor inteiro para a matriz: ");
scanf("%i" , &matriz[i][j]);
}
}
printf("\n\n");
/* lendo a constante k */
printf("Digite um valor para constante k: ");
scanf("%i" , &k);
printf("\n\n");
/* multiplicando os valores da diagonal principal pelo valor da constante k */
for(int i = 0; i < 4; i++){
for(int j = 0; j < 4; j++){
if(i == j){
matriz[i][j] = matriz[i][j]*k;
}
}
}
printf("\n\n");
// imprimindo a matriz
for(int i = 0; i < 4; i++){
for(int j = 0; j < 4; j++){
printf(" matriz[%i][%i] = %i \n", i,j,matriz[i][j]);
}
}
getch();
}