Ir ao conteúdo
  • Cadastre-se

josilva00

Membro Júnior
  • Posts

    5
  • Cadastrado em

  • Última visita

Reputação

3
  1. Já tinha postado aqui sobre este projeto sobre gerir uma mercearia, mas o post foi enterrado e nao consegui resolver o problema Portanto, meu programa precisa de 3 listas encadeadas, uma para os produtos da mercearia, uma para cada venda e outra para cada item de uma venda. Por exemplo: Primeiro, adiciono produtos à lista de produtos. Em segundo lugar, quero fazer uma venda, esse método que faz parte da lista de vendas precisa chamar um método da lista de produtos que permita escolher um produto e esse método em si precisa chamar um método da lista de itens de vendas para adicioná-lo lá. Eu só não sei como fazer isso correctamente. Aqui vai o header: #ifndef _MINIPROJETO_H #define _MINIPROJETO_H #include <iostream> #include <string> using namespace std; class no_produto { public: unsigned int codigo; char nome[51]; char marca[51]; char tipo[51]; double preco; no_produto* prox; //referencia para o proximo no }; class lista_produto { private: no_produto* cabeca; public: lista_produto() { cabeca=NULL; } ~lista_produto() { no_produto *atual, *prox; atual=cabeca; while(atual!=NULL) { prox=atual->prox; delete atual; atual=prox; } } void novoProduto(unsigned int codigo,char nome[],char marca[],char tipo[],double preco); void elimina(unsigned int codigo); void mostraProdutos(void); void mostraProduto(unsigned int codigo); void modificaPVP(unsigned int codigo); unsigned int contaProdutos(void); void escolheProduto(unsigned int codigoVenda,lista_produto* aux,lista_itens_vendas* aux1); double devolvePreco(unsigned int codigo); }; class no_vendas { public: unsigned int codigoVenda, dia, mes, ano, numeroItens; double precoTotal; no_vendas* proxi; //referencia para o proximo no }; class lista_vendas { private: no_vendas* cabecaV;//1º public: lista_vendas() { cabecaV=NULL; } ~lista_vendas() { no_vendas *atual, *proxi; atual=cabecaV; while(atual!=NULL) { proxi=atual->proxi; delete atual; atual=proxi; } } void novaVenda(unsigned int codigoVenda,lista_produto* aux, lista_itens_vendas* aux1); void mostraVenda(unsigned int codigoVenda); void mostraVendas(void); void mostraPrecoTotal(unsigned int codigoVenda); }; class no_itens_vendas { public: unsigned codigoVendaI,codigoProduto,quantidade; double custoTotal; no_itens_vendas* proxim; //referencia para o proximo no }; class lista_itens_vendas { private: no_itens_vendas* cabecaIV; public: lista_itens_vendas() { cabecaIV=NULL; } ~lista_itens_vendas() { no_itens_vendas *atual, *proxim; atual=cabecaIV; while(atual!=NULL) { proxim=atual->proxim; delete atual; atual=proxim; } } void novoItemVenda(unsigned int codigoProduto, unsigned int quantidade, unsigned int codigoVendaI); double devolveCustodaVenda(unsigned int codigoVenda); unsigned int contaItensVenda(unsigned int codigoVenda); }; #endif ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Aqui os metodos: #include <iostream> #include "miniprojeto.h" using namespace std; void lista_produto::novoProduto(unsigned int codigo,char nome[],char marca[],char tipo[],double preco) { no_produto *novo=new no_produto; no_produto *atual; int i; novo->codigo=codigo; for(i=0; nome[i] != '\0'; i++) { novo->nome[i] = nome[i]; } for(i=0; marca[i] != '\0'; i++) { novo->marca[i] = marca[i]; } for(i=0; tipo[i] != '\0'; i++) { novo->tipo[i] = tipo[i]; } novo->preco=preco; novo->prox=NULL; if(cabeca==NULL) { cabeca=novo; }else { atual=cabeca; while(atual->prox!=NULL) atual=atual->prox; atual->prox=novo; } } void lista_produto::elimina(unsigned int codigo) { no_produto *atual=cabeca;//comeco pela cabeca no_produto *anterior; if(cabeca==NULL) return; else{ anterior=NULL; while(atual!=NULL){ if(atual->codigo==codigo){ if(anterior==NULL) cabeca=atual->prox; else anterior->prox=atual->prox; delete(atual); return; } anterior=atual; atual=atual->prox; } } } void lista_produto::mostraProdutos() { no_produto *atual=cabeca; if(cabeca==NULL) cout << "Lista Vazia..." << endl; else { while(atual!=NULL) { cout << atual->codigo << ", "<< atual->nome << ", "<< atual->marca << ", "<< atual->tipo << ", "<< atual->preco << endl; // tarefa a fazer em cada nó atual = atual->prox; } } } void lista_produto::mostraProduto(unsigned int codigo) { no_produto *atual=cabeca; if(cabeca==NULL) cout << "Lista Vazia..." << endl; else { while(atual!=NULL) { if(atual->codigo==codigo) { cout << atual->codigo << ", "<< atual->nome << ", "<< atual->marca << ", "<< atual->tipo << ", "<< atual->preco << endl; return ; } atual = atual->prox; } cout << "Produto nao encontrado" << endl; } } void lista_produto::modificaPVP(unsigned int codigo) { no_produto *atual=cabeca;//comeco pela cabeca if(cabeca==NULL) return; else{ while(atual!=NULL) { if(atual->codigo==codigo) { double preco; cout<<"Insira o novo preco:"; cin>>preco; atual->preco=preco; cout<<"\nSucesso\n"; return; } atual=atual->prox; } cout << "Produto nao encontrado" << endl; } } unsigned int lista_produto::contaProdutos() { no_produto* aux=cabeca; unsigned int count=0; while (aux != NULL) { count++; aux = aux->prox; } return count; } void lista_produto::escolheProduto(unsigned int codigoVenda,lista_produto* aux,lista_itens_vendas* aux1) { aux.mostraProdutos(); unsigned int codigo, quantidade; cout<<"Escolha um produto(codigo):"; cin>>codigo; cout<<"\nQuantos deste produto quer adicionar:"; cin>>quantidade; if(quantidade==0) return; aux1.novoItemVenda(codigo,quantidade, codigoVenda); } double lista_produto::devolvePreco(unsigned int codigo) { no_produto *atual=cabeca;//comeco pela cabeca if(cabeca==NULL) return 0; else { while(atual!=NULL) { if(atual->codigo==codigo) { return atual->preco; } atual=atual->prox; } } } void lista_vendas::novaVenda(unsigned int codigoVenda,lista_produto* aux, lista_itens_vendas* aux1) { no_vendas *novo=new no_vendas; no_vendas *atual; unsigned int n; cout<<"Quantos tipos de produtos quer adicionar a venda:"; cin>>n; for(int i=0;i<n;i++) { aux.escolheProduto(codigoVenda,aux1); } novo->codigoVenda=codigoVenda; novo->numeroItens=n; novo->precoTotal=aux1.devolveCustodaVenda(codigoVenda); cout<<"Insira o dia:"; cin>>novo->dia; cout<<"Insira o mes:"; cin>>novo->mes; cout<<"Insira o ano:"; cin>>novo->ano; novo->proxi=NULL; if(cabecaV==NULL) { cabecaV=novo; } else { atual=cabecaV; while(atual->proxi!=NULL) { atual=atual->proxi; } atual->proxi=novo; } } void lista_vendas::mostraVenda(unsigned int codigoVenda) { no_vendas *atual=cabecaV; if(cabecaV==NULL) cout << "Nao existe" << endl; else { while(atual!=NULL) { if(atual->codigoVenda==codigoVenda) { cout << atual->codigoVenda << ", "<< atual->dia << "."<< atual->mes << "."<< atual->ano << ", "<< atual->numeroItens<< ", "<<atual->precoTotal<< endl; return; } atual = atual->proxi; } cout<<"Venda nao encontrada"; } } void lista_vendas::mostraVendas() { no_vendas *atual=cabecaV; if(cabecaV==NULL) cout << "Nao existem vendas" << endl; else { while(atual!=NULL) { cout << atual->codigoVenda << ", "<< atual->dia << "."<< atual->mes << "."<< atual->ano << ", "<< atual->numeroItens<< ", "<<atual->precoTotal<< endl; } atual = atual->proxi; } } void lista_vendas::mostraPrecoTotal(unsigned int codigoVenda) { no_vendas *atual=cabecaV; if(cabecaV==NULL) cout << "Nenhuma venda" << endl; else { while(atual!=NULL) { if(atual->codigoVenda==codigoVenda) { cout<<atual->precoTotal; break; } atual = atual->proxi; } } } double lista_itens_vendas::devolveCustodaVenda(unsigned int codigoVenda) { no_itens_vendas *atual=cabecaIV; double p=0; if(cabecaIV==NULL) cout << "Nao existe" << endl; else { while(atual!=NULL) { if(atual->codigoVendaI==codigoVenda) { p=p+atual->custoTotal; } atual = atual->proxim; } return p; } } unsigned int lista_itens_vendas::contaItensVenda(unsigned int codigoVenda) { no_itens_vendas *atual=cabecaIV; unsigned int p=0; if(cabecaIV==NULL) cout << "Nao existe" << endl; else { while(atual!=NULL) { if(atual->codigoVendaI==codigoVenda) { p=p+1; } atual = atual->proxim; } return p; } } void lista_itens_vendas::novoItemVenda(unsigned int codigoProduto, unsigned int quantidade, unsigned int codigoVendaI) { no_itens_vendas *novo=new no_itens_vendas; no_itens_vendas *atual; lista_produto aux; atual->codigoProduto=codigoProduto; atual->quantidade=quantidade; atual->codigoVendaI=codigoVendaI; double preco=aux.devolvePreco(codigoProduto); atual->custoTotal=preco*quantidade; novo->proxim=NULL; if(cabecaIV==NULL) { cabecaIV=novo; }else { atual=cabecaIV; while(atual->proxim!=NULL) atual=atual->proxim; atual->proxim=novo; } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// E aqui o main: #include <iostream> #include "miniprojeto.h" using namespace std; int main() { int op; unsigned int c; char n[51]; char m[51]; char t[51]; double p; lista_produto a; lista_vendas b; lista_itens_vendas d; while(1) { cout << "-------------------------------------------------" << endl; cout << "|\tPrograma de Gestao de Supermercados\t|"<< endl; cout << "-------------------------------------------------" << endl << endl; cout << "Autores: \n\tJoao Moitas 2018297016\n\tJose Silva 2018296125" << endl; cout << "Comece por selecionar uma das seguintes opções" << endl << endl; cout << "1-> Produtos" << endl; cout << "2-> Venda" << endl; cout << "3-> Inventario" << endl; cout << "4-> Faturacao" << endl; cout << "5-> Sair" << endl << endl; cin >> op; switch (op) { case 1: { int op2; cout<< "o que pretende fazer?" << endl; cout << "1- Inserir produto." << endl; cout << "2- Modificar PVP." << endl; cout << "3- Apagar Produto." << endl; cin >> op2; switch (op2) { case 1: { cout<<"insira um novo produto:\n"; cout<<"codigo:"; cin>>c; cout<<endl; cout<<"nome:"; cin>>n; cout<<endl; cout<<"marca:"; cin>>m; cout<<endl; cout<<"tipo:"; cin>>t; cout<<endl; cout<<"preco:"; cin>>p; cout<<endl; a.novoProduto(c,n,m,t,p); cout<< "Adicionado com sucesso:"; a.mostraProduto(c); cout<<endl; break; } case 2: { unsigned int c2; cout<<"Qual e o produto que quer mudar:"<<endl; a.mostraProdutos(); cout<<"Codigo:"; cin>>c2; cout<<endl; a.modificaPVP(c2); a.mostraProduto(c2); break; } case 3: { unsigned int c3; cout<<"Qual e o produto que quer eliminar:"<<endl; a.mostraProdutos(); cout<<"Codigo:"; cin>>c3; a.elimina(c3); break; } break; } break; } case 2: { unsigned int cV; cout<<"Insira um codigo para esta venda:"; cin>>cV; b.novaVenda(cV,b,d); break; } case 3: { int op3; cout<<"1) Inventario Total\n"; cout<<"2) Inventario Parcial\n"; cout<<"Escolha:"; cin>>op3; switch (op3) { case 1: { a.mostraProdutos(); break; } case 2: { char nome[51]; cout<<"Qual e o produto que quer procurar(nome):"; cin>>nome; break; //fazer funçao de pesquisa por nome } break; } break; } case 4: { b.mostraVendas(); } case 5: { cout<<"\nGoodbye"<<endl; return 0; } return 0; } } } aqui na imagem em baixo estão os erros que me esta dando:
  2. @herbertbahia ja mudei isso lista_itens_vendas c; quando meto class lista_vendas: public lista_itens_vendas, public lista_produto em vez de so class lista_vendas da 2*erro:expected class-name before','token adicionado 3 minutos depois @herbertbahia também atualizei o codigo no post, se quiser ver
  3. @herbertbahia boas e obrigado, compus alguns erros mas levou a outros
  4. @DiF @DiF ok, obrigado, ja editei e consegui resolver alguns dos erros
  5. Nos últimos dias, tenho estado a trabalhar num programa que gerencia uma mercearia usando listas ligadas. header: #ifndef _MINIPROJETO_H #define _MINIPROJETO_H #include <iostream> #include <string> using namespace std; class no_produto { public: unsigned int codigo; char nome[51]; char marca[51]; char tipo[51]; double preco; no_produto* prox; //referencia para o proximo no }; class lista_produto { private: no_produto* cabeca;//1º public: lista_produto() { cabeca=NULL; } ~lista_produto() { no_produto *atual, *prox; atual=cabeca; while(atual!=NULL) { prox=atual->prox; delete atual; atual=prox; } } void novoProduto(unsigned int codigo,char nome[],char marca[],char tipo[],double preco); void elimina(unsigned int codigo); void mostraProdutos(void); void mostraProduto(unsigned int codigo); void modificaPVP(unsigned int codigo); unsigned int contaProdutos(void); void escolheProduto(unsigned int codigoVenda); double devolvePreco(unsigned int codigo); }; class no_vendas { public: unsigned int codigoVenda, dia, mes, ano, numeroItens; double precoTotal; no_vendas* proxi; //referencia para o proximo no }; class lista_vendas { private: no_vendas* cabecaV;//1º public: lista_vendas() { cabecaV=NULL; } ~lista_vendas() { no_vendas *atual, *proxi; atual=cabecaV; while(atual!=NULL) { proxi=atual->proxi; delete atual; atual=proxi; } } void novaVenda(unsigned int codigoVenda); void mostraVenda(unsigned int codigoVenda); void mostraVendas(void); void mostraPrecoTotal(unsigned int codigoVenda); }; class no_itens_vendas { public: unsigned codigoVendaI,codigoProduto,quantidade; double custoTotal; no_itens_vendas* proxim; //referencia para o proximo no }; class lista_itens_vendas { private: no_itens_vendas* cabecaIV; public: lista_itens_vendas() { cabecaIV=NULL; } ~lista_itens_vendas() { no_itens_vendas *atual, *proxim; atual=cabecaIV; while(atual!=NULL) { proxim=atual->proxim; delete atual; atual=proxim; } } void novoItemVenda(unsigned int codigoProduto, unsigned int quantidade, unsigned int codigoVendaI); double devolveCustodaVenda(unsigned int codigoVenda); unsigned int contaItensVenda(unsigned int codigoVenda); }; metodos: #include <iostream> #include "miniprojeto.h" using namespace std; void lista_produto::novoProduto(unsigned int codigo,char nome[],char marca[],char tipo[],double preco) { no_produto *novo=new no_produto; no_produto *atual; int i; novo->codigo=codigo; for(i=0; nome[i] != '\0'; i++) { novo->nome[i] = nome[i]; } for(i=0; marca[i] != '\0'; i++) { novo->marca[i] = marca[i]; } for(i=0; tipo[i] != '\0'; i++) { novo->tipo[i] = tipo[i]; } novo->preco=preco; novo->prox=NULL; if(cabeca==NULL) { cabeca=novo; }else { atual=cabeca; while(atual->prox!=NULL) atual=atual->prox; atual->prox=novo; } } void lista_produto::elimina(unsigned int codigo) { no_produto *atual=cabeca;//comeco pela cabeca no_produto *anterior; if(cabeca==NULL) return; else{ anterior=NULL; while(atual!=NULL){ if(atual->codigo==codigo){ if(anterior==NULL) cabeca=atual->prox; else anterior->prox=atual->prox; delete(atual); return; } anterior=atual; atual=atual->prox; } } } void lista_produto::mostraProdutos() { no_produto *atual=cabeca; if(cabeca==NULL) cout << "Lista Vazia..." << endl; else { while(atual!=NULL) { cout << atual->codigo << ", "<< atual->nome << ", "<< atual->marca << ", "<< atual->tipo << ", "<< atual->preco << endl; // tarefa a fazer em cada nó atual = atual->prox; } } } void lista_produto::mostraProduto(unsigned int codigo) { no_produto *atual=cabeca; if(cabeca==NULL) cout << "Lista Vazia..." << endl; else { while(atual!=NULL) { if(atual->codigo==codigo) { cout << atual->codigo << ", "<< atual->nome << ", "<< atual->marca << ", "<< atual->tipo << ", "<< atual->preco << endl; return ; } atual = atual->prox; } cout << "Produto nao encontrado" << endl; } } void lista_produto::modificaPVP(unsigned int codigo) { no_produto *atual=cabeca;//comeco pela cabeca if(cabeca==NULL) return; else{ while(atual!=NULL) { if(atual->codigo==codigo) { double preco; cout<<"Insira o novo preco:"; cin>>preco; atual->preco=preco; cout<<"\nSucesso\n"; return; } atual=atual->prox; } cout << "Produto nao encontrado" << endl; } } unsigned int lista_produto::contaProdutos() { no_produto* aux=cabeca; unsigned int count=0; while (aux != NULL) { count++; aux = aux->prox; } return count; } void lista_produto::escolheProduto(unsigned int codigoVenda) { mostraProdutos(); unsigned int codigo, quantidade; cout<<"Escolha um produto(codigo):"; cin>>codigo; cout<<"\nQuantos quer adicionar:"; cin>>quantidade; if(quantidade==0) return; novoItemVenda(codigo,quantidade, codigoVenda); } double lista_produto::devolvePreco(unsigned int codigo) { no_produto *atual=cabeca;//comeco pela cabeca if(cabeca==NULL) return 0; else { while(atual!=NULL) { if(atual->codigo==codigo) { return atual->preco; } atual=atual->prox; } } } void lista_vendas::novaVenda(unsigned int codigoVenda) { no_vendas *novo=new no_vendas; no_vendas *atual; unsigned int n; cout<<"Quantos produtos quer adicionar a venda:"; cin>>n; for(int i=0;i<n;i++) { escolheProduto(codigoVenda); } novo->codigoVenda=codigoVenda; novo->numeroItens=n; novo->precoTotal=devolveCustodaVenda(codigoVenda); cout<<"Insira o dia:"; cin>>novo->dia; cout<<"Insira o mes:"; cin>>novo->mes; cout<<"Insira o ano:"; cin>>novo->ano; novo->proxi=NULL; if(cabecaV==NULL) { cabecaV=novo; } else { atual=cabecaV; while(atual->proxi!=NULL) { atual=atual->proxi; } atual->proxi=novo; } } void lista_vendas::mostraVenda(unsigned int codigoVenda) { no_vendas *atual=cabecaV; if(cabecaV==NULL) cout << "Nao existe" << endl; else { while(atual!=NULL) { if(atual->codigoVenda==codigoVenda) { cout << atual->codigoVenda << ", "<< atual->dia << "."<< atual->mes << "."<< atual->ano << ", "<< atual->numeroItens<< ", "<<atual->precoTotal<< endl; return; } atual = atual->proxi; } cout<<"Venda nao encontrada"; } } void lista_vendas::mostraVendas() { no_vendas *atual=cabecaV; if(cabecaV==NULL) cout << "Nao existem vendas" << endl; else { while(atual!=NULL) { cout << atual->codigoVenda << ", "<< atual->dia << "."<< atual->mes << "."<< atual->ano << ", "<< atual->numeroItens<< ", "<<atual->precoTotal<< endl; } atual = atual->proxi; } } void lista_vendas::mostraPrecoTotal(unsigned int codigoVenda) { no_vendas *atual=cabecaV; if(cabecaV==NULL) cout << "Nenhuma venda" << endl; else { while(atual!=NULL) { if(atual->codigoVenda==codigoVenda) { cout<<atual->precoTotal; break; } atual = atual->proxi; } } } double lista_itens_vendas::devolveCustodaVenda(unsigned int codigoVenda) { no_itens_vendas *atual=cabecaIV; double p=0; if(cabecaIV==NULL) cout << "Nao existe" << endl; else { while(atual!=NULL) { if(atual->codigoVendaI==codigoVenda) { p=p+atual->custoTotal; } atual = atual->proxim; } return p; } } unsigned int lista_itens_vendas::contaItensVenda(unsigned int codigoVenda) { no_itens_vendas *atual=cabecaIV; unsigned int p=0; if(cabecaIV==NULL) cout << "Nao existe" << endl; else { while(atual!=NULL) { if(atual->codigoVendaI==codigoVenda) { p=p+1; } atual = atual->proxim; } return p; } } void lista_itens_vendas::novoItemVenda(unsigned int codigoProduto, unsigned int quantidade, unsigned int codigoVendaI) { no_itens_vendas *novo=new no_itens_vendas; no_itens_vendas *atual; atual->codigoProduto=codigoProduto; atual->quantidade=quantidade; atual->codigoVendaI=codigoVendaI; atual->custoTotal=quantidade*(devolvePreco(codigoProduto)); novo->proxim=NULL; if(cabecaIV==NULL) { cabecaIV=novo; }else { atual=cabecaIV; while(atual->proxim!=NULL) atual=atual->proxim; atual->proxim=novo; } } E por fim o main(ainda nao acabado): #include <iostream> #include "miniprojeto.h" using namespace std; void mainMenu() { cout << "-------------------------------------------------" << endl; cout << "|\tPrograma de Gestao de Supermercados\t|"<< endl; cout << "-------------------------------------------------" << endl << endl; cout << "Comece por selecionar uma das seguintes opções" << endl << endl; cout << "1-> Produtos" << endl; cout << "2-> Venda" << endl; cout << "3-> Inventario" << endl; cout << "4-> Faturacao" << endl; cout << "5-> Sair" << endl << endl; } int main() { int op; unsigned int c; char n[51]; char m[51]; char t[51]; double p; lista_produto a; lista_vendas b; lista_itens_vendas d; mainMenu(); cin >> op; switch (op) { case 1: { int op2; cout<< "o que pretende fazer?" << endl; cout << "1- Inserir produto." << endl; cout << "2- Modificar PVP." << endl; cout << "3- Apagar Produto." << endl; cin >> op2; switch (op2) { case 1: { cout<<"insira um novo produto:\n"; cout<<"codigo:"; cin>>c; cout<<endl; cout<<"nome:"; cin>>n; cout<<endl; cout<<"marca:"; cin>>m; cout<<endl; cout<<"tipo:"; cin>>t; cout<<endl; cout<<"preco:"; cin>>p; cout<<endl; a.novoProduto(c,n,m,t,p); cout<< "Adicionado com sucesso:"; a.mostraProduto(c); cout<<endl; } case 2: { unsigned int c2; cout<<"Qual e o produto que quer mudar:"<<endl; a.mostraProdutos(); cout<<"Codigo:"; cin>>c2; cout<<endl; a.modificaPVP(c2); a.mostraProduto(c2); } case 3: { unsigned int c3; cout<<"Qual e o produto que quer eliminar:"<<endl; a.mostraProdutos(); cout<<"Codigo:"; cin>>c3; a.elimina(c3); } } } case 2: { unsigned int cV; cout<<"Insira um codigo para esta venda:"; cin>>cV; b.novaVenda(cV); } case 3: { int op3; cout<<"1) Inventario Total\n"; cout<<"2) Inventario Parcial\n"; cout<<"Escolha:"; cin>>op3; switch (op3) { case 1: { a.mostraProdutos(); } case 2: { char nome[51]; cout<<"Qual e o produto que quer procurar(nome):"; cin>>nome; //fazer funçao de pesquisa por nome } } case 4: { } case 5: { return 0; } } return 0; } } Eu tenho estes erros: Agradecia se alguém me conseguisse ajudar, obrigado.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!