![]() |
|
||||
![]() 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 arrayQuantidade 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 jogoQuantidade 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 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 DelphiQuantidade 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 ModelSpaceQuantidade 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úmerosQuantidade 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 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 regularesQuantidade 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 PythonQuantidade 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 DelphiQuantidade 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. |
Nossas 20 dicas & truques de programação mais populares |
JavaScript - Como testar se todos os elementos de um array satisfazem uma condição em JavaScript usando a função every() C# - Como ordenar alfabeticamente os itens de uma ListBox do C# Windows Forms usando a propriedade Sorted |
Você também poderá gostar das dicas e truques de programação abaixo |
JavaScript - Como retornar o código ASCII ou Unicode associado a um caractere em JavaScript usando a função charCodeAt() Python - Exercícios Resolvidos de Python - Como converter de binário para decimal em Python usando o laço for PHP - Como converter graus em radianos em PHP usando a função deg2rad() - Trigonometria para iniciantes |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |