![]() |
|
|
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 Engenharia Civil - Estruturas de Concreto Armado |
||
|
||
|
|
||
C ::: Dicas & Truques ::: Data e Hora |
Como obter e exibir a data atual no formato DD/MM/YYYY (Ex: 02/07/2013) usando a linguagem CQuantidade de visualizações: 5097 vezes |
Em algumas situações gostaríamos de obter e exibir a data no formato DD/MM/YYYY, por exemplo, 23/05/2010. Para isso podemos usar a função strftime(), que nos permite formatar o conteúdo da estrutura tm usando especificadores de formato. Veja o código:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv[]){
time_t data_hora_segundos; // guarda os segundos deste 01/01/1970
struct tm *timeinfo; // declara uma estrutura tm
time(&data_hora_segundos); // preenche a variável data_hora_segundos
// preenche a estrutura timeinfo
timeinfo = localtime(&data_hora_segundos);
// obtém e exibe a data atual no formato DD/MM/YYYY
char data_atual[80];
strftime(data_atual, 80, "A data de hoje é: %d/%m/%Y", timeinfo);
// mostra o resultado
printf("%s\n\n", data_atual);
system("PAUSE");
return 0;
}
Ao executar este código nós teremos o seguinte resultado: A data de hoje é: 02/08/2013 Para exibir a data no formato DD/MM/YYYY eu usei os especificadores de formato %d, %m e %Y. |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercícios Resolvidos de Python - Ler os lados de um triângulo e informar se ele é isósceles, escaleno ou equiláteroQuantidade de visualizações: 2562 vezes |
|
Pergunta/Tarefa: Um triângulo é uma forma geométrica (polígono) composta de três lados, sendo que cada lado é menor que a soma dos outros dois lados. Assim, para que um triângulo seja válido, é preciso que seus lados A, B e C obedeçam à seguinte regra: A < (B + C), B < (A + C) e C < (A + B). Escreva um programa Python que leia os três lados de um triângulo e verifique se tais valores realmente formam um triângulo. Se o teste for satisfatório, informe se o triângulo é isósceles (dois lados iguais e um diferente), escaleno (todos os lados diferentes) ou equilátero (todos os lados iguais). Sua saída deverá ser parecida com: Informe o primeiro lado do triângulo: 30 Informe o segundo lado do triângulo: 40 Informe o terceiro lado do triângulo: 60 O triângulo é escaleno Veja a resolução comentada deste exercício usando Python:
# método principal
def main():
# vamos ler o primeiro lado do triângulo
lado_a = int(input("Informe o primeiro lado do triângulo: "))
# vamos ler o segundo lado do triângulo
lado_b = int(input("Informe o segundo lado do triângulo: "))
# vamos ler o terceiro lado do triângulo
lado_c = int(input("Informe o terceiro lado do triângulo: "))
# os lados informados formam um triângulo?
if((lado_a < (lado_b + lado_c)) and (lado_b < (lado_a + lado_c))
and (lado_c < (lado_a + lado_b))):
# é um triângulo equilátero (todos os lados iguais)?
if((lado_a == lado_b) and (lado_b == lado_c)):
print("O triângulo é equilátero")
else:
# é isósceles (dois lados iguais e um diferente)?
if((lado_a == lado_b) or (lado_a == lado_c) or (lado_c == lado_b)):
print("O triângulo é isósceles")
else:
# é escaleno
print("O triângulo é escaleno")
else:
print("Os lados informados não formam um triângulo.")
if __name__== "__main__":
main()
|
Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como acessar variáveis de instâncias para escrita em Ruby sem a necessidade de métodos mutatórios usando a função attr_accessorQuantidade de visualizações: 7676 vezes |
|
Por padrão, variáveis de instância em Ruby só podem ser acessadas para escrita usando métodos mutatórios, ou seja, uma variável de instância @nome deve ser modificada usando um método definir_nome. É possível dispensar o uso de métodos mutatórios empregando o método attr_accessor nos nomes das variáveis que poderão ser acessadas e modificadas. Lembre-se que, ao contrário de attr_reader, o método attr_accessor possibilita o acesso à variável de instância tanto para leitura quanto para escrita. Veja um exemplo:
# Definição da classe Cliente
class Cliente
attr_accessor :nome, :idade
def initialize(nome, idade)
@nome = nome
@idade = idade
end
end
# Cria uma instância da classe Cliente e inicializa as
# variáveis de instância @nome e @idade
cliente = Cliente.new("Osmar J. Silva", 35)
# Acessa as variáveis de instância sem a necessidade
# de métodos acessórios
puts cliente.nome
puts cliente.idade
# Modifica as variáveis de instância sem a necessidade
# de métodos mutatórios
cliente.nome = "Carlos da Silva"
cliente.idade = 56
# Obtém os resultados
puts cliente.nome
puts cliente.idade
Se tentarmos acessar e modificar as variáveis nome e idade diretamente, sem os métodos mutatórios e a função attr_accessor nós teremos um erro do tipo: Traceback (most recent call last): estudos.arb:15:in `<main>': undefined method `nome' for #<Cliente:0x0000029a7211f080 @nome="Osmar J. Silva", @idade=35> (NoMethodError) |
PHP ::: Dicas & Truques ::: Arquivos e Diretórios |
Arquivos e diretórios em PHP - Como montar uma árvore de arquivos e diretórios recursivamenteQuantidade de visualizações: 16897 vezes |
|
Este exemplo mostra como listar todo o conteúdo de um diretório recursivamente em forma de árvore. Note que usei um objeto da classe RecursiveDirectoryIterator da linguagem PHP para facilitar nosso trabalho. Veja o código completo para o exemplo:
<html>
<head>
<title>Estudando PHP</title>
</head>
<body>
<?php
// nome e local do diretório
$dir = $_SERVER["DOCUMENT_ROOT"] . "/escola/app";
// função recursiva que lista o diretório atual
function montarArvore($it){
echo '<ul>';
for(; $it->valid(); $it->next()){
if($it->isDir() && !$it->isDot()) {
printf('<li>%s</li>', $it->current());
if($it->hasChildren()) {
$filho = $it->getChildren();
echo '<ul>' . montarArvore($filho) . '</ul>';
}
}
elseif($it->isFile()) {
echo '<li>'. $it->current() . '</li>';
}
}
echo '</ul>';
}
// faz a primeira chamada à função recursiva
montarArvore(new RecursiveDirectoryIterator($dir));
?>
</body>
</html>
|
Rust ::: Fundamentos da Linguagem ::: Compilador rustc |
Como escrever um "Hello, World!" na linguagem Rust usando a ferramenta rustcQuantidade de visualizações: 968 vezes |
|
Então você já fez a instalação do Rust, testou o seu funcionamento disparando "rustc --version" em uma janela de terminal e agora quer começar a aprender mais sobre a linguagem? Que tal começar escrevendo o famoso "Hello, World!" ("Olá, Mundo!")? Nesta dica mostrarei como essa tarefa é fácil, principalmente se optarmos pelo uso da ferramenta rustc. Lembre-se, no entanto, que rustc é usado diretamente quando estamos escrevendo aplicações simples, provas de conceito, protótipos e coisas assim. Para aplicações mais complexas, é sempre recomendado o uso do Cargo, que é um sistema de build e gerenciador de pacotes do Rust. Então vamos começar. Abra o seu editor de códigos favorito (tal como o Notepad++) e digite a seguinte listagem:
fn main() {
println!("Hello, world! Aqui é Rust na veia.");
}
Salve este arquivo como "estudos.rs" no diretório de sua preferência. Aqui eu optei por salvá-lo em um diretório chamado "C:\estudos_rust". Agora vamos compilar nosso programa Rust. Abra uma janela de terminal e navegue até o diretório que você salvou o arquivo "estudos.rs" e dispare o comando abaixo: C:\Users\Osmar>cd c:\estudos_rust c:\estudos_rust>rustc estudos.rs Se tudo correr bem, você verá a criação de um arquivo "estudos.exe". Para executá-lo pela linha de comando nós só precisamos disparar: c:\estudos_rust>estudos Hello, world! Aqui é Rust na veia. Simples, né? No entanto, se dermos duplo-clique em cima do executável gerado, ele abre e fecha automaticamente. Não seria bom exibir uma mensagem do tipo "Pressione uma tecla para fechar..."? Basta modificar seu código para a versão abaixo:
// importamos a biblioteca io
use std::io;
use std::io::Write;
fn main() {
println!("Hello, world! Aqui é Rust na veia.");
// procedimento para pausar o programa
let mut resposta = String::new();
print!("\nPressione Enter para sair...");
io::stdout().flush().unwrap();
io::stdin().read_line(&mut resposta)
.expect("Erro ao ler a entrada do usuário");
}
Sim, eu sei que agora nós adicionamos código demais para alcançar um detalhe tão simples. Mas, à medida que a linguagem Rust evolui, talvez os desenvolvedores resolvam simplificar esta parte. Compile o programa novamente e experimente abrir o executável com duplo-clique. Você verá que agora o programa fica aguardando o pressionamento da tecla Enter para fechar. |
Veja mais Dicas e truques de Rust |
Dicas e truques de outras linguagens |
|
JavaScript - Como calcular o seno de um número ou ângulo em JavaScript usando a função sin() do objeto Math VB.NET - Como retornar a versão do .NET a partir de seus códigos VB.NET usando Environment.Version.ToString() |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |



