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 ::: Matemática e Estatística

Como usar a função modf() da linguagem C para separar um valor de ponto flutuante em suas partes inteira e fracionária

Quantidade de visualizações: 7932 vezes
Em algumas situações precisamos obter as partes inteira e fracionária de um valor de ponto flutuante. Para isso podemos usar a função modf(). Veja sua assinatura:

double modf(double x, double * intpart);

O parâmetro x é o valor de ponto flutuante cujas partes queremos separar e intpart é uma variável do tipo double que receberá a parte inteira do valor. O retorno da função é o valor fracionário.

Vamos ver um exemplo? Veja como podemos quebrar o valor 34,27 em suas partes inteira e fracionária:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  double valor = 34.27;
  
  // vamos separar o valor em suas partes inteira e fracionária
  double inteira = 0.0, fracionaria = 0.0;
  fracionaria = modf(valor, &inteira);
  
  // vamos exibir o resultado
  printf("Parte inteira: %f\n", inteira);
  printf("Parte fracionaria: %f\n", fracionaria);
  
  printf("\n\n");
  system("pause");
  return 0;
}

Ao executarmos este código teremos o seguinte resultado:

Parte inteira: 34.000000
Parte fracionária: 0.270000


Revit Python Shell ::: Dicas & Truques ::: Selection, Seleção

Como pedir para o usuário selecionar somente um elemento no Revit usando a função PickObject() do objeto Selection do Revit Python Shell

Quantidade de visualizações: 358 vezes
Nesta dica mostrarei como podemos usar a função PickObject() do objeto Selection do Revit Python Shell para pedir para o usuário selecionar somente um elemento na área de desenho do Revit. Note que o objeto Selection é obtido a partir do objeto uidoc, carregado automaticamente pelo Revit Python Shell.

Depois que o usuário seleciona o elemento, nós usamos a função doc.GetElement() para receber a referência ao elemento e convertê-la para um elemento real. Então, para finalizar, nós acessamos a propriedade Id do elemento e a exibimos na tela.

Veja o código Revit Python Shell completo para o exemplo:

# faz o import necessário
from Autodesk.Revit.UI.Selection import ObjectType

# precisamos ocultar a janela do Revit Python Shell
__window__.Hide()
 
# agora fazemos uma chamada à função PickObject() do objeto Selection e retornamos
# uma Reference
selecionado = uidoc.Selection.PickObject(ObjectType.Element, "Selecione um elemento")
 
# depois que o usuário fizer a seleção nós mostramos a janela do
# Revit Python Shell novamente
__window__.Show()
__window__.Topmost = True
 
# obtemos o elemento a partir de sua referência usando a função
# GetElement() do objeto Document
elemento = doc.GetElement(selecionado)
 
# e mostramos o resultado
print("O id do elemento selecionado é: {0}".format(elemento.Id))

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

O id do elemento selecionado é: 359410

Veja como usei as funções __window__.Hide(), __window__.Show() e __window__.Topmost = True para ocultar a janela do Revit Python Shell e exibí-la novamente depois que o usuário fizer a seleção do elemento. Sem essas funções essa operação não pode ser realizada.


LISP ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como testar uma condição em Lisp usando a macro if

Quantidade de visualizações: 1135 vezes
Nesta dica mostrarei como podemos usar a macro if da linguagem Common Lisp para testar uma condição. Por se tratar de um exemplo básico, não mostrarei um caminho alternativo, ou seja, a mensagem será exibido somente se a condição for satisfeita. Em outras dicas eu complemento com o desvio opcional.

Veja um exemplo no qual solicitamos um número ao usuário e informamos se o valor lido é maior que 10:

; Vamos definir as variáveis que vamos
; usar no programa
(defvar numero)

