Você está aqui: Cards de Python |
||
|
||
|
|
||
Python ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular o coeficiente angular de uma reta em Python dados dois pontos no plano cartesianoQuantidade de visualizações: 3431 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. |
Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais |
Java Reflection - Como obter um objeto Class usando os métodos getClass() e forName() da classe Class da linguagem JavaQuantidade de visualizações: 10899 vezes |
|
Uma das tarefas mais básicas que devemos fazer quando estamos usando reflexão em Java, é obter um objeto Class. Uma vez que tenhamos uma instância de Class, podemos obter várias informações sobre uma classe, até mesmo manipulá-la. Nesta dica veremos como usar o método getClass() para obter um objeto Class. Esta forma de obter um objeto Class é frequentemente útil em situações nas quais temos uma instância de uma classe, mas não sabemos a qual classe esta instância pertence (instanceOf). Há várias formas de se obter um objeto Class. Se você tiver uma classe para a qual o nome de tipo é conhecido em tempo de compilação, há uma forma ainda mais fácil de se obter uma intância da classe. Só precisamos usar a palavra chave do compilador .class. Veja: Class classe = JButton.class; Se o nome da classe não foi conhecido em tempo de compilação, mas estiver disponível em tempo de execução (runtime), podemos usar o método forName() para obter um objeto Class. O código a seguir mostra como criar um objeto Class associado à classe javax.swing.JPanel:
try{
Class classe = Class.forName("javax.swing.JPanel");
}
catch(ClassNotFoundException e){
// trate os erros aqui
}
Podemos usar também o método getSuperClass() em um objeto Class para obter o objeto Class representando a superclasse da classe que está sofrendo introspecção. O trecho de código a seguir mostra como o objeto classe1 reflete a classe JTextField, e classe2 reflete a classe JTextComponent, uma vez que esta classe é a superclasse de JTextField: JTextField txtNome = new JTextField(); Class classe1 = txtNome.getClass(); Class classe2 = classe1.getSuperclass(); Esta dica foi revisada e atualizada para o Java 8. |
Firebird ::: Dicas & Truques ::: Tipos de Dados |
Como usar o tipo de dados BLOB do Firebird para a gravação de imagens, vídeos e arquivos de músicaQuantidade de visualizações: 19292 vezes |
|
Um BLOB é um tipo de dados que permite armazenar grandes informações no formato binário (Binary Large OBject). Campos deste tipo podem conter dados binários ou ASCII, por exemplo, grandes arquivos de texto, documentos para o processamento de dados, arquivos de programas CAD, imagens e gráficos, vídeos, arquivos de música, etc. O tamanho de um BLOB é quase ilimitado, uma vez que eles podem ser armazenados utilizando-se várias páginas. Isso assume, contudo, que um tamanho de página suficiente tenha sido fornecido para a base de dados. Por exemplo, usando uma página de 1kb, o tamanho do BLOB não pode exceder 0,5Gb. Se usarmos um tamanho de página de 4Kb, o tamanho do BLOB está limitado a 8Gb. O Firebird suporta dois tipos pré-definidos de BLOB, diferenciados pelo atributo sub-type (palavra-chave SQL SUB_TYPE): a) BLOB SUB_TYPE 0 - Este é o tipo BLOB genérico para o armazenamento de qualquer tipo de dados, incluindo texto. Geralmente chamado de "BLOB binário sem registro de tipo". b) BLOB SUB_TYPE 1 (BLOB SUB_TYPE TEXT) - Sub-tipo mais especializado para o armazenamento de texto puro. É equivalente aos tipos CLOB e MEMO implementados em alguns bancos de dados (DBMS). É recomendado para uso com interfaces de aplicações tais como componentes RAD ou motores de pesquisa que fornecem um tratamento especial para tais tipos. Veja um comando DDL CREATE TABLE que cria uma tabela contendo um campo do tipo BLOB (usando o sub-tipo text): CREATE TABLE COMPROMISSOS ( ID INTEGER NOT NULL, DESCRICAO BLOB SUB_TYPE 1 SEGMENT SIZE 4096 NOT NULL, DATA_HORA TIMESTAMP NOT NULL ); Aqui nós temos uma tabela com três campos: ID é do tipo INTEGER, DESCRICAO é do tipo BLOB com o sub-tipo 1 e DATA_HORA é do tipo TIMESTAMP. Veja agora um comando DML INSERT INTO que insere um registro nesta tabela: INSERT INTO COMPROMISSOS VALUES(10, 'REUNIÃO COM CLIENTE - SÃO PAULO', '2010-12-02 12:30:00'); Note que os valores para campos do tipo BLOB devem ser fornecidos entre aspas simples. Agora, veja um comando SQL DML SELECT que lista o registro inserido anteriormente: SELECT * FROM COMPROMISSOS; Este comando vai gerar o seguinte resultado: ID DESCRICAO DATA_HORA 10 REUNIÃO COM CLIENTE - SÃO PAULO 2/12/2010 12:30:00 |
JavaScript ::: DOM (Document Object Model) ::: document Object |
JavaScript DOM - Como usar o objeto document em seus códigos JavaScriptQuantidade de visualizações: 8131 vezes |
O objeto document representa a página HTML e fornece possibilidades para acessar, criar e manipular todos os elementos HTML no documento. Este objeto está logo abaixo do objeto window na hierarquia do DOM (Document Object Model), ou seja, podemos dizer que este elemento é filho do objeto window. Assim, para acessá-lo a partir de nossos códigos JavaScript podemos usar window.document ou simplesmente document. Veja:
<html>
<head>
<title>Estudos JavaScript</title>
</head>
<body>
<script type="text/javascript">
// vamos obter o título desta página
var titulo = window.document.title;
// vamos exibir o resultado em uma mensagem alert
window.alert("O título da página é: " + titulo);
</script>
</body>
</html>
Neste exemplo nós usamos o objeto window para obter o objeto document. O passo seguinte foi obter o valor de sua propriedade title, que é usada para definir ou obter o título da página HTML. Para obter um elemento em um documento HTML nós podemos usar as coleções (all, anchors, applets, etc), os métodos getElementById(), getElementsByName() e getElementsByTagName() e algumas outras propriedades e métodos. Se precisarmos acessar o elemento body ou html, podemos usar as propriedades document.documentElement e document.body. Veja um trecho de código no qual acessamos o corpo do documento HTML e definimos sua cor de fundo: <script type="text/javascript"> // vamos definir a cor de fundo da página HTML window.document.body.bgColor = "Beige"; </script> Uma vez que o objeto document é um objeto contâiner para um documento HTML, ele fornece métodos para a crição de novos elementos (por meio do método createElement()), nós textos (createTextNode()) e nós de comentários (createComment()). Depois que um nó (node) é criado, ele pode ser inserido no documento por meio de chamadas aos métodos appendChild() e insertBefore(). Veja um trecho de código no qual usamos o método createElement() para criar um novo elemento div e logo em seguida usamos o método appendChild() para adicionar o elemento recém-criado no final do documento HTML:
<html>
<head>
<title>Estudos JavaScript</title>
</head>
<body>
<script type="text/javascript">
// vamos criar um novo elemento div
var elem = document.createElement("div");
elem.innerHTML = "Sou uma div criada dinâmicamente";
elem.style.backgroundColor = "beige";
// vamos adicionar este novo elemento no final do documento
document.body.appendChild(elem);
</script>
</body>
</html>
Os documentos HTML contidos em elementos frames e iframes possuem seus próprios objetos document. Para obter tais objetos, devemos usar a propriedade contentDocument. |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico |
Exercícios Resolvidos de Python - Como somar o primeiro e o último dígito de um número inteiro informado pelo usuário em PythonQuantidade de visualizações: 1356 vezes |
|
Pergunta/Tarefa: Escreva um programa Python que pede para o usuário informar um número inteiro e mostre a soma do primeiro dígito com o último dígito. Atenção: você deve usar apenas os operadores matemáticos e a função log10(). Sua saída deverá ser parecida com: Informe um número inteiro: 48763 A soma do primeiro e do último dígito é: 7 Veja a resolução comentada deste exercício usando Python:
# vamos importar o módulo Math
import math
# método principal
def main():
# vamos pedir para o usuário informar um número inteiro
numero = int(input("Informe um número inteiro: "))
# vamos obter a quantidade (-1) de dígitos no número informado
quant = int(math.log10(numero))
primeiro_digito = (int)(numero / pow(10, quant))
ultimo_digito = numero % 10
# soma o primeiro e o último dígito
soma = primeiro_digito + ultimo_digito
# mostra o resultado
print("A soma do primeiro e do último dígito é: {0}".format(soma))
if __name__== "__main__":
main()
|
Mais Desafios de Programação e 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 |







