Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Trigonometria - Funções Trigonométricas |
Como calcular o seno, co-seno, tangente, secante, co-secante e co-tangente de um ângulo informado pelo usuário - Exercícios Resolvidos de JavaQuantidade de visualizações: 230 vezes |
Pergunta/Tarefa: Escreva um programa Java que pede para o usuário informar um ângulo em graus e informe o seno, co-seno, tangente, secante, co-secante e co-tangente do ângulo informado. Sua saída deve ser parecida com: Informe o ângulo em graus: 35 O ângulo em graus informado foi: 35.0 O ângulo em radianos é: 0.6108652381980153 O seno do ângulo é: 0.573576436351046 O cosseno do ângulo é: 0.8191520442889918 A tangente do ângulo é: 0.7002075382097097 A co-tangente do ângulo é: 1.4281480067421146 A secante do ângulo é: 1.220774588761456 A co-secante do ângulo é: 1.7434467956210982 Veja a resolução comentada deste exercício usando Java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar um ângulo em graus System.out.print("Informe o ângulo em graus: "); double angulo_graus = Double.parseDouble(entrada.nextLine()); System.out.println("O ângulo em graus informado foi: " + angulo_graus); // vamos converter o ângulo em graus para ângulo em radianos double angulo_radianos = angulo_graus * (Math.PI / 180.0); System.out.println("O ângulo em radianos é: " + angulo_radianos); // vamos calcular o seno do ângulo double seno = Math.sin(angulo_radianos); // vamos calcular o cosseno do ângulo double co_seno = Math.cos(angulo_radianos); // vamos calcular a tangente do ângulo double tangente = Math.tan(angulo_radianos); // vamos calcular a co-tangente do ângulo double co_tangente = (1.0 / tangente); // vamos calcular a secante do ângulo double secante = (1.0 / co_seno); // vamos calcular a co-secante do ângulo double co_secante = (1.0 / seno); // e mostramos os resultados System.out.println("O seno do ângulo é: " + seno); System.out.println("O cosseno do ângulo é: " + co_seno); System.out.println("A tangente do ângulo é: " + tangente); System.out.println("A co-tangente do ângulo é: " + co_tangente); System.out.println("A secante do ângulo é: " + secante); System.out.println("A co-secante do ângulo é: " + co_secante); } } |
Link para compartilhar na Internet ou com seus amigos: |
GoLang ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular a equação reduzida da reta em GoLang dados dois pontos pertencentes à retaQuantidade de visualizações: 653 vezes |
Nesta dica de Go veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito. Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem. Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta: Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código GoLang completo para esta tarefa: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // pacote principal package main // vamos importar o módulo de formatação de // entrada e saída import "fmt" // esta é a função principal do programa func main() { // variáveis que vamos usar na resolução do problema var x1, y1, x2, y2, m, n float32 var sinal string // vamos ler as coordenadas do primeiro ponto fmt.Print("Coordenada x do primeiro ponto: ") fmt.Scanln(&x1) fmt.Print("Coordenada y do primeiro ponto: ") fmt.Scanln(&y1) // vamos ler as coordenadas do segundo ponto fmt.Print("Coordenada x do segundo ponto: ") fmt.Scanln(&x2) fmt.Print("Coordenada y do segundo ponto: ") fmt.Scanln(&y2) sinal = "+" // vamos calcular o coeficiente angular da reta m = (y2 - y1) / (x2 - x1) // vamos calcular o coeficiente linear n = y1 - (m * x1) // coeficiente linear menor que zero? O sinal será negativo if n < 0 { sinal = "-" n = n * -1 } // mostra a equação reduzida da reta fmt.Printf("Equação reduzida: y = %.2fx %s %.2f", m, sinal, n); } Ao executar este código GoLang nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 5 Coordenada y do primeiro ponto: 5 Coordenada x do segundo ponto: 9 Coordenada y do segundo ponto: 2 Equação reduzida: y = -0,75x + 8,75 Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- >> y = (-0.75 * 3) + 8.75 y = 6.5000 temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem. |
Python ::: Dicas & Truques ::: Lista (List) |
Como adicionar uma lista Python ao final de outra usando o método extend()Quantidade de visualizações: 7352 vezes |
A função extend() do objeto List da linguagem Python nos permite adicionar todos os elementos de uma determinada lista ao final de outra lista. É claro que qualquer objeto que fornece uma forma de iteração pode ser passado ao método, incluindo uma List, um Set, uma Tuple, etc. Veja um trecho de código no qual criamos duas listas de inteiros e adicionamos todos os elementos da segunda lista ao final da primeira: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- """ Este exemplo mostra como adicionar os elementos de uma lista ao final de outra """ def main(): # cria uma lista de inteiros valores1 = [2, 5, 12, 2, 3] print(valores1) # cria uma lista de pontos-flutuantes valores2 = [4.3, 6.43, 8.1] print(valores2) # insere a segunda lista no final da primeira valores1.extend(valores2) # exibe o resultado final print(valores1) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: [2, 5, 12, 2, 3] [4.3, 6.43, 8.1] [2, 5, 12, 2, 3, 4.3, 6.43, 8.1] |
Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet |
Como usar a propriedade Eof para verificar se estamos no último registro do TClientDataSet do DelphiQuantidade de visualizações: 13568 vezes |
Em algumas situações gostaríamos de verificar se já estamos no último registro do TClientDataSet, ou seja, estamos percorrendo todos os registros do dataset e queremos saber se já estamos no último. Para isso podemos usar a propriedade Eof da classe TClientDataSet. Esta propriedade retorna true se estivermos no último registro e false em caso contrário. Veja um trecho de código no qual usamos um laço while para percorrer todos os registros de um TClientDataSet. Note o uso da propriedade Eof para finalizar as iterações do laço: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm3.Button4Click(Sender: TObject); begin // vamos percorrer todos os registros do TClientDataSet ClientDataSet1.First; // vamos para o primeiro registro // e agora disparamos um laço While while not ClientDataSet1.Eof do begin // vamos mostrar em um TMemo os valores do // campo id de cada registro Memo1.Lines.Add(ClientDataSet1.FieldByName('id').AsString); // vamos mover para o próximo registro ClientDataSet1.Next; end; end; A propriedade Eof é verdadeira quando: a) Abrimos um dataset vazio. b) Efetuamos uma chamada ao método Last do dataset. c) Chamamos o método Next do dataset e a chamada falha porque o registro atual já é o último registro no dataset. d) Efetuamos uma chamada ao método SetRange em uma faixa de dados ou dataset vazio. Esta dica foi escrita e testada no Delphi 2009. |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Engenharia Civil - Cálculo Estrutural |
Exercícios Resolvidos de C - Como calcular as reações de apoio, momento de flexão máxima e forças cortantes em uma viga bi-apoiada com carga distribuída retangular usando CQuantidade de visualizações: 246 vezes |
Pergunta/Tarefa: Veja a seguinte figura: Nesta imagem temos uma viga bi apoiada com uma carga q distribuída de forma retangular a uma distância l. Para fins didáticos, vamos considerar que a carga q será em kN/m e a distância l será em metros. O apoio A é de segundo gênero e o apoio B é de primeiro gênero. Escreva um programa C que solicita ao usuário que informe o valor da carga q e a distância l entre os apoios A e B. Em seguida mostre os valores das reações nos apoios A e B, o momento de flexão máxima da viga e o momento de flexão para uma determinada distância (que o usuário informará) a partir do apoio A. Mostre também as forças cortantes nos apoios A e B. Lembre-se de que, para uma carga distribuída de forma retangular, o diagrama de momento fletor é uma parábola, enquanto o diagrama de cortante é uma reta (com o valor zero para a força cortante no meio da viga). Sua saída deve ser parecida com: Valor da carga em kN/m: 10 Distância em metros: 13 A reação no apoio A é: 65.000000 kN A reação no apoio B é: 65.000000 kN O momento fletor máximo é: 211.250000 kN Informe uma distância a partir do apoio A: 4 O momento fletor na distância informada é: 180.000000 kN A força cortante no apoio A é: 65.000000 kN A força cortante no apoio B é: -65.000000 kN Veja a resolução comentada deste exercício usando C: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]) { // variáveis usadas na resolução do problema float carga, distancia, reacao_a, reacao_b; float flexao_maxima, distancia_temp, flexao_distancia; float cortante_a, cortante_b; // vamos pedir para o usuário informar o valor da carga printf("Valor da carga em kN/m: "); scanf("%f", &carga); // vamos pedir para o usuário informar a distância entre os apoios printf("Distancia em metros: "); scanf("%f", &distancia); // vamos calcular a reação no apoio A reacao_a = (1.0 / 2.0) * carga * distancia; // vamos calcular a reação no apoio B reacao_b = reacao_a; // vamos calcular o momento fletor máximo flexao_maxima = (1.0 / 8.0) * carga * pow(distancia, 2.0); // e mostramos o resultado printf("\nA reacao no apoio A e: %f kN", reacao_a); printf("\nA reacao no apoio B e: %f kN", reacao_b); printf("\nO momento fletor maximo e: %f kN", flexao_maxima); // vamos pedir para o usuário informar uma distância a // partir do apoio A printf("\n\nInforme uma distancia a partir do apoio A: "); scanf("%f", &distancia_temp); // vamos mostrar o momento fletor na distância informada if (distancia_temp > distancia) { printf("\nDistancia invalida.\n"); } else { flexao_distancia = (1.0 / 2.0) * carga * distancia_temp * (distancia - distancia_temp); printf("O momento fletor na distancia informada e: %f kN", flexao_distancia); } // vamos mostrar a força cortante no apoio A cortante_a = (1.0 / 2.0) * carga * distancia; printf("\n\nA forca cortante no apoio A e: %f kN", cortante_a); // vamos mostrar a força cortante no apoio B cortante_b = cortante_a * -1; printf("\nA forca cortante no apoio B e: %f kN\n\n", cortante_b); printf("\n\n"); system("PAUSE"); return 0; } |
Delphi ::: VCL - Visual Component Library ::: TEdit |
Como obter o conteúdo de um TEdit do Delphi em tempo de execução usando a função SendMessage() da API do Windows e a mensagem WM_GETTEXTQuantidade de visualizações: 11651 vezes |
Embora o Delphi já nos forneça as ferramentas necessárias para obter o conteúdo de um TEdit em tempo de execução, é importante saber como realizar esta tarefa usando a API do Windows. Para isso, podemos usar a função SendMessage() em combinação com a mensagem WM_GETTEXT. A função SendMessage() da API do Windows possui a seguinte assinatura em C/C++: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); No arquivo Windows.pas podemos encontrar o protótipo e corpo desta função convertidos para Object Pascal: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // Protótipo {$EXTERNALSYM SendMessage} function SendMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; // Implementação function SendMessage; external user32 name 'SendMessageW'; Note que precisamos de um HWND (parâmetro hWnd) para a caixa de texto. Temos que fornecer também a quantidade de caracteres que serão lidos (parâmetro wParam) e um buffer no qual os caracteres lidos a partir da caixa de texto serão colocados (parâmetro lParam). Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var buffer: String; tamanho: Integer; begin // vamos obter a quantidade de caracteres na caixa de texto tamanho := SendMessage(Edit1.Handle, WM_GETTEXTLENGTH, 0, 0); // vamos ajustar o tamanho do buffer SetLength(buffer, tamanho); // vamos usar a mensagem WM_GETTEXT para obter o conteúdo // da caixa de texto SendMessage(Edit1.Handle, WM_GETTEXT, tamanho + 1, lParam(@buffer[1])); // vamos exibir o resultado ShowMessage('O conteúdo do edit é: ' + buffer); end; Veja que usei também a mensagem WM_GETTEXTLENGTH para obter a quantidade de caracteres na caixa de texto. Isso foi necessário para redimensionarmos o buffer de caracteres para um tamanho capaz de acomododar todo o conteúdo do edit. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |