Ir ao conteúdo
  • Cadastre-se

Lucca Rodrigues

Membro Pleno
  • Posts

    1.081
  • Cadastrado em

  • Última visita

Tudo que Lucca Rodrigues postou

  1. É para desktop. Quando você fechou a janela, a console fechou também? pra mim não fecha, tenho que fechar manualmente pra toda aplicação com a api do windows pra desktop. O que eu estava falando é do terminal. Aparece um terminal, some e depois aparece a splash screen.
  2. @arfneto Se quiser pode testar isso, mas te garanto que o problema não é o código: #include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, INT nCmdShow) { MSG msg; WNDCLASSW wc = {0}; wc.lpszClassName = L"Static Control"; wc.hInstance = hInstance; wc.hbrBackground = GetSysColorBrush(COLOR_3DFACE); wc.lpfnWndProc = WndProc; wc.hCursor = LoadCursor(0, IDC_ARROW); RegisterClassW(&wc); CreateWindowW(wc.lpszClassName, L"Exemplo", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 100, 100, 300, 300, 0, 0, hInstance, 0); while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return (int) msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { static wchar_t *texto = L"Feche essa janela"; switch(msg) { case WM_CREATE: CreateWindowW(L"Static", texto, WS_CHILD | WS_VISIBLE | SS_LEFT, 20, 20, 300, 230, hwnd, (HMENU) 1, NULL, NULL); break; case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); PostMessage(GetConsoleWindow(), WM_CLOSE, 0, 0); break; } return DefWindowProcW(hwnd, msg, wParam, lParam); } gif que eu digo é a imagem que eu postei, aqui no clube do hardware não dá pra postar vídeo. Não sei se deu pra ver bem no gif, mas antes da splash screen, isso aparece e desaparece: O esperado que eu digo é o que se espera como usuário, pois nesse exemplo do matlab, se esse terminal que apareceu ficasse ali, eu acharia estranho. Mais estranho ainda se eu tivesse que fechar manualmente depois de encerrar o matlab.
  3. Pior que nem dá, são 4000 linhas de código, e depende de vários arquivos. Então, mas isso é algo que eu observo as vezes: minimizar, esconder, fechar, etc. A não ser que não seja exatamente isso que ocorre. Por exemplo, esse gif da inicialização do matlab aqui no meu computador: A questão é justamente essa, o usuário não vai fazer nada na console, então o esperado é que ela fique escondida após a inicialização e seja fechada quando o programa for encerrado, sem que o usuário precise fechar manualmente.
  4. No meu notebook antigo que tinha Windows 8, a console fechava normalmente com o código abaixo. Windows 7 e 10 também funciona. HWND hWnd = GetConsoleWindow(); PostMessage(hWnd, WM_CLOSE, 0, 0); Recentemente adquiri um notebook com Windows 11, e nada que eu uso faz a console fechar, o que me leva a pensar se não seria alguma configuração. ShowWindow(hWnd, SW_HIDE) também não funciona, só consigo usar ShowWindow(hWnd, SW_MINIMIZE) e somente depois de passados uns 2 segundos da inicialização do aplicativo (coloquei no meio de um segmento de código pro caso WM_TIMER), antes disso, ele não minimiza. Achei muito estranho, alguém sabe que diabos tá acontecendo?
  5. @SergioP Então, eu usava o Avast no meu notebook antigo porque ele tinha a questão de proteção online, só que como eu falei, ele tá olhando pra esse notebook com 1 mês de uso e falando de problema que na minha opinião não existe, mais me parece um scareware. Eu vou ver esse Kaspersky já que todo mundo aqui tá promovendo o menino, o problema nem é preço, só espero que não acuse problemas do além.
  6. @frosty6 Eu to com o Malwarebytes e o Avast, mas acho que vou desinstalar mesmo. Não é lá "lixo", mas esses "problemas" aí que ele mostra acho que é só propaganda pra ele, a questão foi essa mesmo. Mas assim, duvido que o Kaspersky ou qualquer outro não vai me dar problemas também. Antivírus mais atrapalha do que ajuda na maior parte do tempo, no caso do Avast é mais uma inconveniência, só o Malwarebytes que nunca deu problema pra mim até hoje.
  7. Notebook Acer Aspire 5 novinho, e o Avast acusando 400 arquivos corrompidos, 8 drivers desatualizados, etc etc etc... É só pra me fazer comprar seus recursos "premium"? Esses "arquivos corrompidos" tô achando que é o avast que não conseguiu verificar o conteúdo e falou que tá corrompido... Os "problemas que deixam meu PC lento" ele tá problematizando literalmente todos os programas que eu instalei, e os "Arquivos inúteis" acho que é só eu fazer uma limpeza que some. Daí ele falou também de uns drivers desatualizados... Eu não entendo esse antivírus.
  8. @solracm Sem indentação fica mais difícil de ler o código, não dá pra identificar os escopos, não dá pra saber onde começa e onde termina uma chave, etc. Tem que ficar procurando cada coisa, e provavelmente o ambiente que usa já indenta automaticamente, não se esforce pra dificultar a legibilidade. Você também pode (e deve) pular linhas para separar algumas coisas, e evite colocar mais de uma instrução numa linha, isso só aumenta o comprimento da linha e dificulta a legibilidade, então só coloque se for algo curto. Deixe sempre a main como a primeira função, acima dela só os protótipos das demais. Agora, sobre a forma que está lendo: Colocar espaços na string de formatação da scanf só vai fazer com que ela ignore caracteres de espaço em branco. Se quer ignorar o caractere / ou algum outro, use um especificador assim: %*c. Isso vai ler e ignorar um caractere, não importa qual seja. Esses loops while chamando a getchar() são desnecessários, colocar um espaço como primeiro caractere na string de formatação da scanf() que já basta, vai ignorar um eventual \n que sobre no fluxo de entrada. #define TAM 100 #include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct HORA { int h; int m; } hr; typedef struct data { int dia; int mes; int ano; } DATA; typedef struct dados { int numero; char atividade[51]; char estado; float tempo; DATA data; hr hora; } Atleta; int menu(void); int existe(Atleta Guardar[], int quantidade, int numero); int guardar(Atleta Guardar[], int posicao, Atleta a); Atleta lerplaneamento(void); int main() { Atleta Dados[TAM]; Atleta a; int quantidade = 0; int opcao, resultado; do { opcao = menu(); switch (opcao) { case 1: a = lerplaneamento(); resultado = guardar(Dados, quantidade, a); if (resultado == 1) { printf("Dados Inseridos\n"); quantidade++; } break; case 2: break; case 3: break; case 4: break; case 5: break; default: ; } } while (opcao != 0); return 0; } int menu(void) { int op; do { printf("1 - Inserir atividade\n"); printf("2 - Quantidade de Praticantes num determinado periodo\n"); printf("3 - Listagem de Praticantes em um determinado periodo \n"); printf("4 - Atividades Realizadas por praticante em um determinado periodo\n"); printf("5 - Media de tempos de cada praticante\n"); printf("0 - Sair\n"); printf("Opcao: "); scanf("%d", &op); } while ((op < 0) || (op > 5)); return(op); } int existe(Atleta Guardar[], int quantidade, int numero) { int i; for (i = 0; i < quantidade; i++) { if (Guardar[i].numero == numero) return(i); } return(-1); } int guardar(Atleta Guardar[], int posicao, Atleta a) { if ((posicao >= 0) && (posicao < TAM) && (existe(Guardar, posicao, a.numero) == -1)) { Guardar[posicao] = a; return(1); } else return(0); } Atleta lerplaneamento(void) { Atleta a; int res; do { res = 0; printf("Numero: "); res += scanf(" %d", &a.numero); printf("Data de inicio (dd/mm/ano): "); res += scanf(" %d%*c%d%*c%d", &a.data.dia, &a.data.mes, &a.data.ano); printf("Hora de Inicio (hh:mm): "); res += scanf(" %d%*c%d", &a.hora.h, &a.hora.m); printf("Data fim de atividade (dd/mm/ano): "); res += scanf(" %d%*c%d%*c%d", &a.data.dia, &a.data.mes, &a.data.ano); printf("Hora de fim de atividade (hh:mm): "); res += scanf(" %d%*c%d", &a.hora.h, &a.hora.m); printf("Atividade: "); res += scanf(" %50[^\n]", a.atividade); printf("tempo?"); res += scanf(" %2f", &a.tempo); a.estado = 1; return(a); } while (res != 7); } Peça uma data ao usuário e com um loop, compare a data com as demais já cadastradas. Se tiver alguma equivalente, é só listar.
  9. @João Parolini Sabe sim... Consegue fazer um programa pra ler uma string? Provavelmente isso já te foi ensinado, se não, não cobrariam essa tarefa. Acredito que vai ser um pouco mais complicado tratar o nome digitado apenas com letras minúsculas. Que tal tentar primeiramente com iniciais maiúsculas? Bastaria um loop percorrendo a string lida, e verificando se uma letra é maiúscula. Como verificar? A letra deve estar no intervalo 65 a 90 em valores inteiros. É só isso que você precisa verificar, você poderia imprimir a letra logo em seguida. E como fazer pro caso das minúsculas? Basta saber que os nomes são separados por espaços, e a inicial de cada nome fica logo depois de um caractere de espaço, exceto a do primeiro nome. No mais, você vai ter que identificar cada um dos conectores pra não ter confusão, mas tente fazer com iniciais maiúsculas primeiro pra praticar. Poste um código.
  10. Estava tentando apertar ctrl + A pra selecionar a imagem inteira, quando descobri que na verdade é ctrl + T... Esquisito... Tem alguma forma de trocar esses atalhos?
  11. @Andreas Karl @Renato.88 Só pra esclarecer, a fonte de 12V 6A é linear, e realmente, se a tensão fosse maior, o diodo da bateria ficaria inversamente polarizado, como vocês disseram. Mas eu fiz o que mencionei de usar diodos diferentes e deu cert o aparentemente, já que o diodo com a menor queda de tensão vai conduzir maior parte da corrente: Só usei esses dois diodos porque é o que tem, mas não aguentam essa corrente, vou achar algum que aguente.. Esse tipo de coisa o simulador nunca mostra.
  12. Desculpa Não mexo muito com eletrônica, as vezes acaba saindo umas barbaridades assim.. Falta de experiência minha. @Renato.88 @Andreas Karl Agora entendi o que querem dizer. É que como eu havia dito, no caso eu estaria usando uma fonte com a mesma tensão e corrente da bateria, e diodos iguais. Mas acho que dá pra usar um diodo com uma queda de tensão um pouco maior para a bateria pra ter essa diferença na saída. De qualquer forma, a queda de tensão do diodo que vou usar para a fonte é bem pequena, por volta de uns 0.2V. Mesmo que seja como você falou, acho que prefiro usar só por prevenção. Agradeço aos dois pela ajuda!
  13. @Renato.88 Com os dois diodos, a bateria não é desconectada. Minha ideia do transistor ali embaixo era de ser um buffer, pro resistor de 1k não interferir. Vou ver se dá pra usar relé então, porque só com diodo não vai dar certo.
  14. Seria uma bateria 12v 6000mah e uma fonte 12V 6A, estou pensando em fazer algo assim: O resistor de 2r na saída é só pra exigir 6A no simulador. Ao ligar ou desligar a chave, tem passagem de corrente em somente um dos diodos por vez, porém, a questão é que pra bateria, o transistor e o diodo schottky apresentam uma queda de 1V no total. Vocês tem alguma sugestão de um circuito melhor? (dá pra editar direto no simulador se quiserem testar)
  15. Recentemente comprei um notebook com Windows 11, e quis passar alguns arquivos que eu tinha salvo no meu HD externo para ele. Eu recebo essa mensagem se tento ejetar o dispositivo: Então tentei ver um vídeo no youtube: Eu já havia ejetado o HD apenas puxando o USB sem segurança algumas vezes, inclusive 2 vezes neste novo notebook por não haver outra maneira... Não tive problemas. Tentei as 3 dicas do vídeo e nada: Dica 1 - Ele fala pra encontrar um aplicativo que está usando o dispositivo USB, mas ele não diz como, e talvez nem tenha como descobrir. Dica 2 - Não aparece a opção de ejetar o USB no gerenciamento de disco, nem em nenhum outro canto. Dica 3 - Se eu clico pra desinstalar o dispositivo, ele pede pra reiniciar o computador, e nada muda. Tentei também encerrar o Explorer pelo gerenciador de tarefas, como eu fazia raramente no meu outro notebook quando aparecia um erro semelhante, mas não deu certo também. Vocês têm sugestões?
  16. @Lucas Fernande Silva Sabe usar um loop for? 'n' é seu contador e 'x' é o ângulo em radianos. Você também vai ter que implementar potenciação e fatorial. Se você se perdeu na matemática, nada te impede de ver um vídeo no youtube sobre a expansão do seno e do cosseno. E eu realmente duvido que não existam códigos disso na internet, ou até vídeos ensinando a implementar.
  17. @Lucas Fernande Silva É assim que funciona a expansão do seno e cosseno, você vai fazer um somatório com um loop for. n é seu contador e x é o ângulo em radianos. Tente fazer algo e poste aqui.
  18. Só complementando o que o colega acima disse. Se com "programinhas" quer dizer os programas interativos do C, C++, etc, poderia dizer que estão praticamente obsoletos. É interessante para o estudante porque programas interativos dependem da participação do aluno - ele pode inserir dados pelo teclado e observar o resultado. Sei que foi só um exemplo, mas trabalhar com uma matriz não necessariamente tem a ver com programação, e não vai diretamente facilitar a vida das pessoas, matrizes são só uma representação de dados. Pra ter algum impacto na vida das pessoas, precisa ter uma aplicação. Um exemplo de aplicação em sistemas elétricos: No fluxo de potência precisamos resolver um sistema de equações não-lineares, e pra isso se usa, por exemplo, o método Newton-Raphson. Se tem uma função vetorial, vai ter uma matriz jacobiana no processo. Saber trabalhar com matrizes é essencial, e a gente sempre começa pelo básico, mesmo que seja somando os números das posições com coluna e linhas iguais.
  19. @Anacris109 Esse exercício me é familiar... Não conhece um tal de Aziz não né? Veja, não precisa chamar printf() sucessivamente, a função vai concatenar strings subsequentes, mesmo que estejam na linha abaixo. Você pode simplesmente chamar uma vez e omitir o restante das chamadas. Não se lê um char com %s. Com %s se espera uma string, leia com %c. Coloque um espaço como primeiro caractere na string de formatação para ler e ignorar um \n de um Enter que tenha dado em leituras anteriores que não vai ter mais problemas. scanf(" %c", &continuar); Não se pode declarar variáveis com espaço. Pode usar um underline. E quem é p? Viu que declarou ponto_jogador duas vezes? E essa instrução solta aqui? Corrija os erros, poste novamente com o botão code.
  20. @juh.monteiroo Como já foi dito pelo arfneto, a configuração do devc++ que vem por padrão não vai te permitir declarar uma variável pra ser usada apenas no loop for. Esse ambiente é um saco, mas o pessoal continua usando. Aposto que seu professor também não mudou pra C99 ou C11 como foi mencionado no erro, então se você mudar o modo, não vai rodar na máquina dele. Pra evitar esse tipo de problema, você pode declarar o índice i antes do loop, mas pode continuar inicializando ele no loop mesmo.
  21. @juh.monteiroo Precisa gravar no arquivo pra que ele não fique vazio, você está apenas imprimindo no console. Use fprintf, veja o segundo exemplo nesse link.
  22. @ItoLuca Veja, o que diz é muito vago... Não sabemos qual sua dificuldade. Não é uma boa ideia pegar um código pronto da internet e tentar modificar. Por que? 1 - É plágio. 2 - Vai ter muito trabalho tentando entender a lógica implementada se for um algoritmo extenso. Veja algum vídeo no youtube explicando como implementar um algoritmo de jogo da velha. No final vai entender que se trata de uma série de estruturas condicionais. Tente ao menos começar a escrever um código e volte aqui se tiver dúvidas
  23. @Deivid Bittencourt Qual seria sua dificuldade? Já pesquisou sobre procedimentos em visualg? Sem o código todo fica um pouco difícil sugerir alguma coisa, por isso é sempre bom que poste todo o código usando o botão Code (colocar <> antes e depois do código não vai funcionar). De qualquer forma, não tem segredo. Veja esse código que usa um procedimento para somar dois números: Algoritmo "Soma" Var a, b: inteiro res: inteiro procedimento soma (A, B: inteiro) Var Inicio res <- A + B fimprocedimento Inicio escreval("Insira o valor 1: ") leia(a) escreval("Insira o valor 2: ") leia(b) soma(a,b) escreval("Resultado da soma:", res) Fimalgoritmo Agora tente implementar um procedimento no seu código e pergunte se tiver dúvidas
  24. @IgorSilva05 O visualg não é muito bom em dizer qual é o problema, mas pelo menos ele te diz onde está o erro. P é do tipo caractere. Se quer comparar com a string "Sim", então precisa colocar Sim entre aspas.

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