; Este é o programa principal
(defun Estudos()
  ; Vamos ler o número
  (princ "Informe um número: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  ; atribui o valor lido à variável numero
  (setq numero (read))
  
  ; vamos testar se este número é maior que 10
  (if (> numero 10)
    (format t "~D é maior que 10~%" numero))
  
  ; E mostramos o número informado
  (format t "O número informado foi: ~D" numero)
)

; Auto-executa a função Estudos()
(Estudos)

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

Informe um número: 12
12 é maior que 10
O número informado foi: 12


Java ::: Dicas & Truques ::: Mouse e Teclado

Java Swing - Como detectar um clique em um botão JButton e exibir uma mensagem JOptionPane

Quantidade de visualizações: 59 vezes
Nesta dica mostrarei como podemos usar o método addActionListener() da linguagem Java para definir um evento de clique a um botão JButton. Quando o usuário clicar no botão nós vamos interceptar este evento e mostrar uma mensagem JOptionPane.showMessageDialog().

Veja o código completo para o exemplo:

 
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
public class Estudos extends JFrame{
  JButton btn;
 
  public Estudos() {
    super("Detectando um clique em um botão");
    Container c = getContentPane();
    FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
    c.setLayout(layout);
     
    btn = new JButton("Clique");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          JOptionPane.showMessageDialog(null, "Fui clicado!");
        }
      }   
    ); 
        
    c.add(btn);
     
    setSize(350, 250);
    setVisible(true);
  }
   
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



C# ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções

Tutorial C# para iniciantes - Como escrever seu primeiro método ou função em C#

Quantidade de visualizações: 15551 vezes
À medida que estamos desenvolvendo nossos códigos, percebemos que estes podem ser divididos de acordo com suas funcionalidades. Ao efetuar esta divisão, estamos na verdade criando blocos de códigos que executam uma determinada tarefa. E, descobrimos que tais blocos de códigos podem ser reaproveitados com frequencia em um mesmo programa. Assim, ao mecanismo usado para disparar a execução destes blocos de códigos é dado o nome de método (ou função em linguagens tais como C e C++).

Um método, em sua forma mais simples, é apenas um conjunto de instruções que podem ser chamadas a partir de locais estratégicos de um programa. Veja um exemplo:

// um método que não recebe nenhum argumento
// e não retorna nenhum valor
static void metodo(){
  Console.WriteLine("Sou um método");
}

Este método apenas exibe o texto "Sou um método". Veja o uso das chaves { e } para delimitar a área de atuação do método (o corpo do método). A palavra-chave void indica que este método não retorna nenhum valor ao finalizar sua execução enquanto a palavra-chave static é melhor explicada na nossa seção sobre modificadores em C#. Todos os métodos em C# possuem parênteses, os quais servem como marcadores para a lista de parâmetros do método. Parênteses vazios indicam que o método não possui parâmetros.[br][br]

Veja agora um trecho de código completo exemplificando a chamada ao método recém-criado:

// um método que não recebe nenhum argumento
// e não retorna nenhum valor
static void metodo(){
  Console.WriteLine("Sou um método");
}

