Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.

C ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o comprimento da hipotenusa em C dadas as medidas do cateto oposto e do cateto adjascente

Quantidade de visualizações: 1898 vezes
Nesta dica mostrarei como é possível usar a linguagem C para retornar o comprimento da hipotenusa dadas as medidas do cateto oposto e do cateto adjascente. Vamos começar analisando a imagem a seguir:



Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados.

Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras):

\[c^2 = a^2 + b^2\]

Tudo que temos a fazer a converter esta fórmula para código C. Veja:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main(int argc, char *argv[]){
  float a = 20; // medida do cateto oposto
  float b = 30; // medida do cateto adjascente
  
  // agora vamos calcular o comprimento da hipotenusa
  float c = sqrt(pow(a, 2) + pow(b, 2));
 
  // e mostramos o resultado
  printf("O comprimento da hipotenusa é: %f", c);
 
  printf("\n\n");
  system("PAUSE");
  return 0;
}

Ao executar este código C nós teremos o seguinte resultado:

O comprimento da hipotenusa é: 36.055511

Como podemos ver, o resultado retornado com o código C confere com os valores da imagem apresentada.


Python ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como testar de uma matriz é uma matriz identidade usando Python

Quantidade de visualizações: 1342 vezes
Seja M uma matriz quadrada de ordem n. A matriz M é chamada de Matriz Identidade de ordem n (indicada por In) quando os elementos da diagonal principal são todos iguais a 1 e os elementos restantes são iguais a zero.

Para melhor entendimento, veja a imagem de uma matriz identidade de ordem 3, ou seja, três linhas e três colunas:



Veja um código Python completo no qual nós declaramos uma matriz quadrada de ordem 3, pedimos para o usuário informar os valores de seus elementos e no final informamos se a matriz é uma matriz identidade ou não:

# método principal
def main():
  n = 3; # ordem da matriz quadrada
  matriz = [[0 for x in range(n)] for y in range(n)] # matriz quadrada
  identidade = True

  # vamos pedir para o usuário informar os elementos da matriz
  for i in range(n):
    for j in range(n):
      matriz[i][j] = int(input("Elemento na linha {0} e coluna {0}: ".format(
        (i + 1), (j + 1))))
  
  # agora verificamos se a matriz é uma matriz identidade
  for linha in range(n):
    for coluna in range(n):
      if (matriz[linha][coluna] != 1) and (matriz[coluna][linha] != 0):
        identidade = False
        break
     
  # agora mostramos a matriz lida
  print()
  for i in range(n):
    for j in range(n):
      print(matriz[i][j], end='  ')
    print()

  if identidade:
    print("\nA matriz informada é uma matriz identidade.")
  else:
    print("\nA matriz informada não é uma matriz identidade.")
  
if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

Elemento na linha 1 e coluna 1: 1
Elemento na linha 1 e coluna 2: 0
Elemento na linha 1 e coluna 3: 0
Elemento na linha 2 e coluna 1: 0
Elemento na linha 2 e coluna 2: 1
Elemento na linha 2 e coluna 3: 0
Elemento na linha 3 e coluna 1: 0
Elemento na linha 3 e coluna 2: 0
Elemento na linha 3 e coluna 3: 1

1 0 0 
0 1 0 
0 0 1 

A matriz informada é uma matriz identidade.



Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Números Aleatórios, Números Randômicos, Amostras Aleatórias, Amostras Randômicas

Como gerar um número randômico em Python usando a função rand() do módulo random da NumPy

Quantidade de visualizações: 749 vezes
Em algumas situações nós precisamos gerar um número aleatório na faixa de 0 e 1 (não incluído). Para isso nós podemos usar a função rand() do módulo random da biblioteca NumPy do Python. Veja um exemplo:

# importamos o módulo random da biblioteca NumPy
import numpy as np

# método principal
def main():
  # vamos gerar um número decimal aleatório de 0 (incluído) 
  # à 1 (não incluído) 
  valor = np.random.rand()
  print("O número sorteado foi: {0}".format(valor)) 
  
if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

O número sorteado foi: 0.2037063569952866

Note que o número retornado pela função rand() é um float com uma precisão semelhante ao double em outras linguagens de programação.

Veja agora uma modificação deste código para gerar 10 números aleatórios:

# importamos o módulo random da biblioteca NumPy
import numpy as np

# método principal
def main():
  # vamos gerar 10 números decimais aleatórios de 0 (incluído) 
  # à 1 (não incluído) 
  for i in range(10):
    valor = np.random.rand()
    print("O número sorteado foi: {0}".format(valor)) 
  
if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

O número sorteado foi: 0.57920714427429
O número sorteado foi: 0.06329414607318185
O número sorteado foi: 0.12184477988071851
O número sorteado foi: 0.5410663009618577
O número sorteado foi: 0.790229323250604
O número sorteado foi: 0.4733277307431061
O número sorteado foi: 0.7669969432159425
O número sorteado foi: 0.6934927410217504
O número sorteado foi: 0.13216036543343856
O número sorteado foi: 0.6958612722883786


Java ::: Dicas & Truques ::: Arquivos e Diretórios

Como ler o conteúdo de um arquivo texto em Java usando as classes BufferedReader, FileReader e a função readLine()

Quantidade de visualizações: 219 vezes
Nesta dica mostrarei como podemos combinar as classes BufferedReader, FileReader e a função readLine() para ler o conteúdo de um arquivo texto em Java, uma linha de cada vez.

Veja o código completo para o exemplo:

package estudos;

import java.io.*;

public class Estudos {
  public static void main(String[] args) {
    try {
      BufferedReader in = new BufferedReader(
        new FileReader("c:\\estudos_java\\alunos.txt"));
      String linha;
      while((linha = in.readLine()) != null){
        System.out.println(linha);
      }
      in.close();
    } 
    catch (IOException e){
      System.out.println("Houve um erro: " + e.getMessage());
    }

    System.out.println();
  }
}

Ao executar este código Java nós teremos o seguinte resultado:

Alberto
Maria
Fernanda
Josias


C++ ::: Desafios e Lista de Exercícios Resolvidos ::: C++ Básico

Exercício Resolvido de C++ - Como ler um número inteiro e imprimir seu sucessor e seu antecessor em C++

Quantidade de visualizações: 1753 vezes
Pergunta/Tarefa:

Escreva um programa C++ para ler um número inteiro e imprimir seu sucessor e seu antecessor. O usuário poderá informar um valor positivo ou negativo.

Sua saída deverá ser parecida com:

Informe um número inteiro: 16
O número informado foi: 16
O antecessor é 15
O sucessor é: 17
Resposta/Solução:

Veja a resolução comentada deste exercício usando C++:

#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // variáveis usadas na resolução do problema
  int numero, sucessor, antecessor;
  
  // vamos pedir para o usuário informar um número inteiro
  cout << "Informe um número inteiro: ";
  cin >> numero;
    
  // vamos calcular o sucessor do número informado
  sucessor = numero + 1;
    
  // vamos calcular o antecessor do número informado
  antecessor = numero - 1;
    
  // e agora mostramos os resultados
  cout << "O número informado foi: " << numero << endl;
  cout << "O antecessor é " << antecessor << endl;
  cout << "O sucessor é: " << sucessor << endl;
  
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS; 
}



C++ Builder ::: VCL - Visual Component Library ::: TEdit

Como habilitar ou desabilitar um TEdit usando a função EnableWindow() da API do Windows usando C++ Builder

Quantidade de visualizações: 6196 vezes
Embora o C++ Builder já nos forneça as ferramentas necessárias para habilitar ou desabilitar 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 EnableWindow() com os valores true ou false.

A função EnableWindow() possui a seguinte assinatura:

BOOL EnableWindow(          
  HWND hWnd,
  BOOL bEnable
);

Note que precisamos informar o HWND (parâmetro hWnd) para a caixa de texto e um valor BOOL. Se fornecermos false, a caixa de texto será desabilitada. Veja:

void __fastcall TForm3::Button2Click(TObject *Sender)
{
  // vamos desabilitar o TEdit usando a função EnableWindow()
  // com o valor false
  if(EnableWindow(Edit1->Handle, false)){
	ShowMessage("A caixa de texto foi desabilitada com sucesso.");
  }
}

Para habilitar a caixa de texto novamente, só precisamos fornecer o valor true para o parâmetro bEnable:

void __fastcall TForm3::Button2Click(TObject *Sender)
{
  // vamos habilitar o TEdit usando a função EnableWindow()
  // com o valor true
  if(EnableWindow(Edit1->Handle, true)){
	ShowMessage("A caixa de texto foi habilitada com sucesso.");
  }
}

