-
Posts
6.315 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que devair1010 postou
-
C++ Matemática: como se move 1 ponto no Espaço?
devair1010 respondeu ao tópico de Cambalinho em C/C#/C++
@Cambalinho para ter maior velocidade , você pode organizar seu código de forma que não use esse "Sleep" , pois isso faz demorar muito , #define _WIN32_WINNT 0x600 #include <stdio.h> #include <conio.h> #include <windows.h> #include <string.h> #include <math.h> #include <iostream> /* site https://www.clubedohardware.com.br/forums/topic/1619190-matem%C3%A1tica-como-se-move-1-ponto-no-espa%C3%A7o/#comment-8483220 coloque isso no link do compilador -lgdi32 -lmingw32 -lopengl32 -lopengl32 -lwinmm no codeblocks Settings / Compiler / Linker Settings / Other Linker Options */ using namespace std; int flg = 1; void LineMove(int &X0, int &Y0, int &Z0,int &X1, int &Y1, int &Z1,int Speed=1) { float DX = X1 - X0; float DY = Y1 - Y0; float DZ = Z1 - Z0; float LineDistance = sqrt(pow(DX,2) + pow(DY,2) + pow(DZ,2)); float XStep = DX / LineDistance; float YStep = DY / LineDistance; float ZStep = DZ / LineDistance; if( flg == 2 ) { X0 += round( XStep * Speed ); Y0 += round( YStep * Speed ); Z0 += round( ZStep * Speed ); /// LineMoveFront X1 += round( XStep * Speed ); Y1 += round( YStep * Speed ); Z1 += round( ZStep * Speed ); } else { X0 -= round( XStep * Speed ); Y0 -= round( YStep * Speed ); Z0 -= round( ZStep * Speed ); X1 -= round( XStep * Speed ); /// LineMoveBack Y1 -= round( YStep * Speed ); Z1 -= round( ZStep * Speed ); } } void DrawLine3D(HDC Destination, int X0, int Y0, int Z0, int X1, int Y1, int Z1,COLORREF LineColor ) { //Avoiding division by zero: if(Z0==0) Z0=1; if(Z1==0) Z1=1; //Getting Line Distance(float results): float DX = X1 - X0; float DY = Y1 - Y0; float DZ = Z1 - Z0; float LineDistance = sqrt(pow(DX,2) + pow(DY,2) + pow(DZ,2)); //Getting the Steps incrementation(float results): float XSteps = DX/LineDistance; float YSteps = DY/LineDistance; float ZSteps = DZ/LineDistance; //Draw Line using the Steps\ Incrementation: float X = X0; float Y = Y0; float Z = Z0; int OldPosX = X0; int OldPosY = Y0; for( int i=0; i<LineDistance; i++ ) { //For every steps we calculate the perspective: float Perspective = 300/(300+Z); //The 3D to 2D convertion(i use 300 of eye distance, but we can change it): int PosX = trunc( X * Perspective ); int PosY = trunc( Y * Perspective ); OldPosX = PosX; OldPosY = PosY; //Draw the pixel: if( Z>0 ) SetPixel(Destination,PosX,PosY,LineColor); //Increment steps(integer results): X+=XSteps; Y+=YSteps; Z+=ZSteps; } } int main() { HDC HDCConsole; HWND csl ; RECT rec ; GetClientRect(GetConsoleWindow(),&rec); csl = GetConsoleWindow( ); HDCConsole = GetDC( csl ); int Speed = 1 ; int Front = 0 ; int LinePositions[6] = {100,100,0,900,100,500}; COLORREF LineColor = RGB( 255, 255, 0 ); do { if(flg) { flg = 0; FillRect(HDCConsole,&rec,CreateSolidBrush(RGB(0,0,0))); DrawLine3D( HDCConsole, 100 - Front, 100, 0 - Front, 900 - Front, 100, 500 - Front,LineColor ); DrawLine3D( HDCConsole, 100 - Front, 100, 0 - Front, 100 - Front, 400, 0 - Front, LineColor ); DrawLine3D( HDCConsole, 900 - Front, 100, 500-Front, 900 - Front, 400, 500 - Front,LineColor ); DrawLine3D( HDCConsole, 100 - Front, 400, 0 - Front, 900 - Front, 400, 500 - Front,LineColor ); } Speed=1; if((GetKeyState(VK_RSHIFT) & 0x8000)) Speed=10; if((GetKeyState(VK_UP) & 0x8000)) { Front += Speed; flg = 1; } if((GetKeyState(VK_DOWN) & 0x8000)) { Front -= Speed; flg = 1; } } while(!(GetKeyState(VK_ESCAPE) & 0x8000)); printf(" Tecle Enter"); cin.get(); /// pede teclar enter flg = 1; do { if( flg ) /// se moveu a linha { LineMove ( LinePositions[0],LinePositions[1], LinePositions[2], LinePositions[3],LinePositions[4], LinePositions[5], Speed ); /// calcula a prOxima posiCAo da linha flg = 0; /// reseta a flag FillRect(HDCConsole,&rec,CreateSolidBrush(RGB(0,0,0))); /// limpa a tela DrawLine3D(HDCConsole, /// desenha a linha na nova posiCAo LinePositions[0],LinePositions[1], LinePositions[2],LinePositions[3], LinePositions[4],LinePositions[5], LineColor ); /// com essa cor } Speed=1; if((GetKeyState(VK_RSHIFT) & 0x8000)) /// se pressionou Shift Direito Speed = 10; /// velocidade 10 if((GetKeyState(VK_UP) & 0x8000)) /// se pressionou Seta para Cima flg = 1; /// flag recebe valor 1 if((GetKeyState(VK_DOWN) & 0x8000)) /// se pressionou Seta para Baixo flg = 2; /// flag recebe valor 2 } while(!(GetKeyState(VK_ESCAPE) & 0x8000)); cout << "Draw ended!!!"; cin.get(); /// pede teclar enter return 0; } -
VisualG Como resolver essas atividades na linguagem portugol?
devair1010 respondeu ao tópico de Eli Almeida em Programação - iniciantes
@Eli Almeidaa se( copia(sexo, 1, 1 ) = "m" então escreval("A primeira Letra da variAvel sexo é " , copia(sexo, 1, 1) ) // a funCAo cOpia , copia a qtd de letras fimse // da variAvel comeCando da posiCAo indicada // a variAvel Eh sexo // o primeiro nUmero Eh a qtd de letras que vai copiar // o segundo nUmero Eh a posiCAo onde comeCar a copiar essa é uma função do visualG 3.0 , e ela serve para pegar uma ou mais letras de uma variável do tipo caractere e usar do modo que quiser , e aqui ela servirá para comparar apenas a primeira letra do que for inserido nessa variável "sexo" , e assim se o usuário digitar a palavra inteira , ou apenas a letra inicial , não vai dar erro , pois o comando "se" vai fazer a comparação com a primeira letra e ignorar o restante que tenha sido digitado . -
VisualG Esperava encontrar então, ja mudei de varias maneiras e continua mesma msg
devair1010 respondeu ao tópico de Jessy de sá em Programação - iniciantes
@Jessy de sá essa mensagem de "esperava encontrar o então" é padrão no visualG , pois vários erros recebem essa mensagem , e ele diz que tem um erro e é o usuário é que precisa descobrir qual erro é , e nesse caso é porque você colocou o operador lógico de modo errado nessa comparação se idadeInformada =< maisNovo então // o operador menor ou igual eh esse <= e outro erro é que você criou a variável "qtdmenoresidades" e depois usou outra quase parecida com ela , "qtdmenoresidade" sem a letras "s" , e também essas aqui Escreval ("Mais novo", maisnovo) // variAvel "maisnovo" com nome errado Escreval ("Mais velho", maisvelho) // variAvel "maisvelho" com nome errado porcentagemMenorIdade <- (qtdMenoresIdades/ 5) * 100 // nome variAvel "porcentagemmenoridade" errado Escreval ("Porcetagem menor idade",porcentagemMenorIdade, "%") // mesma variAvel nome errado , sem o "s" mediaIdade <- somaIdades / 5 e outra coisa é que no visualg todas as variáveis são globais , ou seja elas são criadas e inicializadas com valor zero e antes do programa começar a ser executado , e sendo assim não precisa inicializar variáveis se o valor inicial é zero como essas aqui maisVelho <- 0 qtdEntrevistados <- 0 qtdMenoresIdades <- 0 e inicializar o "maisvelho" com valor zero funciona em muitos casos , mas experimente digitar um valor negativo , e é lógico que não existe mesmo idade negativa , mas quem vai usar o programa pode digitar isso também , e o "maisnovo" com valor alto de 9999 , mas o usuário pode também digitar um valor maior que esse , e vai dar erro também , e então uma forma de não ter esse tipo de erro seria inicializar essas variáveis com o primeiro valor digitado pelo usuário , e assim não haveria erro de lógica , e no visuaG 3.0 , não faz diferença escrever os nomes das variáveis em maiúsculas ou minúsculas , só não pode ter acentuação , e fazer a identação e organizar seu código o torna mais fácil de ler , e para isso você pode usar CTRL + G , que faz a identação automática , e CTRL + U para substituir palavras erradas quando são muitas . Algoritmo "media idades" VAR maisVelho , qtdEntrevistados : inteiro idadeInformada , maisNovo : inteiro porcentagemMenorIdade , mediaIdade : real qtdMenoresIdades , somaIdades : real INICIO enquanto qtdEntrevistados < 5 faca escreval ("favor, informe sua idade") leia (idadeInformada) se qtdentrevistados = 0 então // antes que pergnte , esse sImbolo := Eh maisnovo := idadeinformada // igual a esse <- ou seja adiciona um valor na variAvel maisVelho <- idadeinformada // inicializa a variAvel com a primeira fimse // idade informada se idadeInformada >= maisVelho então // maior ou igual eh assim >= maisVelho <- idadeInformada senao se idadeInformada <= maisNovo então // menor ou igual eh assim <= maisNovo <- idadeInformada senao se idadeInformada < 18 então qtdMenoresIdades <- qtdMenoresIdades + 1 fimse fimse fimse qtdEntrevistados <- qtdEntrevistados + 1 FIMENQUANTO Escreval ("Mais novo", maisnovo) // variAvel com nome errado não pode ter espaCo Escreval ("Mais velho", maisvelho) // variAvel com nome errado com espaCo porcentagemMenorIdade <- (qtdMenoresIdades/ 5) * 100 // nom var errado sem o "n" e o "s" Escreval ("Porcetagem menor idade",porcentagemMenorIdade, "%") // var nome errado sem o "n" mediaIdade <- somaIdades / 5 Escreval ("Media de idade",mediaIdade) Fimalgoritmo -
VisualG Como resolver essas atividades na linguagem portugol?
devair1010 respondeu ao tópico de Eli Almeida em Programação - iniciantes
@Eli Almeidaa, ou usa a função cópia assim: se (opcao = 1) e (copia(sexo ,1,1) = "m") e (altura <= 1.70) e (peso <= 83) então escrevaL(" adicionado à equipe 1 com sucesso") -
VisualG Como resolver essas atividades na linguagem portugol?
devair1010 respondeu ao tópico de Eli Almeida em Programação - iniciantes
@Eli Almeidaa oi, boa noite , no seu código você colocou para compara a variável "sexo" com apenas uma letra "m" ou "f" e na hora de cadastrar você usou a palavra inteira "masculino" e "feminino" . Escreval ("informe o seu sexo:") Leia (sexo) // aqui na foto estA assim "masculino" // e na hora de comparar , estA assim : se (opcao = 1) e (sexo = "m") e (altura <= 1.70) e (peso <= 83) então escrevaL(" adicionado à equipe 1 com sucesso") e então você poderia informar melhor o que digitar na entrada Escreval ("informe o seu sexo M / F : ") Leia (sexo) -
@Lariz você instalou o windows 10 nesse SSD ? esses congelamentos costumam ser por driver's incompatíveis ou faltando .
-
Posso ligar o Clamper em qualquer tomada?
devair1010 respondeu ao tópico de Daluncio em Fontes e energia
@Daluncio o filtro de linha é como uma extensão de tomada , e a vantagem dele é que tem um botão que se pode desligar a energia das tomadas que tem nele e assim qualquer aparelho que estejam plugados nessas tomadas do filtro de linha ficarão sem receber nenhuma corrente elétrica e assim não funcionarão , e também ficarão isoladas e qualquer surto de eletricidade que aconteça na rede elétrica , assim você pode ligar seu filtro de linha em qualquer tomada mesmo que seja de 110 ou 220 volts , e ele se configurará automaticamente . pois esse aí é bivolt . -
VisualG Calcular os métros quadrados de um condominio
devair1010 respondeu ao um tópico em Programação - iniciantes
@Reinaldo_Lopes você não colocou alguns comandos , como aqui no "repita" , que precisa do "ate" , e o "procedimento" que precisa do "fimprocedimento" , e se você que armazenar vários dados seria bom mesmo usar um vetor ou melhor ainda uma matriz , e para não perder o que foi cadastrado pode usar "arquivo" , e seu código corrigido ficou assim : algoritmo "SHOPPING CENTER" var vector : vetor[1..100] de inteiro m_nome : vetor[1..100,1..5] de caractere // matriz de nomes nome,resp : caractere tip,cod , opc : inteiro area,condominio : real contador , a : inteiro procedimento menu // tela de menu inicio limpatela escreval ("________________SHOPPING CENTER________________") escreval ( ) escreval (" 0 - Sair ") escreval (" 1 - Cadastrar loja ") escreval (" 2 - Consultar loja ") escreval (" 3 - Listagem de todas as lojas ") leia (opc) limpatela fimprocedimento procedimento listagem_lojas inicio escreval (" está no listagem loja" ) escreval para a de 1 ate contador faca escreval( a,"ª Loja " ) escreval("Código -----: ",m_nome[a,1] ) escreval("Bome -------: ",m_nome[a,2] ) escreval("Área -------: ",m_nome[a,3] ) escreval("Tipo -------: ",m_nome[a,4] ) escreval fimpara escreval escreval("Total De Lojas Cadastradas -> ", contador) escreval escreval(" Tecle Enter") leia( resp ) fimprocedimento procedimento sair inicio escreval escreval(" Saindo Do Programa . . . !") fimprocedimento procedimento cadastrar_loja // cadastro de loja inicio escreval(" está no cadastrar loja") repita contador := contador + 1 escreva ("Código --------: " ) leia ( m_nome[contador,1] ) escreva ("Nome ----------: " ) leia ( m_nome[contador,2] ) escreva ("Área ----------: " ) leia ( m_nome[contador,3] ) escreval(" 1 - Confecções " ) escreval(" 2 - Alimentação " ) escreval(" 3 - Livros " ) escreval(" 4 - Serviços " ) escreva ("Tipo de 1 a 4 -: " ) leia ( m_nome[contador,4] ) escreva ("Cadastrar outra S / N ") leia(resp) ate resp = "n" fimprocedimento procedimento consultar_loja inicio escreval(" está no consultar loja Tecle Enter") leia( resp ) fimprocedimento // ----------------- Início do programa ----------------- inicio repita menu escolha( opc ) caso 0 sair caso 1 cadastrar_loja caso 2 consultar_loja caso 3 listagem_lojas outrocaso escreval("Opção Inválida . . . !") fimEscolha ate opc = 0 Fimalgoritmo -
@S I R E olá , boa noite , você já tem um código pronto , contendo os dados de seu projeto com interface ou Form ? se já tiver feito alguma coisa do seu projeto , poste aqui para vermos como está e em que podemos ajudar .
-
C Passa de parametro parametro static
devair1010 respondeu ao tópico de José Cesar Ribeiro em C/C#/C++
@arfneto entendi que @José Cesar Ribeiro pretende usar a condição do bit , que só pode ter dois estados , 1 = ligado , e 0 = desligado , para com isso controlar o funcionamento de uma bomba d'agua . -
VisualG Como resolver essas atividades na linguagem portugol?
devair1010 respondeu ao tópico de Eli Almeida em Programação - iniciantes
@Eli Almeidaa criar um menu seria colocar algumas opções a ser escolhida e ler a resposta digitada , poderia ser alguma coisa parecida com esse código aqui : Algoritmo "eQuipes" // 3 questão) // Elabore um algoritmo que recebe o nome a idade ,sexo,altura e peso. Após // Cadastrar as informações deverá ser exibido um menu para o usuário escolher // em qual equipe ele será adicionado , seguindo a ordem: // Para ser da equipe 1: Sexo masculino, altura até 1,70 e até 80kg // Para ser da equipe 2: Sexo feminino , altura até 1,65 e até 70kg // Para ser da equipe 3: Sexo masculino, altura até 1,70 e até 93kg // ou: Sexo feminino , altura até 1,65 e até 70kg Var // Seção de Declarações das variáveis nome ,resp , sexo : caractere altura , peso : real idade , opcao : inteiro Inicio // Seção de Comandos, procedimento, funções, operadores, etc... escreva(" Informe o seu nome " ) leia ( nome ) escreva("informe o seu sexo " ) leia ( sexo ) escreva(" Informe a sua idade " ) leia ( idade ) escreva(" Informe o seu peso " ) leia ( peso ) escreva(" Informe a sua altura ") leia ( altura ) escreval repita // menu escreval escreval(" 0 - sAir do pRogramas ") escreval(" 1 - eQuipe 1 ") escreval(" 2 - eQuipe 2 ") escreval(" 3 - eQuipe 3 ") escreva (" escolha uma opção ") leia ( opcao ) escreval escolha opcao caso 0 escreval("Saindo Do Programases . . . !") escreval caso 1 escreval("está no escolha/caso 1") escreval("Nome da pessoe --: " , nome) caso 2 escreval("está no escolha/caso 2") caso 3 escreval("está no escolha/caso 3") outrocaso escreval("diGitou opção inválida . . . !") fimescolha se opcao <> 0 então escreva("Tecle Enter !") leia( resp ) fimse ate opcao = 0 Fimalgoritmo e se você usar o botão code "<>" que está desenhado lá na barra de ferramentas da janela de postar , seu código fica bem coloridinho e fácil de copiar para testar , e poste todo o código desde o começo "algoritmo" até o fim "fimalgoritmo" , e coloque um nome em seu algorítmo , assim na hora de salvar será bem rápido . -
VisualG Como resolver essas atividades na linguagem portugol?
devair1010 respondeu ao tópico de Eli Almeida em Programação - iniciantes
@Eli Almeidaa muito bem explicado por @Simon Viegas , e outra maneira de fazer sem usar esse "se" com duas opções , seria descartar logo no início onde pega os dados , os valores fora de faixa , e assim as comparações ficariam com apenas uma opção mesmo , e ir descartando do valor maior para o menor , sendo que se não for maior que 1 então só poderá ser mesmo o zero . repita escreva(" Informe a nota de 0 até 10 ") leia( nota1 ) ate ( nota1 >= 0 ) e ( nota1 <= 10 ) // limita, nesse intervalo, o valor de notas -
VisualG Como resolver essas atividades na linguagem portugol?
devair1010 respondeu ao tópico de Eli Almeida em Programação - iniciantes
@Eli Almeidaa Olá , melhor postar um código e dúvida de cada vez , e nesse primeiro , no portugol você pega os dados do teclado usando o comando "leia" , faça as comparações usando o comando "se" , de acordo com os requisitos A B C etc , , , ! , faça um código sobre esse exercício e poste ele aqui , para vermos como está e em que podemos ajudar . -
C Passa de parametro parametro static
devair1010 respondeu ao tópico de José Cesar Ribeiro em C/C#/C++
@José Cesar Ribeiro nesse primeiro código funciona , modificando o valor da variável alternadamente por que tem o modificador "static" , assim dentro da função "inv()" só inicializa a variável flag a primeira vez , e mantém o mesmo valor que ele tem nas próximas chamadas da função , #define _WIN32_WINNT 0x600 #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <windows.h> #include <conio.h> #include <iso646.h> char ch; int i; /// aqui antes da funCAo main todas as variAveis /// sAo criadas e inicializadas com valor zero . int inv() { /// usando o modificador "static" static int flag = 0; /// só inicializa a variAvel na primeira vez flag = ! flag; /// e matEm o valor nas prOximas vezes . return flag; } int main( int Argc, char Argv[] ) { printf ("o endereco com valor :\n"); ch = getch(); /// getch da biblioteca conio.h retorna um valor do tipo int printf("não importa o valor da tecla digitada , ch= %c\n",ch); /// if (ch=='x') { for (; i<10; i++) /// loop bem esquisito usando a variAvel "i" já inicializada . printf("%d ", inv()); } return 0; } e nesse segundo código , não faz a inversão pretendida , por que a variável "x" permanece sempre com o mesmo valor que é enviado para a função , apesar de usar o modificador "static" na variável "i" Global , e então para fazer a inversão alternadamente , precisa colocar o valor de retorno na variável "x" , para que da próxima vez inverta esse novo valor de "x" , então fiz assim para testar e , estranhamente funcionou : #define _WIN32_WINNT 0x600 #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <windows.h> #include <conio.h> #include <iso646.h> /// char ch; int x; /// nem precisa inicializar ser for zero int static i; /// int inv( int flag) { flag = ! flag; return flag; } int main( int Argc, char Argv[] ) { printf ("o endereco com valor :\n"); ch=getch(); /*if (ch=='b') {*/ for (i=0; i<10; i++) { printf("%d ",x = inv(x)); /// incrIvel assim , Mas funciona . ! } /*}*/ return 0; } -
C Codigo em C, retornando valor desconhecido
devair1010 respondeu ao tópico de lucas frois em C/C#/C++
@lucas frois @lucas frois a função "mais_velho" , retorna uma struct inteira , e na hora de escrever haverá muitos dados e então qual deles quer escrever ? , se for o nome então use %s de string , mas creio que seria melhor usar uma struct auxiliar para pegar os dados retornados lá da função , e escrever o que você quer usando essa struct auxiliar , e poderia ser assim : dados_cliente p1, p2,aux; aux = mais_velho(p1,p2); printf("o cliente mais velho eh: \n%s",aux.nome ); e também essa função "gets" já está em desuso há muito tempo , melhor não usar ela e ao invés use fgets . -
C++ Programa auto-click que ativasse por cor - já visto neste fórum
devair1010 respondeu ao tópico de aurelio alves em C/C#/C++
@aurelio alves para usar esse programa vai precisar que você rode esse script no visual studio e ele vai criar um excutável ".exe" , na pasta onde você salvou o arquivo desse programa , aqui por exemplo ele está em : C:\Users\StorTech\source\repos\clicar mult pontos mouse\x64\Debug , depois crie um atalho para esse executável , em seguida abra sua aplicação onde vai detectar a cor e clicar em tal posição , e em seguida abra esse programa de Autoclique e informe o que for pedido na tela , como por exemplo a quantidade de locais que vai detectar a cor , sendo que para cada detecção terá também um local onde clicar e pode ser até 10 locais , mova a setinha do mouse até onde vai detectar a cor e sem clicar com o mouse ,apenas posicione a ponta da setinha no local exato e tecle o botão Enter do teclado , e depois o local onde clicar e também sem clicar com o mouse , faça assim para todas as posições e ele vai pegar as posições e as cores naqueles locais para depois fazer as comparações , em seguida , após inserir todas posições clique Enter para começar os autocliques automáticos , e a janela do console vai ficar escondida em segundo plano da janela de sua aplicação , mas continuará funcionando e clicando por todas as posições informadas , e quando quiser fechar os autoclique , pressione o botão "ESC" no teclado , e se por qualquer motivo acontecer de o programa não para a execução , pressione Ctrl + Alt + Del , e clique em Gerenciador de Tarefas escolha o seu aplicativo e clique com o botão direto em cima dele e escolha finalizar Tarefa . #define _WIN32_WINNT 0x600 #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <windows.h> #define getch() _getch() #define kbhit() _kbhit() #define _CRT_SECURE_NO_WARNINGS /// para usar scanf e outras funções no visual studio /// /// por desligar os warnings " Alertas do compilador" /// /// programa feito no VisuaL Studio Comunity 2022 /// /// biblioteca de entrada e saida de dados /// /// biblioteca para certos comandos no ambiente windows int main() /// função PrincipaL de todo programa em linguagem c { INPUT in; /// POINT p; /// comandos do mouse in.type = INPUT_MOUSE; in.mi.dwFlags = MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP; in.mi.time = 0; HDC tela = GetDC(0); /// para acessar a tela COLORREF clrf; /// funCAo para usar cores clrf = RGB(43, 47, 155); /// cor RGB para azul escuro int cord_detect[10][2] = { 0 }; /// p armazenaR as posições onde detectar a cor int cord__click[10][2] = { 0 }; /// p armazenaR as posições onde clicar pode ser até 10 int cor_____RGB[10][3] = { 0 }; /// armazena as cores a serem detectadas int clk_x = 0; int clk_y = 0; int p_x = 0; int p_y = 0; int opc = 0; int flg = 0; int cont = 0; int cR = 43; int cG = 47; int cB = 155; /// cor azul celeste escuro char op = ' '; char ops[5] = ""; printf("quantidade pontos para detectar < 1 até 10 > "); fgets(ops, sizeof(ops), stdin); int _j = atoi(ops); do { printf(" PosiCAo %3d para Detectar a cor\n" "Mova A Setinha para a posiCAo onde detectar a Cor e tecle enter\n" ,cont + 1); op = getchar(); GetCursorPos(&p); /// pega a posiCAo X Y da setnha do mouse cord_detect[cont][0] = p.x; /// armazena a posiCAo X onde detectar cord_detect[cont][1] = p.y; /// armazena a posiCAo Y onde detectar clrf = GetPixel(tela, p.x, p.y); /// pega a cor desse ponto ( 1308 , 238 ) da tela int r = GetRValue(clrf); /// pega a qtd de cor vermelha ( 0 até 255 ) e armazena em "r" int g = GetGValue(clrf); /// pega a qtd de cor verde ( 0 até 255 ) e armazena em "g" int b = GetBValue(clrf); /// pega a qtd de cor azul ( 0 até 255 ) e armazena em "b" cor_____RGB[cont][0] = r; /// armazena valor R da cor a ser detectada na posiCAo X Y cor_____RGB[cont][1] = g; /// armazena valor G da cor a ser detectada na posiCAo X Y cor_____RGB[cont][2] = b; /// armazena valor B da cor a ser detectada na posiCAo X Y printf("na Coluna --= %5d \n" /// escreve o numero da coluna onde esta a ponta da setinha do mouse "na Linha ---= %5d \n" /// escreve o numero da linha onde esta a ponta da setinha do mouse "a Cor Eh: \n" "R ----------= %5d \n" "G ----------= %5d \n" /// Mostra o Valor da Cor "B ----------= %5d\n\n", cord_detect[cont][0], cord_detect[cont][1], r, g, b); printf("Mova A Setinha para a posiCAo onde Clicar e tecle enter\n"); op = getchar(); GetCursorPos(&p); /// pega a posiCAo da setnha do mouse cord__click[cont][0] = p.x; /// armazena a posiCAo X onde Clicar cord__click[cont][1] = p.y; /// armazena a posiCAo Y onde Clicar cont++; } while ( _j > cont); printf("\nMostra as posições onde detectar e Clicar\n\n"); for (int _i = 0; _i < _j; _i++) { printf("Detectar na pos x -= %5d \n" "Detectar na pos y -= %5d \n" "qtd Cor Vermelha R -= %5d \n" "qtd Cor Verde G -= %5d \n" "qtd Cor AzuL B -= %5d \n" "Clicar na pos x -= %5d \n" "Clicar na pos y -= %5d\n\n", cord_detect[_i][0], cord_detect[_i][1], cor_____RGB[_i][0], cor_____RGB[_i][1], cor_____RGB[_i][2], cord__click[_i][0], cord__click[_i][1]); } printf("tecle ENTER e vai inciar\n"); printf("tecle o botao ESC para parar\n"); op = getchar(); /// printf("iniciou\n"); cont = 0; while (!GetAsyncKeyState(VK_ESCAPE)) /// repete o que estA dentro das chaves { /// enquanto não pressionar a tecla ESC do teclado for (int _i = 0; _i < _j; _i++) { p_x = cord_detect[_i][0]; p_y = cord_detect[_i][1]; cR = cor_____RGB[_i][0]; cG = cor_____RGB[_i][1]; cB = cor_____RGB[_i][2]; clrf = GetPixel(tela, p_x, p_y); /// pega a cor desse ponto ( 1308 , 238 ) da tela int r = GetRValue(clrf); /// pega a qtd de cor vermelha ( 0 até 255 ) e armazena em "r" int g = GetGValue(clrf); /// pega a qtd de cor verde ( 0 até 255 ) e armazena em "g" int b = GetBValue(clrf); /// pega a qtd de cor azul ( 0 até 255 ) e armazena em "b" /// /// a mistura dessas cores ( r g b ) formam uma cor finaL resultante /// /// quanto maior o valor a cor será mais clara /// /// esses valores significam que a cor nessa posiCAo /// /// Eh azul escuro que eh a mistura de 43 de vermelho ( r ) + /// /// 47 de verde ( g ) + qq valor acima de zero até 255 de azul ( b ) printf("Na posiCAo %d x %d a Cor Eh:\n R= %d\n G= %d\n B= %d\n", p_x, p_y, r, g, b); if (r == cR && g == cG && b >= cB) { clk_x = cord__click[_i][0]; clk_y = cord__click[_i][1]; SetCursorPos(clk_x, clk_y); /// move a setinha do mouse para essa posição da tela do Monitor SendInput(1, &in, sizeof(in)); /// clica na posição da ponta da setinha do mouse e solta cont++; /// incrementa a qtd de click do mouse Sleep(1000); /// aguarda por um Segundo e continua depois } } } printf("total de Vezes Que Apareceu a cor azul --> %d\n\n\n", cont); ReleaseDC(0, tela); /// termina o programa return 0; } aquie estár o executável : Downloads.rar -
Python Como reiniciar meu programa em python?
devair1010 respondeu ao tópico de BruninXntj em Programação - outros
@BruninXntj complementando o que disse @Midori , use um loop qualquer , e pode ser o while que vai repetir todo o código que esteja dentro da identação , e você pode também usar uma "list" para armazenar os dados e no final se quiser pode ver todos os cálculos feitos durante o uso do programa , e se você usar o botão code "<>" , que está desenhado lá na barra de ferramentas da janela de postar , seu código ficaria todo coloridinho e fácil de copiar para testar . # code eh o botAo <> na Barra de Ferramentas da Janel de Postar no CHW cont = 0 # um contador de cAlculos matriz = [] # contEm qtd de Linhas while( 1 ): # Loop etherno linha = [] # linha da matriz contEm a qtd de colunas BV = input('Bem Vindo, Pintor!!\n Para descobrir Quantos litros de tinta você precisa pra pintar uma área Pressione ENTER: ') A = float(input('Digite a Altura da área a ser pintada: ')) L = float(input('Digite a Largura da área a ser pintada: ')) R = float(input('De acordo com a embalagem da sua tinta, quanto Metros quadrados ela rende, aproximadamente? ')) T = float(input('Quantos litros tem a sua tinta? ')) Sa = A * L St = R / T # faz os cAlculos S = Sa / St linha.append( A ) # armazena valores nas colunas de cada linha da matriz linha.append( L ) linha.append( R ) linha.append( T ) linha.append( S ) matriz.append(linha) print(f'Você precisa de {S:.2f} Litros de tinta para pintar sua área de {Sa:.3f}M²') r = input('Deseja calcular uma nova quantidade? (sim/não)') cont = cont + 1 if( r == "não" ): break # Quebra o loop a = input("Quer Visualizar todos os cálculos feitos ? ( sim / não ) ") if( a == "sim" ): for b in range( cont ): print("\n ||||| ",'{:5.0f}'.format(b+1),"º Cálculo ||||| \n", "Altura ----------------: ",'{:5.2f}'.format(matriz[b][0] ),"\n", "Largura ---------------: ",'{:5.2f}'.format(matriz[b][1] ),"\n", "RendimenTo ------------: ",'{:5.2f}'.format(matriz[b][2] ),"\n", "Qtd de Litros na Lata -: ",'{:5.2f}'.format(matriz[b][3] ),"\n", "Qtd de Lt necessario --: ",'{:5.2f}'.format(matriz[b][4] ),"\n") -
PHP Como criar sistema de agendamento em PHP?
devair1010 respondeu ao tópico de OIniciante em Web e banco de dados
@OIniciante seria bom se você compartilhar seu código , desse site que já está funcionando , para vermos como está e em que podemos ajudar . . -
C Fechar a console aplicação Windows API
devair1010 respondeu ao tópico de Lucca Rodrigues em C/C#/C++
@Lucca Rodrigues @Lucca Rodrigues entendi , que , sobre o Matlab , você está apenas dando um exemplo do que você quer fazer em um projeto da API do Windows , que cria uma janela e ela fica sobre a console , e quando você clicar no "X" no canto dessa janela criada pela API do Windows , ele fecha , e em alguns casos a janela da console continua aberta , e aí então você precisa clicar no "X " no canto dessa janela da console para fechar ela manualmente , e o que você quer é que quando rodar esse projeto , ele vai criar a janela do projeto e minimizar a janela da console , e quando clicar para fechar a janela criada , fechar também a janela da console , como nesse vídeo . https://www.youtube.com/watch?v=OIJlXf7tdVc que sem esse comando :que nesse case está comentado , não fecha a console ao fechar a janela da aplicação : case WM_DESTROY: PostQuitMessage(0); /// esse comando fecha a janela da conbsole /// PostMessage(GetConsoleWindow(), WM_CLOSE, 0, 0); /// junto com a janela da aplicaCao criada pela API do Windows break; e precisa fechar manualmente a console , e no vídeo , na segunda vez que excuta o programa , e dessa vez usando esse comando : , pois dessa vez ele não está comentado , PostMessage(GetConsoleWindow(), WM_CLOSE, 0, 0); /// esse comando fecha a janela da conbsole a janela da Aplicação e a da console são fechadas ao mesmo tempo . aqui no Windows 10 . -
Portugol Calcular anos necessários para o crescimento de uma pessoa
devair1010 respondeu ao tópico de gaby2830130121 em Programação - iniciantes
@gaby2830130121 você já instalou o Portugol Studio , desse link ? http://lite.acad.univali.br/portugol/ e se você fizer um código sobre esse exercício , poste ele aqui e ajudaremos se ainda precisar . -
@davi4466 é bom desfragmentar o HD mesmo , melhora o desempenho em alguma coisa , e os jogos seria melhor coloca eles no SSD que é bem mais rápido , mas o que determina a qualidade de jogos mesmo é a placa de vídeo , quanto mais memória e das mais modernas , Gddr6 , melhor , e deixa o HD só para arquivos e documentos .
-
VisualG Poderiam me dizer porque o VisualG não está reconhecendo?
devair1010 respondeu ao tópico de Rildian em Programação - iniciantes
essa mensagem de erro é padrão do visualG pois vários erros que acontece recebe essa mensagem , e o usuário é que precisa descobrir qual erro realmente é , e pelo jeito é por que você não criou a variável "M" ou a "maior" , e parece que você está usando a versão 3.0.7 do visualG , que é experimental e contém bug's , é melhor usar a versão 3.0.6.5 que é estável , pois aqui nessa versão 3.0.6 funciona bem e sem erro Algoritmo "erro então" // Disciplina : [Linguagem e Lógica de Programação] // Professor : Antonio Carlos Nicolodi // Descrição : Aqui você descreve o que o programa faz! (função) // Autor(a) : Nome do(a) aluno(a) // Data atual : 02/02/2023 Var // Seção de Declarações das variáveis N,M,valor,cont,maior : inteiro Inicio // Seção de Comandos, procedimento, funções, operadores, etc... escreva("Você deseja contar até que número ? -: ") leia(valor) escreva("Digite um valor ---------------------: ") leia(N) se M > maior então maior <- n fimse enquanto cont <= valor faca cont <- cont + 1 fimenquanto escreval escreval("valoR de Cont -= ",cont ) escreval("valoR de Maior = ",maior) escreval("valoR de N ----= ",N ) escreval("valoR de M ----= ",M ) escreval Fimalgoritmo -
VisualG Poderiam me dizer porque o VisualG não está reconhecendo?
devair1010 respondeu ao tópico de Rildian em Programação - iniciantes
@Rildian . Primeiro você colocou esses parenteses no "se". e nem precisava , nesse caso de apenas uma comparação. , e no enquanto também não, e esse erro não é por causa do "então" não , mas talvez por que tem alguma coisa antes dessa linha 12 , pois você leu N e comparou M -
Outro O que devo estudar concomitantemente com a linguagem inicial escolhida?
devair1010 respondeu ao tópico de Cazzuza em Programação - iniciantes
@Cazzuza lógica de programação é um pontapé inicial , e pode estudar a linguagem c / c++ , que é bem fácil , e javaScript python e java para questões de trabalho criando sites , e aplicativos . e estudar muitas linguagem e bom , mas é difícil se lembrar das sintaxes de todas , e na hora que for usar uma dela , você vai precisar pesquisar para lembrar como uma função funciona e o modo de usar , e então melhor estudar poucas , umas tres ou quatro , e essas aí de cima são as mais usadas . -
C Fechar a console aplicação Windows API
devair1010 respondeu ao tópico de Lucca Rodrigues em C/C#/C++
@Lucca Rodrigues você quer fechar a janela do console ou a janela da aplicação ? , pois o janela da aplicação você pode fechar usando esse comando case WM_DESTROY: PostQuitMessage (0); e a do console use esse se estiver usando o codeblocks system("taskkill /IM cb_console_runner.exe"); // no codeblocks e esse no Visual Studio VsDebugConsole.exe
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