Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.

Pesquisar na Comunidade

Mostrando resultados para as tags ''C++''.



Mais opções de pesquisa

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Categorias

  • Armazenamento
  • Áudio
  • Energia
  • Entrada
  • Feiras e Eventos
  • Gabinetes
  • Memória
  • Museu
  • Placas-mãe
  • Portáteis
  • Processadores
  • Programas
  • Rádio CdH
  • Redes
  • Refrigeração
  • Smartphones
  • Tablets
  • Vídeo
  • Outros

Categorias

  • Blog

Categorias

  • Armazenamento
  • Áudio
  • Câmeras
  • Computadores
  • Consoles
  • Eletrônicos
  • Energia
  • Entrada
  • Gabinetes
  • Impressão
  • Jogos
  • Memória
  • Placas-mãe
  • Portáteis
  • Processadores
  • Programas
  • Redes
  • Refrigeração
  • Smartphones
  • Tablets
  • Vídeo
  • Outros

Categorias

  • Livros disponíveis
  • Livros esgotados

Categorias

  • Cursos

Fóruns

  • Mensagens do Clube do Hardware
    • Regras gerais
    • Boletins do Clube do Hardware
    • Notícias da administração
  • Hardware
    • Recomendações de computadores
    • Placas de vídeo
    • Placas-mãe e chipsets
    • Processadores
    • Problemas de gargalo e desempenho
    • Memórias
    • Armazenamento
    • Refrigeração e superaquecimento
    • Fontes e energia
    • Gabinetes e casemods
    • Placas de som e áudio on-board
    • Periféricos
    • Mac
    • Overclock
    • Hardware - outros
  • Computação móvel
    • Notebooks
    • Tablets
    • Smartphones e apps
  • Redes e Internet
    • Redes e Internet
    • Hospedagem de sites e registro de domínios
  • Segurança da informação
    • Remoção de malware
    • Dúvidas sobre invasões e infecções
    • Programas de proteção
  • Programação e desenvolvimento
    • Java
    • C/C#/C++
    • Pascal/Delphi
    • .NET
    • Bancos de dados
    • Programação web
    • Programação - iniciantes
    • Programação de microcontroladores
    • Programação - outros
  • Software
    • Jogos
    • Pacotes de escritório
    • Computação distribuída (Folding@Home, Bitcoin etc.)
    • Virtualização
    • Design, animação e tratamento de imagens
    • Edição de áudio e vídeo
    • Programas
  • Sistemas Operacionais
    • Recomendação de sistemas operacionais
    • Windows
    • GNU/Linux, BSD, Unix-like e software livre
    • Mac OS
  • Eletrônicos
    • Equipamentos de som, home theaters e gravadores de mesa
    • Televisores e projetores
    • Câmeras e filmadoras
    • Players portáteis
    • Consoles (videogames)
    • GPS
    • Telefonia fixa
    • Eletrônica
    • Retrocomputação
  • Outros
    • Recomendações de serviços e lojas
    • Preços e promoções
    • Notícias
    • Bolsa de empregos, certificações e mercado de trabalho
    • "Causos"
    • Encontros de usuários
    • Feira do Rolo
  • Clube do Hardware
    • Comentários, elogios, críticas e sugestões sobre o Clube do Hardware
    • Comentários de artigos
    • Fórum para testes de funcionalidades

Categorias

  • Hardware
  • Redes
  • Eletrônica
  • Sistemas operacionais

