Dúvidas, comentários e doaçoes: +55 62 9 8513 2505

Planilha de Dimensionamento de Tubulações Hidráulicas Água Fria e Água Quente Completa
Nossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes.

Você está aqui: Cards de Python
Card 1 de 2
A indentação é mesmo obrigatória em Python?

Sim, a linguagem Python exige o uso da indentação como forma de formar blocos de código.

O interpretador Python é informado que um grupo de instruções pertence a um bloco específico por meio da indentação. Em geral, programadores Python usam um ou dois caracteres de tabulação (tecla Tab) como forma de indentar seus blocos de código.

Em todas as linguagens de programação a indentação facilita a leitura e compreensão do código escrito, porém, em Python, ela é um requisito obrigatório.

Filtrar Cards
Use esta opção para filtrar os cards pelos tópicos que mais lhe interessam.
Termos:
Aviso Importante: Nos esforçamos muito para que o conteúdo dos cards e dos testes e conhecimento seja o mais correto possível. No entanto, entendemos que erros podem ocorrer. Caso isso aconteça, pedimos desculpas e estamos à disposição para as devidas correções. Além disso, o conteúdo aqui apresentado é fruto de conhecimento nosso e de pesquisas na internet e livros. Caso você encontre algum conteúdo que não deveria estar aqui, por favor, nos comunique pelos e-mails exibidos nas opções de contato.
Link para compartilhar na Internet ou com seus amigos:

Ruby ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de Ruby - Escreva um programa Ruby para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no array

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

Dado o seguinte vetor de inteiros:

# vamos declarar e construir um vetor de 8 inteiros
valores = [0, 3, 0, 5, 7, 4, 0, 9]
Escreva um programa Ruby para mover todos os zeros para o final do vetor, ou seja, para a direita, sem alterar a ordem dos elementos diferentes de zero já presentes no array e sem criar um vetor adicional ou temporário.

Sua saída deverá ser parecida com:

Vetor na ordem original:

0   3   0   5   7   4   0   9   

Vetor com os zeros deslocados para o final:

3   5   7   4   9   0   0   0
Resposta/Solução:

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

# vamos declarar e construir um vetor de 8 inteiros
valores = [0, 3, 0, 5, 7, 4, 0, 9]   
	
# vamos mostrar o vetor na ordem original
print("Vetor na ordem original:\n")
for i in (0..valores.length - 1)
  printf("%d   ", valores[i])
end    
	
# vamos inicializar j como 0 para que ele aponte para
# o primeiro elemento do vetor
j = 0
    
# agora o laço for percorre todos os elementos do vetor,
# incrementanto a variável i e deixando o j em 0
for i in (0..valores.length - 1)
  # encontramos um valor que não é 0
  if(valores[i] != 0)
    # fazemos a troca entre os elementos nos índices
    # i e j
    temp = valores[i]
    valores[i] = valores[j]
    valores[j] = temp
    # e avançamos o j para o elemento seguinte
    j = j + 1
  end
end

# agora mostramos o resultado
print("\n\nVetor com os zeros deslocados para o final:\n")
for i in (0..valores.length - 1)
  printf("%d   ", valores[i])
end

Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes.


Java ::: Pacote java.lang ::: StringBuffer

Curso completo de Java - Como usar a classe StringBuffer da linguagem Java

Quantidade de visualizações: 9731 vezes
A classe StringBuffer, no pacote java.lang, representa uma sequencia de caracteres mutável e segura em relação a threads. Um objeto StringBuffer é parecido com uma String, com a diferença que um StringBuffer pode ser modificado in-place, ou seja, modificações em seu conteúdo não geram uma nova cópia, como acontece com objetos da classe String.

Veja a posição desta classe na hierarquia de classes Java:

java.lang.Object
  java.lang.StringBuffer
A classe StringBuffer implementa as interfaces Serializable, Appendable e CharSequence.

A qualquer momento um StringBuffer contém uma sequencia de caracteres em particular, mas o tamanho e o conteúdo da sequencia pode ser alterado por meio de certas chamadas de métodos.

Objetos StringBuffer são seguros para acesso em um ambiente de múltiplas threads. Os métodos são sincronizados (synchronized) onde necessário de forma a garantir que todas as operações em uma instância em particular se comportem como se estivessem em ordem serial, ou seja, sejam consistentes com a ordem das chamadas de métodos feitas por cada uma das threads envolvidas.

As operações principais de um StringBuffer são os métodos append() e insert(), que são sobrecarregados para aceitar dados de qualquer tipo. Cada um destes métodos converte a informação fornecida em string e então acrescenta ou insere os caracteres desta string no string buffer. O método append() sempre adiciona os caracteres no final do buffer. O método insert(), por sua vez, adiciona os caracteres em um determinado ponto.

Por exemplo, se z se refere a um objeto string buffer cujo conteúdo é "start", então a chamada de método z.append("le") faria com que o string buffer tivesse agora ""startle"", enquanto z.insert(4, "le") alteraria o conteúdo do string buffer para "starlet".

Em geral, se sb se refere a uma instância de StringBuffer, então sb.append(x) tem o mesmo efeito que sb.insert(sb.length(), x).

