![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa 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 |
||
|
||
|
|
||
Android Java ::: Gerenciadores de Layout ::: LinearLayout |
Como usar o gerenciador de layout LinearLayout em suas aplicações AndroidQuantidade de visualizações: 8344 vezes |
O gerenciador de layout LinearLayout (no pacote android.widget) do Android SDK nos permite exibir seus componentes filhos em uma única coluna ou linha. Esta classe está disponível desde a API Level 1. Veja sua posição na hierarquia de classes do Android:
java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.LinearLayout
As classes diretas mais conhecidas são: NumberPicker, RadioGroup, SearchView, TabWidget, TableLayout, TableRow e ZoomControls. Veja um exemplo de como podemos usar o gerenciador LinearLayout em um arquivo de layout em XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</LinearLayout>
Veja agora como este mesmo gerenciador pode ser criado em tempo de execução a partir do método onCreate() de uma activity:
package arquivo.estudos;
import android.app.Activity;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
public class EstudosActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// vamos criar o gerenciador de layout
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setLayoutParams(new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
// vamos atribuir este layout à janela
setContentView(layout);
}
}
Em ambos os exemplos, os componentes filhos serão dispostos em uma única coluna, ou seja, serão empilhados na vertical, uma vez que o valor da orientação do layout é vertical. Note que a orientação do layout LinearLayout é definida em um arquivo XML usando o atributo android:orientation. Via código, a orientação é definida por meio de uma chamada ao método setOrientation(). A orientação padrão de um LinearLayout é horizontal (os componentes são dispostos em uma linha horizontal e a quebra de linha só ocorrerá quando forçada por questões de espaço). |
Python ::: Dicas & Truques ::: Data e Hora |
Como obter o nome do mês da data atual no formato curto usando os métodos today() e strftime() da classe datetime do PythonQuantidade de visualizações: 10954 vezes |
|
Nesta dica mostrarei como podemos combinar os métodos today() e strftime() da classe datetime do Python para retornar o nome do mês da data atual no formato curto, ou seja, se o mês for setembro, o valor retornado será "set". Veja o código completo para o exemplo:
from datetime import datetime
import locale
def main():
# Configurações do usuário
locale.setlocale(locale.LC_ALL, '')
# Obtém um datatime da data e hora atual
hoje = datetime.today()
# Exibe o nome do mês no formato curto
print(hoje.strftime("O mês é: %b"))
if __name__== "__main__":
main()
Ao executarmos este código nós teremos o seguinte resultado: O mês é: mar |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Python - Um método recursivo que recebe um valor inteiro e o exibe na ordem inversaQuantidade de visualizações: 1218 vezes |
|
Pergunta/Tarefa: Escreva um método recursivo que recebe um valor inteiro (com qualquer quantidade de dígitos) e o exibe na ordem inversa. Se o método receber o valor 467, o valor inverso será 764. Seu método deverá possuir a seguinte assinatura: def exibirInverso(valor): # sua implementação aqui Sua saída deverá ser parecida com: Informe um valor inteiro: 932 O valor invertido é: 239 Veja a resolução comentada deste exercício usando Python console:
# método recursivo que recebe um valor inteiro e o exibe na ordem
# inversa
def exibirInverso(valor):
# a parada da recursividade é o valor igual a 0
if valor != 0:
print(valor % 10, end ="")
valor = valor // 10
exibirInverso(valor) # efetua uma nova chamada recursiva
# método principal
def main():
# solicita um valor inteiro ao usuário
numero = int(input("Informe um valor inteiro: "))
# exibe o valor na ordem invertida
print("O valor invertido é: ", end =" ")
exibirInverso(numero)
if __name__== "__main__":
main()
|
wxWidgets ::: Dicas & Truques ::: wxApp |
Como usar a classe wxApp em suas aplicações C++ wxWidgetsQuantidade de visualizações: 2384 vezes |
|
A classe wxApp (Application Class) é uma das primeiras classes que devemos estudar se quisermos ter um domínio perfeito do framework wxWidgets. Para usá-la, devemos incluir #include <wx/app.h> em nossos códigos. Essa classe herda de wxAppConsole. Todas as aplicações wxWidgets definem uma classe application derivada de wxApp. Há somente uma instância dela, e essa instância representa a aplicação sendo executada no momento. De todos os métodos herdados de wxApp, há pelo menos um que devemos implementar, e ele é a função OnInit(), que é chamada quando o wxWidgets está pronto para executar o nosso código. OnInit() equivale ao main() em C/C++ ou WinMain (aplicações Win32). Veja um trecho de código no qual declaramos e usamos a classe wxApp: Código para aplicacao.h:
#include <wx/wx.h>
// arquivo de definição
// declaramos a classe application
class MinhaAplicacao : public wxApp{
public:
// é chamado no startup da aplicação
virtual bool OnInit();
};
// declara MinhaAplicacao& GetApp()
DECLARE_APP(MinhaAplicacao)
Código para aplicacao.cpp:
#include "aplicacao.h"
// arquivo de implementação
// aqui o wxWidgets implementa nosso objeto MinhaAplicacao
IMPLEMENT_APP(MinhaAplicacao)
bool MinhaAplicacao::OnInit(){
// vamos mostrar uma mensagem ao iniciar a aplicação
wxMessageDialog *alerta = new wxMessageDialog(NULL,
wxT("A aplicação foi iniciada com sucesso"), wxT("Informação"), wxOK);
alerta->ShowModal();
// em geral retornamos true para iniciar o loop de eventos
// mas essa aplicação exibe apenas uma janela de mensagem. Podemos sair
return false;
}
Veja que no arquivo de declaração (header file) nós temos a macro DECLARE_APP. Ela nos permite declarar a função wxGetApp() que retorna uma referência para o objeto aplicação. Se não fizermos isso, a única forma de obter tal referência é usando o ponteiro global wxTheApp, que é do tipo wxApp*. A macro IMPLEMENT_APP, no arquivo de implementação, permite ao wxWidgets criar dinamicamente uma instância do objeto application no ponto apropriado da inicialização da biblioteca. Esse trecho de código é totalmente funcional, mas teremos apenas a exibição de uma mensagem wxMessageDialog. Por essa razão eu retornei false no laço de eventos. Se tivéssemos criado uma janela wxFrame, o retorno deveria ser true, já que teríamos de lidar com eventos. Para finalizarmos, lembre-se de que o método OnInit() da classe wxApp é o local ideal para se fazer as verificações iniciais da aplicação, tais como conexão com banco de dados, permissão do usuário, disponibilidade da rede, etc. |
VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de VisuAlg - Um algoritmo em VisuAlg que testa se um triângulo é equilátero, isósceles ou escalenoQuantidade de visualizações: 1419 vezes |
|
Pergunta/Tarefa: Escreva um algoritmo que lê três valores para os lados de um triângulo. O algoritmo deve verificar se o triângulo é equilátero (todos os lados iguais), isósceles (dois lados iguais) ou escaleno (todos os lados diferentes). Sua saída deverá ser parecida com: Informe o lado 1 do triângulo: 6 Informe o lado 2 do triângulo: 8 Informe o lado 3 do triângulo: 2 O triângulo é escaleno Veja a resolução deste algoritmo em VisuAlg:
Algoritmo "Testa se um triângulo é equilátero, escaleno ou isósceles"
Var
// variáveis usadas na resolução do problema
lado1, lado2, lado3: real
Inicio
// vamos ler os lados do triângulo
escreva("Informe o lado 1 do triângulo: ")
leia(lado1)
escreva("Informe o lado 2 do triângulo: ")
leia(lado2)
escreva("Informe o lado 3 do triângulo: ")
leia(lado3)
// vamos testar se o triângulo é equilátero
// os três lados iguais
se (lado1 = lado2) e (lado2 = lado3) entao
escreval("O triângulo é equilátaro.")
senao
// vamos testar se o triângulo é escaleno
// os três lados diferentes
se (lado1 <> lado2) e (lado1 <> lado3) e (lado2 <> lado3) entao
escreval("O triângulo é escaleno")
senao
// vamos testar se o triângulo é isósceles
// dois lados iguais e um diferente
se (lado1 = lado2) ou (lado1 = lado3) ou (lado2 = lado3) entao
escreval("O triângulo é isósceles")
fimse
fimse
fimse
Fimalgoritmo
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de VisuAlg |
Veja mais Dicas e truques de VisuAlg |
Dicas e truques de outras linguagens |
|
C# - Como detectar a mudança de estado da CheckBox do C# Windows Forms usando o evento CheckedChanged |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




