Você está aqui: Cards de Ética e Legislação Profissional |
||
|
||
|
|
||
Java ::: Pacote java.lang ::: StringBuffer |
Curso completo de Java - Como usar a classe StringBuffer da linguagem JavaQuantidade de visualizações: 9696 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 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. |
VisuAlg ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular porcentagem em VisuAlg - Como efetuar cálculos de porcentagem em VisuAlgQuantidade de visualizações: 3131 vezes |
|
Cálculos de porcentagens estão presentes em boa parte das aplicações que desenvolvemos. Porém, há momentos em que a mente trava e não conseguimos lembrar com clareza como estes cálculos são feitos, principalmente em VisuAlg. Esta anotação tem o objetivo de ser uma fonte de pesquisa para os momentos em que suas habilidades matemáticas insistirem em continuar ocultas. Ex: 1 - Suponhamos que um produto que custe R$ 178,00 sofra um acréscimo de 15%. Qual o valor final do produto? Veja o código em VisuAlg:
algoritmo "Algoritmo que calcula porcentagem"
var
// variáveis usadas na resolução do problema
valor, percentual, valor_final: real
inicio
valor <- 178.00 // valor original
percentual <- 15.0 / 100.0 // 15%
valor_final <- valor + (percentual * valor)
// mostra o resultado
escreva("O valor final do produto é: ", valor_final)
// O resultado será 204,70
fimalgoritmo
Ex: 2 - Um produto, cujo valor original era de R$ 250,00, teve um desconto de 8%. Qual foi seu valor final? Veja o código em VisuAlg:
algoritmo "Algoritmo que calcula porcentagem"
var
// variáveis usadas na resolução do problema
valor, percentual, valor_final: real
inicio
valor <- 250.00; // valor original
percentual <- 8.0 / 100.0 // 8%
valor_final <- valor - (percentual * valor)
// mostra o resultado
escreva("O valor final do produto é: ", valor_final)
// O resultado será 230,00
fimalgoritmo
Ex: 3 - Em um concurso de perguntas e respostas, um jovem acertou 72 das 90 perguntas apresentadas. Qual foi a porcentagem de acertos? E a porcentagem de erros? Veja o código em VisuAlg:
algoritmo "Algoritmo que calcula porcentagem"
var
// variáveis usadas na resolução do problema
perguntas, acertos: real
inicio
perguntas <- 90.0
acertos <- 72.0
// mostra a porcentagem de acertos
escreva("Porcentagem de acertos: ")
escreval(((acertos / perguntas) * 100), "%")
// mostra a porcentagem de erros
escreva("Porcentagem de erros: ")
escreval((((perguntas - acertos) / perguntas) * 100), "%")
// Os resultados serão 80% e 20%
fimalgoritmo
Ex: 4 - Um aparelho de CD foi adquirido por R$ 300,00 e revendido por R$ 340,00. Qual foi a porcentagem de lucro na transação? Veja o código em VisuAlg:
algoritmo "Algoritmo que calcula porcentagem"
var
// variáveis usadas na resolução do problema
valor_anterior, novo_valor, porcentagem_lucro: real
inicio
valor_anterior <- 300.0 // valor anterior
novo_valor <- 340.0 // valor novo
// calcula a porcentagem de lucro
// efetua o cálculo
porcentagem_lucro <- ((novo_valor * 100) / valor_anterior) - 100
escreva("A porcentagem de lucro foi de: ", porcentagem_lucro, "%")
// O resultado será 13,33
fimalgoritmo
Ex: 5 - Uma loja repassa 5% do lucro a seus vendedores. Se um produto custa R$ 70,00, qual o valor em reais repassado a um determinado vendedor? Veja o código em VisuAlg:
algoritmo "Algoritmo que calcula porcentagem"
var
// variáveis usadas na resolução do problema
valor, percentual, comissao: real
inicio
valor <- 70.0 // valor do produto
percentual <- 5.0 / 100.0 // 5%
// calcula a comissão
comissao <- percentual * valor
// mostra o resultado
escreva("O valor repassado ao vendedor é: ", comissao)
// O resultado será 3,5
fimalgoritmo
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercício Resolvido de Java - Como calcular o restante de um salário após o pagamento de duas contas com jurosQuantidade de visualizações: 5399 vezes |
|
Pergunta/Tarefa: Cintia acaba de receber seu salário mas precisa pagar duas contas atrasadas. Por causa do atraso, ela deverá pagar multa de 2% sobre cada conta. Faça um programa que leia o valor do salário e das duas contas e que calcule e mostre quanto restará do salário de Cintia. Sua saída deverá ser parecida com: Informe o salário: 1350 Valor da primeira conta: 140 Valor da segunda conta: 300 Total das contas sem juros: 440.0 Total dos juros: 8.8 Total das contas com juros: 448.8 Sobra do salário: 901.2 Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos pedir que o usuário informe o valor do salário e das duas contas
System.out.print("Informe o salário: ");
double salario = Double.parseDouble(entrada.nextLine());
System.out.print("Valor da primeira conta: ");
double conta1 = Double.parseDouble(entrada.nextLine());
System.out.print("Valor da segunda conta: ");
double conta2 = Double.parseDouble(entrada.nextLine());
// total a ser pago nas duas contas sem os juros
double totalContas = conta1 + conta2;
// calcula os juros
double totalJuros = totalContas * 0.02;
// total a ser pago com juros
double totalContasComJuros = totalContas + totalJuros;
// sobra do salário
double sobraSalario = salario - totalContasComJuros;
// mostra os resultados
System.out.println("\nTotal das contas sem juros: " + totalContas);
System.out.println("Total dos juros: " + totalJuros);
System.out.println("Total das contas com juros: " + totalContasComJuros);
System.out.println("Sobra do salário: " + sobraSalario);
System.out.println("\n");
}
}
|
Java ::: Java Swing - Gerenciadores de Layout ::: GridBagLayout |
Como posicionar os componentes nas linhas e colunas de um GridBagLayout do Java Swing usando as propriedades gridx e gridyQuantidade de visualizações: 12748 vezes |
|
A classe GridBagConstraints, usada para definir como os componentes serão distribuidos em um GridBagLayout, possui duas variáveis que permitem definir a linha e coluna nas quais o componente será colocado. Veja-as abaixo: gridx - Especifica a coluna na qual o componente será colocado. A primeira coluna possui o valor 0. Esta variável pode receber também o valor RELATIVE (valor padrão). Neste caso, o componente será colocado imediatamente após o último componente inserido (na horizontal). gridy - Especifica a linha na qual o componente será colocado. A primeira linha possui o valor 0. Esta variável pode receber também o valor RELATIVE (valor padrão). Neste caso, o componente será colocado imediatamente abaixo do último componente inserido (na vertical). Veja um trecho de código que mostra como posicionar seis botões nas linhas e colunas de um GridBagLayout:
import javax.swing.*;
import java.awt.*;
public class Estudos extends JFrame{
public Estudos(){
super("Como usar a classe GridBagLayout");
// define o layout
setLayout(new GridBagLayout());
// cria o GridBagConstraints
GridBagConstraints gbc = new GridBagConstraints();
// adiciona componentes à janela
gbc.gridy = 0; // linha
gbc.gridx = 0; // coluna
add(new JButton("Botão 1"), gbc);
gbc.gridy = 0; // linha
gbc.gridx = 1; // coluna
add(new JButton("Botão 2"), gbc);
gbc.gridy = 0; // linha
gbc.gridx = 2; // coluna
add(new JButton("Botão 3"), gbc);
gbc.gridy = 1; // linha
gbc.gridx = 0; // coluna
add(new JButton("Botão 4"), gbc);
gbc.gridy = 1; // linha
gbc.gridx = 1; // coluna
add(new JButton("Botão 5"), gbc);
gbc.gridy = 1; // linha
gbc.gridx = 2; // coluna
add(new JButton("Botão 6"), gbc);
setSize(350, 150);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
|
Python ::: Python para Engenharia ::: Engenharia Civil - Concreto, Concreto Armado e Concretos Especiais |
Cálculo de estribos em vigas de concreto armado usando Python - Armadura mínima transversal normativaQuantidade de visualizações: 894 vezes |
|
A ABNT NBR 6118 (Projeto de estruturas de concreto armado) define uma taxa de armadura mínima para os estribos das vigas de concreto armado, e, a partir dessa taxa mínima nós podemos facilmente calcular a área de aço mínima a ser usada. A fórmula para o cálculo da taxa mínima de armadura tranversal pode ser definida como: \[\rho_\text{sw} = 0,2 \cdot \frac{f_\text{ck,m}}{f_\text{ywk}} \] Onde: ρsw é um número adimensional representando a taxa de armadura mínima transversal de acordo com recomendações da norma NBR 6118; fctk,m é a resistência à tração média do concreto em Mpa; fymk é a resistência à tração do aço em Mpa. Em geral, esse valor é fixado em 500 (CA 50), mesmo que o aço usado seja CA 60 ou superior; Após calculada a taxa de armadura transversal mínima, podemos calcular a área de aço mínima transversal por meio da seguinte fórmula: \[A_\text{sw,min} = \rho_\text{sw} \cdot b_w \cdot S \cdot sen(\alpha) \] Onde: Asw,min é a área de aço mínima a ser usada, em cm2/m; ρsw é um número adimensional representando a taxa de armadura mínima transversal de acordo com recomendações da norma NBR 6118; bw é a largura da viga em centímetros; S é o espaçamento a ser considerado. Informamos o valor de 100 para considerar um espaçamento de 1 metro; α é a inclinação dos estribos, em geral 90º. Veja agora o código Python :
# vamos importar o módulo Math
import math
# função principal do programa
def main():
# vamos pedir para o usuário informar o FCK do concreto
fck = float(input("Informe o FCK do concreto em Mpa: "))
# agora vamos calcular a resistência à tração média
# do concreto
fctk_m = 0.3 * math.pow(fck, 2.0 / 3.0)
# vamos pedir para o usuário informar a largura da viga em cm
largura = float(input("Informe a largura da viga em cm: "))
# vamos calcular a taxa de armadura transversal mínima
fywk = 500 # vamos considerar aço CA 50
psw = 0.2 * (fctk_m / fywk)
# agora vamos calcular a área mínima de aço para a armadura
# tranversal, ou seja, os estribos
S = 100 # considerando 1 metro de viga
inclinacao = 90 # inclinação em graus dos estribos
aws_min = psw * largura * S * math.sin(math.radians(inclinacao))
# e mostramos os resultados
print("\n-------RESULTADOS--------------------------------------")
print("A resistência à tração média do concreto é: {0} Mpa".
format(round(fctk_m, 5)))
print("A taxa de armadura transversal mínima é: {0}".format(
round(psw, 5)))
print("A área mínima de aço é: {0} cm2/m".format(round(aws_min, 5)))
if __name__ == "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Informe o FCK do concreto em Mpa: 25 Informe a largura da viga em cm: 19 -------RESULTADOS-------------------------------------- A resistência à tração média do concreto é: 2.56496 Mpa A taxa de armadura transversal mínima é: 0.00103 A área mínima de aço é: 1.94937 cm2/m |
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 |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






