terça-feira, 26 de agosto de 2008

Atribuição de uma matriz de duas dimensões

Uma matriz de duas dimensões é atribuìda pela instrução matriz. A sintaxe para este tipo de matriz ( que é semelhante ao da matriz tipo vetor ) é:


Onde dimensão 1 e dimensão 2 indica o tamanho da tabela e "tipo de dado" representa o tipo da matriz , que poderá ser formada por valores reais, inteiros, lógicos ou caracteres.Exemplo: Definição de uma matriz com 8 linhas e 5 colunas.


Fontes: MANZANO, José Augusto N. G. e OLIVEIRA , Jayr Figueiredo. Algoritmos: Lógica para Desenvolvimento de Programação de Computadores.São Paulo:Érica.2000;






sábado, 23 de agosto de 2008

Operações básicas com matrizes de duas dimensões

Uma matriz de duas dimensões está sempre fazendo menção a linha e colunas e é representada por seu nome e seu tamanho (dimensão) entre colchetes. Desta forma é uma matriz de duas dimensões TABELA [1..7,1..5], onde seu nome é TABELA, e possui um tamanho de 7 linhas (de 1 a 7) e 5 colunas(de 1 a 5), ou seja, é uma matriz de 7 por 5(7*5). E isso significa que podem ser armazenados em TABELA até 35 elementos. A figura abaixo apresenta a matriz TABELA com a indicação dos endereços (posições) que podem ser utilizadas para armazenamento de seus elemento.


Fonte : MANZANO, José Augusto N. G. e OLIVEIRA , Jayr Figueiredo. Algoritmos: Lógica para Desenvolvimento de Programação de Computadores.São Paulo:Érica.2000;

terça-feira, 19 de agosto de 2008

Matrizes com mais de uma dimensão

Nesta postagem faremos o uso de matrizes com duas dimensões, conhecidas também por matrizes bidimensionais ou arranjos (arrays).

Pelo fato de utilizar-se de uma estrutura de dados homogênea, todos os elementos de uma matriz deverão ser do mesmo tipo.


Até o momento você teve contato com o uso de uma única variável indexada com apenas uma dimensão (uma coluna e várias linhas), quando foi utilizado o exemplo para efetuar o cálculo da média geral dos oito alunos. Serão apresentadas então tabelas com mais colunas, sendo assim, teremos variáveis no sentido horizontal e vertical.

Ficaria muito difícil elaborar um programa que efetuasse a leitura das notas dos alunos, o cálculo da média de cada aluno e no final apresentar a média do grupo, utilizando-se apenas matrizes unidimensionais.Uma vez que se necessita manter um controle de cada índice em cada matriz para o mesmo aluno.

Para facilitar o trabalho com estruturas deste porte é que serão usadas matrizes com duas dimensões, por se relacionar diretamente com a utilização de tabelas.
Um importante aspecto a ser considerado é que a manipulação de uma matriz do tipo vetor é utilizada uma única instrução de looping (enquanto, para ou repita ). No caso de matrizes com mais dimensões , deverá ser utilizado o número de loopings relativo ao tamanho de sua dimensão.Desta forma, uma matriz de duas dimensões deverá ser controlada por dois loopings, de três dimensões deverá ser controlada por três loopings e assim sucessivamente.

Em matrizes de mais de uma dimensão os seus elementos são também manipulados de forma individual, sendo a referência feita sempre por meio de dois índices: o primeiro para indicar a linha e o segundo para indicar a coluna. Desta forma, TABELA[2,3], indica que está sendo feita a referência ao elemento armazenado na linha 2 coluna 3. Pode-se considerar que uma matriz com mais de uma dimensão é também um vetor,sendo válido para este tipo de matriz tudo o que já foi utilizado anteriormente para as matrizes de uma dimensão.



Fonte : MANZANO, José Augusto N. G. e OLIVEIRA , Jayr Figueiredo. Algoritmos: Lógica para Desenvolvimento de Programação de Computadores.São Paulo:Érica.2000;

domingo, 10 de agosto de 2008

Programa prometido na última postagem

Atente para o detalhe das instruções enquanto encadeadas. Lembre-se de que no caso de encadeamento, será executada primeiro a rotina mais interna, no caso a rotina de contagem da variável J, passando o processamento para a rotina mais externa, quando a rotina mais interna fechar o seu ciclo.