static void Main(string[] args){
  // efetua uma chamada ao método
  metodo();

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



Java ::: Dicas & Truques ::: Mouse e Teclado

Apostila de Java Swing - Como detectar um duplo-clique do mouse em uma JFrame ou outros controles visuais

Quantidade de visualizações: 11414 vezes
Nesta dica mostrarei como podemos usar o método getClickCount() da classe MouseEvent para detectar o duplo-clique do mouse em uma janela JFrame do Java Swing. É claro que o código pode ser aplicado em qualquer outro componente que herde de JComponent.

Veja o código completo para o exemplo:

package arquivodecodigos;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
public class Estudos extends JFrame{
  public Estudos() {
    super("Eventos do Mouse e Teclado");
    Container c = getContentPane();
    FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
    c.setLayout(layout);
     
    this.addMouseListener(
      new MouseAdapter(){
        @Override
        public void mouseClicked(MouseEvent e){
          if(e.getClickCount() == 2){  
            setTitle("Duplo-clique detectado.");
          }
          else{
            setTitle("Clique simples detectado.");
          }
        }
      }
    );    
 
    setSize(350, 250);
    setVisible(true);
  }
   
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



VB.NET ::: Dicas & Truques ::: Strings e Caracteres

Como comparar strings em VB.NET usando o método Equals() da classe String do .NET Framework

Quantidade de visualizações: 8987 vezes
Nesta dica mostrarei como podemos comparar palavras, frases ou textos em VB.NET usando o método Equals() da classe String do .NET Framework. Este método retorna um valor True se as duas strings forem iguais e False em caso contrário.

Lembre-se de que o método Equals() diferencia maiúsculas de minúsculas.

Veja um exemplo completo de seu uso:

Imports System

Module Program
  Sub Main(args As String())
    Dim palavra1, palavra2 As String
    palavra1 = "Visual Basic"
    palavra2 = "Visual Basic"

    If palavra1.Equals(palavra2) Then
      Console.WriteLine("As duas strings são iguais")
    Else
      Console.WriteLine("As duas strings são diferentes")
    End If

    Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...")
    ' pausa o programa
    Console.ReadKey()
  End Sub
End Module

Ao executar este código VB.NET nós teremos o seguinte resultado:

As duas strings são iguais


Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TField e Classes Derivadas

Como usar a classe TField em seus programas Delphi

Quantidade de visualizações: 12618 vezes
A classe TField (na unit DB) é um ancestral comum de todos os componentes que representam os campos de uma tabela no banco de dados (ou um dataset cujos dados foram carregados de um arquivo do tipo texto, binário ou XML). Esta classe encapsula o comportamento comum a todos os demais componentes to tipo field (campo).

Veja sua posição na hierarquia de classes do Delphi:

System.TObject
  Classes.TPersistent
    Classes.TComponent
      DB.TField
Esta classe ainda implementa as interfaces Classes.IInterfaceComponentReference e System.IInterface.

A classe TField apresenta propriedades, eventos e métodos que são usados para as seguintes tarefas:

1) Alterar o valor de um campo em um dataset;

2) Converter o valor de um campo de um tipo para outro tipo;

3) Efetuar validações nos dados informados pelos usuários para determinados campos;

4) Definir como as informações dos campos são mostradas em tempo de exibição ou para edição;

5) Calcular o valor de um campo a partir de código escrito no evento OnCalcFields do dataset;

6) Pesquisar o valor do campo a partir de outro dataset.

Em geral não criamos instâncias da classe TField diretamente. Componentes que descendem de TField são criados automaticamente a cada vez que o dataset é ativado. Estes descendentes podem ser dinâmicos (o padrão) ou persistentes. Componentes campos dinâmicos refletem as colunas dos metadados da tabela a qual pertencem no momento que o dataset é aberto. Componentes campos persistentes são criados em tempo de design usando o editor Fields, que especifica os campos no dataset, suas propriedades e a ordem em que deverão estar.

A criação de componentes de campos persistentes garante que todas as vezes que uma aplicação for executada, ela usará e exibirá as mesmas colunas, na mesma ordem, até mesmo se a estrutura física da base de dados mudar. Se uma coluna em uma tabela na qual um componente de campo persistente é baseado for excluída ou alterada, o IDE gera uma exceção em vez de permitir a abertura do dataset usando um coluna não existente ou incompatível. Se isso acontecer, devemos remover o camponente field para o campo não existente usando o editor Fields.

Um campo (field) em um dataset é sempre tratado como uma das classes descendentes de TField abaixo:

        
TADTField          TDateField         TReferenceField   
TAggregateField    TDateTimeField     TSmallIntField   
TArrayField        TFloatField        TSQLTimeStampField   
TAutoIncField      TFMTBCDField       TStringField   
TBCDField          TGraphicField      TTimeField   
TBinaryField       TGuidField         TVarBytesField   
TBlobField         TIDispatchField    TVariantField   
TBooleanField      TIntegerField      TWideStringField   
TBytesField        TInterfaceField    TWordField   
TCurrencyField     TLargeintField     TDataSetField   
TMemoField     
Veja um trecho de código no qual usamos o método FieldByName() da classe TDataSet para obter uma referência a um determinado campo (field) de um ClientDataSet e usamos sua propriedade AsString para obter o valor do campo:

