Escolar Documentos
Profissional Documentos
Cultura Documentos
html#
Vetores e Matrizes
Prof. Marcelo Vasques de Oliveira
Descrição
Propósito
Preparação
Objetivos
Módulo 1
Módulo 2
Introdução
Muitas soluções algorítmicas requerem o armazenamento
temporário de dados em estruturas, a fim de manipulá-los
(processá-los) antes de serem persistidos em arquivos ou
bancos de dados.
Variáveis
Posições de memória acessadas pelo seu nome.
Armazenamento de dados
Variáveis, tipos simples e compostos
Durante a execução de um programa, armazenamos os dados
necessários ao processamento em variáveis que residem,
temporariamente, na memória do computador.
C
1 int main() {
2 int num,maior,ind;
3 maior = 0;
4 for (ind= 1; ind <=110; ind=ind+1) {
5 scanf ("%d",&num);
6 if (num > maior) {
7 maior=num;
8 }
9 }
10 printf ("O maior dos números lidos e: \n %d", maior
11 return 0;
12 }
1 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
Exemplo
Leitura → 10 56 78 90 12 91 23 42 90 58
Exibição → 58 90 42 23 91 12 90 78 56 10
Dados do tipo simples (int, float, double char etc.) são armazenados em
uma variável que ocupa uma posição de memória.
Aqui, nós nos valemos da lei da Física: “Dois corpos não podem ocupar
o mesmo lugar no espaço.” Logo, concluímos que existem diferenças
entre tipos de dados simples e estruturados. Observe:
Dados declarados
e criados no início
do programa, e
Estáticos
mantidos assim até
o final de sua
Forma de alocação
execução.
Dados criados
Dinâmicos durante a execução
do programa
Todos os dados
Homogênicos
são do mesmo tipo
Tipos de dados
Os dados da
estrutura podem
Heterogêneos
ser de tipos
diferentes.
Vetores
Conceito
O vetor é um tipo de dado estruturado ou composto, estático e
homogêneo, disponível na maioria das linguagens de programação,
incluindo a C.
Representação de um vetor.
Declaração do vetor
Como qualquer variável, o vetor precisa ser declarado na maioria das
linguagens de programação que assim o exigem, como no caso da C.
Você deve estar se perguntando:
Declaração do vetor.
2 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
Portugol
1 // Portugol Studio
2 inteiro numeros[10]
C
1 // Linguagem C
2 int numeros[10]
Portugol Studio
Linguagem C
int numeros[100];
float notas [20];
char vogais [5].
Portugol
1 // Portugol Studio
2 inteiro numeros[5] = {10,12,14,16,18}
C
1 // Linguagem C
2 int numeros[5] = {10,12,14,16,18};
Portugol
1 // Portugol Studio
2 inteiro vet[10]
3 1 vet [0] = 5
4 2 vet [1] = 6
5 3 vet [3] = 8
6 4 vet [4] = 12
7 5 vet [5] = 18
8 6 vet [6] = 22
9 7 vet [7] = 34
10 8 vet [8] = 78
11 9 vet [9] = 45
C
1 // Linguagem C
2 int vet[10];
3 1 vet [0] = 5;
4 2 vet [1] = 6;
5 3 vet [3] = 8;
6 4 vet [4] = 12;
7 5 vet [5] = 18;
8 6 vet [6] = 22;
9 7 vet [7] = 34;
10 8 vet [8] = 78;
11 9 vet [9] = 45;
Portugol
1 // Portugol Studio
2 escreva ("Posicao 1 do vetor:", vet[1])
C
1 // Linguagem C
2 printf("%d Posicao 1 do vetor:", vet[1]);
Portugol
1 // Portugol Studio
2 vet[4]=90
3 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
C
1 // Linguagem C
2 vet[4]=90
Portugol
1 // Portugol Studio
2 vet[2]=56
C
1 // Linguagem C
2 vet[2]=56
Portugol
1 // Portugol Studio
2 leia (vet[7])
C
1 // Linguagem C
2 scanf ("%d", &vet[7]);
Portugol
1 // Portugol Studio
2 leia (num)
3 vet [9] = num
C
1 // Linguagem C
2 scanf ("%d:", &num);
3 vet[9] = num;
Portugol
1 // Portugol Studio
2 escreva (vet[10])
3 vet[10] = 901
4 leia (vet[10])
C
1 // Linguagem C
2 printf("%d Posicao 10 do vetor:", vet[10]);
3 vet[10] = 901;
4 scanf ("%d", &vet[10]);
Cadeia de caracteres
Conceito e declaração
Muitas linguagens possuem uma cadeia de caracteres (string), mas a
4 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
Exemplo
Inicialização
Para inicializar uma cadeia de caracteres, basta:
C
1 #include <stdio.h>
2 int main() {
3 char cadeia[10];
4 cadeia[0]= "a";
5 cadeia[1]= "l";
6 cadeia[2]= "g";
7 cadeia[3]= "o";
8 cadeia[4]= "r";
9 cadeia[5]= "i";
10 cadeia[6]= "t";
11 cadeia[7]= "m";
12 cadeia[8]= "o";
13 cadeia[9]= "s";
14 }
C
1 #include <stdio.h>
2 int main() {
3 char cadeia[10] = {"a", "l", "g", "o", "r", "i",
4 }
Leitura
Podemos ler uma cadeia, caractere por caractere, como fazemos com
qualquer vetor, lendo elemento por elemento. Contudo, é mais simples
lermos a cadeia inteira, usando a formatação “%s”:
C
1 scanf("%s",cadeia)
C
1 for (ind=0;ind<5;ind++) {
2 scanf ("%c",&nome[ind]);
3 getch();
4 }
Exibição
Podemos usar %s para formatação de strings e a exibirmos direto,
conforme fizemos com scanf. Veja o exemplo:
C
1 printf ("%s",cadeia)
Javascript
1 for (ind=0;ind<5;ind++) {
2 printf ("%c" ,nome[ind]);
3 }
Portugol
1 // Portugol Studio
2 real vet[10]
C
1 // Linguagem C
2 double vet[10];
Exemplo 2
O comando declara um vetor para armazenar o sexo – masculino (M)
ou feminino (F) – de 50 alunos de uma turma ou, ainda, para representar
o nome de uma pessoa com até 49 caracteres:
Portugol
1 // Portugol Studio
5 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
C
1 // Linguagem C
2 char vet[50];
Exemplo 3
O comando declara um vetor para armazenar notas de 10 alunos de
uma turma e inicializa cada nota com 0 (zero):
Portugol
1 // Portugol Studio
2 real vet[10] = {0,0,0,0,0,0,0,0,0,0}
C
1 // Linguagem C
2 double vet[10] = {0,0,0,0,0,0,0,0,0,0};
Exemplo 4
Se fossem 100 alunos em vez de 10, seria inviável inicializar o vetor
com 100 zeros entre as chaves. Se fossem 500 alunos, mais inviável
ainda.
Portugol
1 // Portugol Studio
2 Para (posicao=0;posicao<100;posicao++) {
3 vet[posicao]=0
4 }
C
1 // Linguagem C
2 for (posicao=0;posicao<100;posicao++) {
3 vet[posicao]=0;
4 }
Exemplo 5
O comando declara um vetor para armazenar a quantidade de vezes
que cada vogal aparece em um texto e inicializar com 0 (zero) cada
quantidade. São 5 vogais. Então, precisamos de 5 posições no vetor. O
algoritmo deve simular o mapeamento da seguinte forma:
Portugol
1 // Portugol Studio
2 int vet[5]
C
1 // Linguagem C
2 int vet[5];
Exemplo 6
O trecho de código declara e lê as notas de 80 alunos de uma turma:
Portugol
1 // Portugol Studio
2 Para (posicao=0;posicao<80;posicao++)
3 {
4 leia (vet[posicao])
5 }
C
1 // Linguagem C
2 for (posicao=0;posicao<80;posicao++)
3 {
4 scanf ("%d",&vet[posicao]);
5 }
Exemplo 7
O trecho de código exibe no dispositivo de saída as notas dos 80 alunos
da turma:
Portugol
1 // Portugol Studio
2 Para (posicao=0;posicao<80;posicao++)
3 {
4 escreva (vet[posicao])
5 }
C
1 // Linguagem C
2 for (posicao=0;posicao<80;posicao++)
3 {
4 printf ("%d",&vet[posicao]);
5 }
Exemplo 8
O trecho de código calcula e mostra a média da turma (soma das notas
dos alunos dividida por 80, que é a quantidade de alunos):
6 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
Portugol
1 // Portugol Studio
2 soma=0
3 para (posicao=0;posicao<80;posicao++) {
4 soma=soma+vet[posicao]
5 }
6 escreva (“A media é :“, media/80)
C
1 // Linguagem C
2 soma=0;
3 for (posicao=0;posicao<80;posicao++) {
4 soma=soma+vet[posicao];
5 }
6 printf(“media = %.2f“, (soma/80));
Exemplo 9
O trecho de código lê uma cadeia de 8 caracteres e mostra o texto
invertido. Por exemplo, ao ler “programa”, o algoritmo deve mostrar
“amargorp”:
Portugol
1 // Portugol Studio
2 caracter nome[8]
3 inteiro ind
4 leia (“%s”, nome)
5 para (ind=8;ind>=0;ind--)
6 escreva (nome[ind])
C
1 // Linguagem C
2 char nome[8];
3 int ind;
4 scanf ("%s",nome);
5 for (ind=8;ind>=0;ind--) {
6 printf ("%c", nome[ind]);
Vamos praticar
Vamos por em prática o que aprendemos no decorrer desse conteúdo.
Sugerimos que você realize os seguintes procedimentos:
Desenvolvimento
Confirmação
Comparação
Vamos iniciar com uma prática que motivou o estudo das estruturas
homogêneas de dados.
Prática 1
Ao ler os dados, usamos o PARA (FOR), começando da posição 0 (zero)
e incrementando de 1 em 1, enquanto for menor que 100 (99), quando
acaba a repetição.
Para exibir os dados em ordem inversa, percorremos o vetor da posição
99 (último elemento) até a posição 0, decrementando de 1 em 1, e
mostramos cada elemento do vetor.
Preenchemos o vetor da posição 0 a 99 e, na sequência, mostramos
seus elementos da posição 99 até a posição 0 (zero). Assim,
mostramos os elementos na ordem inversa daquela que lemos.
Atividade 1
d
TUTORIAL
COPIAR
C
null
null
Portugol
1 // Portugol Studio
2 inteiro vet[100], posicao
3 para (posicao=0;posicao<100;posicao++)
4 {
5 leia (vet[posicao])
6 }
C
1 #include<stdio.h>
2
3 int main ()
4 {
5 int vet[100];
6 int i;
Prática 2
Atividade 2
d
TUTORIAL
COPIAR
7 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
null
null
Resolução
Neste vídeo, a prática 2 será resolvida.
C
1 #include <stdio.h>
2
3 int main()
4
5 {
6
7 float vet[20],soma=0,media; int posicao;
8
9 for (posicao=0;posicao<20;posicao++)
10
11 {
12
13 scanf ("%f",&vet[posicao]);
14
Prática 3
Atividade 3
d
TUTORIAL
COPIAR
C
null
null
Resolução
Neste vídeo, a prática 3 será resolvida.
C
1 #include <stdio.h>
2 int main() {
3 int vet [5] = {0,0,0,0,0},posicao;
4 char letra;
5 scanf ("%c",&letra);
6 while (letra != 'z') {
7 switch (letra) {
8 case 'a':
9
10 vet[0]++;
11 break;
12
13 case 'e':
14
Prática 4
Atividade 5
d
TUTORIAL
COPIAR
C
null
null
Resolução
Neste vídeo, a prática 4 será resolvida.
C
1 #include <stdio.h>
2 int main()
3 {
4 const int tamvet=50;
8 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
Prática 5
Atividade 6
d
TUTORIAL
COPIAR
C
null
null
Resolução
Neste vídeo, a prática 5 será resolvida.
C
1 #include <stdio.h>
2 int main() {
3 const int tamvet=50, tamlista=10;
4 int vet[tamvet],posicao,posvet,achou,numero;
5 printf ("\n Digite os dados do vetor \n");
6 for (posicao=0;posicao<tamvet;posicao++)
7 scanf ("%d",&vet[posicao]);
8 printf ("\n Digite numeros a procurar: \n"
9 for (posicao=1;posicao<=tamlista;posicao++) {
10 scanf ("%d",&numero);
11 // verifica se o numero está no vetor
12 posvet=0;
13 achou=0;
14 while (posvet<=tamvet-1 && achou==0) {
Prática 6
Identi�car
As estruturas de dados necessárias à solução do problema.
Escrever
O trecho em linguagem C para calcular, mostrando as médias de cada
prova, aluno e turma.
Resolução
Vetor prova 1
Vetor prova 2
Vetor prova 3
9 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
necessários:
C
Prova 1
7.00, 8.50, 9.35, 8.45 ... 9.00, 7.90, 9.60.
Prova 2
9.70, 9.20, 8.95, 9.00 ... 10.00, 6.40, 4.30.
Prova 3
10.00, 8.50, 7.50, 8.80 ... 9.20, 8.00, 9.00.
C
1 Soma1=0;
2 for (pos=0;pos<49;pos++) {
3 soma1=soma1+prova1[pos];
4 }
5 mediaprova1=soma/50;
6 printf ("a media da prova1 e: %f.02", mediaprova1
Aluno 1
7.00 9.70 10.00 → média = 8.90.
Aluno 2
8.50 9.20 8.50 → média = 8.73; e assim por diante.
C
1 for (pos=0;pos<50;pos++) {
2 medialuno=(prova1[pos] + prova2[pos] + prova3
3 }
4 printf ("a media do aluno e: %f.02", mediaaluno);
Média da turma
C
C
1 somaturma=0;
2 for (pos=0;pos<50;pos++)
3 {
4 medialuno = (prova1[pos] + prova2[pos] + prova3[pos
5 somaturma = somaturma + medialuno;
6 }
7 mediaturma = somaturma/50;
8 printf ("a media da turma e: %f.02",mediaturma);
10 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
Questão 1
soma=0;
for (ind=0;ind<=20;ind++)
A
{ soma=soma+VET[ind]; }
media=soma/20;
soma=0;
for (ind=0;ind<=20;ind++)
B
{ soma=VET[ind]; }
media=soma/20;
soma=0;
for (ind=0;ind=20)
C
{ soma=soma+VET[ind]; }
media=soma/20;
soma=0;
for (ind=0;ind<20;ind++)
D
{ soma=soma+VET[ind]; }
media=soma/20;
soma=0;
for (ind=0;ind>20;ind++)
E
{ soma=soma+VET[ind]; }
media=soma/20;
Questão 2
cont=0;
for (ind=0;ind<=14;ind++) {
A if (vogais[ind]=='a' || vogais[ind]=='e’)
cont=cont+1;
}
cont=0;
for (ind=0;ind<=15;ind++) {
B if (vogais[ind]=='a' && vogais[ind]=='e')
cont=cont+1;
}
cont=0;
for (ind=0;ind<=14;ind++) {
C if (vogais[ind]=='a' or vogais[ind]=='e’)
cont+1;
}
for (ind=0;ind<=14;ind++) {
if (vogais[ind]=='a' || vogais[ind]=='e')
D
cont+-=1;
}
for (ind=0;ind<=14;ind++)
{
E if (vogais[ind]=='a' and vogais[ind]=='e')
cont+-=1;
}
Matrizes
Comparação com o vetor
A matriz é uma estrutura de dados homogênea, tal qual o vetor. Por
isso, todos os seus elementos são do mesmo tipo. A diferença
fundamental da matriz para o vetor é a quantidade de índices que são
usados para acessar um elemento:
Matriz Vetor
C
Vamos observar como que ficam as cadeias dos três vetores a seguir:
11 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
Com isso, o aluno 1 tem suas notas na posição 0 (zero) de cada vetor, o
aluno 2, na posição 1, e assim por diante, até que, na posição de cada
vetor, temos as notas do último aluno.
Conceito de matriz
A matriz é uma estrutura de dados homogênea, na qual usamos dois
índices para acessar cada elemento.
Uma matriz é composta por linhas e colunas, tal qual uma planilha
Excel, que também tem cada elemento referenciado por uma coluna (A,
B, C, D, E) e uma linha (1 ... 10).
Declaração da matriz
Como qualquer variável, a matriz precisa ser declarada na maioria das
linguagens de programação que assim o exigem, como é o caso da
linguagem C. De forma geral, as matrizes são declaradas da seguinte
maneira em Portugol Studio e na linguagem C:
Representação da Mat_Num.
Representação da Mat_Num.
12 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
Inicialização da matriz.
Portugol
1 // Portugol Studio
2 inteiro números[100][200] → matriz de 100x200 elementos do tipo inteiro
3 real notas [20][30] → matriz de 20x30 elementos do tipo real
4 caractere vogais [5][10]→ matriz de 5x10 elementos do tipo caractere
C
1 // Linguagem C
2 int numeros[100][200];
3 float notas [20][30];
4 char vogais [5][10];
Portugol
1 // Portugol Studio
2 inteiro numeros[3][5] = {{10,12,14,16,18},{0,9,8,7,6,5},{11,12,13,14,15}
3 ou
4 inteiro numeros[3][5]
5 numeros = {{10,12,14,16,18},{0,9,8,7,6,5},{11,12,13,14,15}}
C
1 // Linguagem C
2 int numeros[3][5] = {{10,12,14,16,18},{0,9,8,6,5},{11
3 ou
4 int numeros[3][5];
5 numeros = {{10,12,14,16,18},{0,9,8,6,5},{11,12,13,14,
Portugol
1 / Portugol Studio
2 inteiro mat[3][5]
3 1 mat [0][0] = 1
4 2 mat [0][1] = 2
5 3 mat [0][2] = 3
6 4 mat [0][3] = 4
7 5 mat [0][4] = 5
8 6 mat [1][0] = 6
9 7 mat [1][1] = 7
10 8 mat [1][2] = 8
11 9 mat [1][3] = 9
12 10 mat [1][4] = 10
13 11 mat [2][0] = 11
14 12 mat [2][1] = 12
C
1 // Linguagem C
2 mat[3][5];
3 1 mat [0][0] = 1;
4 2 mat [0][1] = 2;
5 3 mat [0][2] = 3;
6 4 mat [0][3] = 4;
7 5 mat [0][4] = 5;
8 6 mat [1][0] = 6;
9 7 mat [1][1] = 7;
10 8 mat [1][2] = 8;
11 9 mat [1][3] = 9;
12 10 mat [1][4] = 10;
13 11 mat [2][0] = 11;
14 12 mat [2][1] = 12;
Portugol
1 // Portugol Studio
2 escreva (“Linha 2, coluna1 : “, mat[2][1])
C
1 // Linguagem C
2 printf(“%d Linha 2, coluna1:“, mat[2][1]);
Portugol
1 // Portugol Studio
2 mat[2][4]=90
C
1 // Linguagem C
2 Mat[2][4]=90;
13 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
Portugol
1 // Portugol Studio
2 leia (mat[2][0])
C
1 // Linguagem C
2 scanf ("%d",&mat[2][0]);
Portugol
1 // Portugol Studio
2 leia (num)
3 mat[1][2]=num
C
1 // Linguagem C
2 scanf ("%d",&num);
3 mat[1][2]=num;
Portugol
1 // Portugol Studio
2 escreva (mat[0][5])
3 mat[3][4]=901
4 leia (mat[5][5])
C
1 // Linguagem C
2 printf("%d linha 0, coluna 5 :",mat[0][5]);
3 mat[3][4]=901;
4 scanf ("%d",&mat[5][5]);
Portugol
1 // Portugol Studio
2 real mat[2][30]
3 ou
4 real mat[30][2]
C
1 // Linguagem C
2 double mat[2][30];
3 ou
4 double mat[30][2];
Exemplo 2
O comando declara uma matriz para armazenar o sexo – masculino (M)
ou feminino (F) – de 50 alunos de 3 turmas, como nos códigos a seguir
Portugol
1 // Portugol Studio
2 caracter mat[3][50]
3 ou
4 caracter mat[50][3]
C
1 // Linguagem C
2 char mat[3][50];
3 ou
4 char mat[50][3];
Exemplo 3
O comando declara uma matriz para armazenar 5 apostas de 10 alunos
de uma turma e inicializa cada aposta com 0 (zero), como nos códigos
a seguir:
Portugol
1 // Portugol Studio
2 real mat[5][10] = {{0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0},{0,0,0,
3 {0,0,0,0,0,0,0,0,0,0{0,0,0,0,0,0,0,0,0,0}}
4 ou
5 real mat[10][5] =
6 {{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},
C
14 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
1 // Linguagem C
2 int mat[5][10] = {{0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,
3 {0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0}};
4 ou
5 float mat[10][5] =
6 {{0 0 0 0 0} {0 0 0 0 0} {0 0 0 0 0} {0 0 0 0 0} {0
Exemplo 4
Se fossem 3 notas de 100 alunos, em vez de 10, seria inviável inicializar
a matriz com 3x100 zeros entre as chaves. Se fossem 500 alunos, mais
inviável ainda.
Portugol
1 para (linha=0;linha<3;linha++)
2 {
3 para (coluna=0;coluna<100;coluna++)
4 {
5 mat[linha,coluna]=0
6 }
C
1 for (linha=0;linha<3;linha++)
2 {
3 for (coluna=0;coluna<100;coluna++)
4 {
5 mat[linha][coluna]=0;
6 }
Exemplo 5
O trecho de código exibe no dispositivo de saída as 3 notas dos 100
alunos da turma, como nos códigos a seguir:
Portugol
1 // Portugol Studio
2 para (linha=0;linha<3;linha++) {
3 escreva ("dados da linha: ",linha)
4 para (coluna=0;coluna<100;coluna++) {
5 escreva (mat[linha,coluna])
6 }
C
1 // Linguagem C
2 for (linha=0;linha<3;linha++) {
3 printf("%d \n dados da linha= ",linha);<
4 for (coluna=0;coluna<100;coluna++) {
5 printf ("%d",mat[linha][coluna]);
6 }
Exemplo 6
O trecho de código calcula e mostra a média de cada turma (soma das
notas dos alunos dividida por 100, que é a quantidade de alunos), como
nos códigos a seguir:
Portugol
1 // Portugol Studio
2 soma=0
3 para (linha=0;posicao<3;linha++) {
4 para (coluna=0;coluna<100;coluna++) {
5 soma=soma+mat[linha,coluna]
6 }
C
1 // Linguagem C
2 soma=0;
3 for (linha=0;linha<3;linha++) {
4 for (coluna=0;coluna<100;coluna++) {
5 soma=soma+mat[linha][coluna];
6 }
Vamos praticar
Vamos pôr em prática o que aprendemos no decorrer deste conteúdo.
Sugerimos que você realize os seguintes procedimentos:
Prática 1
Atividade 6
d
TUTORIAL
COPIAR
C
null
null
Portugol
1 // Portugol Studio
2 inteiro mat[3][4], contpar=0,contimpar=0,linha,coluna
3 escreva ("Digite valor para os elementos da matriz");
4 para (linha=0;posicao<3;linha++)
5 para (coluna=0;coluna<4;coluna++) {
6 escreva ("elemento : ")
7 leia (mat[linha][coluna])
8 }
9 escreva (“********* Saida de Dados *********”)
10 para (linha=0;posicao<3;linha++)
11 para (coluna=0;coluna<4;coluna++) {
12 se (mat[linha][coluna] % 2)==0
13 contapar++
14 senao
C
1 #include <stdio.h>
2 int main() {
3 // Linguagem C
4 int mat[3][4],lin, col,contpar=0,contimpar=0;
5 printf ("\nDigite valor para os elementos da matriz
6 for ( lin=0; lin<3; lin++ )
7 for ( col=0; col<4; col++ )
8 {
9 printf ("\nElemento[%d][%d] = ", lin, col);
10 scanf ("%d", &mat[lin][col]);
11 }
12 printf("\n\n********* Saida de Dados ********* \n\n
13 for ( lin=0; lin<3; lin++ )
14 for ( col=0; col<4; col++ )
15 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
Código em linguagem C.
Execução do programa.
Prática 2
Atividade 7
d
TUTORIAL
COPIAR
C
null
null
Resolução
Neste vídeo, a prática 2 será resolvida.
C
1 #include <stdio.h>
2 // video 1 do modulo 2
3
4 int main() {
5
6 int mat[4][4],lin,col;
7
8 printf ("\nDigite valor para os elementos da matriz
9
10 for (lin=0;lin<4;lin++)
11
12 for (col=0;col<4;col++)
13
14 if (lin==col) {
Prática 3
Faça um algoritmo que leia uma matriz 4x4 de números inteiros. Gere
uma segunda matriz, na qual as linhas são as colunas da matriz 1, e as
colunas são as linhas da matriz 1.
Matriz 1 e 2 geradas.
Atividade 8
d
TUTORIAL
COPIAR
C
null
null
Resolução
Neste vídeo, a prática 3 será resolvida.
C
1 #include <stdio.h>
2
3 // video 2 do modulo 2
4
5 int main() {
6
7 int mato[4][4],matg[4][4],lin,col;
8 printf ("\n Digite a matriz original \n");
9
10 for (lin=0;lin<4;lin++)
11
12 for (col=0;col<4;col++) {
13 scanf ("%d",&mato[lin][col]);
14 matg[col][lin]=mato[lin][col];
Prática 4
Atividade 9
d
TUTORIAL
COPIAR
C
null
null
Resolução
16 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
C
1 #include <stdio.h>
2
3 // Video 3 do modulo 2 (solucao 2)
4
5 int main() {
6
7 int mat1[3][3],lin, col,maior=0,contigual=0;
8 printf("\n Digite valor para os elementos da matriz
9
10 for ( lin=0; lin<3; lin++ )
11 for ( col=0; col<3; col++ ) {
12 printf ("Elemento[%d][%d] = ",lin,col)
13 scanf ("%d", &mat1[lin][col]);
14 if (mat1[lin][col]>maior)
C
1 #include <stdio.h>
2 // video 3 do modulo 2
3 int main()
4 {
5 int mat[3][3],lin, col,maior=0,contigual=0;
6 printf ("\nDigite valor para os elementos da matriz
7 for ( lin=0; lin<3; lin++ )
8 for ( col=0; col<3; col++ )
9 {
10 printf ("Elemento[%d][%d] = ", lin, col);
11 scanf ("%d", &mat[lin][col]);
12 if (mat[lin][col]>maior)
13 {
14 maior=mat[lin][col];
Prática 5
Faça um programa que gere uma matriz 5x5, conforme esta sequência:
Matrix 5x5.
Atividade 10
d
TUTORIAL
COPIAR
C
null
null
Resolução
Neste vídeo, a prática 5 será resolvida.
C
1 #include <stdio.h>
2 // video 4 do modulo 2
3 int main()
4 {
5 int mat[5][5],lin, col;
6 for (lin=0; lin<5; lin++ )
7 {
8 for ( col=0; col<5; col++)
9 {
10 mat[lin][col]=1;
11 if (lin==col)
12 mat[lin][col]=0;
13 printf("%d",mat[lin][col]);
14 }
15 printf ("\n");
16 }
17 return 0;
18 }
Questão 1
17 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
maior=0;
for (lin=0;lin<30;lin++) {
for(col=0;col<10;col++) {
scanf (“%f “,&mat[lin][col];
A if (mat[lin][col]>maior)
maior= mat[lin][col];
}
printf (“%f maior da turma: “,maior)
}
maior=0;
for (lin=0;lin<10;lin++) {
for(col=0;col<30;col++) {
scanf (“%f “,&,mat[lin][col];
B if (mat[lin][col]>maior)
maior= mat[lin][col];
}
printf (“%f maior da turma: “,maior)
}
for (lin=0;lin<10;lin++) {
maior=10.00;
for(col=0;col<30;col++) {
scanf (“%f “,&mat[lin][col];
C if (mat[lin][col]>maior)
maior= mat[lin][col];
}
printf (“%f maior da turma: “,maior)
}
for (lin=0;lin<10;lin++) {
maior=0;
for(col=0;col<30;col++) {
scanf (“%f ”,&mat[lin][col];
D if (mat[lin][col]>maior)
maior= mat[lin][col];
}
printf (“%f maior da turma: “,maior)
}
for (lin=0;lin<10;lin++)
{ for(col=0;col<30;col++)
{ maior = 0;
scanf (“%f “,&,mat[lin][col];
E if (mat[lin][col]>maior)
maior= mat[lin][col];
}
printf (“%f maior da turma: “,maior)
}
Questão 2
for (ind=0;ind<3;ind++)
A
{ printf (“%f : “,mat[i][i]); }
for (ind=0;ind<=3;ind++)
B
{ printf (“%f : “,mat[i][i]); }
for (ind=1;ind<3;ind++)
C
{ printf (“%f : “,mat[i][i]); }
for (ind=1;ind<=3;ind++)
D
{ printf (“%f : “,mat[i][i]); }
for (ind=1;ind==3;ind++)
E
{ printf (“%f : “,mat[i][i]); }
Considerações �nais
As estruturas de dados são fundamentais para processarmos um
conjunto de dados em memória e posterior persistência, se for o caso.
Existem diversos modelos e implementações de estruturas de dados
nas linguagens de programação.
Podcast
Ouça este podcast sobre os principais assuntos abordados no tema
Vetores e Matrizes.
Referências
ANDRADE, M. C. Algoritmos. Rio de Janeiro: SESES, 2014.
18 of 19 09/02/2023 20:00
Vetores e Matrizes https://stecine.azureedge.net/repositorio/00212ti/00404/index.html#
Explore +
Pesquise e leia o seguinte artigo:
19 of 19 09/02/2023 20:00