Gabriel André
-
Posts
17 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Gabriel André
-
-
Olá gente, estou tendo um problema com meu monitor já faz algum tempo, quando abro alguns jogos ele simplmenste da um "monitor fora de escala 67.5 khz / 60hz", eu uso um monitor hd 1366 x 768 e uma rx 570, por isso para passar o video para o monitor eu uso um conversor hdmi para vga, quando comprei eu não tinha esse problema, mas dps de restaurar as configurações do windows simplesmente apareceu mais opções de resolução que meu monitor não suporta(Full HD) nas opções de resolução e começou esse probleme de fora de escala, ja tentei td que vi na internet, seja mudar a frequencia do monitor, entre em modo de baixa resolução, apertar alt + enter quando abrir o jogo, até nas configuraçãos da AMD de resolução virutal, escala de gpu e etc.. e nd resolveu, o modelo do meu monitor é um 20M37AA da marca LG, alguem pode me ajudar ou tem alguma solução para isso? Obrigado pela atenção.
-
Em 13/04/2020 às 00:40, arfneto disse:
Olá!
Seu programa não está bom ainda
O maior problema: está usando uma máscara %s para ler o que imagina ser um único char...
char menu; scanf("%s", &menu);
%s é a especificação para ler uma string e pode ler mais de um char e vai acabar cancelando seu programa mesmo se entrar com 'S' na primeira vez porque vai corromper a memória ao estourar a capacidade do char menu...
Sobre scanf()
- é uma rotina difícil para essas coisas de ler dados do teclado
- Ela foi escrita para ler entrada formatada. Scan Formatted Input é a origem do nome.
-
Instrua o usuário sobre os formatos de entrada. O formato dos campos. Código é numérico, quantos dígitos? Preço é float, O título pode ter espaços, Não use acentos. Coisas assim.
Como o cara que está digitando vai adivinhar como vai escrever? Repita os campos que já leu, para ajudar quem está digitando e ajudar você mesmo a testar isso.
- scanf() retorna um valor. Use. É melhor para você. Não entendo porque ninguém ensina isso. Não vejo um único programa aqui usando isso.
- Leia o que tiver sobrado entre cada leitura via scanf() usando uma máscara de acordo ou um loop com getchar() até achar um '\n' o tal newline.
Não teste seu programa com dados de entrada. Não é espero. Demora um eternidade. Qual a necessidade de, tendo um computador rodando seu programa, ficar parado em frente ao teclado para digitar dados?
Se você sabe usar funções porque escreveu só uma onde sequer precisava? Perde muito tempo...
Veja esse trecho por exemplo:
struct livro { char titulo[30]; char autor[30]; char genero[30]; int codigo; double preco; }; typedef struct livro Livro; int inclui_livro(Livro l, Livro col[]); int lista_livros(Livro col[], int total); int busca_autor(char aut[], Livro col[], int total); int busca_titulo(char tit[], Livro col[], int total); float calcula_media(Livro col[], int total); int mostra_titulos(Livro col[], int total);
Se você declarar assim não precisa ler nada para testar o programa. Isso é muito importante. Muito tempo se perde.
Em geral não se usa nomes de variáveis em protótipos. Coloquei algo só para te ajudar a entender. A diferença aqui é que não precisa do menu para testar o programa. Menus e scanf() são um atraso enorme. Coloque isso depois.
typedef é só uma maneira de não ter que ficar repetindo struct livro toda hora porque é muito chato. E usar a primeira letra em maiúscula é só um costume meu.
Você sabe usar ponteiros?
Exemplo
Só para você ver uma outra maneira: eu começaria o programa por esse aqui que já mostra isso na primeira execução:
Titulo Livro 1234 000 Autor Autor ABC 000 Codigo 41 Preco 17.34 Titulo Livro 1234 001 Autor Autor ABC 001 Codigo 6500 Preco 119.24 Titulo Livro 1234 002 Autor Autor ABC 002 Codigo 1478 Preco 108.62 Titulo Livro 1234 003 Autor Autor ABC 003 Codigo 4464 Preco 5.45 Titulo Livro 1234 004 Autor Autor ABC 004 Codigo 3281 Preco 27.61 Titulo Livro 1234 005 Autor Autor ABC 005 Codigo 491 Preco 145.42
Esse programa
#define _CRT_SECURE_NO_WARNINGS #include <locale.h> #include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include <string.h> struct livro { char titulo[30]; char autor[30]; char genero[30]; int codigo; double preco; }; typedef struct livro Livro; //int inclui_livro(Livro); //int lista_livros(Livro col[], int total); //int busca_autor(char aut[], Livro col[], int total); //int busca_titulo(char tit[], Livro col[], int total); //float calcula_media(Livro col[], int total); Livro fabrica(); int mostra_titulo(Livro); int main() { for( int i = 0; i<6; i+=1) mostra_titulo(fabrica()); return 0; }; // main() // a cada vez retorna um livro, arrumadinho para testar Livro fabrica() { static int n = 0; Livro l; sprintf(l.titulo, "Livro 1234 %03d", n); sprintf(l.autor, "Autor ABC %03d", n); sprintf(l.genero, "Genero DEF %03d", n); l.codigo = rand() % 10000; l.preco = (double)(rand() % 150) + (rand() % 100 / 100.0); n = n + 1; return l; }; // fabrica() // mostra as informações referentes a um titulo int mostra_titulo(Livro l) { printf("\n"); printf("%10s %-20s\n", "Titulo", l.titulo); printf("%10s %-20s\n", "Autor", l.autor); printf("%10s %6d\n", "Codigo", l.codigo); printf("%10s %6.2f\n", "Preco", l.preco); return 0; }
Em 10 minutos você começa a testar. Sem ler do teclado porque só atrasa.
Sobre a leitura tem vários tópicos recentes aqui sobre como usar --- ou não usar --- scanf(). Alguns eu escrevi, outros não. Não vou repetir tudo agora. Você pode pesquisar direto no forum por essas coisas.
Depois você escreve as rotinas que estão em comentário lá em cima
Depois você coloca o menu. Postei um programa completo com menu para um tópico sobre uma playlist na semana passada. Pode servir como exemplo.
Com as funções e o menu você termina os testes, apaga a função fábrica() e entrega o trabalho. Ou recebe o cheque.
Escreva de novo com a evolução de seu programaObrigado por comentar, aprendi bastante e irei tentar aplicar isso nos meus próximos códigos
- 1
- 1
-
Olá, estou fazendo um programa para faculdade e tenho que adicionar livros em uma struct e depois imprimir seus dados, eu criei um menu de opções e usei ifs como um switch, um dos ifs é usado para adicionar livros a struct e outro para imprimir os nomes dos livros, porém quando executo o if para imprimir os nomes programa não imprime nada e as vezes sai até caracteres estranhos, já usei vários métodos de limpeza como fflush(stdin), setbuf, fgets porém nada deu certo, quando eu tento imprimir dentro do primeiro if ele imprime corretamente mas no outro não, segue o codigo. obrigado pela atenção.
#include <stdio.h> #include <locale.h> #include <stdbool.h> #include <string.h> struct livro{ char titulo[30]; char autor[30]; char genero[30]; int codigo; double preco; }; void mostraTitulos(struct livro x){ printf("%s\n", x.titulo); } main(){ setlocale(LC_ALL, "portuguese"); bool loop = true; struct livro colecao[50]; char menu; int numLivros = 0; int i; while(loop){ printf("Digite I para incluir um livro. \n"); printf("Digite L para listar o nome de todos os livros. \n"); printf("Digite A para procurar um livro por autor. \n"); printf("Digite T para procurar um livro por título. \n"); printf("Digite M para calcular a média de preço de todos os livros. \n"); printf("Digite S para sair \n"); scanf("%s", &menu); printf("\n"); if(menu == 's' || menu == 'S'){ loop = false; } if(menu == 'i' || menu == 'I'){ printf("Digite o título do livro: "); scanf("%s", &colecao[numLivros].titulo); printf("Digite o autor do livro: "); scanf("%s", &colecao[numLivros].autor); printf("Digite o gênero do livro: "); scanf("%s", &colecao[numLivros].genero); printf("Digite o código do livro: "); scanf("%i", &colecao[numLivros].codigo); printf("Digite o preço do livro: "); scanf("%lf", &colecao[numLivros].preco); printf("Livro adicionado.\n"); numLivros++; } if(menu == 'l' || menu == 'L'){ for(i = 0; i < numLivros; i++){ mostraTitulos(colecao[i]); } } } return 0; }
- 1
-
Amigo, sempre q eu coloco o jumper na placa mãe o pc n liga, ele fica carregando infinitamente no logo Windows e n sai dai e quando eu retiro o jumper ele volta ao normal, sabe o que pode ser isso?
obg.
-
Eu perdi a copia da chave por isso iria descriptografar a pasta, mas como acabei esquecendo...
-
Através do win 7 eu criptografei uma pasta com arquivos dentro(botão direito > propriedades > avançados) mas copiei todos os arquivos do meu pc inclusive a pasta criptografada para outro HD, então formatei o windows e instalei novamente o windows 7, mas eu esqueci de descriptografar a pasta e agora não consigo mais acessar os arquivos nela, tem como eu recupera-los?
-
Essa placa-mãe suporta memorias de 1600 mhz?
-
Amigo eu fiquei monitorando as temperaturas da cpu e no max ela chego a 50° e o seus núcleos o max foi de 59°.
antes de ontem instalei o java no meu pc e ontem começou o problema.
Eu passei um tempo jogando e n aconteceu nd, a tela azul aparece do nd quando eu to fazendo atividades simples ou pesadas
No momento estou atualizando os drives para ver se esse é o problema se resolver algo ou n eu respondo novamente
se acontecer dnv vou desinstalar o java para ve se esse é o problema
-
Estava usando normalmente meu pc quando ele travo e apareceu a tela azul, quando ele reiniciou apareceu a mensagem o windows se recuperou de um desligamento inesperado:
Assinatura do problema:
Nome do Evento de Problema: BlueScreen
Versão do sistema operacional: 6.1.7601.2.1.0.256.1
Identificação da Localidade: 1046
Informações adicionais sobre o problema:
BCCode: d1
BCP1: 0000000000000028
BCP2: 0000000000000002
BCP3: 0000000000000000
BCP4: FFFFF88001C106FD
OS Version: 6_1_7601
Service Pack: 1_0
Product: 256_1
Arquivos que ajudam a descrever o problema:
C:\Windows\Minidump\070614-17581-01.dmp
C:\Users\Gabriel\AppData\Local\Temp\WER-40466-0.sysdata.xmlBluescreenview
==================================================Dump File : 070614-17581-01.dmpCrash Time : 06/07/2014 23:26:48Bug Check String : DRIVER_IRQL_NOT_LESS_OR_EQUALBug Check Code : 0x000000d1Parameter 1 : 00000000`00000028Parameter 2 : 00000000`00000002Parameter 3 : 00000000`00000000Parameter 4 : fffff880`01c106fdCaused By Driver : NETIO.SYSCaused By Address : NETIO.SYS+106fdFile Description :Product Name :Company :File Version :Processor : x64Crash Address : ntoskrnl.exe+75bc0Stack Address 1 :Stack Address 2 :Stack Address 3 :Computer Name :Full Path : C:\Windows\Minidump\070614-17581-01.dmpProcessors Count : 4Major Version : 15Minor Version : 7601Dump File Size : 317.392Dump File Time : 06/07/2014 23:27:34==================================================
Ja deu a tela azul varias vezes no mesmo dia alguem podeira me ajudar ? alguns dizem q o melhor é formatar o pc mas n quero perder meus arquivos e n tenho onde guardalos.
Obs: eu comprei meu pc tem 1 mês -
Estava usando normalmente meu pc quando ele travo e apareceu a tela azul, quando ele reiniciou apareceu a mensagem o windows se recuperou de um desligamento inesperado:
Assinatura do problema:Nome do Evento de Problema: BlueScreenVersão do sistema operacional: 6.1.7601.2.1.0.256.1Identificação da Localidade: 1046Informações adicionais sobre o problema:BCCode: d1BCP1: 0000000000000028BCP2: 0000000000000002BCP3: 0000000000000000BCP4: FFFFF88001C106FDOS Version: 6_1_7601Service Pack: 1_0Product: 256_1Arquivos que ajudam a descrever o problema:C:\Windows\Minidump\070614-17581-01.dmpC:\Users\Gabriel\AppData\Local\Temp\WER-40466-0.sysdata.xmlJa deu a tela azul varias vezes no mesmo dia alguem podeira me ajudar ? alguns dizem q o melhor é formatar o pc mas n quero perder meus arquivos e n tenho onde guardalos.Obs: eu comprei meu pc tem 1 mês -
valeu amigo agr posso compra sem medo
-
O processador i5 3330 segura a a placa r9 280x sem gargalo?
-
A configuração do meu pc é:
AMD FX 8350
Radeon r9 280x
16 gb de memoria
e no gabinete tem 4 ventuinhas
Estou na duvida em qual dessas 2 fontes escolher
Corsair RM Series 650 Watt ATX/EPS 80PLUS Gold
-
Sou novo em Overclock e fiz um na minha gtx 650 ti aumentando em 10% mas não alterei sua tensão.
GPU clock: 941---->1030
Memoria: 1350---->1485
Fiz o teste no Heaven e ela ficou a 65º com a Fan a 25%. Sera que exagerei? queria a opinião de vocês.
-
Eu comprei ela mas estava pensando em trocá-la na duvida de ela não segurar a maquina, obrigado pela resposta
-
Olá, sou novo no forum e queria saber se a fonte cooler master extreme power plus 600w segura meu pc.
Processador Intel Core i5 3330
GeForce GTX 650 Ti
2x memórias Kingston 4Gb DDR3
HD Toshiba 500Gb
Leitor de DVD
Gabinete Cooler Master HAF 912 Black
Placa Mãe GigaByte GA-H61M-S1
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
Monitor fora de escala
em Monitores de vídeo
Postado
Não encontro essa opção