Você está na página 1de 3

MINISTRIO DA EDUCAO UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN CAMPUS PONTA GROSSA CURSO SUPERIOR DE TEC.

EM ANLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: Algoritmos OBJETIVOS: Algoritmos Estrutura de Dados Homogneas (Vetores)

10. Estruturas de Dados Homogneas As estruturas de dados homogneas permitem agrupar diversas informaes dentro de uma mesma varivel. Este agrupamento ocorrer obedecendo sempre ao mesmo tipo de dado, e por esta razo que estas estruturas so chamadas homogneas. A utilizao deste tipo de estrutura de dados recebe diversos nomes, como: variveis indexadas, variveis compostas, variveis subscritas, arranjos, vetores, matrizes, tabelas em memria ou arrays. Os nomes mais usados e que utilizaremos para estruturas homogneas so: matrizes (genrico) e vetores (matriz de uma linha e vrias colunas). 10.1 Matrizes de Uma Dimenso ou Vetores Este tipo de estrutura em particular tambm denominado por profissionais da rea como matrizes unidimensionais. Sua utilizao mais comum est vinculada criao de tabelas. Caracteriza-se por ser definida uma nica varivel vinculada dimensionada com um determinado tamanho. A dimenso de uma matriz constituda por constantes inteiras e positivas. Os nomes dados s matrizes seguem as mesmas regras de nomes utilizados para indicar as variveis simples. A sintaxe do comando de definio de vetores a seguinte: <tipo_de_dado> : <nome_da_varivel> [ <coluna_inicial>:<coluna_final> ]; Ex.: inteiro: M [1:10];

10.1.1 Operaes Bsicas com Matrizes do Tipo Vetor Do mesmo modo que acontece com variveis simples, tambm possvel operar com variveis indexadas (matrizes). Contudo no possvel operar diretamente com o conjunto completo, mas com cada um de seus componentes isoladamente. O acesso individual a cada componente de um vetor realizado pela especificao de sua posio na mesma por meio do seu ndice. No exemplo anterior foi definida uma varivel M capaz de armazenar 10 nmeros inteiros. Para acessar um elemento deste vetor deve-se fornecer o nome do mesmo e o ndice do componente desejado do vetor (um nmero de 1 a 10, neste caso). Por exemplo, M[1] indica o primeiro elemento do vetor, M[2] indica o segundo elemento do vetor e M[10] indica o ltimo elemento do vetor. Portanto, no possvel operar diretamente sobre vetores como um todo, mas apenas sobre seus componentes, um por vez. Por exemplo, para somar dois vetores necessrio somar cada um de seus componentes dois a dois. Da mesma forma as operaes de atribuio, leitura e escrita de vetores devem ser feitas elemento a elemento. 10.1.1.1 Atribuio de uma Matriz do Tipo Vetor No caso de vetores (variveis indexadas), alm do nome da varivel deve-se necessariamente fornecer tambm o ndice do componente do vetor onde ser armazenado o resultado da avaliao da expresso. Sintaxe: <nome_da_varivel> [ <valor do ndice> ] <expresso>; Ex.: M[1] M[2] M[5] M[10] 15; 150; 10; 35;

MINISTRIO DA EDUCAO UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN CAMPUS PONTA GROSSA CURSO SUPERIOR DE TEC. EM ANLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: Algoritmos OBJETIVOS: Algoritmos Estrutura de Dados Homogneas (Vetores)

10.1.1.2 Leitura de Dados de Uma Matriz do Tipo Vetor A leitura de um vetor feita passo a passo, um de seus componentes por vez, usando a mesma sintaxe da instruo primitiva da entrada de dados, onde alm do nome da varivel, deve ser explicitada a posio do componente lido. Sintaxe: leia(<nome_da_varivel> [ <ndice> ]); Uma observao importante a ser feita a utilizao da construo para a fim de efetuar a operao de leitura repetidas vezes, em cada uma delas lendo um determinado componente do vetor. De fato esta construo muito comum quando se opera com vetores, devido necessidade de se realizar uma mesma operao com os diversos componentes dos mesmos. Na verdade, so raras as situaes que se deseja operar isoladamente com um nico componente do vetor. O algoritmo a seguir exemplifica a operao de leitura de um vetor: algoritmo exemplo_leitura_de_vetor incio inteiro: NUMEROS[1:10]; inteiro: I; para i de 1 at 10 faa incio leia(NUMEROS[i]); fim para; fim; fim algoritmo. 10.1.1.3 Escrita de Dados de Uma Matriz do Tipo Vetor A escrita de um vetor obedece mesma sintaxe da instruo primitiva de sada de dados e tambm vale lembrar que, alm do nome do vetor, deve-se tambm especificar por meio do ndice o componente a ser escrito. Sintaxe: escreva (<nome_da_varivel> [ <ndice> ]); O algoritmo a seguir exemplifica a operao de leitura e escrita de um vetor, utilizando a construo para: algoritmo exemplo_escrita_de_vetor incio inteiro: NUMEROS[1:10]; inteiro: I; para I de 1 at 10 faa incio leia(NUMEROS[i]); fim para; para I de 1 at 10 faa incio escreva(NUMEROS[I]); fim para; fim. fim algoritmo.

MINISTRIO DA EDUCAO UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN CAMPUS PONTA GROSSA CURSO SUPERIOR DE TEC. EM ANLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: Algoritmos OBJETIVOS: Algoritmos Estrutura de Dados Homogneas (Vetores)

10.1.2 Exemplos de Aplicao de Vetores O espectro de aplicao de vetores em algoritmos muito extenso, mas normalmente os vetores so usados em duas tarefas muito importantes no processamento de dados: pesquisa e classificao. A pesquisa consiste na verificao da existncia de um valor dentro de um vetor. Trocando em midos, pesquisar um vetor consiste em procurar dentre seus componentes um determinado valor. A classificao de um vetor consiste em arranjar seus componentes numa determinada ordem, segundo um critrio especfico. Por exemplo, este critrio pode ser a ordem alfabtica de um vetor de dados caracter, ou ento a ordem crescente ou decrescente para um vetor de dados numricos. H vrios mtodos de classificao, mas o mais conhecido o mtodo da bolha de classificao (Bubble Sort). 10.1.2.1 O Mtodo da Bolha de Classificao Este mtodo no o mais eficiente, mas um dos mais populares devido sua simplicidade. A filosofia bsica deste mtodo consiste em varrer o vetor, comparando os elementos vizinhos entre si. Caso estejam fora de ordem, os mesmos trocam de posio entre si. Procede-se assim at o final do vetor. Na primeira varredura verifica-se que o ltimo elemento do vetor j est no seu devido lugar (no caso de ordenao crescente, ele o maior de todos). A segunda varredura anloga primeira e vai at o penltimo elemento. Este processo repetido at que seja feito um nmero de varreduras igual ao nmero de elementos a serem ordenados menos um. Ao final do processo o vetor est classificado segundo o critrio escolhido. (Pesquise o algoritmo de bubble sort e realize com ele um teste de mesa)

Você também pode gostar