Fonte : MANZANO, José Augusto N. G. e OLIVEIRA , Jayr Figueiredo. Algoritmos: Lógica para Desenvolvimento de Programação de Computadores.São Paulo:Érica.2000;

quinta-feira, 7 de agosto de 2008

Continuação de Classificação de Elementos

Mostraremos agora como ordenar os 20 nomes do programa da penúltima postagem, atente para dois pontos:
O primeiro a ser observado é a utilização de uma segunda variável para controlar o índice subseqüente no processo de ordenação, no caso a variável J.Observe que a variável I é iniciada pela instrução enquanto com I = 1, e no segundo pela instrução enquanto que está sendo encadeada à primeira e iniciando a variável J, como J = I +1. Isto implica no seguinte:


Observe que somente quando a variável J atinge o valor 20 é que este looping se encerra, retomando ao looping da variável I, acrescentando mais um em I até que I atinja o seu limite e ambos os looping sejam encerrados.

O segundo ponto a ser observado é o fato da utilização do algoritmo de troca, utilizando junto da instrução de decisão se NOME [I] > NOME [J] então. Após a verificação desta condição sendo o primeiro nome maior que o segundo, efetua-se então a sua troca com o algoritmo:


Considere o vetor NOME [I] com o valor "CARLOS" e o vetor NOME [J] com o valor "ALBERTO". Ao final NOME [I] deverá estar com "ALBERTO" e NOME [J] deverá estar com "CARLOS". Para se conseguir este efeito é necessária a utilização de uma variável de apoio, a qual será chamada X.

Para que o vetor NOME [I] fique livre para receber o valor NOME [J], X deverá ser implicado pelo valor do vetor NOME [I], assim sendo X passa a ser "CARLOS". Neste momento pode-se implicar o valor de NOME [J] em NOME [I]. Desta forma o vetor NOME [I] passa a possuir o valor "ALBERTO". Em seguida o vetor NOME [J] é implicado pelo valor que está em X. Ao final deste processo, ter-se-á NOME [I] com "ALBERTO" e NOME [J] com "CARLOS".

Para ficar o suspense esse programa só será mostrado (em Portugol) na próxima postagem.

Fonte : MANZANO, José Augusto N. G. e OLIVEIRA , Jayr Figueiredo. Algoritmos: Lógica para Desenvolvimento de Programação de Computadores.São Paulo:Érica.2000;

terça-feira, 5 de agosto de 2008

Classificação dos Elementos de uma Matriz

Como foi dito na última postagem, um programa fica mais bem organizado quando seus elementos são ordenados, para o conforto de quem procura achar algum elemento em específico.


Existem vários métodos para se obter a ordenação de elementos de uma matriz. Uma forma bem simples é a de ordenação que consiste na comparação de cada elemento com todos os elementos subseqüentes existentes depois dele. Sendo o elemento comparado menor para ordenação decrescente, ou maior para ordenação crescente com o atual, este será trocado de posição com o outro. A ordenação alfabética é crescente de "A" até "Z".


Para exemplificar vamos partir de um problema pequeno: "Colocar em ordem crescente uma sequência de 3 números dados que são A[1] = 9,A[2] = 8,A[3] = 7; eles deverão ser apresentados assim 7,8,9.


Para efetuar o processo de troca é necessário aplicar o método de propriedade distributiva, sendo assim, o elemento que estiver em A[1] deverá ser comparado com os elementos que estiverem em A[2] e A[3]. Depois o elemento que estiver em A[2] não necessita ser comparado com o elemento que estiver em A[1], pois já foram anteriormente comparados, passando a ser comparado somente com o elemento que estiver em A[3].


No exemplo isso acontecerá da seguinte forma: na primeira comparação 9 troca de lugar com 8 por ser maior, daí a sequência fica 8,9,7; depois 8 é comparado com 7 e novamente trocam de lugar, pois 8 é maior que 7, então fica 7,9,8; agora 9 é comparado com 8 e como é maior troca de posição e a sequência fica 7,8,9 como esperado.


Na próxima postagem será mostrado como ordenar os elementos do programa da relação de 20 nomes, vindo como demonstração o programa em Portugol.

Fonte : MANZANO, José Augusto N. G. e OLIVEIRA , Jayr Figueiredo. Algoritmos: Lógica para Desenvolvimento de Programação de Computadores.São Paulo:Érica.2000;

