SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
Página 
1 
Tipos Estruturados 
Tipos estruturados, são tipos definidos pelo usuário, em função de outros tipos já 
conhecidos. Os tipos conhecidos podem ser tipos básicos da linguagem ou outros 
tipos definidos anteriormente pelo usuário. 
Existem duas variantes de tipos estruturados: 
• Tipos homogêneos, onde todos os elementos são do mesmo tipo. 
• Tipos heterogêneos, onde cada elemento pode ser de um tipo diferente. 
Vetores 
Vetores (arrays em ingles) são tipos homogêneos, isto é; formados por um conjunto 
de elementos, onde todos os elementos do conjunto são de um mesmo tipo. 
Variáveis do tipo Vetor 
Varáveis vetores, ou simplesmente vetores, são conjuntos de variáveis de um 
mesmo tipo, onde cada variável pode armazenar uma informação diferente, mas 
todas compartilham o mesmo nome. 
Ex: lista de alunos João, Maria, Carlos, Paula, . . . 
Para identificar cada um dos elementos do vetor utiliza-se a posição, ou ordem, do 
elemento dentro do conjunto; 
Ex: 1º é o João, 2º é a Maria, 3º é o Carlos, 4º é a Paula, . . .
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
Página 
2 
A ordem, ou número de cada posição do vetor é chamado de índice, assim: 
João é índice 1, Maria é índice 2, Carlos é índice 3, . . . 
Podemos imaginar que na memória do computador o vetor tenha mais ou menos a 
seguinte forma: 
J o ã o M a r i a C a r l o s 
A declaração de um vetor para conter a lista de alunos, poderia ser da seguinte 
forma: 
caracter Alunos [20]; 
isto é; teremos um conjunto de vinte elementos do tipo caracter, onde cada 
elemento conterá o nome de um aluno. Desta forma a referência a um aluno da 
lista será realizada da seguinte forma: 
Alunos [ 1 ]  “João”; 
Alunos [ 2 ]  “Maria”; onde: 
| | | 
| | └ - - - - - -  representa o valor do elemento 
| └ -- - - - - - - - - - - - - - - - -  representa o índice no vetor 
└ - - - - - - - - - - - - - - - - - - - - - - - - -  representa o vetor, a lista de alunos 
Alunos
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
Página 
3 
Exemplo: A representação de uma relação de alunos e suas notas, pode ser: 
. . . . . 
caracter Alunos [20]; 
real Notas [20]; 
. . . . . 
Alunos [ 1 ]  “João”; Notas [ 1 ]  8,5; 
Alunos [ 2 ]  “Maria”; Notas [ 2 ]  7,0; 
Alunos [ 3 ]  “Carlos”; Notas [ 3 ]  6,0; 
. . . . . 
Note que o mesmo índice é utilizado para acessar o nome no aluno e 
sua nota, nos vetores Alunos e Notas respectivamente. 
Exemplo: Imagine que seja desejado calcular a média das notas dos alunos: 
inicio 
real Notas [20]; 
real Media_Notas; 
real Soma_Notas  0.0; 
para i de 1 enquanto i = 20 passo i  i + 1 
faça 
Soma_Notas  Soma_Notas + Notas [ i ]; 
Fimpara 
Media_Notas  Soma_Notas / 20; 
mostre Media_Notas; 
fim 
Observe que, para considerar as notas de todos os alunos no somatório das notas é 
necessário manipular todos os elementos do vetor Notas.
A variável i, utilizada como índice do vetor, deve assim assumir todos os valores possíveis 
para o índice do vetor. Sua utilização como variável de controle na estrutura para ... faça, 
faz com que k assuma todos os valores desejados, isto é; 
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
Página 
4 
i assumirá todos os valores desejados: 1, 2, 3, 4, 5, 6, .... , 18, 19 e 20. 
Desta forma as notas de todos os alunos, 20 variáveis, podem ser representadas através do 
vetor Notas e diferenciadas através do índice, isto é; de sua posição dentro do vetor. 
Note que o algoritmo acima não tem a preocupação de como os nomes dos alunos e suas 
notas são atribuídas aos vetores. Para mostrar a lista de alunos e suas notas podemos 
utilizar o algoritmo abaixo: 
inicio 
real Notas [20]; 
caracter Alunos [20]; 
. . . . . 
para i de 1 enquanto i = 20 passo i  i + 1 
faça 
mostrar ( Alunos [ i ], Notas [ i ] ); 
Fimpara 
. . . . . 
Fim 
O resultado da execução do algoritmo seria algo do tipo: 
João 8,5 
Maria 7,0 
Carlos 6,0
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
Página 
5 
Variáveis do tipo Matriz 
Matrizes são tipos especiais de vetores, vetores multi-dimensionais, onde os 
elementos podem ser acessados através de dimensões, 2 ou mais. 
A matriz mais comum é a de duas dimensões (linha e coluna), por se relacionar 
diretamente com a utilização de tabelas. Matrizes de 2 dimensões são mais comuns, 
mas podem ser necessárias, em algum momento, matrizes de 3 ou mais dimensões. 
Uma matriz de 2 dimensões estará sempre fazendo menção a linhas e colunas e 
será representada por seu nome e tamanho. Dessa forma, uma matriz Tabela [3,4] 
indica que tem 3 linhas e 4 colunas. 
Matriz Tabela Colunas - - - - - - - - - - - - - - - - - - - - - - - - 
↓ 
1 2 3 4 
Linhas 1 
- - - - - -  2 77 
- - - - - - 3 
A matriz acima pode ser declarada da seguinte forma: 
inicio 
int Tabela [ 3, 4 ]; // onde: 3 representa número de linhas 
. . . . // 4 representa número de colunas 
fim 
O acesso a celula marcada, elemento da linha 2 coluna 3, tem a seguinte forma: 
inicio 
. . . . 
Tabela [ 2, 3 ]  77; // linha 2, coluna 3 
. . . . 
fim
Desta forma podemos representar uma matriz, todos os seus elementos e todas 
suas referências posicionais, da seguinte forma: 
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
Página 
6 
A 
a1,1 a1,2 a1,3 
a2,1 a2,2 a2,3 
a3,1 a3,2 a3,3 
Um algoritmo para manipulação dos elementos da matriz poderia ter a forma: 
inicio 
int A [ 3, 3 ]; 
para i de 1 enquanto i = 3 passo i  i + 1 faça 
para j de 1 enquanto j = 3 passo j  j + 1 faça 
... use A [ i , j ] .... 
Fimpara 
Fimpara 
fim 
Note que o algoritmo acima possui duas estruturas repetítivas para ... faça, uma 
interna a outra. A primeira estrutura, com a variável de controle i, é utilizada como 
índice da linha da matriz, enquanto a segunda, com a variável de controle j, é 
utilizada índice da coluna da matriz. 
A dependência, ou aninhamento de estruturas repetitivas, significa que para todo 
valor de i, estrutura externa, o valor de j, estrutura interna, assume todos os 
valores possíveis, de 1 até 3. 
assim: 
Para i igual a 1, j assume os valores : 1, 2 e 3 
Para i igual a 2, j assume os valores : 1, 2 e 3 
Para i igual a 3, j assume os valores : 1, 2 e 3
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
Página 
7 
Exemplo: 
Supondo ser desejada uma matriz identidade, de dimensão 7 x 7, como mostrada: 
A 
1 0 0 ... 0 
0 1 0 ... 0 
0 0 1 ... 0 
... ... ... ... ... 
0 0 0 ... 1 
solução 
inicio 
int NroLinhas  7; 
int NroColunas  7; 
int A [ NroLinhas, NroColunas ]; 
para i de 1 enquanto i = NroLinhas passo i  i + 1 
faça 
para j de 1 enquanto j = NroColunas passo j  j + 1 
faça 
se ( i == j ) então 
A [ i , j ]  1; 
senão 
A [ i , j ]  0; 
fimse 
fimpara 
fimpara 
fim
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
Página 
8 
Declaração e inicialização de matrizes 
Eventualmente desejamos inicializar, ou atribuir valores iniciais a, uma matriz. 
Linguagens diferentes, possuem formas diferentes de declaração e inicialização de 
variáveis e matrizes, todavia podemos assumir alguns padrões em Portugol e 
facilmente adequá-los a qualquer linguagem de programação real. 
Por exemplo, a matriz identidade acima foi inicializada através de um algoritmo. Se 
desejado, a mesma poderia ser inicializada das seguintes formas: 
int A [ 5, 5 ]  { {1,0,0,0,0}, {0,1,0,0,0}, {0,0,1,0,0}, {0,0,0,1,0}, {0,0,0,0,1} }; 
ou 
int A [ 5, 5 ]; 
A[1,1]  1; A[1,2]  0; A[1,3]  0; A[1,4]  0; A[1,5]  0; 
A[2,1]  0; A[2,2]  1; A[2,3]  0; A[2,4]  0; A[2,5]  0; 
A[3,1]  0; A[3,2]  0; A[3,3]  1; A[3,4]  0; A[3,5]  0; 
A[4,1]  0; A[4,2]  0; A[4,3]  0; A[4,4]  1; A[4,5]  0; 
A[5,1]  0; A[5,2]  0; A[5,3]  0; A[5,4]  0; A[5,5]  1; 
Note que são formas limitadas de inicialização e somente factíveis para matrizes de 
dimensões reduzidas 
Outra forma é inicializar uma matriz com valores aleatórios. O algoritmo abaixo 
inicializa uma matrix 10 x 10 com valores aleatórios entre 0 e 999. 
inicio 
int A [ 10, 10 ]; 
para i de 1 enquanto i = 10 passo i  i + 1 faça 
para j de 1 enquanto j = 10 passo j  j + 1 faça 
A [ i , j ]  Random(1000); 
fimpara 
fimpara 
fim
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
Página 
9 
Exercícios propostos 
1. Faça um algoritmo que a partir de uma matriz M[6,6] e uma matriz N[6,6], 
calcule a matriz resultante do produto de M por N. 
2. Faça um algoritmo que leia uma valor A e multiplique por uma matriz M [6,6], 
colocando o resultado em um vetor V[36]. 
3. Gere uma matriz X[M,N] com valores aleatórios menores que 10 e elabore 
algoritmos para calcular a soma dos elementos de cada uma das área 
hachuriada das matrizes abaixo: 
4. A partir de uma matriz M [7,7], crie 2 vetores SL[7] e SC[7], que contenham 
respectivamente as somas das linhas e das colunas de M. 
5. A partir de uma matriz M[6,5], divida os 5 elementos de cada linha da matriz 
pelo maior elemento de cada uma das 6 linhas. Coloque o resultado em uma 
matriz S[6,5]. 
6. Escreva um algoritmo que a partir de uma matriz M[6,5], substitua todos os 
elementos negativos da matriz pelo seu módulo.
7. Escreva um algoritmo que a partir de uma matriz M[6,6], troque os elementos 
da primeira coluna com os elementos da segunda coluna, os da terceira com a 
quarta e os elementos da quinta coluna como os elementos da sexta coluna. 
8. Repita o exercício anterior, trocando os elementos das linhas, ao invés das 
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
Página 
10 
colunas. 
9. A partir de uma matriz M[5,5], determina qual o maior valor da matriz e sua 
posição na matriz. 
10. Execute o algoritmo abaixo, preenchendo a matriz M[2,6]. 
1 2 3 4 5 6 
- 7 5 3 - 4 4 0 
inicio 
int M [ 2, 6 ]; 
int fatorial; 
para i de 1 enquanto i = 6 passo i  i +1 faça 
se ( M [ 1, i ]  0 ) então 
fatorial  1; 
para j de 1 enquanto j = M [ 1, i ] passo j  j +1 faça 
fatorial  fatorial * j; 
fimpara 
M [ 2 , i ]  fatorial; 
senão 
M [ 2 , i ]  i * i; 
fimse 
M [ 2, i ]  M [ 2 , i ] - 10; 
fimpara 
fim
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
Página 
11 
11. Considerando-se uma matriz X, de dimensões N x N. 
X11, X12, X13, X14, ..., X1N 
X21, X22, X23, X24, ..., X2N 
X31, X32, X33, X34, ..., X3N 
X41, X42, X43, X44, ..., X4N 
. . . . . . . . . . . . ..., . . . 
XN1, XN2, XN3, XN4, ..., XNN 
Deseja-se utilizar da matriz X, os elementos enumerados abaixo e na ordem de mostrada: 
X12, X13, X14, ..., X1N, X23, X24, ..., X2N, X34, ..., X3N, . . . . , XN-1N 
o seguinte algoritmo pode ser utilizado: 
para i de _1 enquanto _i N _ incremento _ ii+1 faça 
para j de _i+1 _ enquanto _j = N _ passo _jJ+1 faça 
uso de X [ i , j ] 
fimpara 
fimpara 
Sustitua os itálicos do algoritmo acima para as sequências abaixo: 
1. X2N, X3N-1, X3N, X4N-2, X4N-1, X4N, ...., XN2, XN3, XN4, ..., XNN 
2. X21, X31, X32, X41, X32, X43, ...., XN1, XN2, XN3, ..., XNN-1 
3. XN1, XN-11, XN2, XN-21, XN-12, XN3, ...., X11, X22, X33, ..., XNN 
4. X11, X12, X21, X13, X22, X31, ...., X1N, X2N-1, X3N-2, ..., XN1 
5. X22, X23, ..., X2N-1, X32, X33, ..., X3N-1, ...., XN-12, XN-13, ..., XN-1N-1 
12. Uma matriz quadrada NxN, pode ser dividida em 4 matrizes quadradas 
menores com N-1 linhas e colunas. Escreva um algoritmo para calcular a 
matriz soma de tamanho 2x2, cujos elementos representam a soma dos 
elementos de cada uma das matrizes N-1. 
Soma [ i ] [ j ] = Somatório dos elementos de uma das matrizes N-1

Mais conteúdo relacionado

Mais procurados

www.AulasDeMatematicanoRJ.Com.Br - Matemática - Matrizes
 www.AulasDeMatematicanoRJ.Com.Br - Matemática -  Matrizes www.AulasDeMatematicanoRJ.Com.Br - Matemática -  Matrizes
www.AulasDeMatematicanoRJ.Com.Br - Matemática - MatrizesClarice Leclaire
 
Apostila matrizes 2º edição
Apostila matrizes   2º ediçãoApostila matrizes   2º edição
Apostila matrizes 2º ediçãoday ....
 
Implementação currículo- Módulo IV-Matrizes/Determinantes/Nºs Complexos
Implementação currículo- Módulo IV-Matrizes/Determinantes/Nºs ComplexosImplementação currículo- Módulo IV-Matrizes/Determinantes/Nºs Complexos
Implementação currículo- Módulo IV-Matrizes/Determinantes/Nºs Complexosinechidias
 
Módulo 4 - Planilhas Eletrônicas
Módulo 4 - Planilhas EletrônicasMódulo 4 - Planilhas Eletrônicas
Módulo 4 - Planilhas EletrônicasPaulo Guimarães
 
www.AulasEnsinoMedio.com.br - Matemática - Matrizes
www.AulasEnsinoMedio.com.br - Matemática -  Matrizeswww.AulasEnsinoMedio.com.br - Matemática -  Matrizes
www.AulasEnsinoMedio.com.br - Matemática - MatrizesAulasEnsinoMedio
 
www.AulasDeMatematicaApoio.com.br - Matemática - Matrizes
 www.AulasDeMatematicaApoio.com.br  - Matemática - Matrizes www.AulasDeMatematicaApoio.com.br  - Matemática - Matrizes
www.AulasDeMatematicaApoio.com.br - Matemática - MatrizesBeatriz Góes
 

Mais procurados (13)

www.AulasDeMatematicanoRJ.Com.Br - Matemática - Matrizes
 www.AulasDeMatematicanoRJ.Com.Br - Matemática -  Matrizes www.AulasDeMatematicanoRJ.Com.Br - Matemática -  Matrizes
www.AulasDeMatematicanoRJ.Com.Br - Matemática - Matrizes
 
Cap09
Cap09Cap09
Cap09
 
Aula 5 aed - matrizes
Aula 5   aed - matrizesAula 5   aed - matrizes
Aula 5 aed - matrizes
 
Apostila matrizes 2º edição
Apostila matrizes   2º ediçãoApostila matrizes   2º edição
Apostila matrizes 2º edição
 
Implementação currículo- Módulo IV-Matrizes/Determinantes/Nºs Complexos
Implementação currículo- Módulo IV-Matrizes/Determinantes/Nºs ComplexosImplementação currículo- Módulo IV-Matrizes/Determinantes/Nºs Complexos
Implementação currículo- Módulo IV-Matrizes/Determinantes/Nºs Complexos
 
