Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
summerson

[Resolvido] Duvida com vetor unidimensional

Recommended Posts

Olá pessoal, tenho uma dúvida, estou criando um algoritmo que armazena 10 valores, (codigo do produto),valor do produto para compra e para venda... esse tipo de coisa.

Criei tudo tranquilo até chegar a parte em que dou a opção do usuário digitar o código do produto e aparecer os valores correspondente ao que foi armazenado.

como posso fazer essa parte?

dá pra usar operador relacional ?

tipo : "se codigodigitado== algum codigo armazenado na matriz...então..."

pensei em postar o código, mas nao coloquei porque quero raciocinar em como resolver...se alguem quiser eu posto....

abraço!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro você tem que armazenar estes valores em estruturas

#include <stdio.h>
struct codigo{
int codigo; [B]// o de consulta;[/B]
float valor; // o valor do produto correspondente
};

int main(){

codigo produto[10]; // a variável produto é do tipo codigo
int i, entrada;
[B]
/* agora vamos carregar os valores */[/B]


for(i=0;i<11;i++){
printf("\n informe o codigo");
scanf("%i",&produto[i].codigo);
printf("\n informe o valor do produto em R$ ");
scanf("%f",&produto[i].valor);
}
[B]
/* a variavel foi carregada a gora vamos fazer a busca*/[/B]

printf("\n informe um codigo de barras");
scanf("%i",&entrada);

for(i=0;i<11;i++){
if(entrada == produto[i].codigo){[B] /* se o valor digitado for igual ao codigo da iteração*/[/B]
printf(" o valor e R$ %f",produto[i].valor);
}[B]//fecha laço if[/B]
} //fecha laço for
}// fecha main

Eu não testei o código, talvés não funcione a implementação de busca por causa de alguma função na biblioteca, se não der certo, a minha sugestão é que você use a função strcmp() que está dentro da biblioteca string.h. esta função compara duas strings e retorna true se as duas matrizes foram idênticas ( o seu código no caso) e false se não for.

__________________

CORE I3 540 3.06GHZ / 500GB / 2GB DDR3 1333MHZ

COMPILADOR DEV C++

Compartilhar este post


Link para o post
Compartilhar em outros sites

PV Sobrinho fiz em C++ e o que voce fez na logica está parecido com o meu.

Só que nao usei struct pois nao aprendi ainda...r.srsrs

testei o teu código... funcionou... :lol:só que ele fez 11 vezes pois contou a partir do 0...rsrsr

Tem algum outro modo de fazer sem armazenar em estrutura.

segue o codigo abaixo...


/*Armazenar código, quantidade, valor de compra e valor de venda de 10 produtos.
A listagem pode ser de todos os produtos ou somente de um ao se digitar o código.*/
#include <iostream>
using namespace std;
int main()
{ //alterei de 10 para 2 para nao encher linguiça na hora de testar

int x,cod[2],quant[2],opcao,codigo;
float valorV[2],valorC[2];

cout<<"------# Cadastro de produtos #--------------\n";

for(x=0;x<2;x++)
{
cout<<"\nCodigo do produto: ";cin>>cod[x];
cout<<"\nQuantidade: ";cin>>quant[x];
cout<<"\nValor de compra: ";cin>>valorV[x];
cout<<"\nValor de venda: ";cin>>valorC[x];
}

cout<<"\nSeus dados foram registrados com sucesso!!!\n";
system("pause");
system("cls");
cout<<"\n-----Menu----\n(1)Exibe a listagem inteira.\n(2)Digitar o codigo do produto.\n";
cin>> opcao;

switch(opcao){
case 1:
for(x=0;x<2;x++)
{
cout<< "\n\nCodigo do produto"<<cod[x]<<endl;
cout<< "Quantidade: "<<quant[x]<<endl;
cout<< "Valor de compra: "<< valorC[x]<<endl;
cout<< "Valor de venda: "<<valorV[x]<<endl;
}break;
//codigo acima exibe a listagem
//---------------------------**---------------------**---------------------
case 2: cout<<"Digite o Codigo do produto: ";
cin>> codigo;
for(x=0;x<2;x++)
if(codigo ==cod[x])
{
cout<< "\n\nCodigo do produto"<<cod[x]<<endl;
cout<< "Quantidade: "<<quant[x]<<endl;
cout<< "Valor de compra: "<< valorC[x]<<endl;
cout<< "Valor de venda: "<<valorV[x]<<endl;
}break;
default: cout<<"codigo invalido";}
cin.get();cin.get();

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer usando dois vetores, um com os preços e outro com o código, o problema é que você teria que manter os dois vetores bonitinhos e organizados, o jeito postado é mais prático, você usa só um vetor e só se preocupa com 1 índice. Agora esse seria o jeito C, em C++ você poderia usar uma estrutura de dados procuraria via .find(), mas pra isso você teria que aprender STL containers...

Compartilhar este post


Link para o post
Compartilhar em outros sites

CAIO , SOBRINO , muito obrigado pela força...

eu errei bobeira de novo... este que postei aí em cima esta correto....:D ...se quiser faz um teste pra ver...

não precisou usar outras funções....

foi bom saber que tem outros modos.. vou pesquisar...

abraço!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×