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.

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

Como escrever um método que retorna um objeto da classe ArrayList do Java

Quantidade de visualizações: 16466 vezes
Em algumas situações precisamos escrever um método Java que retorna um objeto da classe ArrayList. Esta dica mostra como isso pode ser feito:

import java.util.*;

public class Estudos{
  public static void main(String[] args){
    // vamos obter o ArrayList do método abaixo    
    ArrayList<String> lista = obterLista();

    // vamos exibir os valores dos elementos
    for(int i = 0; i < lista.size(); i++){
      System.out.println(lista.get(i));
    }
    
    System.exit(0);
  }

  // um método que retorna um ArrayList
  public static ArrayList<String> obterLista(){
    // vamos criar um ArrayList, adicionar alguns elementos
    // e devolvê-la ao chamador do método
    ArrayList<String> nomes = new ArrayList<String>();
    nomes.add("Osmar J. Silva");    
    nomes.add("Fernanda de Castro");
    nomes.add("Marcos de Oliveira");

    return nomes;
  }
}



C ::: Dicas & Truques ::: Strings e Caracteres

Como usar a função isdigit() do header ctype.h da linguagem C para verificar se um caractere é um dígito de 0 a 9

Quantidade de visualizações: 15228 vezes
Em algumas situações podemos precisar verificar se um dado caractere é um dígito (número) de 0 a 9. Isso pode ser feito com o auxílio da função isdigit() no header ctype.h. Esta função recebe um caractere e retorna um valor diferente de 0 se o caractere testado for um dígito de 0 a 9. Caso contrário o retorno é 0. Veja um exemplo completo de seu uso:

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

int main(int argc, char *argv[]){
  char caractere;

  // vamos ler o caractere informado pelo usuário
  printf("Informe um caractere e tecle ENTER: ");
  scanf("%c", &caractere);

  // vamos verificar se o usuário informou um dígito
  // de 0 a 9
  if(isdigit(caractere))
    printf("Voce informou um digito de 0 a 9");
  else
    printf("Voce NAO informou um digito de 0 a 9");

  puts("\n\n");
  system("PAUSE");
  return 0;
}



Python ::: Python para Engenharia ::: Cálculo Diferencial e Integral

Como calcular o limite de uma função usando Python e a biblioteca Sympy - Python para Engenharia

Quantidade de visualizações: 4525 vezes
Como calcular o limite de uma função usando Python e a biblioteca Sympy

Citando a Wikipédia: Na matemática, o limite de uma função é um conceito fundamental em cálculo e análise sobre o comportamento desta função quando próxima a um valor particular de sua variável independente. Informalmente, diz-se que __$\text{L}__$ é o limite da função __$\text{f(x)}__$ quando __$\text{x}__$ tende a __$\text{p}__$, escreve-se

\[ \lim_{x \to p} f(x) = L \]

quando __$\text{f(x)}__$ está arbitrariamente próximo de __$\text{L}__$ para todo __$\text{x}__$ suficientemente próximo de __$\text{p}__$. O conceito de limite pode ser estendido para funções de varias variáveis.

A biblioteca SymPy da linguagem Python facilita muito o trabalho de se calcular limites. É claro que é sempre uma boa idéia saber calcular o limite de uma função "na mão" mesmo, até para sabermos se nosso código Python está correto. No entanto, em algumas situações, lançar mão da função limit() da SymPy nos poupará um tempo incrível.

Dessa forma, a sintáxe para o cálculo do limite na SymPy segue o padrão limit(função, variável, ponto). Então, se quisermos calcular o limite de f(x) com x tendendo a 0, só precisamos fazer limit(f, x, 0).

Vamos colocar esse conhecimento em prática então? Veja o seguinte limite:

\[ \lim_{x \to 1} 5x^2 + 2x \]

Agora observe o código Python completo que calcula e retorna o limite desta função:

# vamos importar a biblioteca SymPy
from sympy import * 

def main():
  # vamos definir o símbolo x
  x = symbols("x")
  # definimos a função
  f = (5 * x ** 2) + (2 * x) 
  # finalmente calculamos o limite
  limite = limit(f, x, 1)
  # e mostramos o resultado
  print("O limite da função é: %f." % limite)

if __name__== "__main__":
  main()

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

O limite da função é: 7.000000.

Logo, o limite da função no ponto __$\text{x}__$ = 1 vale 7, em outras palavras, 7 é o valor que __$f(5x^2 + 2x)__$ deveria ter em 1 para ser contínua nesse ponto.

Vamos ver mais um exemplo? Observe o seguinte limite:

\[ \lim_{x \to 1} \left(\frac{x^2 - 1}{x - 1}\right) \]

Aqui temos um situação interessante. Note que temos que fazer uma manipulação algébrica na expressão, fatorando os termos. Porém, mesmo em situações assim o método limit() da Sympy consegue interpretar a expressão simbólica corretamente e nos devolver o limite esperado. Veja o código Python completo:

# vamos importar a biblioteca SymPy
from sympy import * 

def main():
  # vamos definir o símbolo x
  x = symbols("x")
  # definimos a função
  f = (x ** 2 - 1) / (x - 1) 
  # finalmente calculamos o limite
  limite = limit(f, x, 1)
  # e mostramos o resultado
  print("O limite da função é: %f." % limite)

if __name__== "__main__":
  main()

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

O limite da função é: 2.000000.


Python ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o coeficiente angular de uma reta em Python dados dois pontos no plano cartesiano

Quantidade de visualizações: 3249 vezes
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x.

Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano:



Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é:

\[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \]

Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente.

Veja agora o trecho de código na linguagem Python que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:

# vamos importar o módulo Math
import math as math

def main():
  # x e y do primeiro ponto
  x1 = float(input("Coordenada x do primeiro ponto: "))
  y1 = float(input("Coordenada y do primeiro ponto: "))

  # x e y do segundo ponto
  x2 = float(input("Coordenada x do segundo ponto: "))
  y2 = float(input("Coordenada y do segundo ponto: "))

  # agora vamos calcular o coeficiente angular
  m = (y2 - y1) / (x2 - x1)

  # e mostramos o resultado
  print("O coeficiente angular é: %f\n\n" % m)
  
if __name__== "__main__":
  main()

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

Coordenada x do primeiro ponto: 3
Coordenada y do primeiro ponto: 6
Coordenada x do segundo ponto: 9
Coordenada y do segundo ponto: 10
O coeficiente angular é: 0.666667

Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):

# vamos importar o módulo Math
import math as math

def main():
  # x e y do primeiro ponto
  x1 = float(input("Coordenada x do primeiro ponto: "))
  y1 = float(input("Coordenada y do primeiro ponto: "))

  # x e y do segundo ponto
  x2 = float(input("Coordenada x do segundo ponto: "))
  y2 = float(input("Coordenada y do segundo ponto: "))

  # vamos obter o comprimento do cateto oposto
  cateto_oposto = y2 - y1
  # e agora o cateto adjascente
  cateto_adjascente = x2 - x1
  # vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
  # (em radianos, não se esqueça)
  tetha = math.atan2(cateto_oposto, cateto_adjascente)
  # e finalmente usamos a tangente desse ângulo para calcular
  # o coeficiente angular
  tangente = math.tan(tetha)

  # e mostramos o resultado
  print("O coeficiente angular é: %f\n\n" % tangente)
  
if __name__== "__main__":
  main()

Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta:

1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0;

2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0;

3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0).

4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe.


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

Como inverter o conteúdo de uma string usando a função strrev() do PHP

Quantidade de visualizações: 13 vezes
Em algumas situações nós precisamos inverter, ou seja, mostrar de forma contrária o conteúdo de uma palavra, frase ou texto. Para isso podemos usar a função strrev() da linguagem PHP. Ela recebe uma string e a devolve invertida.

Veja o código completo para o seu uso:

<html>
<head>
  <title>Estudos PHP</title>
</head>
 
<body>

<?php  
  $frase = "Gosto de PHP";
  echo $frase . "<br>";
  echo strrev($frase);
?>  

</body>
</html>

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

Gosto de PHP
PHP ed otsoG


Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear

Python para Engenharia - Como multiplicar um vetor por um escalar usando Python e NumPy

Quantidade de visualizações: 3503 vezes
Esta dica de Python e NumPy é direcionada, principalmente, aos estudantes de Engenharia, que se deparam, logo no início do curso, com o estudo da Geometria Analítica e gostariam de entender melhor a multiplicação de vetores por um escalar. Lembre-se de que um escalar é um valor único, enquanto vetores e matrizes são estruturas que guardam vários valores ao mesmo tempo.

