Ir ao conteúdo
  • Cadastre-se

arfneto

Membro Pleno
  • Posts

    6.207
  • Cadastrado em

  • Última visita

Tópicos solucionados

  1. O post de arfneto em Melhor configurar meu modem para minha conexao foi marcado como solução   
    melhor "estabilidade"  imagino.
     
    Acho que está ok assim. Não acho que precise mudar nada aí nessas coisas.
  2. O post de arfneto em Verificação de códigos de livros foi marcado como solução   
    @Mr-86 Seu programa é praticamente um programa em C; Não está bom e vai ter um trabalho do inferno para terminar assim. Alguns dos problemas eu já te disse.
     
    Um dos problemas que teve você não explicou: não sei como chegou aquele código de basic.string.h. E você também não explicou mesmo eu tendo perguntado.
     
    C++ é muito mais expressiva que C. É muito mais fácil escrever as coisas, criar representações. Você sõ escreveu C. E interativo ainda.
     
    Porque seu código não compila? 
     
    seu compilar está mal configurado. provavelmente usando C++ de 98, tipo 23 anos atrás. Para usar and precisa de algo mais novo. E não tem sentido usar essa versão de C++ se está aprendendo. Faça o simples e use C++20 ou C++17. São 20 anos afinal. if (!isdigit(codigo[j]) and codigo[j] != '-') { cout << "Esse ISBN não e valido " << endl; break; }  
    essa linha aí. Pode usar && mas é claro que and é mais legível. O pior é o not. Claro que é um porre achar os not no meio de uma expressão já que o operador é ´!´. Mas para usar and, or e not precisa de C++14 eu acho. Ou C++17. Teste aí. Basta usar o -std=C++17 ou --std=C++14
     
    Preste atenção às mensagens do compilador antes de tudo.
     
    Veja o que o meu disse sobre seu programa na linha do and...
     
    (55,37): error C2146: syntax error: missing ')' before identifier 'and' (55,37): error C2065: 'and': undeclared identifier (55,41): error C2146: syntax error: missing ';' before identifier 'codigo' (55,57): error C2059: syntax error: ')'  
    Pois é.
     
     
    1>C:\Users\arfne\source\repos\chp22-0902-livros\original.cpp(126): error C4716: 'procurar': must return a value  
    Porque será?
     
    Sua função não devia retornar um int? Mas sequer tem um return...
     
    int procurar(string isbn[], int n, int& proc) { string codigo; do { cout << "Digite o ISBN " << endl; getline(cin, codigo); } while (codigo.size() == 0); for (int i = 0; i <= n; i++) { if (codigo == isbn[i]) { proc = i; } else { proc = 1; } } }  
    E porque não retorna o que está usando em proc? Pra que uma referência aí?
     
    Esse código faz a mesma coisa, seja o que for:
     
    int procurar(string isbn[], int n) { string codigo; int proc = 0; do { cout << "Digite o ISBN " << endl; getline(cin, codigo); } while (codigo.size() == 0); for (int i = 0; i <= n; i++) { if (codigo == isbn[i]) proc = i; else proc = 1; } return proc; }  
    E chama assim na única vez em que usa isso
     
    proc = procurar(isbn, n);  
    Talvez concorde que é até mais fácil de ler.
     
     
    e esses:
     
    (141): warning C4700: uninitialized local variable 'n' used (165): warning C4700: uninitialized local variable 'resp' used  
    Parece que está usando umas variáveis não inicializadas. E está mesmo.
     
    Arrume isso. E as outras coisas que eu sugeri.
     
    Seu programa gira em torno de um acervo. Acha que se tivesse uma classe Acervo  com essas coisas dentro seu programa ficaria bem mais fácil? Ficaria. Muito. 
     
    Não use system(). Nunca. Para nada. Não estará fazendo nada. Não vai aprender nada. E é proibido em toda parte mesmo 😉 então não adianta.
     
    Eis o código igual mas compilando a partir do que está nas mensagens do compilador
     
    #include <iostream> #include <string> #include <iomanip> using namespace std; #define max 10 int leiaresp(); void leiaquant(int n, int quant[]); void leianome(int& n, string acervo[]); void leiautor(string autores[], int n); void leiaisbn(string isbn[], int n); void ordenar(string acervo[], int n); int procurar(string isbn[], int n, int& proc); int leiaresp() { int resp; do { cout << "qual acao deseja realizar ??" << endl << "1 Cadrastar um livro" << endl << "2 Procurar um livro" << endl << "3 Excluir um livro " << endl << "4 Aquisicao " << endl << "5 Relatorio" << endl << "0 Encerrar programa" << endl; cin >> resp; cin.ignore(); } while (resp < 0 && resp >5); return resp; } void leianome(int& n, string acervo[]) { string nome; do { cout << "Digite o nome do livro " << endl; getline(cin, nome); } while (nome.size() == 0); acervo[n] = nome; n++; } void leiautor(string autores[], int n) { string nome; do { cout << "Digite o nome completo do autor: " << endl; getline(cin, nome); } while (nome.size() == 0); autores[n] = nome; } void leiaisbn(string isbn[], int n) { string codigo; do { cout << "Digite o ISBN do livro, contendo 13 digitos e '-' " << endl; getline(cin, codigo); for (int j = 0; j <= codigo.size(); j++) { if (!isdigit(codigo[j]) and codigo[j] != '-') { cout << "Esse ISBN não e valido " << endl; break; } } } while (codigo.size() == 0); for (int i = 0; i <= n; i++) { if (codigo == isbn[i]) { cout << "Esse livro ja existe " << endl; break; } } } void leiaquant(int n, int quant[]) { int qtnd; do { cout << "Digiti a quantidade " << endl; cin >> qtnd; cin.ignore(); } while (qtnd <= 0); quant[n] = qtnd; } void ordenar(string acervo[], int n) { string nome, aux; int i, j, k; for (int p = 0; p <= n; p++) { nome = acervo[p]; for (int k = 1; k <= n; k++) { aux = acervo[k]; for (int i = 0; i <= nome.size(); i++) { for (int j = 0; j <= aux.size(); j++) { if (nome[i] < aux[j]) { acervo[p] = nome; acervo[k] = aux; } else { acervo[p] = aux; acervo[k] = nome; } } } } } } int procurar(string isbn[], int n) { string codigo; int proc = 0; do { cout << "Digite o ISBN " << endl; getline(cin, codigo); } while (codigo.size() == 0); for (int i = 0; i <= n; i++) { if (codigo == isbn[i]) proc = i; else proc = 1; } return proc; } int main() { string nome, acervo[max] = {}, autores[max] = {}, codigo, isbn[max] = {}; int qtnd = 0, quant[max], proc; int n = 0; int resp = 0; do { int resp = leiaresp(); switch (resp) { case 1: { leiaisbn(isbn, n); leianome(n, acervo); leiautor(autores, n); leiaquant(n, quant); ordenar(acervo, n); //system("pause"); break; } case 2: { proc = procurar(isbn, n); cout << isbn[proc] << endl << acervo[proc] << endl << autores[proc] << endl << quant[proc] << endl; if (proc == -1) { cout << "Este Livro não esta nos registros. " << endl; } system("pause"); break; } } system("clear||cls"); } while (resp != 0); return 0; }  
     
     
     
  3. O post de arfneto em montar uma rede compartilhada em casa foi marcado como solução   
    @HellMans nada mais. Claro que vai configurar a porta no roteador, usuario, senha, o mínimo. 
     
    Coloca o disco no adaptador que custa uns 30 reais
     

     
     
     
     
    Liga o adaptador no roteador, qualquer um que tenha isso
     
     

     
    Configura no menu do roteador
     

     
    É conveniente porque é barato e todo dispositivo na rede pode acessar. Filmes, música, fotos, mesmo na TV via Plex. Alguns roteadores tem porta USB 3.0 até. E um pen-drive 64/128/256GB pode custar perto de 40/100/300...
  4. O post de arfneto em Não consigo Ligar o PC pela Alexa com sistema WOL(Wake On Lan) foi marcado como solução   
    Não é verdade.
     
    Algumas placas novas não apresentam esse recursos, como antes era assim. Umas poucas e das mais baratas, me lembro de uma da Intelbras de 2020 cujo driver não oferece isso.
     
    No geral isso está disponível, Em muitos equipamentos novos isso apenas não é habilitado por padrão. E essa é uma das poucas razões de alguém precisar entrar naquelas tais "configurações avançadas do adaptador de rede" no sistema. 
     
    Se já funcionava veja o que acontece na rede com pacotes via UDP na porta 9. É o padrão de WOL.
     
    Hoje em dia muita gene enterra isso ao ligar roteadores em cascata pela porta WAN sem entender as implicações: funciona em um ponto da rede e em outro não. Ou  nem funciona. É o mesmo caso com lampadaas e tomadas smart. 
     
    Siga o caminho dos pacotes. Instale algo que gere esses pacotes e envie para o PC fora do ambiente de automação. Pode ser algo simples e grátis como o programa Teamviewer que tem como gerar esses pacotes na LAN.
  5. O post de arfneto em Como descobrir o IP colocado no Switch foi marcado como solução   
    porque vai acessar o tal switch na web se tem acesso a rede local?
     
    Se não sabe o endereço dele na rede provavelmente não sabe a senha também, certo?
     
    Tentou o suporte da HP?
    https://support.hpe.com/hpesc/public/docDisplay?docId=c04622741
     

     
     
     
     
     
     
    Se voltar o switch para a configuração de fábrica pode começar por o que diz o manual do fabricante...
     
     
     
     
     
     
     
    Isso não é uma solução. É uma máscara. A solução é identificar o que gera tráfego para as impressoras. Tente a porta 9100 antes de tudo
     
     
  6. O post de arfneto em Como eu faço para dividir o resultado de duas funções foi marcado como solução   
    @Joao Carvalho020 explique o que está tentando fazer. Escreveu um programa C na prática. Tem um enunciado ou uma especificação?
     
    O título também é ambíguo. Em C++ pode usar um par, pode usar auto. E se quer a divisão do resultado basta usar uma variável e salvar o valor...
     
    Se se refere a essa linha
     
    fatorial(n)/fatorial(subtracao(n1,p));  
    pode escrever 
    auto quociente = fatorial(n) / fatorial(subtracao(n1,p));  
    ou algo assim
     
    auto [a, b] = pair<int, int>{ fatorial(n), fatorial(subtracao(n1, p)) };  
    para salvar as parcelas.
  7. O post de arfneto em Conexão entre 01 modem e 02 roteadores. foi marcado como solução   
    Porque não? Que significa?
     
     
    o problema está no " esquema abaixo" 
     

    Não conecte nunca esses roteadores via WAN. É garantia de problema. E algumas coisas não vão funcionar nem a pau.
     
    Postei um roteiro detalhado disso e uma descrição de uma meia dúzia de razões para NÃO fazer isso nessa semana. Pode dar uma lida e vai achar alguns dos problemas meio deja vu 😉 coisas que já viu antes na sua rede mesmo
     
    Por outro lado evite a todo custo conectar os aparelhos em cascata. Do modo como fez é  melhor.
     
     
     
  8. O post de arfneto em Configurando Roteadores D-Link Dir 842 e apple foi marcado como solução   
    Usar múltiplos roteadores em situações assim requer um planejamento prévio e sem ele pode ser bem frustrante. Mesmo com o tal planejamento pode ser um inferno 😄 
     
    Imagine o cenário de uma empresa em um prédio com 7 andares e umas dezenas de equipamentos em rede. Um hipotético cenário: no piso térreo estaria o gateway da rede --- o equivalente ao seu modem da claro --- e em cada andar teriam switches e talvez roteadores para ligar as máquinas. Imagine isso, mas nos anos 90: Seriam usados roteadores e protocolos de roteamento e não seria especialmente complicado.
     
    Só que hoje em dia os roteadores domésticos não são roteadores. Só tem esse nome. São adaptadores LAN/WAN e não foram projetados para serem usados em cascata. Nem para rotear. E são de muito baixo custo e por isso oferecidos "sem custo". E tem serviços integrados, de modo que mudanças na topologia podem afetar coisas inesperadas. Colocar um roteador desses em modo bridge pode deixar o assinante sem TV e sem telefones na claro/net por exemplo.
     
    DHCP é outro problema e em que ser tratado com critério. Prazos longos de lease podem deixar a rede rapidamente sem endereços --- veja o caso comum dos restaurantes que ficam sem wifi todo dia na hora do almoço. Prazos curtos geram muito tráfego na rede e no caso de "roteadores" em cascata podem derrubar dezenas de conexões ao vencer um lease num roteador com a WAN em DHCP, o comum. E sempre tem o maluco que vai dizer que não pode ter mais de um servidor DHCP na rede então não pode ter um com lease alto e outro com lease de 3 ou 4 minutos, já que só tem um.
    .
    WiFi é outro problema porque em geral são dispositivos móveis na própria rede e usam DHCP e no trânsito podem trocar de endereço. MESH é outro problema se usar uma rede que não permita ligar os POD VIA CABO e não via rádio (wifi)
     
    Não dá pra escrever muito aqui. Muito do que posso sugerir e dos problemas eu até comentei nesse tópico nessa semana e sugiro dar uma olhada: tem uns números de uma mudança que eu fiz onde a performance no final estava perto da metade, apenas com 2 roteadores.
     
    Não dá pra escrever muito aqui. Muito do que posso sugerir e dos problemas eu até comentei nesse tópico nessa semana
     
     
    De volta à sua rede
     
    Não ficou claro como liga essas coisas, e seria legal se você postasse um desenho, mas pelos problemas imagino que tenha esses dispositivos ligados do jeito comum e tenha os problemas comuns: perda de conectividade repentina, performance medíocre em certos pontos, dispositivos inacessíveis como TV e servidores de mídia como Chromecast Fire, Apple TV ou Roku em certos pontos da rede.

    O que eu sugiro:
    Antes de tudo: eliminar todo possível cascateamento. Quantos dispositivos acha que pode ter na rede? É importante saber.
     
    Conecte um switch ao modem da CLARO/NET, 16 ou 24 portas tanto faz. Não precisa ser gerenciavel. E ligue TODOS os outros roteadores no roteador da claro (uma porta ja foi para o switch, restam 3) ou nesse switch. É um aparelho barato. Separe uns endereços fora do DHCP para endereçar TODOS os dispositivos de rede. se o CLARO está em 192.168.0.1 deixa o DHCP a partir de 20 por exemplo. Deixe um prazo pequeno para o DHCP, uns 10 minutos algo assim. Se sua rede mesh não pode ser interligada via cabo sugiro simplesmente trocar os aparelhos WIFI nada tem a ver com a internet ou com DHCP ou TCP. É outra camada. Use as rede todas com nomes diferentes ao menos no início para poder ver as diferenças de sinal por exemplo e poder medir a cobertura. Qualquer celular com um app tipo wifi Analyzer ou Open Signal vai te dizer muito sobre as redes e a performance. Telefones daquela marca da maça por exemplo tendem a insistir numa conexão quando o sinal vai caindo e não passam logo para outra mesmo que a antena fique ao lado dele. Se tiver o mesmo nome fica difícil de testar isso... Ligue todos esses dispositivos via porta LAN. Essa é a infraestrutura da rede. Tudo via cabo. A partir daí pode concluir que precisa mesmo de um roteador, tipo esses da CISCO para pequenas empresas ou da Ubiquity, mas pode ser que  nem seja o caso. Pode até descobrir que PRECISA mesmo de uma rede mais rápida, como 5 ou 10G, se sua casa for muito muito grande ou tiver centenas de dispositivos, ou 6 dúzia de TVs rodando vídeo a 4K ou 8K a partir de servidores na própria rede 😉 Coloque todos os dispositivos  lá do lado do modem numa mesa e vá endereçando em .2 .3 .4 .5... Assim poderá acessar todos da mesma tela de qualquer lugar da casa DEPOIS. Desative o DHCP em todos eles. Pode ter que voltar a isso, mas num primeiro momento nem tente. Com os POD mesh ligados ao mesmo ponto na infraestrutura o transporte das conexões sem derrubar fica bem tranquilo, vai notar. Meu palpite grátis 🙂
     
     
  9. O post de arfneto em Configuração 2 modens por cabo... foi marcado como solução   
    A imagem é do manual. O provedor pode ter ideias ou necessidades totalmente diferentes. Ou o cliente 😉 você por exemplo vai mudar umas coisinhas.
  10. O post de arfneto em roteadores na mesma rede e com dhcp diferente foi marcado como solução   
    Não deve ser o caso. O que vai determinar isso de "segmento sem acesso" é a máscara de rede. 
     
    Uma razão comum de se fazer isso --- de ter mais de um servidor DHCP numa mesma rede, digamos algo clássico como 192.168.0.0/24 ou 172.16.0.0/16 -- é ter redundância para o caso do servidor DHCP parar. Qualquer coisa de que se tenha um só é claro uma fragilidade.
     
    Nesse caso uma impressora por exemplo pode conseguir seu endereço de qualquer servidor DHCP na rede e ser acessada por qualquer dispositivo nessa rede. 
     
    Mesmo servidores DHCP operando na mesma faixa de rede são mais coisa antiga do que novidade e se usa uma comunicação entre eles para evitar conflito e gerenciar o uso cooperativo da faixa. Afinal esses servidores são simples programas e podem se comunicar entre si.
     
    Servidores DHCP e roteadores domésticos
     
    DHCP foi introduzido num tempo em que não havia NAT nem redes domésticas e os critérios na rede eram outros para quase tudo. Hoje em dia, com a explosão do número de redes domésticas e pequenas redes em empresas, foi criado esse personagem tipo set-top-box, a caixinha que faz tudo. E claro que com a integração os custos caíram e algo se perdeu.
     
    Muitas dessas caixinhas chamadas de roteadores hoje em dia --- e que nem são de fato roteadores --- sequer permite entrar com o endereço do gateway  na configuração do DHCP. Isso torna a configuração de mais de um servidor DHCP impossível se tiver um desses infelizes na rede e ele não for de fato o gateway.
     
    Como as redes domésticas estão ficando cada vez mais complicadas isso está voltando e muitos dos "roteadores" modernos trazem essa configuração de volta, como alguns da série Archer na conhecida TP-Link.
     
    A biblia do DHCP: RFC2131
  11. O post de arfneto em Erro Código inacessível detectado foi marcado como solução   
    aqui compila ok. Mude algo pra ver o que acontece. Tire essas chaves por exemplo. Não precisa delas afinal
  12. O post de arfneto em Erro programa c++ comandos cmd foi marcado como solução   
    pode usar a barra ao invés da barra invertida ou então usar duas \\ mas não pode usar uma só.
     
    Isso é o que a mensagem está tentando te dizer.
     
    Não use system. Para nada. De pouco serve. Está programando em C ou C++ e pode fazer qualquer coisa. Então escreva tal "coisa".
    Entenda que cada chamada a system() atua em um ambiente distinto e se tem pouco ou nenhum controle do que acontece. Duas chamadas seguidas nada tem a ver uma com a outra, por exemplo. Não se compartilha variáveis, estado, nada.
     
    Use CreateProcess(), threads e afins.
  13. O post de arfneto em Erro programa c++ comandos cmd foi marcado como solução   
    pode usar a barra ao invés da barra invertida ou então usar duas \\ mas não pode usar uma só.
     
    Isso é o que a mensagem está tentando te dizer.
     
    Não use system. Para nada. De pouco serve. Está programando em C ou C++ e pode fazer qualquer coisa. Então escreva tal "coisa".
    Entenda que cada chamada a system() atua em um ambiente distinto e se tem pouco ou nenhum controle do que acontece. Duas chamadas seguidas nada tem a ver uma com a outra, por exemplo. Não se compartilha variáveis, estado, nada.
     
    Use CreateProcess(), threads e afins.
  14. O post de arfneto em Erro programa c++ comandos cmd foi marcado como solução   
    pode usar a barra ao invés da barra invertida ou então usar duas \\ mas não pode usar uma só.
     
    Isso é o que a mensagem está tentando te dizer.
     
    Não use system. Para nada. De pouco serve. Está programando em C ou C++ e pode fazer qualquer coisa. Então escreva tal "coisa".
    Entenda que cada chamada a system() atua em um ambiente distinto e se tem pouco ou nenhum controle do que acontece. Duas chamadas seguidas nada tem a ver uma com a outra, por exemplo. Não se compartilha variáveis, estado, nada.
     
    Use CreateProcess(), threads e afins.
  15. O post de arfneto em Erro programa c++ comandos cmd foi marcado como solução   
    pode usar a barra ao invés da barra invertida ou então usar duas \\ mas não pode usar uma só.
     
    Isso é o que a mensagem está tentando te dizer.
     
    Não use system. Para nada. De pouco serve. Está programando em C ou C++ e pode fazer qualquer coisa. Então escreva tal "coisa".
    Entenda que cada chamada a system() atua em um ambiente distinto e se tem pouco ou nenhum controle do que acontece. Duas chamadas seguidas nada tem a ver uma com a outra, por exemplo. Não se compartilha variáveis, estado, nada.
     
    Use CreateProcess(), threads e afins.
  16. O post de arfneto em Defeito em um código de calculadora simples foi marcado como solução   
    Teste o retorno de scanf(). Sempre. É ingênuo não testar. Veja o manual.
     
    Não precisa do loop em main() deste modo. Pode encerrar quando não ler o primeiro valor. Mais simples e menos chato para quem está usando. 
    Pode ler os 3 valores de uma vez, assim o cara não precisa necessariamente digitar TODOS esses 4 ENTER.
    Consuma o ENTER que termina cada scanf() usando p. ex. fgetc. Ou não use scanf ...
     
    Na função retorne o resultado. Não precisa ficar esperando o final do loop. Mais simples e legivel
     
    Entenda que 0 e (0) é a mesma coisa. E são int. Evite conversões implícitas. É um hábito ruim. Escreva 0F para float e 0. para double.
     
    Esse código é equivalente para calcula()
     
    float calcula(float a, float b, char c) { switch (c) { case '+': return a + b; case '-': return a - b; case '*': return a * b; case '/': if (b != 0) return a / b; fprintf( stderr, " Erro: Tentativa de dividir %f por 0.\n"); return 0.F; default: fprintf( stderr, " Erro: Operador Invalido: '%c' para %f e %f\n", c, a, b); return 0.F; } return 0.F; }  
    E talvez concorde que é mais simples de ler. E resolve o problema da divisão por zero de algum modo.
     
    E tem a cortesia de avisar quando o operador é inválido ou 0 para a divisão. E a saída pode ser omitida.
     
    E não carrega um float até o fim do código simplesmente para retornar.
     
    Não há razão para usar conio.h dos anos 80. E não é padrão. Não vem com os compiladores.
     
    Não precisa da variável resposta já que não vai operar com ela.
  17. O post de arfneto em usando "pipes" no código foi marcado como solução   
    Acho que não devia distribuir sua questão em posts diferentes. Fica mais difícil para alguém encontrar uma resposta e se beneficiar da discussão
     
    Você vai usar pipe para enviar os dados para os 3 processos. E você já descreveu os processos.
     
    Esse não é um exemplo racional para usar processos ou pipes. É uma bobagem. Mas é o que tem pra fazer então...
     
    São 4 processos. Obiviamente o seu programa é um processo e vai criar 3 outros.
     
    (1) Um processo determina os coeficientes da equação, a, b e c na fórmula clássica (2) Um processo recebe esses valores e calcula o delta (3) um processo recebe o delta e os valores de a e c e calcula uma solução (4) um processo idêntico recebe os valores de delta a e c e calcula a outra solução. Acho que deve usar fork e não threads porque o enunciado só fala em processos e está rodando em Unix ---ah  ok, Linux, Mac, Android, whatever.
  18. O post de arfneto em "Ethernet" não tem uma configuração de ip válida foi marcado como solução   
    Isso nada tem a ver com o PC. A tal configuração IP válida vem do servidor DHCP que deve ser seu roteador.
     
    Num primeiro momento pode testar fazendo o simples: veja qual a rede que usa em seu roteador e coloque seu PC em um endereço nessa rede, fixo, nas propriedades de IPv4 na placa de rede e vai saber se o problema é do tal servidor DHCP ou de conectividade mesmo...
     
     

     
     
    um exemplo. veja os endereços certos na sua rede...
  19. O post de arfneto em Cores diferentes no cabo rj45 foi marcado como solução   
    verde claro (1), verde escuro(2), branco(3), preto(8), marrom escuro(7), azul escuro(4), azul claro(5) e laranja(6) deve ser a sequência deles.
     
    Não estou certo quanto ao par 7/8 mas não deve fazer diferença porque me geral tem a mesma quantia de metal por metro. Os pares 1/2 e 3/6 são os que tem mais peso. Se precisar mesmo se certificar -- e isso só vai mesmo importar se o cabo for muito muito longo, tipo 60m ou mais ou for passar numa área de muita interferência, como um forro com reatores ou transformadores como os de neon --- apenas confirme as cores que estão enroladas com o fio laranja(6) e o fio verde escuro (2) e esses serão 3 e 1.
  20. O post de arfneto em 2 internets via cabo + VPN foi marcado como solução   
    Não há duas internet, imagino que tenha contratado dois provedores para ter mais segurança na conectividade por causa do trabalho.
     
    Do ponto de vista da rede a internet não existe. A rede local, o L de LAN, apenas sabe o que não é local e encaminha para um endereço, o tal gateway. O protocolo, o TCP/IP, faz o resto junto com o DNS.
     
    Há muitas maneiras de acomodar vários provedores na mesma rede, além de simplesmente trocar os cabos (e renovar os endereços IP). Como é uma necessidade comum existem também equipamentos para fazer isso, como os LOAD BALANCER. No BR acho que o mais comum é o TL-R470t+ da marca TP-Link que custa menos de R$300 mas acho que não resolve seu problema. Um compuador antigo que esteja largado lá na estante em geral é uma solução mais flexível e não precisa nem de HD. Como vai cumprir função específica pode rodar Linux a partir de um pen-drive mesmo. E não precisa de monitor ou teclado depois de configurado.
     
    Note que é bem simples ter múltiplos adaptadores de rede no mesmo micro, usando outros slots PCI ou PCIx, adaptadores USB, e pode ter scripts, pequenos arquivos de comando que ativam ou desativam os adaptadores, ou usar o mouse mesmo...
     
    De todo modo é preciso ter uma descrição precisa do que tem na sua rede. Os roteadores, modem, switch e os tais equipamentos locais de que falou.
     
    Note que a VPN apenas acrescenta outra rede na sua configuração. A diferença disso para uma outra placa de rede é o V de VPN: a placa é virtual e some ao desligar do escritório. 
     
    Muitas vezes os scripts de conexão com a VPN mudam o gateway da rede para um endereço na rede virtual e todo o tráfego com a internet passa para o túnel o PN de VPN. E assim precisa ter uma rota salva para sua rede, alvo de um comando route disponível no Windows e no Lunix que era Unix e no Mac que era Linux. Assim pode acessar sua impressora por exemplo.
     
    Tudo isso é simples mas chato. 
     
     
     
    É preciso ver caso a caso.
    Veja que a opção acende no Windows sempre que seleciona um adaptador na lista.
     
    No Linux é bem igual.
  21. O post de arfneto em Windows exibindo mensagens "Rede não identificada" e "cabo desconectado" foi marcado como solução   
    A menos que seu cabo passe ao lado de transformadores ou fontes de alta potência ou tenha perto do tamanho máximo recomendado (100m) não terá diferença entre um cabo 5e e um cabo CAT-6. O E em 5e quer dizer enhanced e na prática quer dizer que tem um pouco mais de metal por metro e é garantido para até 1Gbps em 100m, A não ser que use rede acima de 5Gbps estará bem com qualquer desses cabos.
     
    Invertendo as pontas do cabo permanece o problema? pode ser apenas algo físico entre o soquete e o conector de seu cabo CAT6.
     
     
    Não, não tem. A placa de rede não conhece cabos. Apenas sinais nas 8 vias no caso de conexões acima de 10Mbps
     
     
  22. O post de arfneto em Como baixar achar novas bibliotecas e no DEV C++ foi marcado como solução   
    Não existe tal site. E Dev-C++ não é assim um bom IDE.
     
    O maior repositório de códigos que existe provavelmente é o GitHub, hoje da Microsoft. De lá você pode baixar de tudo. Mas não há uma organização, um super-catálogo. Não por acaso o GTK+ está lá
     
    Para usar qualquer biblioteca no Dev-C++ apenas encontre o código, baixe e compile. Depois configure os diretórios no Dev-C++ para que ele encontre os #include e para o linker encontrar os códigos. Talvez ache mais fácil se criar uma biblioteca sua primeiro para entender o mecanismo, mas basicamente é preencher um formulário. Pode usar varáveis de ambiente também. E está explicado na documentação do IDE.
     
    Instalação com um click e catálogo você pode conseguir com algo como um package manager. Para C++ o mais simples pode ser usar o vcpkg da Microsoft. Que funciona em Windows, Linux e Mac e tem no catálogo o GTK+, o Qt, o WxWidgets, o SDL e mais de 1500 outros pacotes. Para Linux o pacman pode ser o equivalente mas não sei dizer se roda fora do Linux/MAC
     
    Pode ser simples se usar o Visual Studio porque aí ele faz tudo sozinho mesmo, já que a integração com o vcpkg é automática. E se tiver noções básicas de uso do CMake facilita mais ainda porque esse é praticamente o padrão de distribuição de bibliotecas, no lugar dos antigos makefiles
     
    No caso do GTK+ a documentação explica como compilar os fontes e instalar tudo. De todo modo a documentação lá sugere usar o Chocolatey como gerenciador de pacotes
     
    Choco We recommend using Chocolately as a package manager in Windows. To install it, open PowerShell as an administrator, then execute: Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString\ ('https://community.chocolatey.org/install.ps1'))  
    O '\' eu coloquei aqui apenas
     
    Isso está em https://github.com/wingtk/gvsbuild
     
     
     
     
     
  23. O post de arfneto em Descobrir erro no código foi marcado como solução   
    É um jeito de ver as coisas.
     
    Mas o que acontece é que como você escreveu está errado. E por isso está dando errado. Faz sentido 🤔
     
    Em C não se pode comparar strings assim, com já foi explicado acima.
     
    Seu programa pode até acabar funcionando assim, mas está muito frágil. Não está bom e não vai nem mesmo funcionar em muitos ambientes. Muitos dos supostos "erros"  de que vou falar são comuns e parecem inevitáveis. Deve vir da maneira incrível como ensinam e escrevem sobre C e linguagens em geral hoje em dia.
     
    Sobre isso por exemplo
     
    // constantes : const int SEM_ERRO = 0; const int TAMANHO_MAXIMO = 50; void jogo(); void pessoa(); void lugar(); void ano(); void coisa(); void escolha6(); int main (){  
    nunca use void. Retorne algo. E passe argumentos. Todas essas 6 funções são um desastre em termos de flexibilidade e manutenção e não rodaria um programa assim em nenhuma empresa ou escola com um mínimo de critério. não use valores globais. NUNCA. Por nada. Para essas constantes é mais inteligente usar #define. NUNCA use gets(). Foi marcada como obsoleta há mais de uma década além de ser inconveniente. use fgets() não use fflush() se não souber exatamente o que é. E quando souber verá que só está definido para a saída TESTE o retorno de scanf(). É ingênuo seguir sem testar. Leia o manual Não use system(). Não estará fazendo nada. Não estará aprendendo nada.  Não use uma pausa no fim do programa. Se faz isso por causa do IDE apenas programe o IDE para não fechar a console ao final da execução. E se ele não tiver essa opção use um melhor. São grátis hoje em dia. return SEM_ERRO; Se acha return 0; pouco expressivo entenda que C tem as constantes EXIT_SUCCESS e EXIT_FAILURE exatamente para isso e conhecidas em toda parte. Prefira essas. Seu programa só tem esse return. Acha que vale a pena se preocupar com isso?
    seu programa tem 6 funções void xxx() pouco úteis. Porque não tem uma 

    int menu();   
    por exemplo?
     
    printf("\nMenu\n\n1-Novo jogo\n\n2-Explicação do jogo\n\n3-Ranking\n\n4-Sair do jogo\n\nDigite a opção:\n\n");  
    Não escreva assim...
    Compare:
    printf("\ \n\ Menu\ \n\ \n\ 1-Novo jogo\ \n\ \n\ 2-Explicação do jogo\ \n\ \n\ 3-Ranking\ \n\ \n\ 4-Sair do jogo\ \n\ \n\ Digite a opção: ");  
    Assim é mais fácil de ler e de alinhar o texto...
    E não mude de linha antes de ler uma resposta. Não é boa prática. Em geral as pessoas esperam o cursor logo após a pergunta.
     
  24. O post de arfneto em Descobrir erro no código foi marcado como solução   
    É um jeito de ver as coisas.
     
    Mas o que acontece é que como você escreveu está errado. E por isso está dando errado. Faz sentido 🤔
     
    Em C não se pode comparar strings assim, com já foi explicado acima.
     
    Seu programa pode até acabar funcionando assim, mas está muito frágil. Não está bom e não vai nem mesmo funcionar em muitos ambientes. Muitos dos supostos "erros"  de que vou falar são comuns e parecem inevitáveis. Deve vir da maneira incrível como ensinam e escrevem sobre C e linguagens em geral hoje em dia.
     
    Sobre isso por exemplo
     
    // constantes : const int SEM_ERRO = 0; const int TAMANHO_MAXIMO = 50; void jogo(); void pessoa(); void lugar(); void ano(); void coisa(); void escolha6(); int main (){  
    nunca use void. Retorne algo. E passe argumentos. Todas essas 6 funções são um desastre em termos de flexibilidade e manutenção e não rodaria um programa assim em nenhuma empresa ou escola com um mínimo de critério. não use valores globais. NUNCA. Por nada. Para essas constantes é mais inteligente usar #define. NUNCA use gets(). Foi marcada como obsoleta há mais de uma década além de ser inconveniente. use fgets() não use fflush() se não souber exatamente o que é. E quando souber verá que só está definido para a saída TESTE o retorno de scanf(). É ingênuo seguir sem testar. Leia o manual Não use system(). Não estará fazendo nada. Não estará aprendendo nada.  Não use uma pausa no fim do programa. Se faz isso por causa do IDE apenas programe o IDE para não fechar a console ao final da execução. E se ele não tiver essa opção use um melhor. São grátis hoje em dia. return SEM_ERRO; Se acha return 0; pouco expressivo entenda que C tem as constantes EXIT_SUCCESS e EXIT_FAILURE exatamente para isso e conhecidas em toda parte. Prefira essas. Seu programa só tem esse return. Acha que vale a pena se preocupar com isso?
    seu programa tem 6 funções void xxx() pouco úteis. Porque não tem uma 

    int menu();   
    por exemplo?
     
    printf("\nMenu\n\n1-Novo jogo\n\n2-Explicação do jogo\n\n3-Ranking\n\n4-Sair do jogo\n\nDigite a opção:\n\n");  
    Não escreva assim...
    Compare:
    printf("\ \n\ Menu\ \n\ \n\ 1-Novo jogo\ \n\ \n\ 2-Explicação do jogo\ \n\ \n\ 3-Ranking\ \n\ \n\ 4-Sair do jogo\ \n\ \n\ Digite a opção: ");  
    Assim é mais fácil de ler e de alinhar o texto...
    E não mude de linha antes de ler uma resposta. Não é boa prática. Em geral as pessoas esperam o cursor logo após a pergunta.
     
  25. O post de arfneto em Descobrir erro no código foi marcado como solução   
    É um jeito de ver as coisas.
     
    Mas o que acontece é que como você escreveu está errado. E por isso está dando errado. Faz sentido 🤔
     
    Em C não se pode comparar strings assim, com já foi explicado acima.
     
    Seu programa pode até acabar funcionando assim, mas está muito frágil. Não está bom e não vai nem mesmo funcionar em muitos ambientes. Muitos dos supostos "erros"  de que vou falar são comuns e parecem inevitáveis. Deve vir da maneira incrível como ensinam e escrevem sobre C e linguagens em geral hoje em dia.
     
    Sobre isso por exemplo
     
    // constantes : const int SEM_ERRO = 0; const int TAMANHO_MAXIMO = 50; void jogo(); void pessoa(); void lugar(); void ano(); void coisa(); void escolha6(); int main (){  
    nunca use void. Retorne algo. E passe argumentos. Todas essas 6 funções são um desastre em termos de flexibilidade e manutenção e não rodaria um programa assim em nenhuma empresa ou escola com um mínimo de critério. não use valores globais. NUNCA. Por nada. Para essas constantes é mais inteligente usar #define. NUNCA use gets(). Foi marcada como obsoleta há mais de uma década além de ser inconveniente. use fgets() não use fflush() se não souber exatamente o que é. E quando souber verá que só está definido para a saída TESTE o retorno de scanf(). É ingênuo seguir sem testar. Leia o manual Não use system(). Não estará fazendo nada. Não estará aprendendo nada.  Não use uma pausa no fim do programa. Se faz isso por causa do IDE apenas programe o IDE para não fechar a console ao final da execução. E se ele não tiver essa opção use um melhor. São grátis hoje em dia. return SEM_ERRO; Se acha return 0; pouco expressivo entenda que C tem as constantes EXIT_SUCCESS e EXIT_FAILURE exatamente para isso e conhecidas em toda parte. Prefira essas. Seu programa só tem esse return. Acha que vale a pena se preocupar com isso?
    seu programa tem 6 funções void xxx() pouco úteis. Porque não tem uma 

    int menu();   
    por exemplo?
     
    printf("\nMenu\n\n1-Novo jogo\n\n2-Explicação do jogo\n\n3-Ranking\n\n4-Sair do jogo\n\nDigite a opção:\n\n");  
    Não escreva assim...
    Compare:
    printf("\ \n\ Menu\ \n\ \n\ 1-Novo jogo\ \n\ \n\ 2-Explicação do jogo\ \n\ \n\ 3-Ranking\ \n\ \n\ 4-Sair do jogo\ \n\ \n\ Digite a opção: ");  
    Assim é mais fácil de ler e de alinhar o texto...
    E não mude de linha antes de ler uma resposta. Não é boa prática. Em geral as pessoas esperam o cursor logo após a pergunta.
     

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!