Você está na página 1de 9

Curso Tcnico em Informtica

Tabelas em Memria
Vamos agora estudar uma tcnica de programao que permitir trabalhar com o agrupamento de vrias informaes dentro de uma mesma varivel. Vale salientar que este agrupamento ocorrer obedecendo sempre ao mesmo tipo de dado. O tipo de dado homogneo recebe diversos outros nomes, tais como: variveis indexadas, variveis compostas, variveis subscritas, arranjos, vetores, matrizes, tabelas em memria ou arrays. A denominao mais comum, no entanto, a utilizao do termo matriz. As matrizes (tabelas em memria) so tipos de dados que podem ser construdos a medida que se fazem necessrios, pois no sempre que os tipos bsicos (real, inteiro, caractere e lgico) e/ou variveis simples so suficientes para representar a estrutura de dados utilizada em um programa. Matrizes de uma Dimenso ou Vetores Esse tipo de estrutura, em particular, tambm denominado por alguns profissionais como matrizes unidimensionais. Sua utilizao mais comum est vinculada criao de tabelas. Caracteriza-se por ser definida uma nica varivel dimensionada com um determinado tamanho. A dimenso de uma matriz construda por constantes inteiras e positivas. Os nomes dados s matrizes seguem as mesmas regras de nomes utilizados em variveis simples. Para se ter uma ideia de como utilizar matrizes em uma determinada situao, considera o seguinte problema: Calcular e apresentar a mdia geral de uma turma de 8 alunos. A mdia a ser obtida deve ser a media geral das mdias de cada aluno obtida durante o ano letivo. Desta forma, ser necessrio somar todas as mdias e dividi-las por 8. A tabela a seguir, apresenta o numero de alunos, suas notas bimestrais e respectivas mdias anuais. da mdia de cada aluno que ser efetuado o clculo da mdia da turma. Aluno Nota 1 Nota 2 Nota 3 Nota 4 Mdia 1 4,0 6,0 5,0 3,0 4,5 2 6,0 7,0 5,0 8,0 6,5 3 9,0 8,0 9,0 6,0 8,0 4 3,0 5,0 4,0 2,0 3,5 5 4,0 6,0 6,0 8,0 6,0 6 7,0 7,0 7,0 7,0 7,0 7 8,0 7,0 6,0 5,0 6,5 8 6,0 7,0 2,0 9,0 6,0 Agora basta escrever um programa para efetuar o clculo das 8 mdias. Para representar a mdia do primeiro aluno ser utilizada a varivel MD1, para o segundo MD2, e assim por diante: MD1 = 4.5 MD5 = 6.0 MD2 = 6.5 MD6 = 7.0 MD3 = 8.0 MD7 = 6.5 MD4 = 3.5 MD8 = 6.0 Com o conhecimento adquirido at aqui, seria ento elaborado um programa que efetuaria a leitura de cada nota, a soma das mesmas e a diviso do valor da soma por 8, obtendo-se desta forma a mdia, conforme exemplo abaixo:

52

Curso Tcnico em Informtica

Perceba que para receber a mdia foram utilizadas 8 variveis. Com a tcnica de matrizes poder ser utilizada apenas uma varivel com a capacidade de armazenar 8 valores. Operaes com Matrizes do Tipo Vetor Uma matriz com apenas uma coluna (linha vertical) chamada de vetor. representada por seu nome, tamanho (dimenso) entre colchetes e seu tipo, tendo assim, a seguinte sintaxe: <Identificador>: vetor [<tamanho>] de <tipo> Tamanho [VI..VF] VI = valor inicial do ndice e VF = valor final do ndice Onde: <identificador> - nome atribudo matriz <tipo> - o tipo de elemento armazenado (inteiro, real, etc.) No caso do exemplo anterior, onde se calculava a mdia de uma turma com 8 alunos, para armazenar a mdia dos 8 alunos poderamos declarar um vetor como: MD : vetor [ 1..8] de REAL Assim seriam criadas 8 variveis em memria, conforme segue: MD[1] MD[5] MD[2] MD[6] MD[3] MD[7] MD[4] MD[8] Observe que o nome um s, o que muda a informao indicada dentro dos colchetes. Nosso programa ficaria, ento, da seguinte forma:

