-
Posts
1.043 -
Cadastrado em
-
Última visita
Reputação
1.047Sobre Lucca Rodrigues
- Data de Nascimento 03/09/2001 (20 anos)
Informações gerais
-
Cidade e Estado
Londrina/PR
-
Sexo
Prefiro não dizer
-
C menor valor do vetor retornando 0
Lucca Rodrigues respondeu ao tópico de Vitor Nata Zanetta Santos em C/C#/C++
@Vitor Nata Zanetta Santos Você inicializou menor com 0, então se inserir apenas valores maiores que zero, menor vai continuar com valor 0. Você pode atribuir o primeiro elemento de `p` às variáveis `menor` e `maior` para inicializar. Faça isso na primeira passagem pelo loop: use if para verificar se o valor do índice `i` é 0. Aliás... Vetores em C começam pelo índice 0, e o último elemento tem índice N-1. for(i = 0; i < q; i++) { } `q` ou `soma` tem que ser do tipo ponto flutuante pra que o resultado da operação seja um ponto flutuante. float soma = 0.0f; Caso contrário, vai ser uma média com valor inteiro.- 2 respostas
-
- 1
-
- 241 visualizações
-
C Por que utilizamos ''\'' em macro (pré processador)?
Lucca Rodrigues respondeu ao tópico de Talyson Maia em C/C#/C++
@Talyson Maia Pesquise em inglês, é mais fácil de achar. https://gcc.gnu.org/onlinedocs/cpp/Object-like-Macros.html#Object-like-Macros Ou então, em português: O corpo da macro termina no final da linha onde se encontra "#define". Você pode continuar a definição em várias linhas, se necessário, usando barra invertida. Quando a macro for expandida, no entanto, tudo estará em uma linha.- 4 respostas
-
- 3
-
-
- 316 visualizações
-
C Como faço para determinar um tempo limite para a entrada de dados ?
Lucca Rodrigues respondeu ao tópico de Kaua__ em C/C#/C++
@Kaua__ Sim é tudo Windows. GetStdHandle() GetConsoleMode() SetConsoleMode() FlushConsoleInputBuffer() WaitForSingleObject()- 5 respostas
-
- 1
-
- 286 visualizações
-
C Como faço para determinar um tempo limite para a entrada de dados ?
Lucca Rodrigues respondeu ao tópico de Kaua__ em C/C#/C++
@Kaua__ Pode tentar a WaitForSingleObject(), desativando MOUSE_INPUT e WINDOW_INPUT com SetConsoleMode(), já que quer entrada somente do teclado. Os retornos que te interessam para Wait() são: WAIT_OBJECT_0 - O estado do objeto especificado é sinalizado. WAIT_TIMEOUT - O intervalo de tempo limite decorrido e o estado do objeto não são sinalizados. Então se o segundo argumento de Wait() for 10000 (10 segundos) e o retorno for WAIT_TIMEOUT, o usuário não digitou nada nesse período, mas se for WAIT_OBJECT_0, então você pode chamar scanf() ou alguma outra função. int x; DWORD fdwMode, fdwOldMode, ret; HANDLE hStdIn = GetStdHandle(STD_INPUT_HANDLE); // Salvando modo atual GetConsoleMode(hStdIn, &fdwOldMode); // Desativando MOUSE_INPUT e WINDOW_INPUT fdwMode = fdwOldMode & ~(ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT); SetConsoleMode(hStdIn, fdwMode); // Descarta registros de entrada no buffer antes de chamar Wait() FlushConsoleInputBuffer(hStdIn); printf("Insira um valor inteiro: "); if ((ret = WaitForSingleObject(hStdIn, 10000)) == WAIT_TIMEOUT) { printf("\nSe passaram 10 segundos!"); } else if (ret == WAIT_OBJECT_0) { scanf(" %d", &x); printf("Valor inserido: %d", x); } // Restaura o modo original SetConsoleMode(hStdIn, fdwOldMode);- 5 respostas
-
- 2
-
-
- 286 visualizações
-
VisualG Erro no código em linha não existente, não sei o que fazer mais
Lucca Rodrigues respondeu ao tópico de Lauro Viana em Programação - iniciantes
@lauro viana cada se tem um fimse, e você se esqueceu de alguns // 3 se e só 2 fimse se media >= 7 entao escreval("aluno aprovado!") senao se media- 2 respostas
-
- 2
-
- 378 visualizações
-
C Comparando elementos de vetores para correção de prova comparando o gabarito
Lucca Rodrigues respondeu ao tópico de Larissa Maia em C/C#/C++
@Larissa Maia Se sabe a definição de um vetor, então teria ao menos uma ideia de como trabalhar com ele: um conjunto de espaços de memória contíguos. E veja, qualquer um desses elementos pode ser referenciado com o nome do vetor seguido pelo número de posição do elemento entre colchetes. vet[0] - elemento de índice 0 (primeiro elemento) vet[1] - elemento de índice 1 (segundo elemento) Como acessar todos os elementos em sequência para fazer a comparação? Um loop, como mostrou o colega @Danilo Namitala . Lembrando que sua função recebe o vetor gabarito e o vetor resposta. Mostre o que tentou fazer até então.- 8 respostas
-
- 1
-
- 425 visualizações
-
C++ programa que diz se a letra digitada é vogal ou não
Lucca Rodrigues respondeu ao tópico de LucasrodriguesP em C/C#/C++
@LucasrodriguesP Fica mais enxuto com if. Inclusive se as instruções depois dos case's forem iguais, pode resumir: switch (letra1) { case 'a': case 'e': case 'i': case 'o': case 'u': cout << "isso eh vogal"; break; default: cout << "isso eh consoante"; } Mas ainda dá mais linhas que usar if.- 3 respostas
-
- 2
-
-
- 490 visualizações
-
C++ programa que diz se a letra digitada é vogal ou não
Lucca Rodrigues respondeu ao tópico de LucasrodriguesP em C/C#/C++
@LucasrodriguesP Você tem que comparar letra1 com cada vogal, e não simplesmente colocar uma vírgula e as demais vogais como fez instintivamente acredito eu. if (letra1 == 'a' || letra1 == 'e' || letra1 == 'i' || letra1 == 'o' || letra1 == 'u') cout <<"vogal"; else cout<<"consoante"; Não. Você pode recorrer ao default: switch (letra1) { case 'a': cout << "isso eh vogal"; break; case 'e': cout << "isso eh vogal"; break; case 'i': cout << "isso eh vogal"; break; case 'o': cout << "isso eh vogal"; break; case 'u': cout << "isso eh vogal"; break; default: cout << "isso eh consoante"; } Se o controle não for transferido pra nenhum case, será transferido para default.- 3 respostas
-
- 1
-
- 490 visualizações
-
@Lipeco A memória alocada foi pra ponteiro1, um vetor dinâmico. ponteiro2 aponta pra segunda posição do vetor, então ponteirodePonteiro[0][0] seria equivalente a ponteiro1[1], e ponteirodePonteiro[0][3] seria equivalente a ponteiro1[4]. Se a memória alocada fosse pra ponteirodePonteiro, então precisaria inicializar, pensei que fosse isso que tentava fazer. De certa forma, não precisa de ponteirodePonteiro, você pode fazer um ponteiro apontar pra mesma posição de memória que ponteiro1 ou ponteiro2 sem problemas, vai conseguir acessar os valores da mesma forma.
- 48 respostas
-
- 2
-
-
- 3.615 visualizações
-
@Lipeco Exibir o que? ponteirodePonteiro recebeu o endereço de ponteiro2, mas você não alocou memória pra ele, não é uma matriz dinâmica. // Matriz dinamica int i; int** mat = (int**)malloc(rows * sizeof(int*)); for(i = 0; i < rows; i++) { mat[i] = (int*)malloc(cols * sizeof(int)); } // Desalocando for (i = 0; i < rows; i++) { free(mat[i]); } free(mat); E mesmo assim não haveria como exibir nada sem antes inicializar ou coisa do tipo. O que está tentando exibir?
- 48 respostas
-
- 2
-
-
- 3.615 visualizações
-
@Gabrielbxs O que espera que façamos? É seu trabalho. 🤪 Tentou começar? Já recebeu dicas do colega acima... Use o botão Code para postar o que já fez.
- 5 respostas
-
- 1
-
- 509 visualizações
-
@Ilanez Santos Tentou começar? Use o botão Code pra postar o que já fez.
- 5 respostas
-
- 1
-
- 436 visualizações
-
C++ Como fazer um programa que inverte as cores em c++
Lucca Rodrigues respondeu ao tópico de Arthur160 em C/C#/C++
@Arthur160 CapturaTelaInvertida() continua do tipo inteiro: Tem que retornar HBITMAP. Isso fica dentro da função. O retorno da função não é salvo em nenhum HBITMAP, você não tem que deletar nada. Dê uma lida no código que eu tinha escrito, talvez te ajude a entender: #define ID_IMAGE 1 #include <stdio.h> #include <stdlib.h> #include <windows.h> HWND hWnd; HBITMAP hbit; int WindowX(void); int WindowY(void); HBITMAP GetScreenShotInvertedColor(void); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, INT nCmdShow) { hWnd = GetConsoleWindow(); hbit = GetScreenShotInvertedColor(); MSG msg; WNDCLASSW wc = {0}; wc.lpszClassName = L"Edit control"; wc.hInstance = hInstance; wc.hbrBackground = CreateSolidBrush(RGB(0,0,0)); wc.lpfnWndProc = WndProc; wc.hCursor = LoadCursor(0, IDC_ARROW); RegisterClassW(&wc); CreateWindowW(wc.lpszClassName, L"Inverter", WS_OVERLAPPEDWINDOW | WS_VISIBLE | WS_BORDER, 0, 0, WindowX(), WindowY(), 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 HWND bk; switch (msg) { case WM_CREATE: { bk = CreateWindowW(L"Static", L"", WS_CHILD | WS_VISIBLE | SS_BITMAP, 0, 0, WindowX(), WindowY(), hwnd, (HMENU) ID_IMAGE, NULL, NULL); SendMessage(bk, STM_SETIMAGE, (WPARAM) IMAGE_BITMAP, (LPARAM) hbit); SetWindowLong(hwnd, GWL_STYLE, WS_POPUP); ShowWindow(hwnd, SW_MAXIMIZE); ShowWindow(hWnd, SW_MINIMIZE); //won't hide the window without SW_MINIMIZE ShowWindow(hWnd, SW_HIDE); } break; case WM_CLOSE: { MessageBeep(MB_OK); if (MessageBox(hwnd, "Really quit?", "Inverter", MB_OKCANCEL) == IDOK) { DestroyWindow(hwnd); } else { return 0; } } break; case WM_DESTROY: { // Fechar o programa PostQuitMessage(0); // Fechar a console PostMessage(hWnd, WM_CLOSE, 0, 0); } break; } return DefWindowProcW(hwnd, msg, wParam, lParam); } int WindowX(void) { RECT desktop_rect_; HWND desktop_ = GetDesktopWindow(); GetWindowRect(desktop_, &desktop_rect_); return desktop_rect_.right; } int WindowY(void) { RECT desktop_rect_; HWND desktop_ = GetDesktopWindow(); GetWindowRect(desktop_, &desktop_rect_); return desktop_rect_.bottom; } HBITMAP GetScreenShotInvertedColor(void) { int x1, y1, x2, y2, w, h; x1 = GetSystemMetrics(SM_XVIRTUALSCREEN); y1 = GetSystemMetrics(SM_YVIRTUALSCREEN); x2 = GetSystemMetrics(SM_CXVIRTUALSCREEN); y2 = GetSystemMetrics(SM_CYVIRTUALSCREEN); w = x2 - x1; h = y2 - y1; HDC hScreen = GetDC(NULL); HDC hDC = CreateCompatibleDC(hScreen); HBITMAP hBitmap = CreateCompatibleBitmap(hScreen, w, h); HGDIOBJ old_obj = SelectObject(hDC, hBitmap); BitBlt(hDC, 0, 0, w, h, hScreen, x1, y1, NOTSRCCOPY); SelectObject(hDC, old_obj); DeleteDC(hDC); ReleaseDC(NULL, hScreen); return hBitmap; } alt+f4 pra fechar 🤪- 26 respostas
- 1.284 visualizações
-
@Cambalinho ptr[15] = valor;
- 36 respostas
-
- 2
-
-
- 2.395 visualizações
-
@Cambalinho ptr++ faz com que o ponteiro aponte pra posição seguinte na memória. Se tem um vetor dinâmico como aquele tal `pixels`, pode indexar para acessar cada um dos elementos. Se `valor` for um endereço, então ok. Daí sim, altera o valor apontado pelo ponteiro.
- 36 respostas
-
- 2
-
-
- 2.395 visualizações
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