Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
/* Exemplo04 Objetivo: Operações básicas para listas lineares sequenciais (vetores), não ordenadas Descrição: Considerando o programa exemplo03, incluir, mais duas funções: 1 - Busca sequencial, como seguinte protótipo: int buscarSequencial(float [], float , int ); 2 - Remoção de elemento da estrutura (vetor), com seguinte protótipo: void remover(float [], float , int &); Data: 02/09/2015 */ #include <cstdlib> #include <iostream> using namespace std; void inserir(float v[], float valor, int &n, int tamanho); void percorrer(float v[], int n); int buscarSequencial(float v[], float valor, int n); void remover(float v[], float valor, int&n); int main(int argc, char *argv[]) { float v[40]; int n;//quantidade int posicao;//posição do valor de busca no vetor float valor; float xavDeBusca; float valorARemover; n = 0; cout << "\nComposicao do vetor." << endl; for (int i = 0; i <= 5; i++) { cout << "\nEntre com o valor " << i + 1 << ": "; cin >> valor; inserir(v,valor,n,40); } percorrer (v,n); cout<< "\Entre com a chave de busca: "; cin>> xavDeBusca; posicao = buscarSequencial(v,xavDeBusca,n); if (posicao>= 0) cout<< "Elemento encontrado na posicao = " <<posicao << endl; else cout<< "Elemento não encontrado " <<endl; cout<< "\Entre com o valor a ser removido: "; cin>> valorARemover; remover(v,valorARemover,n); percorrer (v,n); system("PAUSE"); return EXIT_SUCCESS; } void inserir(float v[], float valor, int &n, int tamanho) { if (tamanho == n) cout<< "ERRO: Lista cheia."; else { v[n] = valor; n++; } } void percorrer(float v[], int n) { for (int i = 0; i < n; i++) cout<< " " << v[i] << endl; } int buscarSequencial(float v[], float valor, int n) { for (int i = 0; i < n; i++) { if (v[i] == valor) return i; // achou - retorna o índice do dado } return -1; // não achou - retorna um índice impossível } void remover(float v[], float valor, int&n) { if (n == 0) // Estre trecho caracteriza a operação que testa lista vazia { cout<< "ERRO : lista vazia." <<endl; return; // Professor, explicar return; } int posicao = buscarSequencial(v,valor,n); if (posicao == -1) { cout<< "ERRO : valor não encontrado." <<endl; return; } // copia o último para a posição do valor a ser removido v[posicao] = v[n-1]; n--; // ajusta a quantidade de elementos em v }
Compartilhar