procedure TForm3.Button3Click(Sender: TObject);
var
  campo: TField;
begin
  // vamos obter o campo com o nome "titulo" do registro atual
  campo := ClientDataSet1.FieldByName('titulo');

  // vamos mostrar o valor do campo
  ShowMessage('O valor do campo é: ' + campo.AsString);
end;

Ao executarmos este código teremos um resultado parecido com:

"O valor do campo é: Programando em Java".

Esta dica foi escrita e testada no Delphi 2009.


C++ ::: Fundamentos da Linguagem ::: Estruturas de Controle

C++ para iniciantes - Como usar o laço for em C++

Quantidade de visualizações: 23022 vezes
O laço for é usado quando queremos executar um bloco de códigos um determinado número de vezes. Este laço é composto de três partes:

for(início; condição; incremento/decremento){
  bloco de instruções
} 

A parte início é executada uma única vez (na entrada do laço). Geralmente é nesta parte que declaramos e inicializamos a variável de controle. Na parte condição nós testamos a condição atual da variável de controle, para verificar se o laço pode continuar sua execução. Na parte do incremento/decremento nós alteramos o valor da variável de controle. Finalmente o bloco de instruções representa as instruções que serão executadas no laço.

Veja um exemplo de laço for no qual exibimos os números de 0 a 10:

#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // um laço for que conta de 0 a 10
  for(int i = 0; i <= 10; i++){
    cout << i << "\n";
  }

  cout << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Veja agora um laço for usado para exibir os números de 10 a 0:

#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // um laço for que conta de 10 a 0
  for(int i = 10; i >= 0; i--){
    cout << i << "\n";
  }

  cout << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

É importante observar que mais de uma expressão podem ser executadas nas partes início e incremento/decremento de um laço for. Veja um exemplo:

#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
  // um laço for que conta de 10 a 0
  for(int i = 0, x = 4; i <= 10; i++, x += 2){
    cout << (i * x) << "\n";
  }

  cout << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}



PHP ::: Dicas & Truques ::: Programação Orientada a Objetos

Programação Orientada a Objetos em PHP - Como usar o modificador de acesso private em suas classes PHP

Quantidade de visualizações: 8841 vezes
O modificador private serve para indicar que as propriedades ou métodos (funções) de uma classe podem ser acessados somente por código residente na mesma classe. Veja um exemplo:

<?
  class Pessoa{
    private $nome;
  }

  $pessoa = new Pessoa;
  $pessoa->nome = "Osmar J. Silva";
?>

Ao executarmos este código teremos a seguinte mensagem de erro:

Fatal error: Cannot access private property 
Pessoa::$nome in C:\Apache_Web_Server\htdocs\testes.php 
on line 7

Esse erro ocorre porque a variável $nome, por estar marcada com o modificador private, não pode ser acessada por código fora da classe. Veja agora um exemplo envolvendo um método privado:

<?
  class Pessoa{
    private function somar($a, $b){
      return $a + $b;
    }
  }

  $pessoa = new Pessoa;
  echo $pessoa->somar(4, 2);
?>


Ao executarmos este código, a seguinte mensagem de erro será exibida:

Fatal error: Call to private method Pessoa::somar() 
from context '' in C:\Apache_Web_Server\htdocs\testes.php 
on line 9

Novamente, este erro é causado porque o método somar() não pode ser acessado por código fora da classe Pessoa.

É importante notar, contudo, que as propriedades e métodos privados de uma classe não podem ser acessados nem mesmo por suas classes derivadas (sub-classes).

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 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 Apenas R$ 32,90


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