Ir ao conteúdo
  • Cadastre-se

devair1010

Membro Pleno
  • Posts

    6.296
  • Cadastrado em

  • Última visita

Tudo que devair1010 postou

  1. @luquinhas44 precisa usar uma ou mais variáveis para armazenar o número da carteira que tiver mais multas , e no decorrer do programa vai atualizando essa mesma variáveL , e no Final se saberá Qual . e no seu outro poste , desse mesmo exercício , tem um exemplo .
  2. @wbm01 você pode ativar o intellicense no menu ferramentas / opções / Editor de Texto / avançado e também intellicense , conforme explicado nesse link da própria Microsoft : https://docs.microsoft.com/pt-br/visualstudio/ide/visual-cpp-intellisense?view=vs-2022
  3. @luquinhas44 você Quer colocar uma opção "S / N" , use string que no portugol studio é chamada de cadeia , e se você já tem um código sobre esse exercício , poste ele aqui e ajudaremos se ainda precisar ..
  4. @Michael Oliveira Damasceno uma imagem não se pode ser copiada como text , que seria melhor mesmo , e se você tem um código desse exercício feito na linguaGem c , então poste ele aqui e ajudaremos se ainda precisar .
  5. @adriantuler não vi erros nesse código : s = 'SIM' d = 0 while True: # enquanto não houver break volume = int(input("digite o volume em ml que deseja: de 300ml a 5000 ml ")) try: int(volume) except ValueError as err: print('Formato errado') continue print("b = Basica ( feijão + paiol + costelinha") print("p = Premium ( Feijão + paiol + costelinha + partes de porco") print("s = Suprema ( Feijão + paiol + costelinha + partes de porco + charque + calabresa + bacon ") print("f = Finalizar ") total = 0 feijoada = str(input("digite a qual feijoada desejada: ")).upper() if feijoada == "F": break; vol = volume * 0.08 if float(volume) < 300 or float(volume) > 500: print("opção invalida:") continue if feijoada == "B": d = vol # * 1 huuum ! fala seriO . if feijoada == 'P': d = vol * 1.25 if feijoada == "S": d = vol * 1.50 while True: print(" 0 - não desejo mais nenhnum acompanhamento: (encerrar pedido)") print(" 1 - 200g de arroz") print(" 2 - 150g de farofa especial") print(" 3 - 100g de couve cozida") print(" 4 - 1 de laranja : ") acompanhamento = int(input("deseja algum acompanhamento:")) total = float(d) + total if acompanhamento == 0: print(" o valor do total do pedido foi {}R$ ".format(total)) total = 0 print(total) break if acompanhamento == 1: total = total + 5 continue if acompanhamento == 2: total = total + 6 continue if acompanhamento == 3: total = total + 7 continue if acompanhamento == 4: total = total + 3 continue
  6. @ArturRJ obrigado , por ajudar , acontece que não vi nenhum led ou lâmpada , mas ela acende mesmo , e também já consegui colocar ela para funcionar novamente , mas nem descobri o motivo de ela ter parado , apenas limpei os contatos da memória , e recoloquei a mesma fonte , que é a corsair 450w , e coloquei outra bateria do setup , e está funcionando bem , porém queria saber sobre essa luz vermelha que acende na placa , e se tem alguma coisa relativa com isso por ele ter parado de funcionar . https://www.youtube.com/watch?v=yCpTtmnGHDU
  7. @Gustavo Henrique Barros parece me Que não existem essa função "Ultrasonic.convert" , e então você pode experimentar usar outros comandos , como esses : #include <Ultrasonic.h> Ultrasonic SensorUltrassonico1(5, 4); #include <LiquidCrystal.h> //Adiciona a biblioteca do display #define trigPin 10 // Declara constante trigPin #define echoPin 9 // Declara constante echoPin #define trigger 18 #define echo 19 Ultrasonic ultrasonic(trigPin, echoPin); //Define os pinos para o ultrassonico LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Define os pinos para o display long Microsegundos = 0; float DistanciaemCM = 0; #define MotorLadoEsquerdo1 11 #define MotorLadoEsquerdo2 12 #define MotorLadoDireito1 9 #define MotorLadoDireito2 10 #define VelocidadeMotorLadoEsquerdo 13 #define VelocidadeMotorLadoDireito 8 //============================================================ Escolhe a velocidade dos motores ==================================================================// int ValorVelocidadeMotorLadoEsquerdo = 120; int ValorVelocidadeMotorLadoDireito = 80; float time=0,distance=0; void setup() { //============================================================== Definições de entrada e saída ===================================================================// pinMode(MotorLadoEsquerdo1, OUTPUT); pinMode(MotorLadoEsquerdo2, OUTPUT); pinMode(MotorLadoDireito1, OUTPUT); pinMode(MotorLadoDireito2, OUTPUT); Serial.begin(115200); delay(3000); } void loop() { // DistanciaemCM = Ultrasonic.convert(Ultrasonic.timing(), Ultrasonic::CM); // DistanciaemCM = Ultrasonic.convert(/*microsec*/Ultrasonic.timing(), Ultrasonic::CM); time = pulseIn( echoPin , HIGH ); DistanciaemCM = time * 340 / 20000; Serial.print( DistanciaemCM ); Serial.println(" cm"); if (DistanciaemCM <= 40) { analogWrite( VelocidadeMotorLadoEsquerdo, ValorVelocidadeMotorLadoEsquerdo); analogWrite( VelocidadeMotorLadoDireito, ValorVelocidadeMotorLadoDireito); digitalWrite(MotorLadoEsquerdo1, HIGH); digitalWrite(MotorLadoEsquerdo2, LOW); digitalWrite(MotorLadoDireito1, HIGH); digitalWrite(MotorLadoDireito2, LOW); delay(700); digitalWrite(MotorLadoEsquerdo1, LOW); digitalWrite(MotorLadoEsquerdo2, HIGH); digitalWrite(MotorLadoDireito1, HIGH); digitalWrite(MotorLadoDireito2, LOW); delay(400); } else { analogWrite( VelocidadeMotorLadoEsquerdo, ValorVelocidadeMotorLadoEsquerdo); analogWrite( VelocidadeMotorLadoDireito, ValorVelocidadeMotorLadoDireito); digitalWrite(MotorLadoEsquerdo1, LOW); digitalWrite(MotorLadoEsquerdo2, HIGH); digitalWrite(MotorLadoDireito1, LOW); digitalWrite(MotorLadoDireito2, HIGH); } // delay(4e44); }
  8. devair1010

    C# Comando for e array

    @wbm01 no seu código não tem nenhum Array , não mesmo , e quando você diz "pegar o resultado de cada linha" significa cada passo desse loop for ! , e no final mostrar o resultado da soma , e seu código poderia ser assim : using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace array { class Program { static void Main(string[] args) { int [] numbers = { 1, 2, 3, 4, 5 }; int [] numeros = new int[20]; int lengthOfNumbers = numbers.Length; int[,] theArray = new int[5, 10]; System.Console.WriteLine("The size array has {0}.", lengthOfNumbers); System.Console.WriteLine("The array has {0} dimensions.", theArray.Rank); int num = 0; int pos = 0; int res = 0; for (num = 1; num < 100; num = num * 2) { Console.WriteLine("Resultado: {0} ", num); numeros[pos] = num; pos += 1; } /// colocou dentro do Array for(; pos >= 0; pos-- ) { res += numeros[pos]; } /// somou aCumulando na VariaveL System.Console.WriteLine(); System.Console.WriteLine("The Result's FinaL eh {0} .", res ); for(; pos < 2; pos++) System.Console.WriteLine(); } } }
  9. @oromotoceu /* * 3) Faça um programa que leia uma quantidade de cartões determinada pelo * digitador, contendo a idade e o sexo de uma pessoa (1-Masculino, 2-Feminino). * Calcule e imprima a idade média destas pessoas, quantas pessoas do sexo * feminino estão na faixa dos 18 aos 25 anos e número total de pessoas do sexo * masculino. */ #include <stdio.h> #include <string.h> int main() { int quantidade, idade, sexo; int numMulher=0, numHomem=0, idadeTotal=0; int numPessoa=0; int a; ///while( a > 0 ) não precisa desse loop ///{ puts("Quantidade de cartoes determinada pelo digitador: "); scanf("%d", &quantidade); do { puts("Entre com a idade: "); scanf("%d", &idade); do { puts("Entre com o sexo: "); /// putzgrila scanf("%d", &sexo); } while( sexo != 1 && sexo != 2 ); /// 1 masc 2 fem idadeTotal += idade; numPessoa++; if( sexo == 2 && idade >= 18 && idade <= 25 ) { numMulher++; } else if( sexo == 1 ) numHomem++; }while( quantidade > numPessoa ); printf("\nA idade media e' %5.2f.\ \nO total de mulheres de 18 aos 25 anos e' %5d. \ \nO numero de homens e' %5d.\n\n", (float) idadeTotal / numPessoa , numMulher,numHomem); ///} return 0; }
  10. @oromotoceu seu programa não está compilando , falta chaves , e corrigindo isso também não funciona , pois você colocou esse loop while , e que nem precisam , usa a variável "a" para controlar , mas ela não foi inicializada , e assim esse loop já passa direto para o final e termina sem fazer nada mesmo , e então removendo ele , seu código funciona bem e creio Que a parte principal do enunciado seria esse : : 1 - qtd cartoes determinada pelo usuario 2 - sexo homem = 1 3 - sexo mulher = 2 4 - idade da pessoa 5 - media da idade de todas as pessoas 6 - qtd de mulheres na faixa de 18 a 25 anos 7 - qtd de homens /* * 3) Faça um programa que leia uma quantidade de cartões determinada pelo * digitador, contendo a idade e o sexo de uma pessoa (1-Masculino, 2-Feminino). * Calcule e imprima a idade média destas pessoas, quantas pessoas do sexo * feminino estão na faixa dos 18 aos 25 anos e número total de pessoas do sexo * masculino. */ #include <stdio.h> #include <string.h> int main() { int quantidade, idade, sexo; int numMulher=0, numHomem=0, idadeTotal=0; int numPessoa=0; int a; ///while( a > 0 ) não precisa desse loop ///{ puts("Quantidade de cartoes determinada pelo digitador: "); scanf("%d", &quantidade); do { puts("Entre com a idade: "); scanf("%d", &idade); do { puts("Entre com o sexo: "); /// putzgrila scanf("%d", &sexo); } while( sexo != 1 && sexo != 2 ); /// 1 masc 2 fem idadeTotal += idade; numPessoa++; if( sexo == 2 && idade >= 18 && idade <= 25 ) { numMulher++; } else if( sexo == 1 ) numHomem++; }while( quantidade > numPessoa ); printf("\nA idade media e' %5.2f.\ \nO total de mulheres de 18 aos 25 anos e' %5d. \ \nO numero de homens e' %5d.\n\n", (float) idadeTotal / numPessoa , numMulher,numHomem); ///} return 0; }
  11. @Eduardo V se , dentro da função , você colocar uma variável para receber o retorno Algoritmo "funcao ler outra" funcao lerTotalc : real Var combustiveln : real trechototal : real Inicio escreva("distancia ") leia( trechototal ) combustiveln <- trechototal * 3.6 retorne combustiveln fimfuncao funcao lerCombp : real // combustivel presente no avião Var combustivelp, combustiveln : real totalcombustivel : real ret : real Inicio combustiveln <- lerTotalc escreval("valor retornado da Função") escreval("que é o total de combustivel consumido",combustiveln) escreval("Quantos litros de combustivel já tem no avião?") leia(combustivelp) se combustivelp = 0 entao totalcombustivel = combustiveln senao totalcombustivel <- combustiveln - combustivelp fimse retorne totalcombustivel fimfuncao var ret : real Inicio ret := lerCombp escreval("Total de combustivel ",ret) Fimalgoritmo
  12. @lsnkesp o resultado está certo , e então pode ser que na diferença apareça resultado negativo , e usar a função "fabs" nesses casos #include <stdio.h> #include <float.h> int main() { double diaria_normal = 0; int qtd_apartam = 75; printf("Diaria: " ); scanf("%lf", & diaria_normal); double diaria_proporcional = diaria_normal - 0.25 * diaria_normal ; double tot_80_porcento = (qtd_apartam * 0.8) * diaria_proporcional , tot_50_porcento = (qtd_apartam * 0.5) * diaria_normal ; printf(" \nDiaria Proporcional -----------------------------: %9.2f" , diaria_normal - 0.25 * diaria_normal ); printf("\ntotal com 80%% de ocupaCAo e diAria proporcional -: %9.2f" , tot_80_porcento ); printf("\ntotal com 50%% de ocupaCAo e diAria normal -------: %9.2f" , tot_50_porcento ); printf(" \nDiferenCa ---------------------------------------: %9.2f" , fabs( tot_80_porcento - tot_50_porcento ) ); printf("\n\n\n"); return 0; }
  13. @Mateus Bruner definir o idioma é com setlocale , e para português é "portuguese" , criar um vetor e incializa lo com todos os valores zero , e um loop que repita doze vezes , e dentro , use scanf para pegar os dados que o usuário digitar no teclado , e insira o valor no vetor na posição escolhida pelo usuário , e você pode ver mais alguma coisa sobre esse exercício , nesse link : https://www.clubedohardware.com.br/forums/topic/1605747-travado-em-programa-com-matriz/#comment-8430882
  14. @oAnfibio você colocou uma função recursiva , e ela serve para Quê !
  15. @joilson grz não precisar de matriz apenas um vetor mesmo #include <stdio.h> #include <stdlib.h> #include <locale.h> /* 1. Ajustar o idioma no algoritmo com o uso da biblioteca locale.h. 2. Definir uma estrutura de dados que seja capaz de armazenar até 10 valores de despesas para cada mês do ano. 3. Solicitar ao usuário que defina um mês de sua escolha (1 a 12) e depois a quantidade de valores de despesas a serem informadas (1 a 10). 4. Exibir, após a entrada dos valores das despesas de um mês, todos os valores de despesas dos 12 meses, mesmo que sejam zero. 5. Por fim, exibir o total de valores contidos na estrutura de dados de despesas e meses. */ int main() { setlocale(LC_ALL, "Portuguese"); int est[12][10]={10,10,10,10,10,10,10,10,10,10}; int vet[10]; int i,j=10; int aux = 0; for( i=0; i<2; i++ ) /// testar com 2 , e depois colque 12 { printf("digite o numero do mes desejado: "); scanf("%d",& aux); printf("digite um valor de 1 á 10: "); scanf("%d" , & vet[aux] ); } printf("as despesas do mes sao\n"); for( i=0; i<12; i++ ) { printf("%3d %d",i,vet[i] ); } return 0; }
  16. @joilson grz Qual contaGem , e assim não rola , não for( i=12; i>11; i-- ) { printf("digite o numero do mes desejado:\n"); /// ,i,mat[i]); essas variaveis não estão servindo para nada scanf("%d",&i); /// aqui vai interferir na var de controle do loop FOR for( i=0; i>12; i++ ) { printf("digite o numero do mes %d: ",i+1); scanf("%d",&mat[i]);
  17. @Mr-86 não observei esse erro no código não , funcionou bem : #include <iostream> #include <cstring> using namespace std; int main() { string nome, j, prod[20] = {""}; char p; int n=0, i, resp, quant, vendas, qtde[20]= {0}; float pagamento, troco, lucro=0, preco[20]= {0}; bool achou = false; do { do { cout << "qual acao deseja realizar ??" << endl; cout << "1 Cadrastar um produto " << endl; cout << "2 Procurar um produto " << endl; cout << "3 Vender um produto " << endl; cout << "4 Relatorio " << endl; cout << "0 Encerrar programa " << endl; cin >> resp; } while( resp < 0 or resp > 4 ); switch(resp) { case 1: /// { não precisam dessas chaves do { cin.ignore(); cout << "!!ANTES DO CADRASTAMENRTO VERIFICAR SE O PRODUTO JA EXISTE!!" << endl; cout << "Insira o nome do produto para verificacao: "; getline(cin, nome); } while( nome == "" ); for( i=0; i<20; i++ ) { if( nome == prod[i] ) { cout << "O produto ja existe ! ! . . ." << endl; break; } } for(i=n; i<20; i++) { do { cout << "O produto ja foi cadastrado, coloque a quantida e o preco dele: "; cin >> qtde[i] >> preco[i]; } while(qtde[i] > 50 && preco[i] < 0.01); prod[i] = nome; n++; break; } //SUBSTITUIR O "CIN" POR COMANDO CORRETO break; case 2: { cout << "ESCREVA O NOME DO PRODUTO A SER PROCURADO!!" << endl; getline(cin, nome); cin.ignore(); for(i=0; i<20; i++) { if(nome == prod[i]) { achou = true; break; } } cout << "passou do loop for" << endl; if(achou == true) { cout << "O produto " << prod[i] << endl << "Qtde dele em estoque " << qtde[i] << endl << "O preco por unidade R$" << preco[i] << endl; cout << "Quer continaur o programa ??" << endl; cin >> p; } else { cout << "Item não encontrado" << endl; } break; } case 3: { cin.ignore(); cout << "Qual item que sera vendido ?? " << endl; getline(cin, nome); for(i=0; i<20; i++) { if(nome == prod[i]) { cout << "Qual a quantidade ?? no estoque a disponivel: " << qtde[i] << endl; cin >> quant; if(quant <= qtde[i]) { cout << "O valor a se pagar e de R$: " << preco[i]*quant << endl; cin >> pagamento; troco = pagamento - (quant * preco[i]); lucro = preco[i]*quant; cin.ignore(); cout << "pagamento realizado com sucesso, troco foi de R$: " << troco << endl << "Para prosseguir precione ENTER:"; getline(cin, j); qtde[i] = qtde[i] - quant; vendas = quant; break; } else { cin.ignore(); cout << "não á essa quantia do produto no estoque"; getline(cin, j); break; } } if(achou == false) { cin.ignore(); cout << "O produto não foi encontrado " << endl; getline(cin, j); break; } } break; } case 4: { do { cout << "Qual relatorio deseja ver ?? " << endl << "1 Relatorio de produtos em falta no estoque " << endl << "2 Relatorio de vendas do mercado" << endl; cin >> resp; } while(resp != 1 && resp != 2); switch(resp) { case 1: { for(i=0; i<20; i++) { if(qtde[i] > 0) { if(qtde[i] < 10) { cout << "Produto " << prod[i] << " esta com o estoque abaixo de 10 " << " Quantidade disponivel de " << qtde[i] << endl; achou = true; } } } if(achou == false) { cin.ignore(); cout << "não á produtos com estoque inferior a 10 "; getline(cin, j); } break; } case 2 : { cin.ignore(); cout << "O mercado vendeu " << vendas << endl << "O lucro foi de R$: " << lucro << endl; getline(cin, j); break; } break; } break; } } system("cls"); achou = false; } while(resp != 0); cout << "Programa encerrado "; return 0; }
  18. @paulov7 pelo jeito você ainda está começando , pois colocoU comandos repetidos e fora do local adequado , e nem uma msg para o Usuário saber o que fazer , e também escrever a palavra "MASCULINO" ou "FEMININO" e em maiúsculo , é bem trabalhoso mesmo , seria melhor usar apenas uma Letra "m" ou "f" minúsculo mesmo , e seu código com alGumas modificações ficaria assim : #include<math.h> #include<stdio.h> #include<string.h> int main() { int numerocriancas = 0; int mesesvida = 0; int contcrianca = 0; int contcriancamasculino = 0; int contmenos24 = 0; float porcentagemmortas = 0; float porcentagemmasculinomortas = 0; float porcentagemmenores24 = 0; char sexo[10] = {"VAZIA"}; printf("nUmero De CrianCas " ); scanf ("%d" , & numerocriancas ); while ( strcmp( sexo , "VAZIO" ) != 0 ) { printf("Sexo " ); printf("oU VAZIO para terminar "); scanf("%s" , sexo ); printf("Meses De Vidas " ); scanf("%d" , & mesesvida ); contcrianca++; if( strcmp( sexo , "MASCULINO" ) == 0 ) { contcriancamasculino++; } if( mesesvida <= 24 ) { contmenos24++; } } porcentagemmortas = (float) ( contcrianca * 100) / numerocriancas; porcentagemmasculinomortas = (float) ( contcriancamasculino * 100) / numerocriancas; porcentagemmenores24 = (float) ( contmenos24 * 100) / numerocriancas; printf("n "); printf("PORCENTAGEM DE MORTOS ------------= %7.2f\n" , porcentagemmortas ); printf("PORCENTAGEM DE MASCULINOS MORTOS -= %7.2f\n" , porcentagemmasculinomortas); printf("PORCENTAGEM DE MENOS DE 24 MESES -= %7.2f\n" , porcentagemmenores24 ); return 0; }
  19. @Wesley da silva santos o código que está no anexo e da linguagem bath , e então você vai querer fazer na linguagem C ou Bath mesmo : , @echo off echo ------------------------------- echo OLA, GOSTARIA DE CRIAR A PASTA DOS ARQUIVOS DE FECHAMENTO? echo ------------------------------- set /p mes=MES--^> set /p ano=ANO--^> ::etc AGORA É CAPTURADA AS VARIAVEIS E FEITA A ALTERAÇÃO NOS ARQUIVOS forfiles /P "PASTA MODELO" /M *.xlsx /C "cmd /c rename @path ??.%mes%.%ano%.@ext" md %mes%.%ano% copy "PASTA MODELO"\*.xlsx %mes%.%ano% ::etc forfiles /M *.bat /C "cmd /c del @file" echo ------------------------------- echo OK! OBRIGADO... echo ------------------------------
  20. @MimiYari o que você quer dizer com aplicar a struct ? , se quisesse fazer esse seu código com struct , poderia ser assim : #include <stdio.h> #include <iostream> struct horario { int Hora; int Min; int Seg; }; int main() { setlocale(LC_ALL, "Portuguese"); struct horario tempo[10]; /// espaCo para dez coleta de tempos int Hora1; int Min1; int Seg1; int Hora2; int Min2; int Seg2; int HorasTotal; int MinTotal; int SegTotal; printf("Digite o tiempo n°1 (HH:MM:SS): "); scanf("%d:%d:%d", &tempo[0].Hora, &tempo[0].Min, &tempo[0].Seg); printf("Digite o tiempo n°2 (HH:MM:SS): "); scanf("%d:%d:%d", &tempo[1].Hora, &tempo[1].Min, &tempo[1].Seg); HorasTotal = tempo[0].Hora + tempo[1].Hora; MinTotal = tempo[0].Min + tempo[1].Min; SegTotal = tempo[0].Seg + tempo[1].Seg; MinTotal += SegTotal / 60; SegTotal %= 60; HorasTotal += MinTotal / 60; MinTotal %= 60; printf("\nResultado: %d:%d:%d\n", HorasTotal, MinTotal, SegTotal); return 0; } e você pode ver mais alguma coisa sobre struct nesse link : https://www.clubedohardware.com.br/forums/topic/1589516-trabalhar-com-o-vetor-dentro-de-uma-struct/#comment-8367923
  21. devair1010

    C++ Pilha e fila programa

    @MimiYari primeiro decidir qual é primo e depois inserir na Pilha o na Fila , nesses links você pode ver alguma coisa sobre pilhas e filas na linguagem c , FILA e Pilha
  22. @Mr-86 se quer escrever apenas um produto encontrado , use uma variável auxiliar para informa que o produto procurado foi encontrado , e coloque a msg depois do loop for int aux = 0; cout << "ESCREVA O NOME DO PRODUTO A SER PROCURADO ! ! "; cin >> nome; for( i=0; i<20; i++ ) { if( nome == prod[i] ) { aux = 1; /// marca como achou break; /// sai desse loop for } } if ( aux == 1 ) /// se achou { /// escreve os dados cout << "O produto\a ----------= " << prod[i] << endl; cout << "Qtde dele em estoque -= " << qtde[i] << endl; cout << "O preco por unidade -= " << preco[i] << endl; } else /// senao { /// escreve msg de nAho encontrado ! cout << "\aProduto nAho encontrado" << endl; }
  23. @arfneto gosto de usar o code::blocks e ele não aceita declarar as variáveis dentro do loop , e também o código já estava assim e deixei desse jeito mesmo , if(i>0) n[i-1][j] = 2; if(i<5) n[i+1][j] = 2; if(j>0) n[i][j-1] = 2; if(j<5) n[i][j+1] = 2; coloquei essa validação para não ultrapassar as bordas

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!