Sempre que uma operação ocorre envolvendo uma sequencia de fonte (por exemplo, adicionar ou inserir a partir de uma outra sequencia), esta classe sincroniza somente o string buffer no qual a operação está sendo feita.

Todo string buffer possui uma capacidade (capacity). Enquanto o comprimento da sequencia de caracteres contida no string buffer não exceder a capacidade do mesmo, não há necessidade de alocar uma nova matriz interna de buffer. Se o buffer interno for sobrecarregado, ele será automaticamente expandido. A partir do Java 5, esta classe foi suplementada com uma classe equivalente criada para o uso em ambiente de thread única: StringBuilder. A classe StringBuilder deve ser usada em vez de StringBuffer, uma vez que ela suporta as mesmas operações mas é mais rápida por não executar sincronização.


Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes)

Como gerar um vetor com valores igualmente espaçados usando a função linspace() da biblioteca NumPy do Python - Python NumPy para Engenharia

Quantidade de visualizações: 2901 vezes
Em algumas situações nós precisamos de vetores e matrizes com valores igualmente espaçados entre um determinado intervalo. Para isso nós podemos usar a função linspace() da biblioteca NumPy do Python.

Esta função exige, entre vários argumentos, o início e o fim do intervalo. Vamos ver um exemplo? Observe o trecho de código a seguir:

# vamos importar a biblioteca NumPy
import numpy as np

def main():
  valores = np.linspace(2, 5, num=10)
  print("O vetor gerado foi: ", valores)

if __name__== "__main__":
  main()

Este código Python vai gerar o seguinte resultado:

O vetor gerado foi: [2. 2.33333333 2.66666667 3. 3.33333333 3.66666667 4. 4.33333333 4.66666667 5. ]

Note que informamos o valor inicial como 2 e o valor final como 5, e definimos a quantidade de elementos gerados como 10 (se omitida, 50 valores serão gerados). Se não quisermos que o valor final do intervalo seja incluído na amostra, basta informamos endpoint=False como argumento para a função linspace().


Java ::: Pacote java.lang ::: String

Como verificar se uma string Java contém uma determinada sequencia de caracteres (ou substring) usando o método contains()

Quantidade de visualizações: 12105 vezes
Em algumas situações precisamos verificar se uma sequencia de caracteres ou substring está contida em uma string. Para isso podemos usar o método contains() da classe String. Veja sua assinatura:

public boolean contains(CharSequence s)

Note que o método recebe um argumento do tipo CharSequence, que é uma interface implementada pelas classes CharBuffer, Segment, String, StringBuffer e StringBuilder. O método retorna true se a sequencia de caracteres for encontrada e false em caso contrário.

Veja um trecho de código no qual usamos este método para verificar se uma palavra está contida em uma frase:

public class Main {
  public static void main(String[] args) {
    // vamos declarar uma string
    String frase = "Gosto muito de Java e PHP";
    
    // vamos verificar se a string contém a palavra "Java"
    if(frase.contains("Java")){
      System.out.println("A frase contém a substring informada");
    }
    else{
      System.out.println("A frase não contém a substring informada");	
    }
  }
}

Este método pode atirar uma exceção do tipo NullPointerException se o argumento fornecido for null.


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

Como criar um diretório em Python usando a função mkdir() do módulo os

Quantidade de visualizações: 3494 vezes
Podemos usar a função mkdir() do módulo os da linguagem Python para criarmos diretórios. Em sua versão mais simples, este método pede somente o nome e caminho do diretório a ser criado. Se o caminho for omitido, o novo diretório será criado no diretório atual, ou seja, o diretório da aplicação Python.

Veja um exemplo no qual criamos um diretório chamado "app" no diretório "C:\estudos_python":

# importa o módulo os
import os

# método principal  
def main():
  # nome do diretório
  diretorio = "C:\\estudos_python\\app"

  # vamos criar o diretório
  os.mkdir(diretorio)

  # mostramos o resultado
  print('O diretório foi criado com sucesso.')

if __name__== "__main__":
  main()

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

c:\estudos_python>python estudos.py
O diretório foi criado com sucesso.

Note que um erro do tipo FileExistsError será exibido se o diretório já existir:

Traceback (most recent call last):
File "c:\estudos_python\estudos.py", line 16, in <module>
main()
File "c:\estudos_python\estudos.py", line 10, in main
os.mkdir(diretorio)
FileExistsError: [WinError 183] Não é possível criar um arquivo já existente: 'C:\\estudos_python\\app'

Uma forma de evitar este erro é verificar se o diretório já existe ou usar uma construção try...except. Veja:

# importa o módulo os
import os

# método principal  
def main():
  # nome do diretório
  diretorio = "C:\\estudos_python\\app"

  try:
    # vamos criar o diretório
    os.mkdir(diretorio)
    # mostramos o resultado
    print('O diretório foi criado com sucesso.')
  except os.error as error_msg:
    print("Houve um erro: %s" % str(error_msg))

if __name__== "__main__":
  main()

Execute o código novamente e veja como o tratamento de erro ficou mais elegante.


Desafios, Exercícios e Algoritmos Resolvidos de Python

Veja mais Dicas e truques de Python

Dicas e truques de outras linguagens

E-Books em PDF

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
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

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

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


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