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.

Python ::: Dicas & Truques ::: Strings e Caracteres

Como testar se uma substring está contida no final de uma string em Python usando a função endswith()

Quantidade de visualizações: 9239 vezes
Em várias situações nós precisamos verificar se uma palavra, frase ou texto termina com um determinado texto, ou seja, uma substring. A linguagem Python nos oferece a função endswith(), que possui a seguinte assinatura:

endswith(substring[, start[, end]])


Se o argumento start for especificado, a busca inicia a partir de tal índice. Se o argumento end for especificado, a busca terminará no índice definido.

Dessa forma, a função endswith retorna 1 se a substring estiver contida no final da string. Do contrário, o valor 0 será retornado.

Veja o código completo para o exemplo:

def main():
  frase = "Gosto de programar em Java"
 
  if frase.endswith("Java") == 1:
    print("A frase termina com \"Java\"")
  else:
    print("A frase NÃO termina com \"Java\"")   
 
if __name__== "__main__":
  main()

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

A frase termina com "Java"


Java ::: Coleções (Collections) ::: Vector

Como copiar todos os elementos de um Vector Java para um array

Quantidade de visualizações: 8106 vezes
Muitas vezes precisamos obter um array a partir de um Vector. Isso pode ser feito usando-se o método copyInto(). Veja sua assinatura:

public void copyInto(Object[] anArray)

Veja que os elementos do Vector são copiados para as mesmas posições no array. Assim, precisamos ficar atentos. Aqui podemos ter três exceções: NullPointerException (se o array fornecido como argumento for null), IndexOutOfBoundsException (se o array fornecido não for grande o suficiente para acomodar todos os elementos do array) e ArrayStoreException (se o tipo dos elementos do Vector não for de um tipo que pode ser armazenado no array fornecido como argumento).

O trecho de código abaixo mostra como copiar todos os elementos de um Vector de String para um array de String:

package estudos;

import java.util.*;

public class Estudos{ 
  public static void main(String args[]){ 
    // Cria o Vector
    Vector<String> nomes = new Vector<String>();

    // adiciona itens ao Vector
    nomes.addElement("Osmar");
    nomes.addElement("Marcos");
    nomes.addElement("Ingrid");

    // Cria o array
    String[] arrayNomes = new String[3];

    // copia os elementos do Vector para o array
    nomes.copyInto(arrayNomes);

    // Exibe o conteúdo do array
    for(int i = 0; i < arrayNomes.length; i++){
      System.out.println(arrayNomes[i]); 
    }     
  } 
}

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

Osmar
Marcos
Ingrid


PHP ::: Dicas & Truques ::: Strings e Caracteres

Como inserir um determinado número de zeros antes de um número em PHP usando a função sprintf()

Quantidade de visualizações: 132 vezes
Nesta dica mostrarei como podemos usar a função sprintf() da linguagem PHP para inserir uma determinada quantidade de zeros antes de um número.

Por exemplo, suponhamos que temos o número 19 e queremos exibir este número na forma 000019, ou seja, preencher com zeros na frente até totalizar 6 dígitos. Assim, só precisamos chamar a função sprintf() com os sinalizadores corretos.

Veja o código PHP a seguir:

<?php
  $valor = 19;
  $valor1 = sprintf("%02d", $valor) . "\n";
  $valor2 = sprintf("%03d", $valor) . "\n";
  $valor3 = sprintf("%04d", $valor);

  echo "Com dois dígitos: " . $valor1;
  echo "Com três dígitos: " . $valor2;
  echo "Com quatro dígitos: " . $valor3;
?>

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

Com dois dígitos: 19
Com três dígitos: 019
Com quatro dígitos: 0019


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

Exercícios Resolvidos de Java - Escrever um algoritmo que lê o público total de um jogo de futebol e fornece a renda do jogo

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

Em um determinado jogo de futebol havia 4 tipos de ingressos, assim distribuídos: popular 10%
a R$ 1,00; geral 50% a R$ 5,00; arquibancada 30% a R$ 10,00 e cadeiras 10% a R$ 20,00. Escreva um programa (algoritmo) Java que leia o público total do jogo e forneça a renda obtida.

Um outro enunciado muito comum deste exercício é: Escrever um algoritmo que lê o público total de futebol e fornecer a renda do jogo, sabendo-se que havia 4 tipos de ingressos assim distribuídos: popular 10% a R$ 1,00, geral 50% a R$ 5,00, arquibancada 30% a R$10,00 e cadeiras 10% a R$ 20,00.

Sua saída deverá ser parecida com:

Informe o público total do jogo de futebol: 10000
Renda geral do jogo: R$ 76.000,00
Resposta/Solução:

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

package estudos;

import java.text.NumberFormat;
import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // vamos fazer a leitura usando a classe Scanner
    Scanner entrada = new Scanner(System.in);
    
    // vamos obter o público total do jogo de futebol
    System.out.print("Informe o público total do jogo de futebol: ");
    int publico = Integer.parseInt(entrada.nextLine());
    
    // renda do ingresso popular
    double popular = (publico * (10.0 / 100)) * 1.00;
    // renda do ingresso geral
    double geral = (publico * (50.0 / 100)) * 5.00;
    // renda do ingresso arquibancada
    double arquibancada = (publico * (30.0 / 100)) * 10.00;
    // renda do ingresso cadeiras
    double cadeiras = (publico * (10.0 / 100)) * 20.00;
    
    // obtemos a renda total
    double renda_total = popular + geral + arquibancada + cadeiras;
    
    // e exibimos o resultado
    NumberFormat formato = NumberFormat.getCurrencyInstance();
    System.out.println("Renda geral do jogo: " + formato.format(renda_total));
  }
}



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

Como calcular juros simples e montante usando Delphi

Quantidade de visualizações: 13534 vezes
O regime de juros será simples quando o percentual de juros incidir apenas sobre o valor principal. Sobre os juros gerados a cada período não incidirão novos juros. Valor Principal ou simplesmente principal é o valor inicial emprestado ou aplicado, antes de somarmos os juros. Transformando em fórmula temos:

J = P . i . n

Onde:

J = juros
P = principal (capital)
i = taxa de juros
n = número de períodos

Imaginemos uma dívida de R$ 2.000,00 que deverá ser paga com juros de 5% a.m. pelo regime de juros simples e o prazo para o pagamento é de 2 meses. O cálculo em Delphi pode ser feito assim:

procedure TForm1.Button1Click(Sender: TObject);
var
  principal, taxa, juros: double;
  meses: integer;
begin
  principal := 2000.00;
  taxa := 0.08;
  meses := 2;

  juros := principal * taxa * meses;

  ShowMessage('O total de juros a ser pago é: '
    + FloatToStr(juros));
end;

O montante da dívida pode ser obtido das seguintes formas:

a) Montante = Principal + Juros
b) Montante = Principal + (Principal x Taxa de juros x Número de períodos)

M = P . (1 + (i . n))

Veja o código:

procedure TForm1.Button1Click(Sender: TObject);
var
  principal, taxa, juros, montante: double;
  meses: integer;
begin
  principal := 2000.00;
  taxa := 0.08;
  meses := 2;

  juros := principal * taxa * meses;
  montante := principal * (1 + (taxa * meses));

  ShowMessage('O total de juros a ser pago é: '
    + FloatToStr(juros));
  ShowMessage('O montante a ser pago é: '
    + FloatToStr(montante));
end;

Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009.


AutoCAD VBA ::: Dicas & Truques ::: Linha, Linhas, Comando LINE

Como criar uma linha no AutoCAD usando Autocad VBA e a função AddLine() do objeto ModelSpace

Quantidade de visualizações: 741 vezes
A função AddLine() do AutoCAD VBA nos permite desenhar uma linha mediante o fornecimento de um ponto inicial e um ponto final. Esta função é chamada a partir do objeto ModelSpace, que, por sua vez, está contido no objeto ThisDrawing.

A função AddLine() recebe dois valores do tipo Variant, ou seja, um vetor de três elementos do tipo double, e retorna um objeto Line.

Veja um código AutoCAD VBA completo no qual informamos as coordenadas x, y e z dos pontos inicial e final e desenhamos uma linha entre eles:

' Procedimento que permite desenhar uma linha entre dois pontos
Sub DesenharLinhaDoisPontos()
  ' vamos declarar o objeto Line
  Dim linha As AcadLine
  ' o ponto inicial
  Dim pontoInicial(0 To 2) As Double
  ' o ponto final
  Dim pontoFinal(0 To 2) As Double

  ' vamos definir as coordenadas dos dois pontos. Uma boa idéia
  ' seria pedir para o usuário informar os pontos. Em outras dicas
  ' do site essa idéia é explorada
  pontoInicial(0) = 0: pontoInicial(1) = 0: pontoInicial(2) = 0
  pontoFinal(0) = 350: pontoFinal(1) = 500: pontoFinal(2) = 0

  ' e agora desenhamos a linha
  Set linha = ThisDrawing.ModelSpace.AddLine(pontoInicial, pontoFinal)
  ' e damos uma Zoom All na área de desenho
  ZoomAll
End Sub

Ao executar este código AutoCAD VBA nós teremos uma linha saindo do ponto x=0,y=0,z=0 e indo até o ponto x=350,y=500,z=0.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Exercícios Resolvidos de Java - Usando o laço while para encontrar o MDC (Máximo Divisor Comum) de dois números

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

Escreva um programa Java que usa o laço while para calcular o MDC (Máximo Divisor Comum) de dois números. Sejam a, b e c números inteiros não nulos, dizemos que c é um divisor comum de a e b se c divide a (escrevemos c|a) e c divide b (c|b). Chamaremos D(a,b) o conjunto de todos os divisores comum de a e b.

Sua saída deve ser parecida com:

Informe o primeiro número: 16
Informe o segundo número: 24
O MDC de 16 e 24 é: 8
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
      
    // vamos que o usuário informe dois números
    System.out.print("Informe o primeiro número: ");
    int n1 = Integer.parseInt(entrada.nextLine());
    System.out.print("Informe o segundo número: ");
    int n2 = Integer.parseInt(entrada.nextLine());
    
    int mdc = 1; // partimos do principio de que 1 é o MDC inicial
    int k = 2; // MDC possível
    while((k <= n1) && (k <= n2)){ // enquanto k for menor ou igual aos dois números
       if((n1 % k == 0) && (n2 % k == 0)){
          mdc = k; // já temos um novo MDC
       }
       k++; // buscamos o novo MDC
    }

    // mostramos o resultado
    System.out.println("O MDC de " + n1 + " e " + n2 + " é: " + mdc);
    
    System.out.println("\n");
  }
}



JavaScript ::: Dicas & Truques ::: Validação de Formulários

Validação de formulários em JavaScript - Como validar CPF (com pontos e hífen) usando expressões regulares

Quantidade de visualizações: 44552 vezes
Nesta dica mostrarei como podemos escrever uma função JavaScript para a validação de números de CPF, dessa vez usando pontos e o hífen. Isso é interessante porque, muitas vezes, o usuário copia seu CPF de outro lugar e cola nas caixas de texto de nossas aplicações.

A pagina HTML que contém o formulário se parece com a imagem abaixo:



E agora veja o código JavaScript completo para o exemplo, incluindo o código HTML para a página:

<html>
<head>
<title>Estudando JavaScript</title>

<style type="text/css">
  input {margin-bottom: 3px; margin-top: 3px}
</style>
 
<script type="text/javascript">
 function validarCPF(){
   var cpf = document.cadastro.cpf.value;
   var filtro = /^\d{3}.\d{3}.\d{3}-\d{2}$/i;
   if(!filtro.test(cpf)){
     window.alert("CPF inválido. Tente novamente.");
     return false;
   }
    
   cpf = remove(cpf, ".");
   cpf = remove(cpf, "-");
     
   if(cpf.length != 11 || cpf == "00000000000" || 
      cpf == "11111111111" ||
      cpf == "22222222222" || cpf == "33333333333" || 
      cpf == "44444444444" ||
      cpf == "55555555555" || cpf == "66666666666" || 
      cpf == "77777777777" ||
      cpf == "88888888888" || cpf == "99999999999"){
      window.alert("CPF inválido. Tente novamente.");
      return false;
   }
 
   soma = 0;
   for(i = 0; i < 9; i++){
     soma += parseInt(cpf.charAt(i)) * (10 - i);
   }   

   resto = 11 - (soma % 11);
   
   if(resto == 10 || resto == 11){
     resto = 0;
   }
   
   if(resto != parseInt(cpf.charAt(9))){
     window.alert("CPF inválido. Tente novamente.");
     return false;
   }

   soma = 0;
   for(i = 0; i < 10; i ++){
     soma += parseInt(cpf.charAt(i)) * (11 - i);
   }   

   resto = 11 - (soma % 11);
   if(resto == 10 || resto == 11){
     resto = 0;
   }

   if(resto != parseInt(cpf.charAt(10))){
     window.alert("CPF inválido. Tente novamente.");
     return false;
   }

   window.alert("CPF válido. Muito obrigado."); 
   return true;
 }
  
 function remove(str, sub) {
   i = str.indexOf(sub);
   r = "";
   if (i == -1) return str;
   r += str.substring(0,i) + remove(str.substring(i + sub.length), sub);
   return r;
 }
</script>
 
</head>
<body>
 
<form name="cadastro" onSubmit="return validarCPF()">
  Informe seu CPF (use os pontos e o hífen):<br>
  <input type="text" maxlength="14" name="cpf">
  <input type="submit" value="Enviar!">
</form>
 
</body>
</html>



Python ::: wxPython ::: Eventos e Tratadores de Eventos

Como tratar o evento wx.EVT_PAINT em suas aplicações wxPython - Interfaces gráficas no Python

