Buscar

Exemplo completo com as operações de inserir, percorrer, remover e buscar sequencialmente.

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 
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais