Você está aqui: Cards de Engenharia Civil - Estruturas de Concreto Armado |
||
|
||
|
|
||
C# ::: Dicas & Truques ::: Tipos de Dados |
Curso de C# - Como usar os tipos de dados short e ushort da linguagem C#Quantidade de visualizações: 9580 vezes |
|
O tipo de dados short é um tipo primitivo integral com sinal (signed) que pode armazenar valores inteiros na faixa de -32.768 até 32.767. Este tipo ocupa 16 bits (2 bytes) de memória e é um apelido para o tipo System.Int16 da plataforma .NET. Podemos obter os valores mínimo e máximo que podem ser armazenados em um short por meio de suas propriedades MinValue e MaxValue. Veja:
static void Main(string[] args){
// vamos obter o valor mínimo de um short
short minimo = short.MinValue;
// vamos obter o valor máximo de um short
short maximo = short.MaxValue;
// vamos mostrar o resultado
Console.WriteLine("A faixa de valores de um short é: " + minimo +
" até " + maximo);
// vamos pausar a execução
Console.ReadKey();
}
Ao executarmos este código teremos o seguinte resultado: A faixa de valores de um short é: -32768 até 32767. Ao atribuir valores para um short em tempo de design, ou seja, como um literal, devemos ter o cuidado de não atribuir valores que estejam fora da faixa permitida. Veja:
static void Main(string[] args){
// a linha abaixo não vai compilar
short valor = 35767;
// vamos pausar a execução
Console.ReadKey();
}
Este código não compila. A mensagem de erro: Constant value '35767' cannot be converted to a 'short' nos informa que o valor 35767 (que está acima da faixa permitida) não pode ser convertido para um short. Assim, se você desejar mesmo efetuar tal procedimento, uma conversão forçada (cast) deve ser feita:
static void Main(string[] args){
int valor = 35767;
// vamos forçar a conversão para short
short valor2 = (short)valor;
// vamos mostrar o resultado
Console.WriteLine("Valor após o cast: " + valor2);
// vamos pausar a execução
Console.ReadKey();
}
Aqui nós "esprememos" o valor 35767 para um short e o resultado, -29769, definitivamente não é o que estávamos esperando. O tipo ushort é um tipo primitivo integral sem sinal (unsigned) que pode armazenar valores inteiros na faixa de 0 até 65.535. Este tipo ocupa 16 bits (2 bytes) de memória e é um apelido para o tipo System.UInt16 da plataforma .NET. Podemos obter os valores mínimo e máximo que podem ser armazenados em um ushort por meio de suas propriedades MinValue e MaxValue. Veja:
static void Main(string[] args){
// vamos obter o valor mínimo de um ushort
ushort minimo = ushort.MinValue;
// vamos obter o valor máximo de um ushort
ushort maximo = ushort.MaxValue;
// vamos mostrar o resultado
Console.WriteLine("A faixa de valores de um ushort é: " + minimo +
" até " + maximo);
// vamos pausar a execução
Console.ReadKey();
}
Ao executarmos este código teremos o seguinte resultado: A faixa de valores de um ushort é: 0 até 65535. |
JavaScript ::: JavaScript para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular a distância entre dois pontos no plano em JavaScript - JavaScript para Geometria Analítica e Álgebra LinearQuantidade de visualizações: 5495 vezes |
|
Como calcular a Distância Euclidiana entre dois pontos usando JavaScript Em várias aplicações envolvendo geometria, principalmente no desenvolvimento de jogos em JavaScript, é comum nos depararmos com a necessidade de calcular a distância entre dois pontos A e B. Nessa dica mostrarei como efetuar esse cálculo no R2, ou seja, no plano. Em outra dica eu abordo o cálculo no R3 (espaço). Comece analisando a imagem abaixo: ![]() Veja que temos um ponto A (x = 3; y = 6) e um ponto B (x = 9; y = 4). Para determinarmos a distância entre esses dois pontos no plano cartesiano, temos que realizar a análise tanto no sentido do eixo das abscissas (x) quanto no do eixo das ordenadas (y). Veja a fórmula: \[d_{AB} = \sqrt{\left(x_b - x_a\right)^2 + \left(y_b - y_a\right)^2}\] Agora, jogando os valores dos dois pontos da fórmula nós teremos: \[d_{AB} = \sqrt{\left(9 - 3\right)^2 + \left(6 - 4\right)^2}\] Que resulta em 6,32 (aproximadamente). E agora veja o código JavaScript completo que define as coordenadas dos dois pontos e mostra a distância entre eles:
<html>
<head>
<title>Estudos JavaScript</title>
</head>
<body>
<script type="text/javascript">
// função que permite calcular a distância
// entre dois pontos no plano (R2)
function distancia2d(x1, y1, x2, y2){
var a = x2 - x1;
var b = y2 - y1;
var c = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2));
return c;
}
// vamos definir os dados do primeiro ponto
var x1 = 3;
var y1 = 6;
// vamos ler os dados do segundo ponto
var x2 = 9;
var y2 = 4;
// vamos obter a distância entre eles
var distancia = distancia2d(x1, y1, x2, y2);
document.writeln("Distância entre os dois pontos: " +
distancia);
</script>
</body>
</html>
Ao executarmos este código JavaScript nós teremos o seguinte resultado: Distância entre os dois pontos: 6.324555320336759 |
Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Estruturas de dados em Java - Como pesquisar um nó em uma árvore binária de busca usando um método recursivo usando JavaQuantidade de visualizações: 2857 vezes |
|
Nesta dica mostraremos um exemplo completo de como pesquisar um valor em uma árvore binária de busca em Java. Note que o exemplo usa apenas inteiros, mas você não terá dificuldades para modificar a classe Nó para os dados que você precisar. Código para No.java:
package arvore_binaria;
public class No {
private int valor; // valor armazenado no nó
private No esquerdo; // filho esquerdo
private No direito; // filho direito
// construtor do nó
public No(int valor){
this.valor = valor;
this.esquerdo = null;
this.direito = null;
}
public int getValor() {
return valor;
}
public void setValor(int valor) {
this.valor = valor;
}
public No getEsquerdo() {
return esquerdo;
}
public void setEsquerdo(No esquerdo) {
this.esquerdo = esquerdo;
}
public No getDireito() {
return direito;
}
public void setDireito(No direito) {
this.direito = direito;
}
}
Código para ArvoreBinariaBusca.java:
package arvore_binaria;
public class ArvoreBinariaBusca {
private No raiz; // referência para a raiz da árvore
// método usado para inserir um novo nó na árvore
// retorna true se o nó for inserido com sucesso e false
// se o elemento
// não puder ser inserido (no caso de já existir um
// elemento igual)
public boolean inserir(int valor){
// a árvore ainda está vazia?
if(raiz == null){
// vamos criar o primeiro nó e definí-lo como a raiz da árvore
raiz = new No(valor); // cria um novo nó
}
else{
// localiza o nó pai do novo nó
No pai = null;
No noAtual = raiz; // começa a busca pela raiz
// enquanto o nó atual for diferente de null
while(noAtual != null){
// o valor sendo inserido é menor que o nó atual?
if(valor < noAtual.getValor()) {
pai = noAtual;
// vamos inserir do lado esquerdo
noAtual = noAtual.getEsquerdo();
}
// o valor sendo inserido é maior que o nó atual
else if(valor > noAtual.getValor()){
pai = noAtual;
// vamos inserir do lado direito
noAtual = noAtual.getDireito();
}
else{
return false; // um nó com este valor foi encontrado
}
}
// cria o novo nó e o adiciona como filho do nó pai
if(valor < pai.getValor()){
pai.setEsquerdo(new No(valor));
}
else{
pai.setDireito(new No(valor));
}
}
return true; // retorna true para indicar que o novo nó foi inserido
}
// método que permite pesquisar na árvore binária de busca
public No pesquisar(int valor){
return pesquisar(raiz, valor); // chama a versão recursiva do método
}
// sobrecarga do método pesquisar que recebe dois
// parâmetros (esta é a versão recursiva do método)
private No pesquisar(No noAtual, int valor){
// o valor pesquisado não foi encontrado....vamos retornar null
if(noAtual == null){
return null;
}
// o valor pesquisado foi encontrado?
if(valor == noAtual.getValor()){
return noAtual; // retorna o nó atual
}
// ainda não encontramos...vamos disparar uma nova
// chamada para a sub-árvore da esquerda
else if(valor < noAtual.getValor()){
return pesquisar(noAtual.getEsquerdo(), valor);
}
// ainda não encontramos...vamos disparar uma nova
// chamada para a sub-árvore da direita
else{
return pesquisar(noAtual.getDireito(), valor);
}
}
}
E finalmente o código para a classe principal:
package arvore_binaria;
import java.util.Scanner;
public class ArvoreBinariaTeste {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos criar um novo objeto da classe ArvoreBinariaBusca
ArvoreBinariaBusca arvore = new ArvoreBinariaBusca();
// vamos inserir 5 valores na árvore
for(int i = 0; i < 5; i++){
System.out.print("Informe um valor inteiro: ");
int valor = Integer.parseInt(entrada.nextLine());
// vamos inserir o nó e verificar o sucesso da operação
if(!arvore.inserir(valor)){
System.out.println("Não foi possível inserir." +
" Um elemento já contém este valor.");
}
}
// vamos pesquisar um valor na árvore
System.out.print("\nInforme o valor a ser pesquisado: ");
int valorPesquisa = Integer.parseInt(entrada.nextLine());
// obtém um objeto da classe NoArvore a partir do
// método pesquisar() da classe ArvoreBinariaBusca
No res = arvore.pesquisar(valorPesquisa);
// o valor foi encontrado?
if(res != null){
System.out.println("O valor foi encontrado na árvore");
}
else{
System.out.println("O valor não foi encontrado na árvore");
}
System.out.println("\n");
}
}
|
Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como somar os elementos da diagonal principal de uma matriz em PythonQuantidade de visualizações: 3938 vezes |
|
A Matriz quadrada é um tipo especial de matriz que possui o mesmo número de linhas e o mesmo número de colunas, ou seja, dada uma matriz Anxm, ela será uma matriz quadrada se, e somente se, n = m, onde n é o número de linhas e m é o número de colunas. Em geral as matrizes quadradas são chamadas de Matrizes de Ordem n, onde n é o número de linhas e colunas. Dessa forma, uma matriz de ordem 4 é uma matriz que possui 4 linhas e quatro colunas. Toda matriz quadrada possui duas diagonais, e elas são muito exploradas tanto na matemática quanto na construção de algorítmos. Essas duas diagonais são chamadas de Diagonal Principal e Diagonal Secundária. A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito. Veja: ![]() Nesta dica veremos como calcular a soma dos valores dos elementos da diagonal principal de uma matriz usando Python. Para isso, só precisamos manter em mente que a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. Assim, tudo que temos a fazer é converter essa regra para código Python. Veja um trecho de código Python completo no qual pedimos para o usuário informar os elementos da matriz e em seguida mostramos a soma dos elementos da diagonal superior:
def main():
# vamos declarar e construir uma matriz de três linhas
# e três colunas
linhas, colunas = (3, 3)
matriz = [[0 for x in range(linhas)] for y in range(colunas)]
soma_diagonal = 0 # guarda a soma dos elementos na diagonal
# principal
# vamos ler os elementos da matriz
for i in range(len(matriz)):
for j in range(len(matriz[i])):
matriz[i][j] = int(input("Informe o valor para a linha " + str(i)
+ " e coluna " + str(j) + ": "))
print()
for i in range(len(matriz)):
for j in range(len(matriz[i])):
print(matriz[i][j], end=' ')
print()
# vamos calcular a soma dos elementos da diagonal
# principal
for i in range(len(matriz)):
for j in range(len(matriz[i])):
if i == j:
soma_diagonal = soma_diagonal + matriz[i][j]
# finalmente mostramos a soma da diagonal principal
print("\nA soma dos elementos da diagonal principal é: %d" %
soma_diagonal)
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Informe o valor para a linha 0 e coluna 0: 3 Informe o valor para a linha 0 e coluna 1: 7 Informe o valor para a linha 0 e coluna 2: 9 Informe o valor para a linha 1 e coluna 0: 2 Informe o valor para a linha 1 e coluna 1: 4 Informe o valor para a linha 1 e coluna 2: 1 Informe o valor para a linha 2 e coluna 0: 5 Informe o valor para a linha 2 e coluna 1: 6 Informe o valor para a linha 2 e coluna 2: 8 3 7 9 2 4 1 5 6 8 A soma dos elementos da diagonal principal é: 15 |
Java ::: Coleções (Collections) ::: ArrayList |
Como rotacionar os elementos de uma ArrayList do Java para frente ou para trás usando o método rotate()Quantidade de visualizações: 11687 vezes |
Nesta dica mostrarei como podemos usar o método rotate() da classe Collections da linguagem Java para rotacionar os elementos de uma ArrayList. Veja sua assinatura:void rotate(List<?> list, int distance) Este método faz com que um elemento na posição i seja movido para a posição (distance + i) % list.size(). Se você quiser inverter a ordem da rotação, forneça um valor negativo para o argumento distance. Veja o código completo para o exemplo:
package estudos;
import java.util.ArrayList;
import java.util.Collections;
public class Estudos{
public static void main(String[] args){
// cria uma ArrayList que conterá strings
ArrayList<String> nomes = new ArrayList<String>();
// adiciona itens na lista
nomes.add("Carlos");
nomes.add("Maria");
nomes.add("Fernanda");
nomes.add("Osmar");
// exibe os elementos da ArrayList
System.out.println("Antes da rotação:\n");
for(int i = 0; i < nomes.size(); i++)
System.out.println(nomes.get(i));
// Vamos rotacionar os elementos uma posição
Collections.rotate(nomes, 1);
// exibe os elementos da ArrayList
System.out.println("\nDepois da rotação:\n");
for(int i = 0; i < nomes.size(); i++)
System.out.println(nomes.get(i));
System.exit(0);
}
}
Ao executar este código Java nós teremos o seguinte resultado: Antes da rotação: Carlos Maria Fernanda Osmar Depois da rotação: Osmar Carlos Maria Fernanda |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