Encontrado 242 registros

  1. Olá Pessoal , sou novo aqui no forum e queria uma ajudinha de vocês. bom é o seguinte eu quero saber como faço pra aquela variavel receber aquele valor por exemplo Int Va=0; -- aqui ta zero e depois se eu chama-se ela em um função ela muda-se pra aquele codigo que eu coloquei nela.
  2. Boa tarde. Temos um software aqui na empresa e o programador sumiu. Temos toda a documentação e todos os arquivos fontes que fazem parte do software. já estudei um pouco de C++, mas não tenho experiência. Minha pergunta é: Alguém tem alguma dica de como eu faço para compilar esse software para 64bits? Ele não roda em windows10 também. Acredito que tenho que mudar algumas funções antiga para as novas funções, mas não acho em nenhum lugar, "o que preciso modificar em cada arquivo fonte". Alguém pode me ajudar?
  3. Fiz um código para tenta capturar o valor das setas do teclado mas as setas geram 2 valores: 224 e o valor das setas(72, 75, 77, 80), como faço para capturar apenas o valor das setas? Código abaixo: #include <stdio.h> #include <conio.h> int posicao; int main() { do{ posicao = getch(); printf("%d\t",posicao); }while(posicao!=13); return 0; } (Estou usando: windows, GNU GCC compiler)
  4. Boa noite, tenho que fazer a suavização de um vetor de 10 posições. A suavização consiste em substituir o valor atual de uma posição pela média do valor da posição anterior, da posterior e dele próprio. Assumindo que o identificador do vetor é v, então v=(v[i-1]+v+v[i+1])/3, (exceto o primeiro e o último). O primeiro elemento do vetor é suavizado com base na média entre os dois primeiros valores e o último elemento é suavizado com base na média entre os dois últimos. Meu código ficou assim: #include<iostream> using namespace std; int main(){ int tam=10,vetor[tam],cont; float media=0; cout << "\n\t Suavização de vetor\n"; cout << "\nDigite dez valores: "; for(cont=0;cont<tam;cont++){ cin >> vetor[cont]; } for(cont=0;cont<tam;cont++){ if(cont ==0){ media=(vetor[cont]+vetor[cont+1])/2; cout << "\nPosicao no vetor: " << cont << ", suavizacao: " << media; media=0; } if(cont ==9){ media=(vetor[cont]+vetor[cont-1])/2; cout << "\nPosicao no vetor: " << cont << ", suavizacao: " << media; media=0; } else{ media=(vetor[cont-1]+vetor[cont]+vetor[cont+1])/3; cout << "\nPosicao no vetor: " << cont << ", suavizacao: " << media; media=0; } } } Ele não está retornando os valores corretamente, alguém sabe qual pode ser o erro?
  5. O que posso melhorar nesse código e não consigo descobrir porque a porcentagem está dando negativo. #include <iostream> #include <cstdlib> #include <locale.h> using namespace std; int main(void) { setlocale(LC_ALL, "Portuguese"); float porcentagem,contador,acumulador,altura,menor,maior,media,altura_t; int resposta,resp,i,homem,pessoas; porcentagem, contador, acumulador, altura,menor,maior,media,altura_t=0; contador = 0; resp = 0; resposta = 0; homem = 0; int contm = 0; cout << "Entre com a altura, digite -1 para sair: "; cin >> altura_t; maior = altura_t; menor = altura_t; while (altura_t != -1) { if (altura_t == 0) { maior = altura_t; menor = altura_t; altura_t++; } if (altura_t > maior) maior = altura_t; else if (altura_t < menor) menor = altura_t; cout << "Entre com a altura, digite -1 para sair: "; altura_t++; cin >> altura_t; } cout << "Entre com 1 para mulheres e 2 para homens. "; cin >> resposta; if (resposta == 1) { cout << "Entre com a altura da mulher: "; cin >> altura; } else if (resposta == 2) homem++; while (resposta != -1) { if (resposta != -1) if (resposta == 1) { acumulador = acumulador + altura; //altura++; cout << "Entre com a altura da mulher, digite -1 para sair: "; contm++; cin >> altura; } else if (resposta == 2) { homem++; } cout << "Para sair digite -1, dê enter para continuar. \\n"; cout << "Escolha, 1 para mulher, 2 para homens: \\n"; cin >> resposta; } porcentagem = contm * altura_t / 100; //porcentagem = (acumulador * contm ) / 100; //z = (x / y) * 100; media = acumulador / contm; cout << "A maior altura é: " << maior << " e a menor altura é: " << menor << "\\n"; cout << "O número de homens é de:" << homem << "\\n"; cout << "A porcentagem de mulheres em relação ao total de pessoas é de: " << porcentagem << "\\n"; cout << "A média de altura das mulheres é de: " << media << endl; }
  6. Fiz um programa para mostrar data e hora e atualizar a cada segundo, porém a função "for" não funciona. O compilador parece pular a função "for" e tudo que está dentro dela. Tem algum erro na sintaxe? #include <stdio.h> #include <stdlib.h> #include <windows.h> int main() { int i; for( i=0;i>100;i++){ system ("date /t" );// imprimir data system ("time /t");//imprimir hora Sleep(1000); system("cls"); } return 0; } (Estou usando: Windows,GNU GCC compiler).
  7. Sou iniciante em C++ e ando fazendo alguns exercícios. Estou em um exercício onde o programa pede ao usuário 10 números e depois apresenta o maior e o menor. Fiz o código da seguinte forma: #include <cstdio> #include <cstdlib> #include <iostream> #include <locale.h> using namespace std; int main(int nNumberofArgs, char* pszArgs[]) { setlocale(LC_ALL, "portuguese"); int i, final, nMax = 10; double nAux, nNumeros[10]; printf("Determine 10 números\n"); for(i = 0; i < nMax; i++) { cout << i + 1 << ": "; cin >> nNumeros; } do{ final = 0; for(i = 0; i < nMax; i++) { if(nNumeros > nNumeros[i+1]) { nAux = nNumeros; nNumeros = nNumeros[i+1]; nNumeros[i+1] = nAux; final = 1; } } }while(final); cout << "Maior número: " << nNumeros[9] << endl; cout << "Menor número: " << nNumeros[0] << endl; system("PAUSE"); return 0; } De fato, o menor valor funciona, porém o maior sempre imprime lixo. Já li e reli milhares de vezes o código, mudei várias coisas... Nada Funciona... Alguma dica??
  8. Elabore um programa em "C++" que simule o funcionamento de uma máquina de venda automática. Deverá ter em conta as seguintes indicações: - Só aceita moedas de 0.05, 0.10, 0.20, 0.50, 1.00 e 2.00 euros; - Só dará troco se tiver moedas suficientes para tal; - Inicialmente a máquina deve ter 5 moedas de 0.05, 0.10, 0.20, 0.50 euros; - Deve vender 6 produtos diferentes; - Inicialmente deve estar carregada com 5 unidades de cada produto; - Deve dar indicações de produto esgotado e troco indisponível. A máquina deve permitir escolher o modo Utilizador ou Manutenção. No primeiro, o utilizador deverá introduzir uma quantia, selecionar produto, receber produto e troco caso seja necessário. No modo manutenção, deverá permitir carregar produtos, carregar moedas, tirar moedas (neste caso deve dizer quantas e o valor total), o acesso a este modo tem que ser feito pela validação de um código de acesso (400855). A parte da manutenção e a parte de dar o troco não estou a conseguir fazer. #include<stdio.h> #include<iostream> #include<stdlib.h> #include<math.h> #include <conio.h> extern char resp[ ]="400855"; char rl[40]; int ModoMan(int moe,int cenas) { gets(rl); while(strcmp(rl,resp) !=0) puts("Resposta errada. Tente de novo."); gets(rl); puts("Correcto! "); } main() { float combeb[5]={1,1.10,1.20,1,0.50}; int indice,moe,cenas,i; float saldo = 0; int moeda,creditos; int stock[6]={5,5,5,5,5,5}; float valor[6] = {0.05,0.10,0.20,0.50,1,2}; int caso = 1; int TROCO[6]; float troco; int cont; int custo=0; int quantidade; system("color 0B"); printf("%c",201); for(i=0;i<30;i++) printf("%c",205); printf("%c\n",187); printf("%c",204); for(i=0;i<30;i++) printf("%c",205); printf("%c\n",185); while(caso) { printf("\nSeu saldo Atual e de: euro%.2f\n\n",saldo); printf("ESCOLHA A OPCAO:\n\n",186,186); printf("0 - Sair\n",186,186); printf("1 - Depositar Moeda\n",186,135,198,186); printf("2 - Escolher bebidas\n",186,135,198,186); printf("3 - Modo Admistrador\n",186,198,186); printf("\nOPCAO:",186,186); scanf("%i", &caso); switch(caso) { case 1: { system("cls"); printf("\n\nDeposite a sua moeda\n\n"); printf("0 - 0.05 centimos\n"); printf("1 - 0.10 centimos\n"); printf("2 - 0.20 centimos\n"); printf("3 - 0.50 centimos\n"); printf("4 - 1 Euro\n"); printf("5 - 2 Euros\n\n"); printf("MOEDA:"); scanf("%i",&moeda); saldo = saldo + valor[moeda]; break; } case 2: { system("cls"); printf("\n\nEscolha a bebida que deseja\n"); printf("0 - Sair - 0.50euro\n "); printf("1 - Ice Tea Limao - 1euro\n"); printf("2 - Ice tea de pêssego - 1.10euro\n"); printf("3 - Bogo - 1.20€\n"); printf("4 - Agua 1L - 1euro\n -"); printf("5 -Bolachas De Agua e sal - 0.50euro\n "); printf("6 -Bolachas - 0.50euro\n "); printf("bebidas:\n"); scanf("%i", &indice); break; } case 3: { printf("Digite o codigo de acesso: "); scanf("%c",&rl); ModoMan(moe,cenas); printf("1- Carregar produtos\n"); printf("2- Carregar moedas\n"); printf("3- Tirar Moedas\n"); cont = 0; printf("\n\nO seu troco e:\n\n"); while(cont<6) { printf("MOEDAS DE euro%.2f: %i\n", valor[cont], TROCO[cont]); cont++; } saldo = 0; } { printf("\n\n====== Saldo Insuficiente ======"); } break; } if(caso>2) { printf("OPCAO INVALIDA!!\n\n"); } } if(saldo != 0) { cont = 5; while (cont >= 0) { TROCO[cont] = 0; while(saldo >= valor[cont]) { TROCO[cont] = TROCO[cont]+1; saldo = saldo - valor[cont]; } cont = cont -1; } cont = 0; printf("\n\nO seu troco e:\n\n"); while(cont<6) { printf("MOEDAS DE euro%.2f: %i\n", valor[cont], TROCO[cont]); cont++; } saldo = 0; } printf("\n\nOBRIGADO! VOLTE SEMPRE!\n\n"); system("PAUSE"); return 0; }
  9. Olá, tentei várias vezes realizar um programa em que o enunciado é o seguinte: Uma função que permita devolver o resultado do calculo da seguinte expressão: XY/(2*Y) É necessário a utilização de um subprograma. O programa que realizei foi o seguinte: No programa: { printf ("Introduza os valores de X e Y\n"); scanf ("%d%d", &x, &y); expressao (x,y); printf ("O valor da expressao = %d\n", expressao (x,y)/(2*y)); } No subprograma: int expressao (int x, int y) { if (y<=0) { return (1); } else { return (x*expressao (x, y-1)); } } Obrigada e espero que me consigam ajudar!
  10. Olá, tentei várias vezes realizar um programa em que o enunciado é o seguinte: Numa loja de eletrodomésticos, cada vendedor recebe o salário base mais uma comissão pelo número de aparelhos vendidos mensalmente, de acordo com a seguinte tabela: nº aparelhos vendidos ---- %da comissão + 20 ---- 12% 10 a 20 ----- 9% Sendo dado o salário base e o número de aparelhos vendidos por mês, calcular qual o vencimento total de cada um dos n vendedor e o valor da comissão recebida por cada um. O programa que realizei foi o seguinte: No programa principal declarei apenas: produtos () No subprograma: void produtos () { int naparelhos; float vtotal, comissao, sbase; { printf ("Indique salario\n"); scanf ("%d", &sbase); printf ("Qual o numero de aparelhos vendidos?\n"); scanf ("%d", &naparelhos); if (naparelhos>20) { comissao= (sbase*0.12); vtotal = sbase + comissao; } else { if (naparelhos<=20 && naparelhos>10) { comissao = (sbase *0.09); vtotal = sbase + comissao; } if (naparelhos<10) { comissao=0; vtotal=sbase+comissao; } } printf ("O valor do salario e %2.f e o valor da comissao e %2.f\n", vtotal,comissao); } } Obrigada, e espero que me consigam ajudar!
  11. Boa noite a todos, eu estudo c++ através de video aula, e num exercício que é fazer um calendário anual, eu digito o ano, e apenas o primeiro mês esta correto, os outros meses os dias que correspondem a semana esta certo mais nos dias trocados, gostaria de saber se alguém poderia me ajudar, onde eu estou errando! #include<iostream> #include <iomanip> /* Dados dia, mês e ano de uma data gregoriana, escreva uma função que converta essa data para data juliana correspondente. Use a seguinte fórmula: Data juliana = (1461*(ano + 4800 +(mes - 14)/12) )/4 + (367 * (mes - 2 - 12 * (( mes - 14)/12)))/ 12 - (3*((ano+4900+(mes-14)/12)/100))/4+dia-32075. Escreva uma função que receba dia, mês e ano e calcule o dia da semana em que caiu essa data. Para isso, basta transformar a data gregoriana em juliana e calcular o resto da divisão da data juliana por 7. A função deverá retornar um número entre 0 e 6 indicando os seguintes resultados: 0 - Segunda-feira 1 - Terça-feira 2 - Quarta-feira 3 - Quinta-feira 4 - Sexta-feira 5 - Sábado 6 - Domingo Faça um calendario anual */ using namespace std; int juliana(int dia, int mes, int ano); int diadasemana(int numero); string meses(int m); int dia_mes(int a); bool bissexto(int n); void calendario(int num, int d); static int ano; int main(){ setlocale(LC_ALL, "Portuguese"); int conv=0; int diames=0; cout<<"Ano: "; cin>>ano; cout<<endl; for(int mes=1; mes<=12; mes++){ diames = dia_mes(mes); cout<<meses(mes); cout<<"\nSeg Ter Qua Qui Sex Sab Dom\n"; for(int dia=1; dia<=diames; dia++){ conv = diadasemana(juliana(dia, mes, ano)); calendario(conv, dia); if(dia % 7 == 0){ cout<<endl; } } cout<<endl; } return 0; } //-------------------------------------------------------// void calendario(int num, int d){ switch(num){ case 0: printf("%3d ", d); break; case 1: printf("%3d ", d); break; case 2: printf("%3d ", d); break; case 3: printf("%3d ", d); break; case 4: printf("%3d ", d); break; case 5: printf("%3d ", d); break; case 6: printf("%3d ", d); break; } } //-------------------------------------------------------// int juliana(int dia, int mes, int ano){ return (1461*(ano + 4800 +(mes - 14)/12) )/4 + (367 * (mes - 2 - 12 * (( mes - 14)/12)))/ 12 - (3*((ano+4900+(mes-14)/12)/100))/4+dia-32075; } //-------------------------------------------------------// int diadasemana(int numero){ return numero % 7; } //-------------------------------------------------------// string meses(int m){ switch(m){ case 1: return "Janeiro"; case 2: return "\nFevereiro"; case 3: return "\nMarço"; case 4: return "\nAbril"; case 5: return "\nMaio"; case 6: return "\nJunho"; case 7: return "\nJulho"; case 8: return "\nAgosto"; case 9: return "\nSetembro"; case 10: return "\nOutubro"; case 11: return "\nNovembro"; default: return "\nDezembro"; } } //-------------------------------------------------------// int dia_mes(int a){ if(a == 1 || a == 3 || a == 5 || a == 7 || a == 8 || a == 10 || a == 12){ return 31; }else if(a == 2){ if(bissexto(ano) == true){ return 29; }else{ return 28; } }else{ return 30; } } //-------------------------------------------------------// bool bissexto(int n){ if((n % 4 == 0) && (n % 100 != 0)){ return true; }else if(n % 400 == 0){ return true; }else{ return false; } }
  12. Como programar o arduino para fazer aquele efeito inclinado ou italico em caracteres, em display matricial de led 5x7?
  13. olá gente, sou novo aqui, é o seguinte, Tenho um programa feito em C++ , um jogo, existir vários arquivos no jogo, exemplos ( lua, png, ogg, otui ). quero colocar uma forma de que as sources do executável do jogo leia esses arquivos encriptados. achei um video no youtube, um cara disponibilizou um programa que ele criou em c++, que criptografa todo tipo de arquivos, inclusive, vi vários jogos do estilo desse meu, com os arquivos encriptados da mesma forma que o programa desse cara criptografa. o programa dele é open source, ent dá pra ver os tipos de criptografias usados, para implementar nos códigos de fontes do meu jogo. aqui está o video do cara criptografando. e aqui está o download do programa dele que ele liberou, que está nos comentários do video. puu.sh/oSp9p/7f42254c9b.rar pronto, para quem n entendeu direito, quero implementar a leituras de arquivos encriptados por esse programa ai, nas sources do meu exe do meu game.
  14. Olá à todos. Essa dúvida parece que é antiga, mas... Tem como descompilar um arquivo .exe hoje em dia? "Porque esse cara está querendo fazer isso?" É a primeira coisa que alguém se pergunta. E a resposta é que são vários os motivos. O primeiro é que o tal arquivo contém um ''Win64:PUP-gen'', e um ''Win32:Mawere-gen''... Este tipo de malícia é muito comum na comunidade que produz estes exe's, até porque não são feitos por empresas, mas por devs que que usam apenas nicnames. Além do mais, o cara que fez este exe abandonou o projeto à mais de 6 meses, até porque a malandragem rendeu dinheiro para ele, e não tem muitas opções para substituir o programinha dele. Então eu gostaria de abrir este arquivo para 'limpar' ele. Eu posso descobrir a versão do C++ e o toolkit que foi usado, uma listas de endereços e IP's que ele acessa secretamente, e um endereço de 34 caracteres (coisas que estão escritas dentro dele) se isto ajudar... Edit: Tem uma versão para o Linux do mesmo programa, talvez seja mais fácil descompilar, limpar e modificar para Windows (?).
  15. Boa noite, queria saber como fazer uma função ou um ciclo para me retornar o numero de quantos valores tem um array. Obrigado.
  16. Boa noite, estou com um problema em meu app que estou fazendo para estudo. O problema é o seguinte: preciso abrir um programa, mas dependendo do pc em que ele esteja não saberei onde ele vai está, ou melhor, em que pasta estará. Ao escolher 1 no programa ele terá que abrir um segundo programa. To usando esse codigo: case 1: system("C:\\pastas......\\XX.exe"); mas como podem ver, só vai funcionar se eu por o caminho inteiro por completo. Tem algum codigo onde eu possa por o nome do segundo programa a ser aberto? desde já agradeço.
  17. Dado o algoritmo abaixo incompleto do caso 4 e 5 faça a INSERÇÃO e REMOÇÃO de uma posição qualquer da lista. #include <stdio.h> #include <stdlib.h> #include <cstdlib> #include <iostream> using namespace std; typedef struct celulalista{ int informacao; struct celulalista *proximo; }celula; void initlista(celula *pRecebido); void insertlista(celula *pRecebido); void buscalistasimples(celula *pRecebido); void removeelementolistasimples(celula *pRecebido); int levalor(int *valorrecebido); int main() { //Declaracoes celula *pLista; int opcao=0; //pLista = (celula *)malloc(sizeof(struct celulalista)); pLista = new celulalista; initlista(pLista); for(;;) { cout<<"\n\t1 - Inserir : "; cout<<"\n\t2 - Consultar : "; cout<<"\n\t3 - Remover : "; cout<<"\n\t4 - INSERIR EM POSICAO QUALQUER : "; cout<<"\n\t5 - REMOVER EM POSICAO QUALQUER: "; cout<<"\n\t6 - Sair\n\t"; cin>>opcao; opcao = levalor(&opcao); switch(opcao) { case 1: insertlista(pLista); break; case 2: buscalistasimples(pLista); break; case 3: removeelementolistasimples(pLista); break; case 4: exit(0); } } return 0; } /* Inicializacao da lista encadeada */ void initlista(celula *pRecebido){ (pRecebido)->proximo = NULL; } /* Funcao para insercao no inicio */ void insertlista(celula *pRecebido){ //Declaracoes celula *temporario; int valor; //Instrucoes cout<<"\n\tInforme um valor a ser inserido : "; cin>>valor; temporario = (celula * )malloc(sizeof(celula)); temporario->informacao = valor; temporario->proximo = (pRecebido)->proximo; (pRecebido)->proximo = temporario; } /* Funcao para percorrer elementos */ void buscalistasimples(celula *pRecebido){ //Declaracoes celula *temporario; int i=0; //Instrucoes if((pRecebido)->proximo == NULL){ cout<<"\tLista Vazia!\n"; }else{ temporario = (celula * )malloc(sizeof(celula)); temporario = (pRecebido)->proximo; system("cls"); while(temporario!=NULL){ cout<<"\n\t["<<(i=i+1) <<"] Valor : "<<temporario->informacao<<"\n"; temporario = temporario->proximo; } } } /* Remove elemento da cabeca */ void removeelementolistasimples(celula *pRecebido){ //Declaracoes celula *temporario; //Instrucoes if((pRecebido)->proximo == NULL){ cout<<"\n\tLista Vazia!"; }else{ temporario = (pRecebido)->proximo; (pRecebido)->proximo = temporario->proximo; free(temporario); } } int levalor(int *valorrecebido){ //Declaracoes //Instrucoes while((*valorrecebido > 6 )|| (*valorrecebido<1)){ cout<<"\n\tOpcao Invalida. Informe novamente : \n"; scanf("%d", &(*valorrecebido)); } return (*valorrecebido); }
  18. Será dado a você uma matriz de tamanho NxM, inicialmente contendo o n ́umero 0 em cada uma das posições, e Q operacoes a serem realizadas sobre essa matriz. Cada operacao é composta de 5 numeros inteiros X1, Y1, X2, Y2 e K, onde (X1, Y1) indicam o canto superior esquerdo e (X2, Y2) o canto inferior direito do retangulo definido por esse par de pontos. O ultimo dos 5 inteiros,representado pelo inteiro K, indica a cor que deverá ser usada para pintar o retangulo dado naquela operacao. Sua tarefa é, dadas Q operacoes (Q retangulos), imprimir a matriz resultante depois de todas elas. Entrada: A primeira linha da entrada possui dois inteiros N, M e Q, indicando as dimensoes da matriz e o numero de opera ̧coes. Depois, haverão Q linhas, contendo os 5 inteiros X1, Y1, X2, Y2 e K que representam as bordas do retangulo e a cor com a qual ele deve ser pintado, como indicado acima. Saıda: A saıda deve conter N linhas com M inteiros cada separados por um espaco em branco, representando a matriz apos a realizacao de todas as operacoes Exemplos Entrada 3 3 2 0 0 1 1 4 2 0 2 1 8 Saıda 4 4 0 4 4 0 8 8 0 Entrada 2 3 3 0 0 1 1 6 0 2 0 2 1 1 0 1 1 5 Sa ́ıda 6 6 1 5 5 0 Segue algoritmo que consegui até agora, mas ainda assim, não consigo entender como sobrescrever e pintar a matriz... #include<iostream> using namespace std; #define max 50 int main() { int i, j, a, b, n, m, q; int matriz[max][max]; int x1[max]; int x2[max]; int y1[max]; int y2[max]; int k[max]; //entrada da primeira linha while ((n<1 || n>50) && (m<1 || m>50) && (q<1 || q>50)) { cin>>n>>m>>q; } //zerando matriz for (int i=0; i<n; i++) { for (int j=0; j<m; j++) { matriz [i][j]=0; } } //vetor de cor e de operacao i=0; while (i<q) { x1[i]= -1; x2[i]= n; y1[i]= -1; y2[i]= m; k[i]= 0; } i=0; //recebendo as coordenadas while (i<q) { while ( (x1[i]<0 || x1[i]>x2[i]) && (x2[i]>=n) && (y1[i]<0 || y1[i]>y2[i]) && (y2[i]>=m) && (k[i]<1 || k[i]>9)) { cin>>x1[i]>>y1[i]>>x2[i]>>y2[i]>>k[i]; } i++; } //pintando a paradinha for (int i=0; i<q; i++) { for (int a=x1[i]; a<=x2[i]; a++) { for (int b=x1[i]; b<y2[i]; b++) { matriz[a][b] = k[i]; } } } //imprimindo a matriz for (int i=0; i<n; i++) { for (int j=0; j<m; j++) { if (j== m-1) { cout<< matriz[i][j]<<endl; } else { cout<<matriz[i][j]<<endl; } } } return 0; }
  19. O objetivo é: 1 Inserir nó no final da lista 2 Remover nó no final da lista 3 Inserir nó em posição qualquer da lista; 4 Remoção de nó em posição qualquer da lista; A 1 e a 2 eu consegui fazer, mas não encontro referência de como inserir e remover nó em posição qualquer da lista. O meu algoritmo ficou da seguinte forma: #include <stdio.h> #include <stdlib.h> #include <cstdlib> #include <iostream> using namespace std; typedef struct celulalista{ int informacao; struct celulalista *proximo; }celula; void initlista(celula *pRecebido); void insertlista(celula *pRecebido); void buscalistasimples(celula *pRecebido); void removeelementolistasimples(celula *pRecebido); int levalor(int *valorrecebido); int main() { //Declaracoes celula *pLista; int opcao=0; //pLista = (celula *)malloc(sizeof(struct celulalista)); pLista = new celulalista; initlista(pLista); for(;;) { cout<<"\n\t1 - Inserir : "; cout<<"\n\t2 - Consultar : "; cout<<"\n\t3 - Remover : "; cout<<"\n\t4 - Sair : \n\t"; cin>>opcao; opcao = levalor(&opcao); switch(opcao) { case 1: insertlista(pLista); break; case 2: buscalistasimples(pLista); break; case 3: removeelementolistasimples(pLista); break; case 4: exit(0); } } return 0; } /* Inicializacao da lista encadeada */ void initlista(celula *pRecebido){ (pRecebido)->proximo = NULL; } /* Funcao para insercao no inicio */ void insertlista(celula *pRecebido){ //Declaracoes celula *temporario; int valor; //Instrucoes cout<<"\n\tInforme um valor a ser inserido : "; cin>>valor; temporario = (celula * )malloc(sizeof(celula)); temporario->informacao = valor; temporario->proximo = (pRecebido)->proximo; (pRecebido)->proximo = temporario; } /* Funcao para percorrer elementos */ void buscalistasimples(celula *pRecebido){ //Declaracoes celula *temporario; //Instrucoes if((pRecebido)->proximo == NULL){ cout<<"\tLista Vazia!\n"; }else{ temporario = (celula * )malloc(sizeof(celula)); temporario = (pRecebido)->proximo; system("cls"); while(temporario!=NULL){ cout<<"\n\tValor : "<<temporario->informacao<<"\n"; temporario = temporario->proximo; } } } /* Remove elemento da cabeca */ void removeelementolistasimples(celula *pRecebido){ //Declaracoes celula *temporario; //Instrucoes if((pRecebido)->proximo == NULL){ cout<<"\n\tLista Vazia!"; }else{ temporario = (pRecebido)->proximo; (pRecebido)->proximo = temporario->proximo; free(temporario); } } int levalor(int *valorrecebido){ //Declaracoes //Instrucoes while((*valorrecebido > 4 )|| (*valorrecebido<1)){ cout<<"\n\tOpcao Invalida. Informe novamente : \n"; scanf("%d", &(*valorrecebido)); } return (*valorrecebido); } Alguém poderia me ajudar nesse algoritmo de como ele ficaria ?
  20. Boa tarde, Estou fazendo um exercício que pede para armazenar 5 notas de juízes ( de 0 a 9) a um atleta em um vetor e depois exiba a media, a maior nota, a menor nota, e a a percentagem de pontuações iguais ou superiores a 8 valores. E essa ultima me pegou de jeito, por que não estou conseguindo montar o trecho de código para identificar repetidos em um vetor. Meu código até então está assim: #include <iostream> #define juiz 5 using namespace std; int main(){ int notas[juiz],cont,media=0,maior=0,menor=0; cout << "\n\t Prova de Atletismo\n"; cout << "Digite 5 notas entre 0 a 9 para o atleta: \n"; //armazenar valores for(cont=0;cont<juiz;cont++){ cin >> notas[cont]; } //media for(cont=0;cont<juiz;cont++){ media+=notas[cont]; } media=media/juiz; cout << "\nA media do atleta foi de: " << media; //maior for(cont=0;cont<juiz;cont++){ if(notas[cont]>maior){ maior=notas[cont]; } } //menor menor=maior; for(cont=0;cont<juiz;cont++){ if(notas[cont]<menor){ menor=notas[cont]; } } cout << "\nA sua menor nota foi: " << menor << " e a sua maior nota foi: " << maior; //repetidos int rep=0; int cont2=notas[0]; for(cont=0;cont<juiz;cont++){ if(notas[cont] == cont2){ rep++; } } } Sei que poderia colocar um outro FOR dentro do primeiro para resolver, mas não estou sabendo montar a lógica correta. Alguma sugestão?
  21. como faco para que encontre o nome num vetor ou seija se mandar pequisar um nome que me diga se ele se encontra presente ou nao #include <stdio.h> #include <string.h> #include <stdlib.h> #include <locale.h> #include <unistd.h> #include <math.h> int main() { setlocale(LC_ALL,"Portuguese"); char nomes[5][10]={"pedro","miguel","pereira","lareira","ladeira"}; char nome[1][10]; int idades[5]; int opcao1,opcao2,opcao3,i,j,a,x,t,n,r,c,maior,menor,soma,media; do{ system("cls"); printf("Está No Primeiro Menu\n\n"); printf("1. Idades"/*concluida*/"\n2. Nomes\n3. Notas\n0. Fechar\n"); scanf("%d",&opcao1); system("cls"); if(opcao1==1)//opção 1 do menu inicial-concluida { do{ system("cls"); printf("Está No primeiro SubMenu\n\n"); printf("1. Inserir idade\n2. Listar\n3. Pesquisar\n"); printf("4. Ordenar\n5. Eliminar\n6. Estatística\n"); printf("0. Regressar ao menu\n"); scanf("%d",&opcao2); system("cls"); if(opcao2==1)/*//opção 1 do submenu*/ { printf("Inserir Idades\n\n"); for(i=0;i<5;i++) { printf("\nInsira a %dº idade:",i+1); scanf("%d",&idades); } system("cls"); sleep(5); } if(opcao2==2)/*//opção 2 do submenu,*/ { printf("Listar\n\n"); for(i=0;i<5;i++) { printf("%d\n",idades); } sleep(5); system("cls"); } if(opcao2==3)/*//opção 3 do submenu*/ { printf("Pesquisar\n\n"); printf("Insira a idade que deseja procurar: "); scanf("%d",&x); if(idades[0]==x||idades[1]==x||idades[2]==x||idades[3]==x||idades[4]==x) { printf("A idade foi encontrada"); } else { printf("O valor não foi encontrado"); } sleep(5); system("cls"); } if(opcao2==4) { printf("Ordenar\n\n"); for (i=0;i<5; i++) { for(j=i+1;j<5;j++) { if (idades>idades[j]) { t=idades; idades=idades[j]; idades[j]=t; } } } printf("Vetor Ordenado:\n"); for(i=0;i<5;i++) { printf("%d\n",idades); } sleep(5); system("cls"); } if(opcao2==5) { printf("Eliminar\n\n"); printf("Insira a posição que deseja eliminar: "); scanf("%d",&n); printf("O numero que será eleminaro será: %d",idades[n]); idades[n]=0; sleep(5); system("cls"); } if(opcao2==6)/*//opção 6 do submenu*/ { do{ system("cls"); printf("Está No Terceiro SubMenu\n\nEstatísticas\n\n"); printf("1. Numero de idades\n4. Idade maior\n5. Idade menor\n"); printf("6. Média das idades\n0. Regressar ao menu\n"); scanf("%d",&opcao3); system("cls"); if (opcao3==0) { printf("Retornando Ao Segundo SubMenu\n\n"); sleep(5); system("cls"); } if (opcao3==1) { printf("Número De Idades\n\n"); sleep(5); system("cls"); } if (opcao3==4) { printf("Opção 4\n\n"); maior=idades[0]; for(i=1;i<5;i++) { if(idades>maior) { maior=idades; } } printf("Idade maior: %d",maior); sleep(5); system("cls"); } if (opcao3==5) { printf("Opção 5\n\n"); menor=idades[0]; for(i=1;i<5;i++) { if(idades<menor) { menor=idades; } } printf("Idade maior: %d",menor); sleep(5); system("cls"); } if (opcao3==6) { printf("Opção 6\n\n"); for(i=0;i<5;i++) { soma=soma+idades; } media=soma/5; printf("A media das idades é: %d",media); sleep(5); system("cls"); } }while(opcao3!=0); } if(opcao2==0) { printf("Retornando Ao Segundo SubMenu"); sleep(5); system("cls"); } }while(opcao2!=0); } if(opcao1==2) { do { system("cls"); printf("Está No Segundo SubMenu\n\n"); printf("1. Inserir nome\n2. Listar\n3. Pesquisar\n"); printf("4. Ordenar\n5. Eliminar\n0. Regressar ao menu\n"); scanf("%d",&opcao2); system("cls"); if(opcao2==1) { printf("Inserir Nomes\n\n"); for(i=0;i<5;i++) { printf("\nInsira 5 nomes:"); scanf("%s",&nomes); } sleep(5); system("cls"); } if(opcao2==2) { printf("Listar\n\n"); for (i=0;i<5;i++) { r=strlen(nomes); printf("\n"); for (j=0;j<r;j++) { printf("%c",nomes[j]); } } sleep(5); system("cls"); } if(opcao2==3) { printf("Pesquisar\n\n"); sleep(5); system("cls"); } if(opcao2==4) { printf("Ordenar\n\n"); sleep(5); system("cls"); } }while(opcao2!=0); } }while(opcao1!=0); return 0; }
  22. Olá. Estou começando a estudar mutexes em C++. Fiz um programa que inclui elementos em uma lista simplesmente encadeada, ordena e mostra o tempo que levou esta ordenação. Gostaria de usar múltiplos threads para fazer essa ordenação (podendo escolher quantos, na linha std::thread threads[10];), e variando o número de elementos que a lista possui, a fim de comparar os tempos de execução, com diferentes elementos/diferentes threads. Fiz isto no main. Estou fazendo certo? Não vejo quase nenhuma diferença entre os tempos, nos testes. Segue abaixo o código. Desde já agradeço pela ajuda e atenção. /* * Programa C++ para Ordenar Lista Simplesmente Encadeada */ #include <iostream> #include <cstdio> #include <cstdlib> #include <chrono> #include <thread> #include <mutex> #define MAX 1000 //número de elementos da lista std::mutex mtx; // mutex para seção crítica using namespace std; /* * Declaração do Nodo */ struct nodo { int info; struct nodo *proximo; }*inicio; /* * Declaração das Classes */ class lista_simples { public: nodo* cria_nodo(int); void insere_inicio(); void ordena(); void exibe(); lista_dupla() { inicio = NULL; } }; /* * Main :contém Menu de Opções */ main() { int opcao, nodes, elemento, posicao, i; lista_simples ls; inicio = NULL; std::thread threads[10]; //número de threads utilizados std::chrono::time_point<std::chrono::system_clock> inicio, fim; std::chrono::duration<double> tempoDecorrido; while (1) { cout << endl <<"---------------------------------------" << endl; cout << endl << "Ordenacao Lista Simplesmente Encadeada" << endl; cout << endl << "--------------------------------------" << endl; cout << "1. Inserir nodos no Inicio" << endl; cout << "2. Ordena Lista Encadeada" << endl; cout << "3. Sair " << endl; cout << "\nEntre com a opcao : "; cin >> opcao; switch(opcao) { case 1: cout << "\nInserindo nodos no Inicio " << endl; ls.insere_inicio(); //ls.exibe(); cout << endl; break; case 2: cout << "\nOrdena Lista Encadeada: " << endl; inicio = std::chrono::system_clock::now(); mtx.lock(); ls.ordena(); //ls.exibe(); mtx.unlock(); fim = std::chrono::system_clock::now(); tempoDecorrido = fim - inicio; cout << "\n\n\nCalculado em: " << tempoDecorrido.count() << "s" << endl; cout << endl; break; case 3: cout << "Sair" << endl; exit(1); break; default: cout << "Opcao Errada" << endl; } } } /* * Cria nodo - Cria Lista Simplesmente Encadeada */ nodo *lista_simples::cria_nodo(int valor) { struct nodo *temp, *s; temp = new(struct nodo); if (temp == NULL) { cout << "Memoria nao Alocada" << endl; return 0; } else { temp->info = valor; temp->proximo = NULL; return temp; } } /* * Insere elementos no início */ void lista_simples::insere_inicio() { int i,valor; struct nodo *temp, *p; for (i=1; i <=MAX; i++) { temp = cria_nodo(valor); valor = rand() % (MAX * 10); if (inicio == NULL) { inicio = temp; inicio->proximo = NULL; } else { p = inicio; inicio = temp; inicio->proximo = p; } } cout << "\nElementos inserido no Inicio" << endl; } /* * Ordena Lista Simplesmente Encadeada */ void lista_simples::ordena() { struct nodo *ptr, *s; int valor; if (inicio == NULL) { cout << "A Lista esta vazia!"<<endl; return; } ptr = inicio; while (ptr != NULL) { for (s = ptr->proximo;s !=NULL;s = s->proximo) { if (ptr->info > s->info) { valor = ptr->info; ptr->info = s->info; s->info = valor; } } ptr = ptr->proximo; } } /* * Exibe elementos da Lista */ void lista_simples::exibe() { struct nodo *temp; if (inicio == NULL) { cout << "A Lista esta vazia!" << endl; return; } temp = inicio; cout << "\nElementos da Lista: " << endl; while (temp != NULL) { cout << temp->info << " "; temp = temp->proximo; } cout << "NULL" << endl; }
  23. Já faz uma semana que estou tentando instalar o sqlit3 para uso em c++ com CODEBLOCKS. Alguém pode me mostrar em detalhes como se faz para instalar, já tentei diversas soluções encontradas na internet. Eu baixei o SQLITE3 do site oficial. Eu estou usando um desktop com WINDOWS 10 PRO atualizado com CODEBLOCK 16.1 instalado e funcionado para programação C++..
  24. Boa tarde. Gostaria de ajuda com um exercício, pois estou estudando sozinho e não tenho alguém para poder recorrer. Ele diz o seguinte: Uma empresa pretende enviar cifrada uma sequência de inteiros decimais de 4 dígitos(DigDigDigDig). A cifra consiste em: substituir cada dígito Dig por (Dig+8)%10 (i.e., adiciona 8 e calcula o resto da divisão do resultado por 10); depois troca o terceiro dígito com o primeiro e troca o quarto dígito com o segundo. a) Escreva uma função que receba um inteiro decimal de 4 dígitos e o devolva cifrado. b )Escreva uma função que receba um inteiro cifrado e o decifre para o valor original. c) Escreva uma função que apresente um «menu» com 2 opções, cifrar e decifrar número, peça ao utilizador para escolher uma das opções, e retorne a opção escolhida. d) Faça um programa que permita testar as funções anteriores. Primeiro estou fazendo sem a função para entender como fazer. Fiz o seguinte: int main(){ int n,i,num[4]; cout << "Digite um numero: "; cin >>n; i=0; while(n>0){ num= n%10; n=n/10; i=i+1; } cout << num[1]<<num[0]<<num[3]<<num[2]; } Não consigo fazer o decodificar de maneira correta, se alguém poder me explicar em vez de colocar um código já pronto iria agradecer muito.

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

×