Nosso primeiro exemplo será feito em cima de um vetor no R3, ou seja, no espaço, com os seguintes valores: [3, -5, 4]. O escalar usado será o valor 2, ou seja, temos que multiplicar cada valor no vetor pelo valor 2 e, dessa forma, obtermos um novo vetor, também no R3. Vetores no R3 possuem valores para x, y e z (três dimensões), enquanto vetores no R2 possuem apenas o x e y.

Veja como a linguagem Python facilita a operação da multiplicação de um vetor R3 por um escalar:

# importamos a bibliteca NumPy
import numpy as np
 
def main():
  # declara e cria o vetor
  vetor = np.array([3, -5, 4])
   
  # agora vamos multiplicar este vetor pelo escalar 2
  escalar = 2
  novoVetor = vetor * escalar
 
  # vamos exibir o resultado
  print("Vetor inicial: ", vetor)
  print("Valor do escalar: ", escalar)
  print("Novo vetor: ", novoVetor)
 
if __name__== "__main__":
  main()

Este código Python vai gerar o seguinte resultado:

Vetor inicial: [3 -5 4]
Valor do escalar: 2
Novo vetor: [6 -10 8]

Agora, saindo da Geometria Analítica e indo para a Álgebra Linear, veja como podemos efetuar a mesma operação em uma matriz de 2 linhas e 3 colunas (recorde que, em Python, uma matriz nada mais é do que um vetor de vetores, ou seja, cada elemento do vetor contém outro vetor):

# importamos a bibliteca NumPy
import numpy as np
 
def main():
  # declara e cria a matriz
  matriz = np.array([(4, 12, 50), (5, 3, 1), (11, 9, 7)])
   
  # agora vamos multiplicar esta matriz pelo escalar 2
  escalar = 2
  novaMatriz = matriz * escalar
 
  # vamos exibir o resultado
  print("Matriz inicial: ", matriz)
  print("Valor do escalar: ", escalar)
  print("Nova matriz: ", novaMatriz)
 
if __name__== "__main__":
  main()

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

Matriz inicial: [[4 12 50]
[5 3 1]
[11 9 7]]
Valor do escalar: 2
Nova matriz: [[8 24 100]
[10 6 2]
[22 18 14]]


JavaScript ::: Dicas & Truques ::: Set (Conjunto)

Como remover elementos duplicados de um array em JavaScript usando um Set e o método Array.from()

Quantidade de visualizações: 1375 vezes
Sabemos de outras dica de JavaScript que o objeto Set nos permite criar conjuntos únicos, ou seja, sem repetições. Sabemos também que a função Array.from() possibilita a conversão de um Set em um Array JavaScript.

Dessa forma, é possível usar essa combinação para escrever uma função personalizada que recebe um vetor (array) e retorna um outro vetor, sem elementos repetidos.

Veja o código JavaScript completo para o exemplo:

<!doctype html>
<html>
<head>
  <title>O objeto Set do JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // função que permite remover os elementos
  // duplicados de um array
  function semRepeticoes(vetor){
    // primeiro criamos um novo Set a partir do
    // vetor fornecido
    // Em seguida usamos o método Array.from() para
    // converter o Set em um Array
    return Array.from(new Set(vetor));
  }

  // aqui declaramos um array de String
  // com nomes repetidos
  var nomes = ["Osmar", "Maria", "Carlos", "Maria",
    "Fernanda", "Fernanda", "Osmar"];
 
  // e aqui estão os resultados
  document.writeln("Com repetição: " + nomes);
  document.writeln("<br>Sem repetições: "  +
    semRepeticoes(nomes));
</script>
  
</body>
</html>

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

Com repetição: Osmar, Maria, Carlos, Maria, Fernanda, Fernanda, Osmar
Sem repetições: Osmar, Maria, Carlos, Fernanda


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade)

Exercícios Resolvidos de Java - Como resolver o problema da Torre de Hanói recursivamente

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