É importante observar que o retorno da função EnableWindow será FALSE se tentarmos habilitar uma caixa de texto que já está habilitada ou tentarmos desabilitar uma caixa de texto que já está desabilitada.


C# ::: Dicas & Truques ::: Data e Hora

Como calcular a quantidade de dias decorridos em C# usando um objeto TimeSpan

Quantidade de visualizações: 8566 vezes
Em algumas ocasiões precisamos saber a quantidade de dias decorridos deste uma determinada data usando a linguagem C#. O trecho de código abaixo mostra como isso pode ser feito. Veja que usamos o construtor da estrutura DateTime para construir a data no passado e então a subtraímos da data atual. Em seguida obtemos a quantidade de dias do TimeSpan resultante:

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // vamos obter a quantidade de dias decorridos entre
      // 10/06/2009 e a data atual
      DateTime data_anterior = new DateTime(2009, 6, 10);  // 10/06/2009
      DateTime hoje = DateTime.Now;

      // obtém a quantidade de dias decorridos
      TimeSpan dif = hoje.Subtract(data_anterior);
      int decorridos = dif.Days;

      // exibe o resultado
      System.Console.WriteLine("Dias decorridos desde 10/06/2009: " +
        decorridos);

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

Dias decorridos desde 10/06/2009: 4662


Revit C# ::: Dicas & Truques ::: Selection, Seleção

Como pedir para o usuário selecionar vários elementos no Revit usando a função PickObjects() do objeto Selection da Revit C# API

Quantidade de visualizações: 481 vezes
Nesta dica mostrarei como podemos usar a função PickObjects() do objeto Selection da Revit C# API para pedir ao usuário que selecione vários elementos na área de desenho do Revit e então efetuar alguma operação envolvendo todos eles, de uma só vez.

Veja que o objeto Selection é retornado a partir de um UIDocument, que é obtido a partir de uma chamada this.ActiveUIDocument. Então nós chamamos a função PickObjects(), fornecendo o parâmetro ObjectType.Element e guardamos as referências retornadas como um objeto IList.

O passo seguinte é acessar a propriedade Count da IList para mostrar a quantidade de objetos selecionados. Note que é preciso clicar o botão Concluir (fica entre o botão Cancelar e a caixa de seleção Múltiplo) para indicar que o usuário concluiu a seleção e nosso código poder prosseguir.

Veja o código Revit C# completo para o exemplo:

using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
using System.Collections.Generic;
using System.Linq;

namespace Estudos {
  [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.
    TransactionMode.Manual)]
  [Autodesk.Revit.DB.Macros.AddInId("ED8EC6C4-9489-48F7-B04E-B45B5D1BEB12")]
  public partial class ThisApplication {
    private void Module_Startup(object sender, EventArgs e) {
      // vamos obter uma referência ao UIDocument ativo
      UIDocument uidoc = this.ActiveUIDocument;
      
      // agora mostramos uma mensagem para o usuário selecionar um
      // elemento
      TaskDialog.Show("Aviso", "Selecione um ou mais elementos");
      
      // obtemos uma referência ao objeto Selection do
      // UIDocument ativo
      Selection selecao = uidoc.Selection;
    
      // e finalmente esperamos que o usuário selecione um ou
      // mais elementos e os guardamos em uma lista
      IList<Reference> selecionados = selecao.PickObjects(ObjectType.Element);
    
      // agora mostramos a quantidade de elementos selecionados
      TaskDialog.Show("Aviso", "Você selecionou " + selecionados.Count +
        " elementos.");
    }

    private void Module_Shutdown(object sender, EventArgs e) {
      // para fazer alguma limpeza de memória ou algo assim
    }

    #region Revit Macros generated code
    private void InternalStartup() {
      this.Startup += new System.EventHandler(Module_Startup);
      this.Shutdown += new System.EventHandler(Module_Shutdown);
    }
    #endregion
  }
}

Execute a macro, selecione um ou mais elementos, clique o botão Concluir e você verá uma janela TaskDialog com a seguinte mensagem:

Você selecionou 5 elementos.


Dart ::: Dicas & Truques ::: Aplicativos e Outros

Como calcular a distância entre dois pontos na terra em Dart