Quantidade de visualizações: 259 vezes
Nesta dica mostrarei como podemos tratar o evento wx.PaintEvent em suas aplicações wxPython. Este evento é disparado todas as vezes que uma janela é redesenhada, ou seja, quando fazemos o redimensionamento da janela ou a maximizamos.

Veja o código completo para uma aplicação wxPython na qual interceptamos o evento wx.PaintEvent para exibir a hora atual na janela, usando a função dc.DrawText(). Note o uso da função strftime() para formatar o conteúdo de um objeto datetime.

# vamos importar o framework wxPython 
import wx
# mais alguns imports necessários
from datetime import datetime
import locale

# classe que representará a janela principal da
# aplicação wxPython
class JanelaPrincipal(wx.Frame):
  # o método construtor
  def __init__(self, *args, **kw):
    # chama o construtor da classe wx.Frame
    super(JanelaPrincipal, self).__init__(*args, **kw)

    # Configurações do usuário
    locale.setlocale(locale.LC_ALL, '')

    # chama a função que inicializa a GUI
    self.InicializarGUI()

  # método usado para gerenciar o evento OnPaint
  def OnPaint(self, e):
    # Obtém um datetime da data e hora atual
    hoje = datetime.today()
    
    # vamos obter o contexto de desenho
    dc = wx.PaintDC(self)
    texto = "Evento OnPaint gerado às: {0}".format(
      hoje.strftime("%X"))
    dc.DrawText(texto, 20, 20)

  # função que inicializa a GUI do programa
  def InicializarGUI(self):
    self.Bind(wx.EVT_PAINT, self.OnPaint)
    
    # definimos o tamanho da janela
    self.SetSize((450, 350))
    # define a cor de fundo da janela (Windows 10)
    self.SetBackgroundColour(wx.WHITE)
    # definimos o título da janela
    self.SetTitle('O evento OnPaint')
    # e centralizamos a janela
    self.Centre()

# função principal do programa Python
def main():
  # vamos criar a aplicação wxPython
  app = wx.App()
  janela_principal = JanelaPrincipal(None)
  janela_principal.Show()
  app.MainLoop()

if __name__ == "__main__":
  main()



Delphi ::: Dicas & Truques ::: Strings e Caracteres

Como trabalhar com strings em Delphi - Como usar strings na linguagem Delphi

Quantidade de visualizações: 28309 vezes
Strings estão presentes em praticamente todos os programas que desenvolvemos, não importa a linguagem de programação usada. Sempre que queremos trabalhar com nomes de pessoas, nomes de cidades, palavras, frases e textos, as strings estão lá para nos auxiliar. Assim, para as linguagens de programação, as strings são apenas matrizes de caracteres (letras ou símbolos).

Em Delphi podemos declarar e inicializar strings da seguinte forma:

procedure TForm1.Button1Click(Sender: TObject);
var
  nome: string; // declara uma variável do tipo string
begin
  nome := 'Osmar J. Silva'; // inicializa a variável
  ShowMessage(nome); // exibe o conteúdo da string
end;

Quando declaramos uma string em Delphi usando a palavra-chave string, o compilador automaticamente assume o tipo UnicodeString, com uma capacidade de 2^30 caracteres (mais ou menos 1.073.741.824 caracteres) com uma capacidade variando de 4 bytes até 2GB.

Além do tipo string, o Delphi suporta outros tipos que possibilitam também o trabalho com strings e caracteres. Entre eles podemos citar ShortString, AnsiString, WideString entre outros. Quando puder dê mais uma revisada nas minha dicas sobre strings e caracteres para aprender mais.

É possível também usar o tipo string para criar strings com tamanhos pré-definidos. Veja:

var
  nome: string[5]; // declara uma variável do tipo string
                   // que guardará apenas 5 caracteres

Aqui temos uma string que não suportará mais que cinco caracteres. Importante notar que, internamente, teremos agora uma string do tipo ShortString e não mais UnicodeString como anteriormente. Se tentarmos atribuir mais que cinco caracteres nesta variável, o restante será truncado:

nome := 'Osmar J. Silva'; // inicializa a variável
ShowMessage(nome); // mostrará apenas "Osmar"

Para finalizar, veja como podemos solicitar ao usuário que informe seu nome e exibí-lo usando a função ShowMessage():

procedure TForm1.Button1Click(Sender: TObject);
var
  nome: string; // declara uma variável do tipo string
begin
  // vamos solicitar ao usuário que informe seu nome
  nome := Dialogs.InputBox('Nome', 'Informe seu nome:', '');
  ShowMessage('Seu nome é: ' + nome); // mostrará apenas "Osmar"
end;

Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009.

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á 59 usuários muito felizes estudando em nosso site.