Torre de Hanói, ou The Towers of Hanoi, é um "quebra-cabeça" que consiste em uma base contendo três pinos, em um dos quais são dispostos alguns discos uns sobre os outros, em ordem crescente de diâmetro, de cima para baixo. O problema consiste em passar todos os discos de um pino para outro qualquer, usando um dos pinos como auxiliar, de maneira que um disco maior nunca fique em cima de outro menor em nenhuma situação. O número de discos pode variar sendo que o mais simples contém apenas três.

A solução da Torre de Hanói (The Towers of Hanoi) pode ser feita recursivamente da seguinte forma:

O caso base (parada da recursão) é quando n = 1. Se n = 1 nós podemos simplesmente mover o disco de A para B, sem precisar passar pelo pino C. Quando n > 1 nós podemos dividir o problema original em três sub-problemas e resolvê-los sequencialmente.

1) Mova os primeiros n - 1 discos de A para C com a ajuda do pino B;
2) Mova o disco n de A para B;
3) Mova n - 1 discos do pino C para o pino B com a ajuda do pino A.

Além de resolver o problema, seu programa deverá informar quantas chamadas recursivas foram feitas. Sua saída deverá ser parecida com:



Resposta/Solução:

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

package arquivodecodigos;

import java.util.Scanner;
 
public class Estudos {
  static int quantChamadasRecursivas = 0; // registra as chamadas recursivas  
     
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
       
    // vamos ler a quantidade de discos a serem usados na simulação
    System.out.print("Informe a quantidade de discos: ");
    int discos = Integer.parseInt(entrada.nextLine());
 
    // resolve o problema recusivamente
    System.out.println("\nOs movimentos para resolver o problema foram:\n");
    moverDiscos(discos, 'A', 'B', 'C');
    System.out.println("\nForam feitas " + quantChamadasRecursivas + 
      " chamadas recursivas");
    System.out.println();
  }
   
  // método recursivo que resolve o problema da Torre de Hanói
  public static void moverDiscos(int n, char daTorre, char paraTorre, 
    char torreAux) {
    quantChamadasRecursivas++; // registra mais uma chamada recursiva
       
    if(n == 1){ // condição de parada
      System.out.println("Movendo o disco " + n + " de " + daTorre + " para " + 
        paraTorre);
    }
    else{ // faz mais uma chamada recursiva
      moverDiscos(n - 1, daTorre, torreAux, paraTorre);
      System.out.println("Movendo o disco " + n + " de " + daTorre + " para " + 
        paraTorre);
      moverDiscos(n - 1, torreAux, paraTorre, daTorre);
    }
  }
}



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

Como calcular raiz quadrada usando o método sqrt() do objeto Math do JavaScript

Quantidade de visualizações: 15389 vezes
Em várias situações, principalmente quando estamos desenvolvendo códigos para aplicações financeiras, nós precisamos calcular a raiz quadrada de um determinado valor numérico. Para isso nós podemos usar a função sqrt() do objeto Math da linguagem JavaScript.

Esta função recebe um valor numérico (inteiro ou real) e desenvolve também um valor numérico. Veja um exemplo de seu uso:

<!doctype html>
<html>
<head>
  <title>Estudando JavaScript</title>
</head>
 
<body>
 
<script type="text/javascript">
  var numero = 9;
  var raiz = Math.sqrt(numero);
  document.write("A raiz quadrada de " + numero + " é " +
    raiz);
</script>
 
</body>
</html>

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

A raiz quadrada de 9 é 3


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

Como renomear um arquivo em PHP usando a função rename()

Quantidade de visualizações: 26898 vezes
Arquivos podem ser renomeados em PHP usando a função rename(). Esta função recebe o caminho e nome atual do arquivo e o novo caminho e nome. Se o destino for diferente, o arquivo será movido de um diretório para outro. Veja um exemplo:

<?php
  // renomeia o arquivo testes.txt para testes2.txt
  $de = "/site/public_html/testes.txt";
  $para = "/site/public_html/testes2.txt";
  
  if(rename($de, $para)){
    echo "Arquivo renomeado com sucesso.";
  }
  else{
    echo "Não foi possível renomear o arquivo.";
  }
?>

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

Arquivo renomeado com sucesso.

A função rename() da linguagem PHP retorna um valor boolean (verdadeiro ou falso) indicando se a operação foi realizada com sucesso ou se houve um erro.

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