Matrizes
MatrizesMatrizes
Matrizes
 
Apostila álgebra linear
Apostila   álgebra linearApostila   álgebra linear
Apostila álgebra linear
 
Módulo 4 - Planilhas Eletrônicas
Módulo 4 - Planilhas EletrônicasMódulo 4 - Planilhas Eletrônicas
Módulo 4 - Planilhas Eletrônicas
 
Unidade7 1
Unidade7 1Unidade7 1
Unidade7 1
 
Matriz
MatrizMatriz
Matriz
 
Algoritmos - Matrizes
Algoritmos - MatrizesAlgoritmos - Matrizes
Algoritmos - Matrizes
 
www.AulasEnsinoMedio.com.br - Matemática - Matrizes
www.AulasEnsinoMedio.com.br - Matemática -  Matrizeswww.AulasEnsinoMedio.com.br - Matemática -  Matrizes
www.AulasEnsinoMedio.com.br - Matemática - Matrizes
 
www.AulasDeMatematicaApoio.com.br - Matemática - Matrizes
 www.AulasDeMatematicaApoio.com.br  - Matemática - Matrizes www.AulasDeMatematicaApoio.com.br  - Matemática - Matrizes
www.AulasDeMatematicaApoio.com.br - Matemática - Matrizes
 

Destaque

Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosPatrisg9
 
Taller de barras
Taller de barrasTaller de barras
Taller de barrasNataliamr
 
Pekka Louhiala Eutanasia ja etiikka 5.6.2015
Pekka Louhiala Eutanasia ja etiikka 5.6.2015Pekka Louhiala Eutanasia ja etiikka 5.6.2015
Pekka Louhiala Eutanasia ja etiikka 5.6.2015laakariliitto
 
Juan David GóMez GarcíA
Juan David GóMez GarcíAJuan David GóMez GarcíA
Juan David GóMez GarcíAguest7c27b6
 
Estructura de una página web 2
Estructura de una página web 2Estructura de una página web 2
Estructura de una página web 2Brayan Barón
 
Guia4 121206202507-phpapp01
Guia4 121206202507-phpapp01Guia4 121206202507-phpapp01
Guia4 121206202507-phpapp01dark133
 
Fofinhos & fofinhas nossos amigos animais
Fofinhos & fofinhas   nossos amigos animaisFofinhos & fofinhas   nossos amigos animais
Fofinhos & fofinhas nossos amigos animaispragente miuda
 
Создание национальной системы реабилитации наркозависимых
Создание национальной системы реабилитации наркозависимыхСоздание национальной системы реабилитации наркозависимых
Создание национальной системы реабилитации наркозависимыхOmsk State Univ
 
