Ir ao conteúdo
  • Cadastre-se

Felipecfk

Membro Pleno
  • Posts

    399
  • Cadastrado em

  • Última visita

Tudo que Felipecfk postou

  1. Você pode usar um try catch. No try tente abrir o arquivo, se já estiver aberto ele vai cair na exceção e aí você pode por uma mensagem na exceção dizendo: "o arquivo já está aberto". Caso contrário coloque uma mensagem no try dizendo "o arquivo foi aberto". Talvez você precise do System.IO para conseguir pegar a exceção certinho. Mas isso só checa se o arquivo existe no caminho, não checa se está aberto ou não.
  2. Infelizmente muitos jogos da versão Steam dão problema no Windows, coisa de faltar arquivo. Esse não é o primeiro jogo em que isso acontece. Se você disse que rodou no Mint, então com certeza não é nenhum problema de hardware ou driver. Você pode tentar o seguinte: clicar com o direito no executável do jogo(se é que ele aparece no pc, fora do programa da Steam) e ir em 'solucionar problemas de compatibilidade'. Aí tenta rodar no modo de compatibilidade Windows 7 por exemplo. Pode ser até que o antivirus que você esteja usando no Windows esteja deletando automaticamente algum arquivo importante na hora de rodar. De repente um falso positivo.
  3. Vai em gerenciador de dispositivos > adaptadores de vídeo > clica na seta que vai aparecer o driver > clica com o direito no driver e depois atualizar driver. O problema é que ultimamente tanto a nvidia quanto a amd estão uma porcaria e fazem um driver e lançam pra todo mundo, essa detecção de drivers deles está completamente avacalhada, especialmente da amd. Ou seja, mandam drivers de ultima geração para placas que não suportam mais. Enfim, tenta isso que falei, se não der certo volta aqui que tentamos outra opção.
  4. Não sei pra que tanto struct, só precisa de um struct e uma função. Dá pra diminuir em umas 18 linhas esse código. Por exemplo, deixe o nome e a data num struct só, chamado dados_cliente. As datas vão ser valores inteiros de dia, mês e ano. Eu acho que ter uma função "escreva_dados", sendo que o próprio printf já faz isso, só complica desnecessariamente a situação. No caso, você tem uma função para imprimir outras 3 impressões... não é mais fácil imprimir direto? Tudo bem que você vai ter que repetir os códigos de leitura para os 2 clientes, mas como são apenas 2 usados para comparação, então não tem problema prints e leituras no main direto. Se fosse uma montanha de clientes, aí sim talvez uma função a mais fosse útil, porque aí inseria o cliente como parâmetro e a função trataria da sequência de código para preencher os dados. Os nomes das variáveis que você criou as vezes são muito curtos e fáceis de esquecer. a.algumacoisa, b.outra, x.outra, etc. Não tem problema escrever "cliente.nome" por exemplo, é mais legível e também fácil de lembrar do que se trata. Quando você colocou o nome da função no mesmo formato de nome do struct, achei meio confuso pra ser sincero. Escreva MaisVelho pra distinguir a função. Sobre a lógica da função MaisVelho, dá pra simplificar usando and(&&) e/ou or(||). O "else if", evita de dois ou mais "ifs" coincidirem e dar respostas diferentes ao mesmo tempo, dependendo da situação. Lembre que C não é orientada a objetos, o struct serve mais pra organizar o código do que ser quase que uma obrigação pra tudo que você vai fazer, como é no caso das classes nas linguagens de objeto.
  5. Acho que o negócio é você decidir se quer jogar ou se quer ter fetiche por gráfico. Eu lembro uma vez que perdi quase 2 horas tentando colocar o jogo na FOV certa e sem stretch no widescreen, sendo que se eu tivesse jogando num console não precisaria me preocupar com isso. Mas aí a gente começa a perceber o quanto isso é perda de tempo e no fim, na hora de jogar, você vai estar tão distraído com o conteúdo que não vai nem lembrar de ficar calibrando tanto detalhe inútil. A uns anos atrás fui tentar jogar doom(2016) num notebook só com vídeo integrado e aí disse pra mim que não rodava. Uns anos depois no mesmo note eu decidi jogar com tudo no low e uma resolução um pouco inferior, o jogo ainda estava bonito e o framerate jogável entre 50 e 60. Ou seja, é claro que é legal jogar com gráficos tudo no ultra mas não é nem de longe necessário. Por isso era bom a época do mario world, onde todo mundo se lixava pra gráfico, esse termo nem era usado, não na minha roda pelo menos. Essa tara pro gráfico começou no Half-Life 2.
  6. Por que não seria compatível? Só se sua placa-mãe tivesse aqueles slots AGP (que já foram extintos acho que antes de 2005) ao invés de PCI-E. O que pode acontecer de ruim é quando você tem uma placa-mãe de entrada com um processador muito forte, aí pode, e eu já vi dar problema. Mas de placa de vídeo que depende mais de um cooler que já vem embutido, é difícil dar problema. Só lembrar de instalar os drivers adequados. Eu manteria esse processador, porque mesmo que dê pra fazer upgrade pra um i7, o preço não vale a pena. Talvez não limite tanto assim, vê alguns testes com games desse i5 com a rx580, geralmente tem vários no youtube.
  7. compatível é mas talvez o processador limite um pouco o desempenho.
  8. Dá uma olhada nesse site, está em inglês mas qualquer coisa usa o tradutor. Talvez ajude: How do I copy an Oracle DB from one server to another? | TechTarget Eu também só sei muito básico de Oracle db. Edit: Eu não vi que já tinham respondido, mas enfim, fica aí um recurso a mais caso alguém precise.
  9. Aposto que é aquele NetBeans 8.2 antigão.
  10. Já checou se a temperatura não está subindo demais nos primeiros 15~20 minutos?
  11. Se você pensa em trabalhar pra Oracle, acho que compensa fazer um esforço e aprender o FX. Mas é aquele negócio, no C# também falavam que o WPF veio pra substituir o WinForms, mas até hoje o winforms ainda é usado por muita empresa e a Microsoft manteve atualizações deste também. Não foi exatamente substituído mas sim ofereceram essa outra ferramenta similar. Na dúvida, foca no FX que é mais atual mas tenha pelo menos o básico do Swing, caso precise usar. Se for programar só como hobby, escolha a que você se adaptar melhor.
  12. Eu pessoalmente odiei o Java FX, o Swing é mais intuitivo de usar e nunca me deu problemas.
  13. jogos 2d, aplicativos desktop, alguns apps de web = C# ou Java aplicativos mobile = Kotlin, Swift(Mac) websites = javascript, html + css (PHP pro backend se necessário) programar robôs, hardware, drivers, sistemas operacionais, sistemas de pagamento = C jogos 3d, APIs, resolver as gambiarras que outras linguagens não conseguem = C++
  14. intel HD 2500 só suporta directx 11, esse jogo é directx 12. Precisa mudar nas configurações da seam: clica com o mouse direito no jogo > propriedades > geral > parâmetros de inicialização. E encontre algo sobre direct x Mas no seu caso isso não vai funcionar porque você mudou pra versão "normal", o hardware é muito fraco para rodar o jogo. Precisa de uma placa de vídeo "de verdade" Acha algum arquivo "config" na pasta do jogo.
  15. Talvez o que você esteja querendo fazer é inserir objetos com valores já prontos. Nesse caso, vai precisar de construtores para as classes, ou propriedades com valores fixos, e aí dar um 'get' nessas propriedades. Porque por exemplo, nesse trecho abaixo você está tentando inserir o valor de pagamentos de um contrato de um cliente, sendo que esse pagamentos = new Pagamento(), ou seja, é um novo objeto (teoricamente com valores todos zerados, [abre uma caixa e dentro dessa caixa tem uma outra caixa, e dentro dessa outra caixa não tem nada]): setPagamentos(pagamentos);
  16. AMD A6-7480 APU Test in 7 Games Não muitos, alguns jogos de peso médio mas tudo no very low a uns 20 e poucos fps, detalhe que no setup do vídeo está usando SSD e memória RAM de 2133 MHz o que ainda deixa o desempenho um pouco melhor.
  17. Eu acho que não adianta, mesmo que você coloque uma placa (e ainda barata) a cpu vai capar o desempenho dela. Tem que trocar mesmo, essa cpu é de 2009, nós estamos em 2023
  18. Que resolução está jogando? Esse jogo é pesadásso, eu vejo o pessoal rodando no ultra chegando a uns 75 fps no máximo se o PC for top, se for intermediário a uns 52~53 fps. Tenta colocar no médio e uma resolução um pouco menor (se tiver 1440 põe 1080). E desabilita tudo de Raytracing obviamente. Essas primeiras levas de RTX não valem a pena habilitar o RTX pois é muito pesado.
  19. O erro de você não conseguir consultar o cadastro estava no "break;" Eu deixei comentado o break e mantive apenas o system("pause"); Eu comentei algumas coisas no seu código, mantendo alguns dos comentários seus que achei pertinente mas apaguei a maioria só para questão de leitura aqui: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <ctype.h> #include <locale.h> //#include "function.c" - como eu deixei o código na mesma página, deixei comentado o 'function.c'. #include <stdbool.h> //incluí isso para poder usar bool void limpar_buffer() { char ch; while ((ch = getchar()) != '\n' && ch != EOF); } void limpar_tela() { #if defined(linux) || defined(unix) || defined(APPLE) system("clear"); #endif #if defined(_WIN32) || defined(_WIN64) system("cls"); #endif } int validador_cpf() { int soma, resultado, num, cont; char digito10, digito11, cpf[11]; scanf("%s", cpf); soma = 0; for(cont = 0; cont < 9; cont++) { num = cpf[cont] - 48; soma = soma + (num * (10 - cont)); } resultado = 11 - (soma % 11); if((resultado == 10) || (resultado == 11)) digito10 = '0'; else digito10 = resultado + 48; soma=0; for(cont = 0; cont < 10; cont++) { num = cpf[cont] - 48; soma = soma + (num * (11 - cont)); } resultado = 11 - (soma % 11); if((resultado == 10) || (resultado == 11)) digito11 = '0'; else digito11 = resultado + 48; if((digito10 != cpf[9]) && (digito11 != cpf[10])) return 1; else return 0; } #define TAM_NOME 100 //Não precisa dizer que isso é o tamanho do nome, é autoexplicativo #define TAM_CPF 11 // " " #define TAM_SX 10 bool sair = false; FILE *arquivo; typedef struct pessoa { char nome[TAM_NOME]; char cpf[TAM_CPF]; int dia; int mes; int ano; char sexo[TAM_SX]; char cidade[25]; char ufederal[25]; } PESSOA; typedef struct cidade { char uf[3]; char nome[100]; char nome_sem_acento[200]; } CIDADE; PESSOA pessoa; void cadastrar_pessoa() { limpar_tela(); //autoexplicativo arquivo = fopen("pessoa.txt", "a"); // acrescenta ou cria um arquivo para leitura/escrita denominado "pessoas.txt" if(arquivo == NULL) { printf("Erro na abertura do arquivo\n"); system("pause"); exit(1); } limpar_buffer(); // Sempre limpar o buffer antes de escanear uma variavel do tipo char // Recebendo os dados printf("Digite o CPF: "); scanf("%[^\n]", pessoa.cpf); //printf("%s", pessoa.cpf); - vou ignorar esse print por enquanto, pois está embolando com o próximo. limpar_buffer(); printf("Digite o nome: "); scanf("%[^\n]", pessoa.nome); printf("Digite o dia de nascimento: "); scanf("%d", &pessoa.dia); printf("Digite o mes de nascimento: "); scanf("%d", &pessoa.mes); printf("Digite o ano de nascimento: "); scanf("%d", &pessoa.ano); limpar_buffer(); printf("Digite o seu sexo: "); scanf("%[^\n]", pessoa.sexo); limpar_buffer(); printf("Digite sua cidade: "); scanf("%[^\n]", pessoa.cidade); limpar_buffer(); printf("Digite sua unidade de federacao: "); scanf("%[^\n]", pessoa.ufederal); rewind(arquivo); // Função que retorna para o começo do arquivo fprintf(arquivo, "%s %s %d/%d/%d %s %s %s\n", pessoa.nome, pessoa.cpf, pessoa.dia, pessoa.mes, pessoa.ano, pessoa.sexo, pessoa.cidade, pessoa.ufederal); // Escrevendo o struct pessoa recem cadastrado fclose(arquivo); // Fechando arquivo system("pause"); // "pressione qualquer tecla para continuar" } void consultar_pessoa() { char cpf[TAM_CPF]; int a=0; limpar_tela(); arquivo = fopen("pessoa.txt", "r"); // abre o arquivo denominado "pessoas.txt" em forma de leitura if(arquivo == NULL) { printf("Erro na abertura do arquivo\n"); system("pause"); exit(1); } limpar_buffer(); printf("Informe o CPF que deseja pesquisar: "); scanf("%s", &cpf); //Aqui eu adicionei '&' antes de 'cpf' rewind(arquivo); while (fscanf(arquivo, "%s %s %d % d% d %s %s %s", pessoa.nome, pessoa.cpf, &pessoa.dia, &pessoa.mes, &pessoa.ano, pessoa.sexo, pessoa.cidade, pessoa.ufederal) != EOF) { if (strcmp(pessoa.cpf, cpf) == 0) { a++; printf("Nome: %s\n", pessoa.nome); printf("Data de nascimento: %d/%d/%d\n", pessoa.dia, pessoa.mes, pessoa.ano); printf("Cpf: %s\n", pessoa.cpf); printf("Sexo: %s\n", pessoa.sexo); printf("Cidade: %s\n", pessoa.cidade); printf("Unidade de Federacao: %s\n", pessoa.ufederal); fclose(arquivo); //break; - após o break, qualquer coisa que estava sendo executada, encerra. Esse system("pause") é inútil após o break. system("pause"); } if(a == 0) printf("Cpf não encontrado\n"); fclose(arquivo); system("pause"); } } void menu() { int op__menu; limpar_tela(); printf("\n Menu de opções: \n\n"); printf("1) Cadastrar Pessoa\n"); printf("2) Consultar Pessoa\n"); printf("3) Listar pessoas por Cidade\n"); printf("4) Gerar relatorio\n"); printf("5) Excluir Pessoa\n"); printf("6) Encerrar Programa\n\n"); printf("Digite o numero da opcao: "); scanf("%d", &op__menu); switch (op__menu) { case 1: cadastrar_pessoa(); //autoexplicativo break; case 2: consultar_pessoa(); //autoexplicativo break; case 3: //listar_pessoa(); //LISTAR_PESSOAS POR CIDADE break; case 4: //gerar_relatorio(); //RELATORIO printf("Esta funcao ainda não esta pronta.\n"); sleep(2); break; case 5: //excluir(); //EXCLUIR_PESSOA printf("Esta funcao ainda não esta pronta.\n"); sleep(2); break; case 6: sair = true; //aautoexplicativo break; default: printf("Essa opcao não existe!\n"); sleep(1); } } int main() { arquivo = fopen("pessoa.txt", "a+"); if(arquivo == NULL) { printf("Erro na abertura do arquivo\n"); system("pause"); exit(1); } fclose(arquivo); while(!sair) { limpar_tela(); menu(); } return 0; } O cadastro e consulta pelo cpf funcionou para mim. As outras funções você ainda precisa terminar.
  20. Onde você definiu a função verificar(string algumacoisa, char outracoisa)? Coloca o código completo. Você lembrou de colocar todos itens necessários pro c++ no Visual Studio? As vezes a IDE vem 'pelada' Instalar suporte para C e C++ no Visual Studio
  21. Então, geralmente esse problema dá quando você esqueceu de referenciar uma instancia/objeto. E eu acho que foi isso mesmo, nessa parte aqui, você colocou assim: private AudioSource audioSource; Deveria continuar desta forma: audioSource = new AudioSource(); Dessa forma você vai estar determinando que essa variável chamada 'audioSource' irá ter o valor de um novo objeto do tipo 'AudioSource'. Imagine, é como declarar um inteiro e depois querer usar as funções de math(). Sem que você tenha dado nenhum valor para esse inteiro. Exemplo: 'int numero' e aí depois tentar tirar a potência 'math.pow(2)'; Isso não vai funcionar pois você está tentando elevar ao quadrado um valor que ainda não existe. Portanto, quando você chama PlayMenuMusic() e dentro dela já tem uma função com audioSource.Play() ou audioSource.Stop(), o programa não tem como entender o que você está querendo começar ou parar pois a variável está com valor vazio enquanto você não determinar que ela é um novo objeto da classe. No void start(), você até pode ter colocado isso: audioSource = GetComponent<AudioSource>(); Mas isso só se sustenta dentro da própria função e enquanto ela estiver sendo executado. Uma solução seria usar um 'ref audioSource' ou 'out audioSource' como parâmetro dessa função, assim audioSource poderá "sair" já modificado da função. Ficaria mais ou menos assim: private AudioSource audioSource; void Start(ref audioSource) { audioSource = GetComponent<AudioSource>(); PlayMenuMusic(audioSource); //Você vai precisasr modificar os métodos PlayMusic() para receber o audioSource como parametro também } Dê um pesquisada no funcionamento de ref e out, deve ajudar. Outro detalhe: use o botão code '<>' quando for colocar o código aqui no forum, da mesma forma que eu fiz, aí ele fica destacado e mais fácil de ler.
  22. O programa fica em loop porque você provavelmente deu um valor de n sendo menor que o valor de j, sendo que no seu loop while nem o valor n, nem o de j são modificados. Por exemplo, se eu digo que n = 5 e j = 10 e mando o programa rodar sem alterar nenhum deles, pela lógica da matemática 5 sempre vai ser menor que 10 e o programa não vai sair do loop, seja lá qual for. Só irá sair quando acabar o espaço na memória. Os incrementadores i e j geralmente são usados (e declarados) num loop 'for', evite usar fora desse tipo de loop ou para outras funções como while. Você deu o nome a uma variável de 'd' sendo que na linguagem C existe esse comando "%d" que é comumente usado (ele indica pro scanf um valor inteiro decimal), isso pode causar confusão. É melhor usar outro nome pra essa variável. Tenta entender linha por linha do programa e o resultado lógico que elas implicam. Vou dar um exemplo de um loop while pra ficar mais claro. Esse é um programa que conta de 2 em 2 e vai até 20, começando em zero: #include <stdio.h> int main() { int contador = 0; int incrementador = 2; printf("Iniciando contagem de 2 em 2..."); while (contador <= 20) // Enquanto o contador for menor ou igual a 20, o programa vai executar o código no escopo do while{} { printf("\n%d", contador); contador = contador + incrementador; // também pode ser escrito: contador += incrementador; } printf("\nA contagem foi encerrada"); // Esse '\n' serve para pular uma linha return 0; }

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!