Baixe o app para aproveitar ainda mais
Prévia do material em texto
ALGORITMOS PROFESSORA: Gellars Tavares 2013 ESTRUTURAS DE DADOS HOMOGÊNEA Gellars Tavares - 2013 VETORES Gellars Tavares - 2013 MATRIZ UNIDIMENSIONAL (VETOR): As estruturas de dados homogêneas permitem agrupar diversas informações dentro de uma mesma variável. Este agrupamento ocorrerá obedecendo sempre ao mesmo tipo de dado, e por esta razão que estas estruturas são chamadas homogêneas. A utilização deste tipo de estrutura de dados recebe diversos nomes, como: variáveis indexadas, variáveis compostas, variáveis subscrita, arranjos, vetores, matrizes, tabelas em memória ou arrays. Os nomes mais usados e que utilizaremos para estruturas homogêneas são: matrizes (genérico) e vetores (matriz de uma linha e várias colunas). Gellars Tavares - 2013 DECLARAÇÃO DE UM VETOR: Este tipo de estrutura em particular é também denominado por profissionais da área como matrizes unidimensionais. Sua utilização mais comum está vinculada à criação de tabelas. Caracteriza-se por ser definida uma única variável vinculada dimensionada com um determinado tamanho. A dimensão de uma matriz é constituída por constantes inteiras e positivas. Os nomes dados às matrizes seguem as mesmas regras de nomes utilizados para indicar as variáveis simples. A sintaxe do comando de definição de vetores é a seguinte: <tipo do elemento> <nome da variável> <quantidade de posições> Algoritmo C++ real NOTA[10]; float NOTA[10]; Gellars Tavares - 2013 ATRIBUIÇÃO DE VALORES EM VETORES: Para atribuir valor a uma posição de um vetor, utilizamos o mesmo comando de atribuição de valor visto anteriormente. A diferença é que necessitamos explicitar em qual índice (posição) do vetor desejamos atribuir o valor. Observe o exemplo: Algoritmo C++ NOTA [4]← 5.8; NOTA [4] = 5.8; Gellars Tavares - 2013 Esse comando armazena o valor 4,5 no índice 4 do vetor. Observe que o valor é armazenado no índice 4. Quando observamos o vetor, a posição utilizada é a quinta posição, pois a contagem dos índices começa no valor zero. 0 1 2 3 4 5 6 7 8 9 5.8 NOTA ATRIBUIÇÃO DE VALORES EM VETORES: Gellars Tavares - 2013 índice Na atribuição de valores para um vetor, podemos utilizar qualquer detalhe que observamos até aqui, isto é, podemos atribuir um valor diretamente, podemos atribuir o valor de uma variável ou podemos atribuir o resultado de uma operação (aritmética). ATRIBUIÇÃO DE VALORES EM VETORES: Gellars Tavares - 2013 LEITURA DE DADOS EM VETORES: A leitura de um vetor é feita passo a passo, um de seus componentes por vez, usando a mesma sintaxe da instrução primitiva da entrada de dados, onde além do nome da variável, deve ser explicitada a posição do componente lido: Algoritmo C++ leia NOTA [4]; cin>>NOTA [4]; Gellars Tavares - 2013 ESCRITA DE DADOS EM VETORES: A escrita de um vetor obedece à mesma sintaxe da instrução primitiva de saída de dados e também vale lembrar que, além do nome do vetor, deve-se também especificar por meio do índice o componente a ser escrito: Algoritmo C++ escreva NOTA [4]; cout<<NOTA [4]; Gellars Tavares - 2013 Uma observação importante a ser feita é a utilização da estrutura de repetição PARA a fim de efetuar a operação de leitura ou escrita repetidas vezes, em cada uma delas lendo ou escrevendo um determinado componente do vetor. Esta construção é bastante comum quando se trabalha com vetores, devido à necessidade de se realizar uma mesma operação com os diversos componentes dos mesmos. Na verdade, são raras as situações que se deseja operar isoladamente com um único componente do vetor. ESCRITA DE DADOS EM VETORES: Gellars Tavares - 2013 Exemplo utilizando a estrutura de repetição para entrada e saída de dados com vetor: Algoritmo C++ algoritmo exemplo real NOTA [10]; inteiro CONT; inicio para (CONT de 0 até 9 passo 1) faça escreva (“Digite valor: “); leia (NOTA [CONT]); fim_para para (CONT de 0 até 9 passo 1) faça escreva (NOTA [CONT]); fim_para fim #include<iostream> using namespace std; int main() { float NOTA [10]; int CONT; for (CONT=0;CONT<=9;CONT++) { cout<<”Digite valor: “; cin>>NOTA[CONT]; } for (CONT=0;CONT<=9;CONT++) { cout<<NOTA [CONT]; } system(“pause”); return 0; } Gellars Tavares - 2013 MATRIZ Gellars Tavares - 2013 MATRIZ BIDIMENSIONAL (MATRIZ): Este tipo de estrutura também tem sua principal utilização à criação de tabelas. Caracteriza-se por ser definida uma única variável vinculada dimensionada com um determinado tamanho. A dimensão de uma matriz é constituída por constantes inteira e positivas. Os nomes dados à matrizes seguem as mesmas regras de nomes utilizados para indicar as variáveis simples. A matriz comporta-se como um vetor, com a diferença que ela utiliza o conceito de linhas e colunas para armazenar dados. Uma matriz também é uma variável que permite o armazenamento de diversos dados sob um mesmo nome, apresentando posições diferentes identificadas por índices. A diferença em relação ao vetor é que necessitamos explicitar o índice da linha e o índice da coluna, para identificar a posição desejada na matriz. Gellars Tavares - 2013 DECLARAÇÃO DE UMA MATRIZ: É necessário explicitar a quantidade de linhas e a quantidade de colunas que a matriz terá (exatamente nessa ordem). Algoritmo C++ real NOTAS[10][5]; float NOTAS[10][5]; Gellars Tavares - 2013 O exemplo declara uma matriz do tipo real, com 10 linhas e cinco colunas para armazenamento de dados. Dessa forma, graficamente, ela teria a aparência exata de uma matriz utilizada na Matemática: 0 1 2 3 4 0 1 2 3 4 5 6 7 8 9 NOTAS DECLARAÇÃO DE UMA MATRIZ: Gellars Tavares - 2013 ATRIBUIÇÃO DE VALORES EM MATRIZES: A atribuição segue o mesmo conceito apresentado para os vetores. A diferença é que necessitamos explicitar os índices de linha e coluna, da posição na qual desejamos atribuir o valor. Observe o exemplo: Algoritmo C++ NOTAS [4][2] ← 4.5; NOTAS [4][2] = 4.5; Gellars Tavares - 2013 Esse comando armazena o valor 4.5 no índice de linha 4 e no índice de coluna 2 da matriz. A posição encontra-se no cruzamento dos índices utilizados no comando. 0 1 2 3 4 0 1 2 3 4 4.5 5 6 7 8 9 NOTAS ATRIBUIÇÃO DE VALORES EM MATRIZES: Gellars Tavares - 2013 LEITURA DE DADOS EM MATRIZES: A leitura de uma matriz é feita passo a passo, um de seus componentes por vez, usando a mesma sintaxe da instrução primitiva da entrada de dados, onde além do nome da variável, deve ser explicitada a posição do componente lido: Algoritmo C++ leia NOTAS [4][2]; cin>>NOTAS[4][2]; Gellars Tavares - 2013 ESCRITA DE DADOS EM MATRIZES: A escrita de uma matriz obedece à mesma sintaxe da instrução primitiva de saída de dados e também vale lembrar que, além do nome do vetor, deve-se também especificar por meio do índice o componente a ser escrito: Algoritmo C++ escreva NOTAS [4][2]; cout<<NOTAS [4][2]; Gellars Tavares - 2013 Da mesma forma que utilizamos a estrutura de repetição PARA a fim de efetuar a operação de leitura ou escrita repetidas vezes, em cada uma delas lendo ou escrevendo um determinado componente do vetor, utilizaremos na matriz também. ESCRITA DE DADOS EM MATRIZES: Gellars Tavares - 2013 Exemplo utilizando a estrutura de repetição para entrada e saída de dados com matriz: Algoritmo C++ algoritmo exemplo real NOTAS [4][2]; inteiro C1,C2; inicio para (C1 de 0 até 3 passo 1) faça para (C2 de 0 até 1 passo 1) faça escreva (“Digite valor: “); leia (NOTAS [C1][C2]); fim_para fim_para para (C1 de 0 até 3 passo 1) faça para (C2 de 0 até 1 passo 1) faça escreva (NOTAS [C1][C2]); fim_para fim_para fim #include<iostream> usingnamespace std; int main() { float NOTAS [4][2]; int C1, C2; for (C1=0;C1<=3;C1++) { for (C2=0;C2<=1;C2++) { cout<<”Digite valor: “; cin>>NOTAS[C1][C2]; } } for (C1=0;C1<=9;C1++) { for (C2=0;C2<=1;C2++) { cout<<NOTAS [C1][C2]; } } system(“pause”); return 0; } Gellars Tavares - 2013 O algoritmo possui dois pares de comandos de repetição (comando para). O primeiro para serve para ler os dados e armazenar o valor na matriz; o segundo, para apresentar todos os valores armazenados na matriz; Em cada par de comandos para, utilizamos o primeiro comando para manipular os índices das linhas, e o segundo para manipular os índices das colunas; Como o algoritmo utiliza uma matriz que possui quantidades diferentes para linhas e colunas, utilizamos a variável C1, para ser o contador da quantidade de linhas, e a variável C2, para ser contador da quantidade de colunas. Gellars Tavares - 2013 REFERÊNCIAS BIBLIOGRAFICAS 1. FORBELLONE, André Luiz Villar; EBERSPACHER, Henri. Lógica de programação. 3. ed. São Paulo: Makron Books, 2005. 2. ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi. Fundamentos da programação de computadores: Algoritmos, Pascal, C/C++ e Java. 2. ed. São Paulo: Pearson Education, 2012. Gellars Tavares - 2013 Perguntas Gellars Tavares - 2013
Compartilhar