Melitta bentz
Melitta bentzMelitta bentz
Melitta bentzswan1992
 
Golf r32 yassin acabado
Golf r32 yassin acabadoGolf r32 yassin acabado
Golf r32 yassin acabadoyessin
 

Destaque (20)

Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Info satelites
Info satelitesInfo satelites
Info satelites
 
Weather цаг агаар
Weather  цаг агаарWeather  цаг агаар
Weather цаг агаар
 
estilo de vida
estilo de vidaestilo de vida
estilo de vida
 
Taller de barras
Taller de barrasTaller de barras
Taller de barras
 
Pekka Louhiala Eutanasia ja etiikka 5.6.2015
Pekka Louhiala Eutanasia ja etiikka 5.6.2015Pekka Louhiala Eutanasia ja etiikka 5.6.2015
Pekka Louhiala Eutanasia ja etiikka 5.6.2015
 
Deportes urbanos
Deportes urbanosDeportes urbanos
Deportes urbanos
 
Juan David GóMez GarcíA
Juan David GóMez GarcíAJuan David GóMez GarcíA
Juan David GóMez GarcíA
 
53conduccion
53conduccion53conduccion
53conduccion
 
Estructura de una página web 2
Estructura de una página web 2Estructura de una página web 2
Estructura de una página web 2
 
Guia4 121206202507-phpapp01
Guia4 121206202507-phpapp01Guia4 121206202507-phpapp01
Guia4 121206202507-phpapp01
 
Test
TestTest
Test
 
O juízo final
O juízo finalO juízo final
O juízo final
 
Fofinhos & fofinhas nossos amigos animais
Fofinhos & fofinhas   nossos amigos animaisFofinhos & fofinhas   nossos amigos animais
Fofinhos & fofinhas nossos amigos animais
 
Pop art
Pop artPop art
Pop art
 
Создание национальной системы реабилитации наркозависимых
Создание национальной системы реабилитации наркозависимыхСоздание национальной системы реабилитации наркозависимых
Создание национальной системы реабилитации наркозависимых
 
Melitta bentz
Melitta bentzMelitta bentz
Melitta bentz
 
Golf r32 yassin acabado
Golf r32 yassin acabadoGolf r32 yassin acabado
Golf r32 yassin acabado
 
Imagenes digitales
Imagenes digitalesImagenes digitales
Imagenes digitales
 
Yenny3
Yenny3Yenny3
Yenny3
 

Semelhante a Introdução à programação de computadores com vetores e matrizes

Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Alg aula 07 - matrizes tp1
Alg   aula 07 - matrizes tp1Alg   aula 07 - matrizes tp1
Alg aula 07 - matrizes tp1Thalles Anderson
 
Linguagem c wellington telles - aula 06
Linguagem c   wellington telles - aula 06Linguagem c   wellington telles - aula 06
Linguagem c wellington telles - aula 06profwtelles
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosMauro Pereira
 
Conceitos básicos de Matrizes em C++
Conceitos básicos de Matrizes em C++Conceitos básicos de Matrizes em C++
Conceitos básicos de Matrizes em C++profjr
 
Aula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem CAula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem Cprofjr
 
Aula 8 - Vetores e Matrizes.pptx
Aula 8 - Vetores e Matrizes.pptxAula 8 - Vetores e Matrizes.pptx
Aula 8 - Vetores e Matrizes.pptxOsvano Silva
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaodiogoa21
 
Vetores, Matrizes e Strings em C Parte 2
Vetores, Matrizes e Strings em C Parte 2Vetores, Matrizes e Strings em C Parte 2
Vetores, Matrizes e Strings em C Parte 2Elaine Cecília Gatto
 
Alg04 - Vetores e Matrizes.pdf
Alg04 - Vetores e Matrizes.pdfAlg04 - Vetores e Matrizes.pdf
Alg04 - Vetores e Matrizes.pdfSilvano Oliveira
 
Vetores e Matrizes em C.
Vetores e Matrizes em C.Vetores e Matrizes em C.
Vetores e Matrizes em C.SchoolByte
 
Atividade dirigida unidade VIII
Atividade dirigida unidade VIIIAtividade dirigida unidade VIII
Atividade dirigida unidade VIIIMery Salgueiro
 

Semelhante a Introdução à programação de computadores com vetores e matrizes (20)

Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Vetores e Matrizes.pdf
Vetores e Matrizes.pdfVetores e Matrizes.pdf
Vetores e Matrizes.pdf
 
Alg aula 07 - matrizes tp1
Alg   aula 07 - matrizes tp1Alg   aula 07 - matrizes tp1
Alg aula 07 - matrizes tp1
 
Linguagem c wellington telles - aula 06
Linguagem c   wellington telles - aula 06Linguagem c   wellington telles - aula 06
Linguagem c wellington telles - aula 06
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 
Conceitos básicos de Matrizes em C++
Conceitos básicos de Matrizes em C++Conceitos básicos de Matrizes em C++
Conceitos básicos de Matrizes em C++
 