Quantidade de visualizações: 1708 vezes
Nesta dica mostrarei como calcular a distância em quilômetros entre dois pontos na terra dadas suas latitudes e longitudes. Neste exemplo eu coloquei o valor de 6378.137 para o raio da terra, mas você pode definir para o valor que achar mais adequado.

O cálculo usado neste código se baseia na Fórmula de Haversine, que determina a distância do grande círculo entre dois pontos em uma esfera, dadas suas longitudes e latitudes.

Veja o código Dart completo:

// Vamos importar a biblioteca dart:io
import "dart:io";

// vamos importar a biblioteca dart:math
import "dart:math";

void main(){
  // vamos ler as latitudes e longitudes das duas
  // localizações
  stdout.write("Informe a primeira latitude: ");
  double lat1 = double.parse(stdin.readLineSync());
  stdout.write("Informe a primeira longitude: ");
  double lon1 = double.parse(stdin.readLineSync());
  stdout.write("Informe a segunda latitude: ");
  double lat2 = double.parse(stdin.readLineSync());
  stdout.write("Informe a segunda longitude: ");
  double lon2 = double.parse(stdin.readLineSync());
  
  // vamos calcular a distância entre os dois pontos em Kms
  double distancia = calcularDistancia(lat1, lat2, lon1, lon2);
    
  // mostramos o resultado
  print("Distância entre os dois pontos: ${distancia} kms");
}

// função que recebe dois pontos na terra e retorna a distância
// entre eles em quilômetros
double calcularDistancia(double lat1,
  double lat2, double lon1, double lon2){
    
  double raio_terra = 6378.137; // raio da terra em quilômetros
    
  // o primeiro passo é converter as latitudes e longitudes
  // para radianos
  lon1 = grausParaRadianos(lon1);
  lon2 = grausParaRadianos(lon2);
  lat1 = grausParaRadianos(lat1);
  lat2 = grausParaRadianos(lat2);
 
  // agora aplicamos a Fórmula de Haversine
  double dlon = lon2 - lon1;
  double dlat = lat2 - lat1;
  double a = pow(sin(dlat / 2), 2) + cos(lat1) * cos(lat2)
    * pow(sin(dlon / 2),2);
             
  double c = 2 * asin(sqrt(a));
 
  // e retornamos a distância    
  return(c * raio_terra);
}

// função que permite converter graus em radianos
double grausParaRadianos(double graus){
  return graus * (pi /  180);
}

Ao executar este código Dart nós teremos o seguinte resultado:

Informe a primeira latitude: -16.674551
Informe a primeira longitude: -49.303598
Informe a segunda latitude: -15.579321
Informe a segunda longitude: -56.10009
A distância entre os dois pontos é: 736.9183827638687kms

Neste exemplo eu calculei a distância entre as cidades de Goiânia-GO e Cuibá-MT.

A latitude é a distância ao Equador medida ao longo do meridiano de Greenwich. Esta distância mede-se em graus, podendo variar entre 0o e 90o para Norte(N) ou para Sul(S). A longitude é a distância ao meridiano de Greenwich medida ao longo do Equador.


Java ::: Dicas & Truques ::: Matemática e Estatística

Como testar se um número é par ou ímpar em Java

Quantidade de visualizações: 45520 vezes
Boa parte das listas de exercícios de Java básico contém um enunciado pedindo para o seu programa ler um número inteiro e informar se o mesmo é par ou ímpar. Esse teste é feito usando-se o operador de módulo (%) da linguagem Java.

Este operador retorna o resultado de uma divisão por inteiros, ou seja, se dividirmos 5 por 2, o resultado da divisão inteira será dois e o resto 1, indicando que o número informado não é par.

Veja o código completo para um exemplo:

package arquivodecodigos;

import java.util.*;

public class Estudos{
  public static void main(String[] args){
    Scanner input = new Scanner(System.in);
    System.out.print("Informe um valor inteiro: ");
    int num = input.nextInt();

    if(num % 2 == 0){
      System.out.print("Você informou um numero par");
    }
    else{
      System.out.print("Você informou um numero impar");
    }
    
    System.exit(0);
  }
}

Ao executarmos este código Java nós teremos o seguinte resultado:

Informe um valor inteiro: 5
Você informou um numero impar

Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser. Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 19,90


© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 68 usuários muito felizes estudando em nosso site.