53

Curso Tcnico em Informtica

bastante comum percorrer os elementos de um vetor seja na atribuio de um valor a elemento do mesmo, seja atravs da leitura do valor contido nesse elemento atravs de uma estrutura de repetio (enquanto... faca, repita... ate, para... faca). Exemplo 1: Vamos utilizar a estrutura de repetio para o exemplo anterior, que lia 8 mdias dos alunos de uma turma e calcula a mdia geral da turma.

Exerccio Proposto Desenvolva o exemplo 1 com as estruturas repita... ate e para... faca. Exemplo 2: Desenvolver um programa que efetue a leitura de 10 elementos de uma matriz A tipo vetor. Construir uma matriz B de mesmo tipo, observando a seguinte lei de formao: se o valor ndice for par, o valor dever ser multiplicado por 5; sendo mpar dever ser somado com 5. Ao final, mostrar os contedos das duas matrizes. Algoritmo 1. Iniciar o contador do ndice, varivel I com 1 em um contador at 10; 54

Curso Tcnico em Informtica

2. 3. 4.

Ler os 10 valores, um a um. Verificar se o ndice par, se sim, multiplicar por 5, se no, soma 5. Criar a matriz B; Apresentar o contedo das duas matrizes.

Exemplo 3: Desenvolver um programa que efetue a leitura de 5 elementos da matriz A do tipo vetor. No final, apresente a soma de todos os elementos que sejam mpares. Algoritmo 1. Iniciar o contador de ndice, varivel I como 1 em um contador at 5; 2. Ler os 5 valores, um a um; 3. Verificar se o elemento impar, se sim, efetuar a soma dos elementos; 4. Apresentar o total somado de todos os elementos mpares da matriz.

55

Curso Tcnico em Informtica

Observe que, diferente do exemplo 2, verificamos se o elemento e no o ndice do vetor mpar. Verifique atentamente a diferena entre a linha 11 do programa deste exemplo, com a linha 14 do programa do exemplo 2. Leitura de uma lista de nomes A utilizao de matrizes em programao bastante ampla. Podem ser utilizada em diversas situaes, tornando bastante til e verstil esta tcnica de programao. Para se ter uma outra ideia, considere um programa que necessite ler e apresentar o nome de 10 pessoas. O programa em questo far a leitura e em seguida o nome de 10 pessoas.

56

Curso Tcnico em Informtica

Exerccios Elaborar os seguintes programas utilizando a linguagem de programao Java: 84. Ler 10 elementos de uma matriz tipo vetor. 85. Ler 8 elementos em uma matriz A do tipo vetor. Construir uma matriz B de mesma dimenso com os elementos da matriz A multiplicados por 3. Apresentar a matriz B. 86. Ler uma matriz A do tipo vetor com 15 elementos. Construir uma matriz B de mesmo tipo, sendo que cada elemento da matriz B seja a fatorial do elemento correspondente da matriz A. 87. Ler duas matrizes A e B do tipo vetor com 20 elementos. Construir uma matriz C, sendo esta a juno das duas outras matrizes. Desta forma C dever ter o dobro de elementos de A e B. 88. Ler duas matrizes do tipo vetor A com 20 elementos e B com 30 elementos. Construir uma matriz C, sendo esta a juno das duas outras matrizes. Desta forma, C dever ter a capacidade de armazenar 50 elementos. 89. Ler 15 elementos de uma matriz A do tipo vetor. Construir uma matriz B de mesmo tipo, observando a seguinte lei de formao: Todo elemento da matriz A dever ser o quadrado do elemento A correspondente. 90. Ler 20 elementos de uma matriz A tipo vetor e construir uma matriz B de mesma dimenso com os mesmos elementos de A, sendo que estes devero estar invertidos, ou seja, o primeiro elemento de A passa a ser o ltimo elemento de B, o segundo elemento de A passa a ser o penltimo de B e assim por diante. Apresentar as duas matrizes. 91. Ler 12 elementos de uma matriz A tipo vetor coloca-los em ordem decrescente e apresentar os elementos ordenados. 92. Ler 8 elementos de uma matriz A tipo vetor. Construir uma matriz B de mesma dimenso com os elementos da matriz multiplicados por 5. 93. Ler uma matriz A do tipo vetor 15 elementos. Construir uma matriz B de mesmo tipo, sendo que cada elemento da matriz B seja a fatorial do elemento correspondente da matriz A. Apresentar os elementos da matriz B ordenados de forma crescente. 94. Ler uma matriz A com 12 elementos. Aps sua leitura, colocar os seus elementos em ordem crescente. Depois ler uma matriz B tambm com 12 elementos, colocar os elementos de B em ordem crescente. Depois ler uma matriz B tambm com 12 elementos, colocar os elementos de B em ordem crescente. Construir uma matriz C, onde cada elemento de C a soma do elemento correspondente de A com B. Colocar em ordem crescente a matriz C e apresentar seus valores. 57

Curso Tcnico em Informtica

95. Ler duas matrizes do tipo vetor A com 20 elementos e B com 30 elementos. Construir uma matriz C, sendo esta a juno das duas outras matrizes. Desta forma, C dever ter a capacidade de armazenar 50 elementos. Apresentar os elementos da matriz C em ordem decrescente. 96. Ler 30 elementos de uma matriz A do tipo vetor. Construir uma matriz B de mesmo tipo, observando a seguinte lei de formao: Todo elemento de B dever ser o cubo do elemento de A correspondente. 97. Ler 20 elementos de uma matriz A do tipo vetor e construir uma matriz B de mesma dimenso com os mesmos elementos de A acrescentados de mais 2. Matrizes com mais de uma dimenso Com o conhecimento adquirido at este ponto, voc teria condies suficientes para elaborar um programa que efetuasse a leitura das notas dos alunos, o clculo da mdia de cada aluno e no final, apresentar a mdia do grupo, utilizando-se apenas de matrizes unidimensionais. Porm, h de se considerar que o trabalho seria grande, uma vez que se necessitaria manter um controle de cada ndice em cada matriz para um mesmo aluno. Para facilitar o trabalho com estruturas deste porte que sero utilizadas matrizes com mais dimenses. A mais comum a matriz de duas dimenses por se relacionar diretamente com a utilizao de tabelas. Matrizes com mais de duas dimenses so utilizadas com menos frequncia, mas podero ocorrer momentos em que se necessite trabalhar com um nmero maior de dimenses, porm estas sero fceis de ser utilizadas se voc dominar bem a utilizao de uma matriz com duas dimenses. Em matrizes de mais de uma dimenso, os seus elementos sero tambm manipulados de forma individualizada, sendo a referncia feita sempre atravs de dois ndices: o primeiro indica a linha, o segundo indica a coluna. Dessa forma, TABELA[2,3] indica que est sendo feita uma referncia ao elemento armazenado na linha 2 coluna 3. Pode-se considerar que uma matriz com mais de uma dimenso tambm um vetor, sendo vlido para este tipo de matriz tudo que foi utilizado anteriormente para as matrizes de uma dimenso. Operaes com Matrizes de Duas Dimenses Uma matriz de duas dimenses estar sempre fazendo meno a linhas e colunas e ser representa por seu nome e seu tamanho (dimenso) entre colchetes. Desta forma, seria uma matriz de duas dimenses TABELA[1..8,1..5], onde seu nome TABELA, possuindo um tamanho de 8 linhas (de 1 a 8) e 5 colunas (de 1 a 5), ou seja, uma matriz de 8 por 5 (8 x 5). Isto significa que podero ser armazenados em uma TABELA at 40 elementos. A fig. 6.1 apresenta a matriz TABELA com a indicao dos endereos (posies) que podero ser utilizados para armazenamento de seus elementos. Coluna 1 Coluna 2 Coluna 3 Coluna 4 Coluna 5 Linha 1 TABELA[1,1] TABELA[1,2] TABELA[1,3] TABELA[1,4] TABELA[1,5] Linha 2 Linha 3 Linha 4 Linha 5 TABELA[5,4] Linha 6 Linha 7 Linha 8 TABELA[8,5] Uma matriz de duas dimenses atribuda de forma semelhante atribuio de uma matriz de uma dimenso, sendo representada pelo seu nome, tamanho (dimenso de linhas e colunas) entre colchetes e seu tipo, tendo assim, a seguinte sintaxe: 58