Aula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem CAula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem C
 
Ap vetores
Ap vetoresAp vetores
Ap vetores
 
Aula 8 - Vetores e Matrizes.pptx
Aula 8 - Vetores e Matrizes.pptxAula 8 - Vetores e Matrizes.pptx
Aula 8 - Vetores e Matrizes.pptx
 
Cap09
Cap09Cap09
Cap09
 
Cap09
Cap09Cap09
Cap09
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacao
 
Vetores, Matrizes e Strings em C Parte 2
Vetores, Matrizes e Strings em C Parte 2Vetores, Matrizes e Strings em C Parte 2
Vetores, Matrizes e Strings em C Parte 2
 
Alg04 - Vetores e Matrizes.pdf
Alg04 - Vetores e Matrizes.pdfAlg04 - Vetores e Matrizes.pdf
Alg04 - Vetores e Matrizes.pdf
 
Alg aula 06 - vetores tp1
Alg   aula 06 - vetores tp1Alg   aula 06 - vetores tp1
Alg aula 06 - vetores tp1
 
Vetores e Matrizes em C.
Vetores e Matrizes em C.Vetores e Matrizes em C.
Vetores e Matrizes em C.
 
Matrizes em c#
Matrizes em c#Matrizes em c#
Matrizes em c#
 
Atividade dirigida unidade 8
Atividade dirigida   unidade  8Atividade dirigida   unidade  8
Atividade dirigida unidade 8
 
Atividade dirigida unidade VIII
Atividade dirigida unidade VIIIAtividade dirigida unidade VIII
Atividade dirigida unidade VIII
 
Apostila vol1 matlab
Apostila vol1 matlabApostila vol1 matlab
Apostila vol1 matlab
 

