Baixe o app para aproveitar ainda mais
Prévia do material em texto
Competências da Aula • C6 - (N) - Identificar e aplicar estruturas homogêneas de armazenamento com duas ou mais dimensões em problemas algorítmicos. Vetor Bidimensional • Nas situações anteriores, cada estrutura do tipo vetor armazena os dados em uma única “fileira” (uma dimensão). • Há muitas situações, porém, em que a natureza dos dados nos indica que a sua forma de armazenamento possui mais de uma dimensão, e para isso podemos criar matrizes. Vetor Bidimensional • Em programação, uma matriz é um vetor que possui mais de uma dimensão, geralmente duas. • Sendo bidimensional, a variável atua como uma grade de linhas e colunas, onde a interseção entre uma linha e uma coluna armazena um valor. Vetor Bidimensional • Uma matriz também pode ser considerada como um conjunto de caixinhas, contendo dados de mesma natureza. Vetor Bidimensional • Abaixo segue a forma de declaração de uma matriz • Os colchetes indicam o intervalo que será utilizado para os índices (linha e coluna) de cada posição da matriz • Sintaxe: <var>: vetor[inicio..fim,inicio..fim] de <tipo>; Vetor Bidimensional • Exemplo: Suponha que se queira armazenar um conjunto de valores reais dispostos em 3 linhas e 4 colunas. matriz : vetor[1..3,1..4] de real; • A variável é uma só, no nosso caso declarada como matriz, mas é capaz de armazenar 12 valores reais diferentes. Vetor Bidimensional • Cada posição de uma matriz é referenciada pela seguinte sintaxe: <nome_matriz>[<linha>,<coluna>] Exemplo • Faça um algoritmo que o usuário informe os valores de uma matriz 3x3, multiplique a mesma por um valor informado pelo usuário e apresente a matriz resultante na tela. algoritmo exemplo_matriz; variaveis inteiro: matriz[3][3]; inteiro: linha, coluna, multiplicador; Inicio para (linha=0; linha<3; linha++) faca para(coluna=0; coluna<3; coluna++) faca escreva (“Entre com um valor para a posição”,linha,coluna “da matriz”); leia (matriz[linha][coluna]); fimpara fimpara escreva(“Entre com o multiplicador”); leia (multiplicador); para (linha=0; linha<3; linha++) faca para(coluna=0; coluna<3; coluna++) faca matriz[linha][coluna] matriz[linha][coluna] * multiplicador; fimpara fimpara .... .... escreval(“Matriz Final”); para (linha=0; linha<3; linha++) faca para(coluna=0; coluna<3; coluna++) faca escreva(matriz[linha][coluna], “-”); fimpara escreval(“”); fimpara fim. Exercício • Construa um algoritmo para gerar e exibir a matriz abaixo: 22191613 21181512 20171411 algoritmo gera_matriz; var matriz [3,4]de inteiro; linha, coluna, valor : inteiro; inicio valor 11; para(linha=1; linha<=3; linha++) faca para(coluna=1; coluna<=4; coluna++) faca matriz[linha,coluna] valor; valor valor + 3; fimpara valor valor -8 fimpara para(linha=1; linha<=3; linha++) faca para(coluna=1; coluna<=4; coluna++) faca escreval(matriz[linha,coluna]); fimpara fimpara fim. Exercício • Faça um algoritmo para ler uma matriz (10x10) e depois escreva a soma dos elementos da diagonal principal. algoritmo soma_diagonal; variaveis matriz : vetor[1..10,1..10] de real; linha, coluna : inteiro; soma : real; inicio soma 0; para(coluna=1; coluna<=10; coluna++)faca para(linha=1; linha<=10; linha++) faca ler matriz[linha,coluna]; se linha == coluna entao soma soma + matriz[linha,coluna]; fimse fimpara fimpara escreva(soma); fim Exercício • Construa um algoritmo para ler uma matriz (4x3) de inteiros e imprimir a soma dos elementos de uma linha fornecida pelo usuário. algoritmo soma_linha_matriz; variaveis matriz : vetor[1..4,1..3] de inteiros; linha, coluna, soma : inteiro; inicio soma 0; para(linha=1; linha<=4; linha++) faca para(coluna=1; coluna<=3; coluna++) faca leia(matriz[linha,coluna]); fimpara fimpara escreva (“Somar a linha :”); leia(linha); para(coluna=1; coluna<=3; coluna++) faca soma soma + matriz[linha,coluna]; fim-para; escrever soma; fim. Matriz • Um distribuidor de refrigerante vende seu produto em todo o país. Em cada trimestre do ano passado, ele vendeu uma certa quantidade de garrafas em cada região do Brasil (1 – Norte; 2 – Nordeste; 3 – Sul; 4 – Sudeste; 5 – Centro-Oeste). Podemos desenhar a representação destes dados assim (os números são exemplos) Matriz • Faça um algoritmo para ler as quantidades vendidas e escrever a quantidade total vendida no decorrer de 1 ano em todo o país. • Obtenha também o soma dos valores vendidos no primeiro semestre nas regiões Sul e Sudeste. 150 1150 900 1500 400 180 980 1100 2300 650 140 1000 950 2100 500 210 1600 1400 2600 840 1 - Norte 2 - Nordeste 3 - Sul 4 - Sudeste 5 – Centro-oeste 1° Trimestre 2° Trimestre 3° Trimestre 4° Trimestre Variaveis vendas : vetor[1..4, 1..5] de inteiro; i, j, total, Tot_S : inteiro; Inicio total0 para(i=1; i<=4, i++) faca para(j=1; j<=5; j++) faca escreva(‘Digite a quantidade do ‘, i, ‘trimestre e ‘, j, ‘regiao’); leia(vendas[i,j]); fimpara fimpara para(i=1; i<=4, i++) faca para(j=1; j<=5; j++) faca total <- total +vendas[i,j]; se ( (i=1 || i=2)&&(j=3 || j=4)) então Tot_STot_S+vendas[I,j]; fimse fimpara fimpara escreva(total); fim Exercícios • Faça um algoritmo para ler uma matriz 3x4 de números reais, e depois exibir o elemento do canto superior esquerdo e do canto inferior direito; • Ler uma matriz 5x5 e gerar outra em que cada elemento é o cubo do elemento respectivo na matriz original. Ao final, imprima o elemento do meio dessa matriz. • Faça um algoritmo para ler uma matriz 3x3 real e imprimir a soma da diagonal principal.
Compartilhar