Curso Tcnico em Informtica

<Identificador>: vetor [<dimenso linha>,<dimenso coluna>] de <tipo> Tamanho [VI..VF] VI = valor inicial do ndice e VF = valor final do ndice Onde: <identificador> <dimenso linha> <dimenso coluna> <tipo>

- nome atribudo matriz - o tamanho da matriz, em nmero de linhas - o tamanho da matriz, em nmero de colunas - o tipo de elemento armazenado (inteiro, real, etc.)

Exemplo 1: Considere o programa para entrada e sada de notas escolares. A leitura de uma matriz de duas dimenses, assim como as matrizes de uma dimenso, processada passo a passo. Escreva um programa que leia 2 notas de 5 alunos. A tabela em questo conter 10 elementos. Um detalhe a ser considerado a utilizao de duas variveis para controlar os dois ndices de posicionamento de dados na tabela. Nota 1 (Coluna 1) Aluno 1 (linha 1) (1,1) Aluno 2 (linha 2) (2,1) Aluno 3 (linha 3) (3,1) Aluno 4 (linha 4) (4,1) Aluno 5 (linha 5) (5,1) Vejamos o programa escrito no Visualg: Nota 2 (Coluna 2) (1,2) (2,2) (3,2) (4,2) (5,2)

Exemplo 2: Escreva um programa que simule uma agenda telefnica. Esse programa deve ler o nome e o telefone de 5 amigos seus. 59

Curso Tcnico em Informtica

Exerccios 98. Ler duas matrizes A e B, cada uma de duas dimenses com 5 linhas e 3 colunas. Construir uma matriz C de mesma dimenso, onde C formada pela soma dos elementos da matriz A com os elementos da matriz B. Apresentar os valores da matriz C. 99. Ler duas matrizes A e B, cada uma com uma dimenso de 7 elementos. Construir a matriz C de duas dimenses, onde a primeira coluna dever ser formada pelos elementos da matriz A, e a segunda coluna dever ser formada pelos elementos da matriz B. 100. Ler 20 elementos para uma matriz qualquer, considerando que esta matriz tenha o tamanho de 4 linhas por 5 colunas. 101. Ler uma matriz A de uma dimenso com 10 elementos. Construir uma matriz B de duas dimenses com trs colunas, onde a primeira coluna da matriz B formada pelos elementos da matriz A somados com mais 5, a segunda coluna formada pelo valor do clculo da fatorial de cada elemento correspondente da matriz A e a terceira e ltima coluna dever ser formada pelos quadrados dos elementos correspondentes da matriz A. 102. Ler duas matrizes A e B, cada uma com dimenso para 12 elementos. Construir uma matriz C de duas dimenses, onde a primeira coluna da matriz C dever ser formada pelos elementos da matriz A multiplicados por 2 e a segunda coluna dever ser formada peles elementos da matriz B subtrados de 5.

60

Você também pode gostar