Introdução à programação de computadores com vetores e matrizes

  • 1. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 1 Tipos Estruturados Tipos estruturados, são tipos definidos pelo usuário, em função de outros tipos já conhecidos. Os tipos conhecidos podem ser tipos básicos da linguagem ou outros tipos definidos anteriormente pelo usuário. Existem duas variantes de tipos estruturados: • Tipos homogêneos, onde todos os elementos são do mesmo tipo. • Tipos heterogêneos, onde cada elemento pode ser de um tipo diferente. Vetores Vetores (arrays em ingles) são tipos homogêneos, isto é; formados por um conjunto de elementos, onde todos os elementos do conjunto são de um mesmo tipo. Variáveis do tipo Vetor Varáveis vetores, ou simplesmente vetores, são conjuntos de variáveis de um mesmo tipo, onde cada variável pode armazenar uma informação diferente, mas todas compartilham o mesmo nome. Ex: lista de alunos João, Maria, Carlos, Paula, . . . Para identificar cada um dos elementos do vetor utiliza-se a posição, ou ordem, do elemento dentro do conjunto; Ex: 1º é o João, 2º é a Maria, 3º é o Carlos, 4º é a Paula, . . .
  • 2. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 2 A ordem, ou número de cada posição do vetor é chamado de índice, assim: João é índice 1, Maria é índice 2, Carlos é índice 3, . . . Podemos imaginar que na memória do computador o vetor tenha mais ou menos a seguinte forma: J o ã o M a r i a C a r l o s A declaração de um vetor para conter a lista de alunos, poderia ser da seguinte forma: caracter Alunos [20]; isto é; teremos um conjunto de vinte elementos do tipo caracter, onde cada elemento conterá o nome de um aluno. Desta forma a referência a um aluno da lista será realizada da seguinte forma: Alunos [ 1 ] “João”; Alunos [ 2 ] “Maria”; onde: | | | | | └ - - - - - - representa o valor do elemento | └ -- - - - - - - - - - - - - - - - - representa o índice no vetor └ - - - - - - - - - - - - - - - - - - - - - - - - - representa o vetor, a lista de alunos Alunos
  • 3. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 3 Exemplo: A representação de uma relação de alunos e suas notas, pode ser: . . . . . caracter Alunos [20]; real Notas [20]; . . . . . Alunos [ 1 ] “João”; Notas [ 1 ] 8,5; Alunos [ 2 ] “Maria”; Notas [ 2 ] 7,0; Alunos [ 3 ] “Carlos”; Notas [ 3 ] 6,0; . . . . . Note que o mesmo índice é utilizado para acessar o nome no aluno e sua nota, nos vetores Alunos e Notas respectivamente. Exemplo: Imagine que seja desejado calcular a média das notas dos alunos: inicio real Notas [20]; real Media_Notas; real Soma_Notas 0.0; para i de 1 enquanto i = 20 passo i i + 1 faça Soma_Notas Soma_Notas + Notas [ i ]; Fimpara Media_Notas Soma_Notas / 20; mostre Media_Notas; fim Observe que, para considerar as notas de todos os alunos no somatório das notas é necessário manipular todos os elementos do vetor Notas.
  • 4. A variável i, utilizada como índice do vetor, deve assim assumir todos os valores possíveis para o índice do vetor. Sua utilização como variável de controle na estrutura para ... faça, faz com que k assuma todos os valores desejados, isto é; INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 4 i assumirá todos os valores desejados: 1, 2, 3, 4, 5, 6, .... , 18, 19 e 20. Desta forma as notas de todos os alunos, 20 variáveis, podem ser representadas através do vetor Notas e diferenciadas através do índice, isto é; de sua posição dentro do vetor. Note que o algoritmo acima não tem a preocupação de como os nomes dos alunos e suas notas são atribuídas aos vetores. Para mostrar a lista de alunos e suas notas podemos utilizar o algoritmo abaixo: inicio real Notas [20]; caracter Alunos [20]; . . . . . para i de 1 enquanto i = 20 passo i i + 1 faça mostrar ( Alunos [ i ], Notas [ i ] ); Fimpara . . . . . Fim O resultado da execução do algoritmo seria algo do tipo: João 8,5 Maria 7,0 Carlos 6,0
  • 5. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 5 Variáveis do tipo Matriz Matrizes são tipos especiais de vetores, vetores multi-dimensionais, onde os elementos podem ser acessados através de dimensões, 2 ou mais. A matriz mais comum é a de duas dimensões (linha e coluna), por se relacionar diretamente com a utilização de tabelas. Matrizes de 2 dimensões são mais comuns, mas podem ser necessárias, em algum momento, matrizes de 3 ou mais dimensões. Uma matriz de 2 dimensões estará sempre fazendo menção a linhas e colunas e será representada por seu nome e tamanho. Dessa forma, uma matriz Tabela [3,4] indica que tem 3 linhas e 4 colunas. Matriz Tabela Colunas - - - - - - - - - - - - - - - - - - - - - - - - ↓ 1 2 3 4 Linhas 1 - - - - - - 2 77 - - - - - - 3 A matriz acima pode ser declarada da seguinte forma: inicio int Tabela [ 3, 4 ]; // onde: 3 representa número de linhas . . . . // 4 representa número de colunas fim O acesso a celula marcada, elemento da linha 2 coluna 3, tem a seguinte forma: inicio . . . . Tabela [ 2, 3 ] 77; // linha 2, coluna 3 . . . . fim
  • 6. Desta forma podemos representar uma matriz, todos os seus elementos e todas suas referências posicionais, da seguinte forma: INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 6 A a1,1 a1,2 a1,3 a2,1 a2,2 a2,3 a3,1 a3,2 a3,3 Um algoritmo para manipulação dos elementos da matriz poderia ter a forma: inicio int A [ 3, 3 ]; para i de 1 enquanto i = 3 passo i i + 1 faça para j de 1 enquanto j = 3 passo j j + 1 faça ... use A [ i , j ] .... Fimpara Fimpara fim Note que o algoritmo acima possui duas estruturas repetítivas para ... faça, uma interna a outra. A primeira estrutura, com a variável de controle i, é utilizada como índice da linha da matriz, enquanto a segunda, com a variável de controle j, é utilizada índice da coluna da matriz. A dependência, ou aninhamento de estruturas repetitivas, significa que para todo valor de i, estrutura externa, o valor de j, estrutura interna, assume todos os valores possíveis, de 1 até 3. assim: Para i igual a 1, j assume os valores : 1, 2 e 3 Para i igual a 2, j assume os valores : 1, 2 e 3 Para i igual a 3, j assume os valores : 1, 2 e 3
  • 7. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 7 Exemplo: Supondo ser desejada uma matriz identidade, de dimensão 7 x 7, como mostrada: A 1 0 0 ... 0 0 1 0 ... 0 0 0 1 ... 0 ... ... ... ... ... 0 0 0 ... 1 solução inicio int NroLinhas 7; int NroColunas 7; int A [ NroLinhas, NroColunas ]; para i de 1 enquanto i = NroLinhas passo i i + 1 faça para j de 1 enquanto j = NroColunas passo j j + 1 faça se ( i == j ) então A [ i , j ] 1; senão A [ i , j ] 0; fimse fimpara fimpara fim
  • 8. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 8 Declaração e inicialização de matrizes Eventualmente desejamos inicializar, ou atribuir valores iniciais a, uma matriz. Linguagens diferentes, possuem formas diferentes de declaração e inicialização de variáveis e matrizes, todavia podemos assumir alguns padrões em Portugol e facilmente adequá-los a qualquer linguagem de programação real. Por exemplo, a matriz identidade acima foi inicializada através de um algoritmo. Se desejado, a mesma poderia ser inicializada das seguintes formas: int A [ 5, 5 ] { {1,0,0,0,0}, {0,1,0,0,0}, {0,0,1,0,0}, {0,0,0,1,0}, {0,0,0,0,1} }; ou int A [ 5, 5 ]; A[1,1] 1; A[1,2] 0; A[1,3] 0; A[1,4] 0; A[1,5] 0; A[2,1] 0; A[2,2] 1; A[2,3] 0; A[2,4] 0; A[2,5] 0; A[3,1] 0; A[3,2] 0; A[3,3] 1; A[3,4] 0; A[3,5] 0; A[4,1] 0; A[4,2] 0; A[4,3] 0; A[4,4] 1; A[4,5] 0; A[5,1] 0; A[5,2] 0; A[5,3] 0; A[5,4] 0; A[5,5] 1; Note que são formas limitadas de inicialização e somente factíveis para matrizes de dimensões reduzidas Outra forma é inicializar uma matriz com valores aleatórios. O algoritmo abaixo inicializa uma matrix 10 x 10 com valores aleatórios entre 0 e 999. inicio int A [ 10, 10 ]; para i de 1 enquanto i = 10 passo i i + 1 faça para j de 1 enquanto j = 10 passo j j + 1 faça A [ i , j ] Random(1000); fimpara fimpara fim
  • 9. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 9 Exercícios propostos 1. Faça um algoritmo que a partir de uma matriz M[6,6] e uma matriz N[6,6], calcule a matriz resultante do produto de M por N. 2. Faça um algoritmo que leia uma valor A e multiplique por uma matriz M [6,6], colocando o resultado em um vetor V[36]. 3. Gere uma matriz X[M,N] com valores aleatórios menores que 10 e elabore algoritmos para calcular a soma dos elementos de cada uma das área hachuriada das matrizes abaixo: 4. A partir de uma matriz M [7,7], crie 2 vetores SL[7] e SC[7], que contenham respectivamente as somas das linhas e das colunas de M. 5. A partir de uma matriz M[6,5], divida os 5 elementos de cada linha da matriz pelo maior elemento de cada uma das 6 linhas. Coloque o resultado em uma matriz S[6,5]. 6. Escreva um algoritmo que a partir de uma matriz M[6,5], substitua todos os elementos negativos da matriz pelo seu módulo.
  • 10. 7. Escreva um algoritmo que a partir de uma matriz M[6,6], troque os elementos da primeira coluna com os elementos da segunda coluna, os da terceira com a quarta e os elementos da quinta coluna como os elementos da sexta coluna. 8. Repita o exercício anterior, trocando os elementos das linhas, ao invés das INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 10 colunas. 9. A partir de uma matriz M[5,5], determina qual o maior valor da matriz e sua posição na matriz. 10. Execute o algoritmo abaixo, preenchendo a matriz M[2,6]. 1 2 3 4 5 6 - 7 5 3 - 4 4 0 inicio int M [ 2, 6 ]; int fatorial; para i de 1 enquanto i = 6 passo i i +1 faça se ( M [ 1, i ] 0 ) então fatorial 1; para j de 1 enquanto j = M [ 1, i ] passo j j +1 faça fatorial fatorial * j; fimpara M [ 2 , i ] fatorial; senão M [ 2 , i ] i * i; fimse M [ 2, i ] M [ 2 , i ] - 10; fimpara fim
  • 11. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 11 11. Considerando-se uma matriz X, de dimensões N x N. X11, X12, X13, X14, ..., X1N X21, X22, X23, X24, ..., X2N X31, X32, X33, X34, ..., X3N X41, X42, X43, X44, ..., X4N . . . . . . . . . . . . ..., . . . XN1, XN2, XN3, XN4, ..., XNN Deseja-se utilizar da matriz X, os elementos enumerados abaixo e na ordem de mostrada: X12, X13, X14, ..., X1N, X23, X24, ..., X2N, X34, ..., X3N, . . . . , XN-1N o seguinte algoritmo pode ser utilizado: para i de _1 enquanto _i N _ incremento _ ii+1 faça para j de _i+1 _ enquanto _j = N _ passo _jJ+1 faça uso de X [ i , j ] fimpara fimpara Sustitua os itálicos do algoritmo acima para as sequências abaixo: 1. X2N, X3N-1, X3N, X4N-2, X4N-1, X4N, ...., XN2, XN3, XN4, ..., XNN 2. X21, X31, X32, X41, X32, X43, ...., XN1, XN2, XN3, ..., XNN-1 3. XN1, XN-11, XN2, XN-21, XN-12, XN3, ...., X11, X22, X33, ..., XNN 4. X11, X12, X21, X13, X22, X31, ...., X1N, X2N-1, X3N-2, ..., XN1 5. X22, X23, ..., X2N-1, X32, X33, ..., X3N-1, ...., XN-12, XN-13, ..., XN-1N-1 12. Uma matriz quadrada NxN, pode ser dividida em 4 matrizes quadradas menores com N-1 linhas e colunas. Escreva um algoritmo para calcular a matriz soma de tamanho 2x2, cujos elementos representam a soma dos elementos de cada uma das matrizes N-1. Soma [ i ] [ j ] = Somatório dos elementos de uma das matrizes N-1