Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estrutura de Dados: Vetores A 1 Enquanto n <= 20 Se Fim Prof. Dr. Raimundo J. Macário Costa (UEZO/UFRJ/UNESA) 2012.1 Ca p. 6 - 2 Estruturas de Dados: Vetores Objetivo: Estudar as estruturas de dados estáticas e homogêneas (vetores e matrizes); Estudar as operações que estas suportam e algumas aplicações básicas. Introduzir as estruturas de dados; Conceito de vetores; Conceito de matrizes. Ca p. 6 - 3 Estruturas Indexadas Nos casos em que é necessário ou conveniente representar os dados em termos de conjuntos de valores; Os elementos individuais da estrutura são identificados com o auxílio de índices; Vetor: uma coleção de variáveis de um mesmo tipo que compartilham o mesmo nome e ocupam posições consecutivas de memória. Cada variável da coleção denomina-se elemento e é identificada por um índice. Ca p. 6 - 4 Estruturas Indexadas Ca p. 6 - 5 Declaração de Vetor Um vetor é declarado definindo-se seu nome, tipo e tamanho; Representação da declaração de um vetor em pseudódigo: V : vetor [0..N] de inteiros Essa declaração define uma variável chamada V que pode armazenar um conjunto de números inteiros que serão identificados como V[0], V[1], V[2], ..., V[N], <tipo> [ ] <identificador> = new <tipo> [n]; OU <tipo> <identificador> [ ] = new <tipo> [n]; Ca p. 6 - 6 Acesso e Atribuição de Valores Meses : vetor [1..12] de inteiros Meses [1] “Janeiro” Meses [2] “Fevereiro” ... Meses [11] “Novembro” Meses [12] “Dezembro” String mesAno [ ] = new String [12]; mesAno[0] = “Janeiro”; mesAno[1] = “Fevereiro”; ... mesAno[10] = “Novembro”; mesAno[11] = “Dezembro”; String mesAniversario = mesAno[0]; Ca p. 6 - 7 Exemplo 1 Algoritmo Exemplo6.1 Var Valores : vetor [1..10] de reais Soma, Media : real i : inteiro Início Soma 0 Para i 1 até 10 Faça Ler (Valores[i]) Soma Soma + Valores[i] Fim-Para Media Soma / 10 Mostrar (“O valor da média é: “, Media) Fim. Ca p. 6 - 8 Exemplo 1 Início Fim "O valor da média é: ", Media Soma 0 Media Soma/ 10 Valores [ i ] Soma Soma + Valores[ i ] i 1, 10, 1 Ca p. 6 - 9 #include <iostream> #include <cstdlib> using namespace std; int main (void){ int i, vetor[10]; float somatorio=0, media; //leitura dos valores cout <<“Entre com os valores\n"; for (i=1; i<=10; i++){ cout <<"Digite o "<<i<<"o. numero: "; cin >> vetor[i]; cin.ignore(); //system ("cls"); .... } //faz o somatorio for (i=1; i<=10; i++){ cout<<"v["<<i<<"] = "<<vetor[i]<<endl; somatoria = somatoria + vetor[i]; } cout << "soma = " << somatorio <<endl; media = somatorio/10; cout << "media = " << media <<endl; system ("pause"); return EXIT_SUCCESS; } Exemplo em C++ Ca p. 6 - 10 Exemplo 1 import java.io.*; class ExVetor { public static void main ( String args [] ){ BufferedReader entrada; entrada = new BufferedReader( new InputStreamReader (System.in) ); try { float soma = 0; float [] vetor = new float [10]; for (int i = 0, i < vetor.length; i++){ System.out.println(“Qual o valor ? ”); vetor [i] = Float.parseFloat( entrada.readLine() ); soma = soma + vetor[i]; } float media = soma / vetor.length; System.out.println ("A média = " + media); } catch (Exception e) { System.out.println(“Ocorreu um erro durante a leitura !”); } } } Ca p. 6 - 11 Operações Os vetores permitem a manipulação dos elementos alocados em suas posições de forma independente; A inclusão de um elemento em uma determinada posição de um vetor implica a substituição do valor anteriormente existente; A exibição dos elementos pode ser necessária após a execução de uma determinada operação que envolva a alteração dos valores desses elementos. Para i 1 até 6 Faça Mostrar (Valores[i]) Fim-Para; Ca p. 6 - 12 Exemplo 2 Algoritmo Exemplo6.2 Var Teste1, Teste2 : vetor [1..10] de inteiros i : inteiro Início Para i 1 até 10 Faça Ler (Teste1[i]) Fim-Para Para i 1 até 10 Faça Se ( i mod 2 = 0 ) Então Teste2[i] Teste1[i] * 5 Senão Teste2[i] Teste1[i] + 5 Fim-Se Fim-Para Para i 1 até 10 Faça Mostrar (Teste1[i], Teste2[i]) Fim-Para Fim. Ca p. 6 - 13 Exemplo 2 Início Fim Teste1[ i ], Teste2[ i ] Teste2[ i ] Teste1[ i ] * 5 Teste1[ i ] i 1, 10, 1 i 1, 10, 1 i mod 2=0 Teste2[ i ] Teste1[ i ] + 5 .V. .F. i 1, 10, 1 Ca p. 6 - 14 Exemplo 2 import java.io.*; class Exemplo62 { public static void main ( String args [] ){ int teste1 [] = new int [10]; int teste2 [] = new int [10]; BufferedReader entrada; entrada = new BufferedReader( new InputStreamReader (System.in) ); try { for (int i = 0; i < 10; i++) { System.out.println(“Qual o numero ? ”); teste1[i] = Integer.parseInt( entrada.readLine() ); } Ca p. 6 - 15 for (int i = 0; i < 10; i++){ if ( i % 2 == 0) teste2[i] = teste1[i] * 5; else teste2[i] = teste1[i] + 5; } System.out.println(); System.out.println(“Resultado:”); for (int i = 0; i < 10; i++){ System.out.print(“teste1[” + i + “]= ” + teste1[i] + “\t”); System.out.println(“teste2[” + i + “] = ” + teste2[i]); } } catch (Exception e) { System.out.println(“Ocorreu um erro durante a leitura !”); } } } Exemplo 2 Ca p. 6 - 16 Conceito de Matrizes Estruturas indexadas que necessitam de mais que um índice para identificar um de seus elementos; São chamadas matrizes de dimensão n, onde n representa o número de índices requeridos; Uma matriz de dimensão 2 é uma matriz que exige dois índices para identificar um elemento em sua estrutura; A maioria das linguagens não impõe limite sobre a dimensão de uma estrutura indexada, ficando a cargo do programador utilizar tantos índices quanto considerar convenientes. Conceito de Matrizes Diagrama Ca p. 6 - 17 Ca p. 6 - 18 Declaração A declaração de uma matriz poderia ser feita da seguinte forma: Var Vendas : vetor [1..n,1..n] de inteiros Essa declaração é muito semelhante à declaração de vetor, porque o vetor é uma matriz de dimensão 1; A convenção mais comum é dizermos que o primeiro índice identifica uma linha de uma matriz bidimensional e o segundo, uma coluna; A linguagem Java não oferece suporte a arrays (vetores) multidimensionais; A mesma funcionalidade pode ser obtida com a declaração de um array de arrays, por exemplo: int [ ][ ]. Ca p. 6 - 19 Operações – Exemplo 3 Algoritmo Exemplo6.6 Var G : vetor [1..6, 1..2] de inteiros i, j : inteiro prod : real InícioPara i 1 até 6 Faça prod 1 Para j 1 até 2 Faça Ler (G [i, j]) prod prod * G [i, j] Fim-Para Mostrar (“Linha “, i, “ = “SQRT (prod)) Fim-Para Fim. Ca p. 6 - 20 Exemplo 3 Início Fim "Linha", i, " = ", SQRT(prod) prod 1 i 1, 6, 1 prod prod * G [ i, j ] j 1, 2, 1 G [ i, j ] Ca p. 6 - 21 Exemplo 3 import java.io.*; class Exemplo66{ public static void main (String args[ ]){ int G [ ][ ] = new int [6][2]; double prod; BufferedReader entrada; entrada = new BufferedReader( new InputStreamReader (System.in) ); try{ for (int i = 0; i < 6; i++){ prod = 1; for (int j = 0; j < 2; j++){ System.out.println ("Entre com valores de G-" + i + ", " + j); G [i][j] = Integer.parseInt ( entrada.readLine() ); prod = prod * G [i][j]; } System.out.println ("Linha-" + i + ": " + Math.sqrt (prod) ); } }catch (Exception e){ System.out.println ("Ocorreu um erro durante a leitura!"); } } } Ca p. 6 - 22 Exemplo 4 Ca p. 6 - 23 Exemplo 4 Ca p. 6 - 24
Compartilhar