domingo, 3 de agosto de 2008

Aplicação Prática do Uso do Vetor

A utilização de matrizes em programação é bastante ampla. Podem ser utilizadas em diversas situações, tornando útil e versátil esta técnica de programação. Para se ter uma idéia, considere o seguinte programa: "Criar um programa que efetue a leitura dos nomes de 20 pessoas e em seguida apresentá-los na mesma ordem em que foram informados".
Esse programa ficará mais ou menos assim:

Esse programa ficaria bem melhor se antes de apresentar os nomes ele efetuasse o processamento da classificação alfabética, apresentando os nomes em ordem, independentemente daquela que foram informados, facilitando desta forma a localização de algum nome, quando for efetuada uma pesquisa visual. Na próxima postagem indicaremos como isso pode ser realizado.

Fonte : MANZANO, José Augusto N. G. e OLIVEIRA , Jayr Figueiredo. Algoritmos: Lógica para Desenvolvimento de Programação de Computadores.São Paulo:Érica.2000;

Escrita de Dados de uma Matriz

O processo de escrita de uma matriz é bastante parecido com o processo de leitura de seus elementos. Para esta ocorrência deverá ser utilizada a instrução 'imprima' seguida da indicação da variável e seu índice. Supondo que após a leitura das 8 notas (programa média de notas), houvesse a necessidade de apresentá-las antes da apresentação do valor da média.

Abaixo é apresentado como ficaria o programa da escrita das notas dos 8 alunos antes de ser apresentado o cálculo da média:
Fonte : MANZANO, José Augusto N. G. e OLIVEIRA , Jayr Figueiredo. Algoritmos: Lógica para Desenvolvimento de Programação de Computadores.São Paulo:Érica.2000;

segunda-feira, 28 de julho de 2008

Pedimos desculpas aos caros leitores por não ter escrito os programas nas postagens anteriores exatamente como seria no Portugol. Para retificar, aqui estão os devidos programas com os defeitos solucionados. O primeiro programa representa o que devemos declarar cada variável separadamente:













E este é o segundo programa onde declaramos uma variável do tipo vetor onde pode ser escrito vários valores:

domingo, 27 de julho de 2008

Atribuição de um Vetor

No caso da utilização de matrizes, será definida a instrução vetor que indicará em Portugol a utilização de uma matriz, tendo como sintaxe: tipo VARIÁVEL: vetor ['dimensão']'tipo de dado', sendo que 'dimensão' será a indicação dos valores inicial e final do tamanho do vetor e 'tipo de dado' se o vetor em questão irá utilizar valores reais, inteiros, lógicos ou caracteres.

Podemos visualizar que, com a utilização de matriz o programa se torna mais compacto, além de possibilitar uma mobilidade maior, pois se houver a necessidade de uma quantidade relativa de valores basta dimensionar a matriz e mudar o valor final da instrução enquanto.

Fontes: MANZANO, José Augusto N. G. e OLIVEIRA , Jayr Figueiredo. Algoritmos: Lógica para Desenvolvimento de Programação de Computadores.São Paulo:Érica.2000;

GUIMARÃES, A. M. e LAGES, Newton A. C. Algoritmos e Estruturas de Dados. Rio de Janeiro, LTC, 1985.

terça-feira, 22 de julho de 2008

Operações Básicas com Vetores(Matriz Unidimensional)

Um vetor será representado por seu nome e seu tamanho(dimensão) entre colchetes. Desta forma o último problema demonstrado na postagem anterior seria NOTA[1:8], sendo seu nome NOTA, tendo um tamanho de 1 a 8. Isto significa que poderão ser armazenados em NOTA até oito elementos. Na utilização de variáveis simples uma variável só pode conter um valor por vez.
No caso das matrizes, poderão armazenar mais de um valor por vez, pois são dimensionadas exatamente para este fim.
No caso do último problema (média de 8 alunos), ter-se-ia então uma única variável indexada contendo todas os valores das 8 notas.Portanto ficaria assim no Portugol(linguagem que estamos utilizando no curso):

inicio
tipo v= vetor[1:8]real;
v= NOTA;
real= MÉDIA,SOMA;
inteiro= I;
SOMA= 0;
I= 1;
enquanto I<=8 faça
leia(NOTA[I]);
SOMA= SOMA+NOTA[I];
I=I+1;
fim enquanto;
MÉDIA=SOMA/8;
imprima(MÉDIA);
fim.

