Ir ao conteúdo
  • Cadastre-se

Lucca Rodrigues

Membro Pleno
  • Posts

    1.081
  • Cadastrado em

  • Última visita

  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)

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