O que se encontra dentro dos colchetes se chama índice, esse é o endereço onde o elemento está armazenado.
É necessário fixar que elemento é o conteúdo da matriz, neste caso os valores das notas.
Assim, conseguimos perceber que o uso de matrizes facilita a elaboração de programas onde tem que ser escritos muitos valores, basta indicar a quantidade de elementos precisos, não tendo mais que declarar várias variáveis.

Fonte: MANZANO, José Augusto N. G. e OLIVEIRA , Jayr Figueiredo. Algoritmos: Lógica para Desenvolvimento de Programação de Computadores.São Paulo:Érica.2000.

terça-feira, 15 de julho de 2008

Matrizes de uma dimensão ou Vetores

Este tipo de estrutura é também conhecido como matrizes unidimensionais. Sua utilização mais comum está relacionada à criação de tabelas. Caracteriza-se por ser definida uma única variável dimensionada com um determinado tamanho, e sua dimensão é constituida por constantes inteiras e positivas.
Os nomes dados às matrizes seguem as mesmas regras de nomes utilizados para indicar as variáveis simples.
O exemplo: calcular e apresentar a média geral de uma turma de 8 alunos.A média a ser obtida deve ser a média geral das médias de cada aluno obtida durante todo o ano letivo. Desta forma será necessátio somar as médias finais de todos os alunos e dividi-las por 8.
Para representar a média do primeiro aluno será utilizada a variável MD1, para o segundo MD2 e assim por diante.Então tem-se: MD1=4.5, MD2=6.5, MD3=8.0, MD4=3.5, MD5=6.0, MD6=7.0, MD7=6.5, MD8=6.0 . Logo o programa ficaria estruturado assim:

inicio
real: MD1, MD2, MD3, MD4, MD5, MD6, MD7, MD8;
real: SOMA, MÉDIA;
SOMA = 0;
leia ( MD1, MD2, MD3, MD4, MD5, MD6, MD7, MD8);
SOMA = MD1+ MD2 +MD3+ MD4+ MD5+ MD6+ MD7+ MD8;
MÉDIA = SOMA/ 8;
imprima(MÉDIA);
fim.

Perceba que para receber a média foram utilizadas oito variáveis.Com a técnica de matrizes poderia ter sido utilizado apenas uma variável com capacidade de armazenar os oitos valores.
Este mesmo exemplo, só que estruturado com a utilização de matriz, será postado em breve. Até logo!!!



Fonte: MANZANO, José Augusto N. G. e OLIVEIRA , Jayr Figueiredo. Algoritmos: Lógica para Desenvolvimento de Programação de Computadores.São Paulo:Érica.

terça-feira, 8 de julho de 2008

Estrutura de Dados Homogêneas

Durante o curso nós falaremos sobre Estrutura de Dados Homogêneas(Vetores e Matrizes) e Heterogêneas(Registros). Nessa postagem faremos uma introdução sobre Estrutura de Dados Homogênea.
Nós apresentaremos uma técnica de programação que permitirá trabalhar com agrupamentos de várias informações dentro de uma mesma variável. Esse agrupamento ocorrerá obedecendo sempre o mesmo tipo de dado.
São conhecidas como: variáveis indexadas, variáveis compostas, variáveis subescritas, arranjos, vetores, matrizes, tabelas em memória ou arrays. Chamaremos aqui de matrizes.
As matrizes são tipos de dados que podem ser construídos à medida que se é preciso, pois nem sempre que tipos básicos(real, inteiro, caracter, e lógico) e/ou variáveis simples são suficientes para representar a estrutura de dados utilizada em um programa.

Fonte: MANZANO, José Augusto N. G. e OLIVEIRA , Jayr Figueiredo. Algoritmos: Lógica para Desenvolvimento de Programação de Computadores.

quarta-feira, 2 de julho de 2008

Inauguração do novo blog

Estamos aqui escrevendo nossa primeira postagem de muitas outras que vem por aí, esse blog foi criado com o intuito de dinamizar nossas aulas de Ciência da Computação com o professor Trazibulo Henrique do curso de Engenharia Civil e de Alimentos da Universidade Estadual de Feira de Santana.

O tema abordado será Tipos e Estruturas Elementares de Dados.

Esperamos que nossa trajetória no curso seja satisfatória.