![]() |
|
|
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 - Fundações |
||
|
||
|
|
||
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Lendo a idade de um nadador e classificando sua categoria como infantil, juvenil, adolescente, adulto ou sêniorQuantidade de visualizações: 4514 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que solicita a idade de um nadador e classifica sua categoria de acordo com as seguintes regras: a) De 5 a 7 anos - Infantil; b) De 8 a 10 anos - Juvenil; c) De 11 a 15 anos - Adolescente; d) De 16 a 30 anos - Adulto; e) Acima de 30 anos - Sênior. Sua saída deverá ser parecida com: Informe sua idade: 19 Sua categoria é Adulto Veja a resolução comentada deste exercício usando Java console:
package estudos;
import java.util.Scanner;
public class Exercicio {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos solicitar a idade do nadador
System.out.print("Informe sua idade: ");
int idade = Integer.parseInt(entrada.nextLine());
// vamos verificar a categoria do nadador
if((idade >= 5) && (idade <= 7)){
System.out.println("Sua categoria é Infantil");
}
else if((idade >= 8) && (idade <= 10)){
System.out.println("Sua categoria é Juvenil");
}
else if((idade >= 11) && (idade <= 15)){
System.out.println("Sua categoria é Adolescente");
}
else if((idade >= 16) && (idade <= 30)){
System.out.println("Sua categoria é Adulto");
}
else if(idade > 30){
System.out.println("Sua categoria é Sênior");
}
else{
System.out.println("Não pertence a nenhuma categoria.");
}
System.out.println("\n");
}
}
|
MySQL ::: Dicas & Truques ::: Joins (Junções) |
Como usar joins no MySQLQuantidade de visualizações: 11580 vezes |
|
As junções (joins) são ferramentas presentes na maioria dos bancos de dados que suportam SQL e são usadas quando precisamos recuperar dados de uma ou mais tabelas com base em suas relações lógicas. Desta forma, é possível combinar os registros de tais tabelas de forma a construir um "super-registro", que nos permitirá exibir relatórios mais elaborados. Para o bom entendimento de junções, vamos considerar duas tabelas: filmes e generos. Aqui nós temos uma cardinalidade de 1 x N. Um filme possui um gênero, enquanto um gênero pode abranger vários filmes. Vamos começar criando estas duas tabelas (comece com a tabela generos, já que esta não depende da tabela de filmes): Comando DLL CREATE TABLE para a tabela generos: CREATE TABLE generos( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome VARCHAR(45) NOT NULL, PRIMARY KEY(id) ) ENGINE = InnoDB; Veja agora o comando SQL para a criação da tabela de filmes: Comando DLL CREATE TABLE para a tabela filmes:
CREATE TABLE filmes(
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
titulo VARCHAR(45) NOT NULL,
genero INTEGER UNSIGNED NOT NULL,
PRIMARY KEY(id),
CONSTRAINT fk_filmes_generos FOREIGN KEY fk_filmes_generos(id)
REFERENCES generos(id) ON DELETE RESTRICT ON UPDATE RESTRICT
)
ENGINE = InnoDB;
Veja que a tabela filmes contém uma chave estrangeira referenciando a chave primária da tabela generos. Isso nos permite "atrelar" um filme ao seu gênero. Vá em frente e insira alguns dados em ambas as tabelas. Primeiro cadastre alguns gêneros e em seguida alguns filmes. Vejamos agora a importância dos joins. Observe o resultado de um comando DML SELECT na tabela filmes: SELECT * FROM filmes; id titulo genero 1 EFEITO BORBOLETA 6 2 O PENTELHO 1 3 VIAGEM MALDITA 3 Nesta query o gênero é retornado como um valor inteiro, ou seja, o valor do campo id da tabela generos. Em muitos casos este não é o comportamento que queremos. Em vez do id do gênero nós gostaríamos de exibir seu nome. Isso pode ser conseguido da seguinte forma: SELECT filmes.id, filmes.titulo, generos.nome FROM filmes, generos WHERE filmes.genero = generos.id; id titulo genero 1 EFEITO BORBOLETA FICÇÃO 2 O PENTELHO COMÉDIA 3 VIAGEM MALDITA TERROR Nesta query eu usei o nome completo da tabela antes do nome dos campos a serem retornados. Na prática, é comum darmos apelidos às tabelas. Veja: SELECT f.id, f.titulo, g.nome FROM filmes f, generos g WHERE f.genero = g.id; Neste exemplo, não usamos as palavras-chaves INNER JOIN, LEFT JOIN, RIGHT JOIN, etc. A junção está "escondida" na cláusula SELECT. Esta técnica é conhecida como "junção implícita" ou "implicit join". Veja como o mesmo resultado pode ser obtido usando a junção INNER JOIN: SELECT f.id, f.titulo, g.nome FROM filmes f INNER JOIN generos g ON f.genero = g.id; Veja minhas outras dicas sobre junções para aprender mais sobre INNER JOIN, LEFT JOIN, RIGHT JOIN, OUTER JOIN, FULL JOIN, etc. |
C++ ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em C++ - Como usar construtores em suas classes C++Quantidade de visualizações: 16263 vezes |
|
Quando um objeto de uma classe C++ é criado, a linguagem chama um construtor para tal classe. Se nenhum construtor estiver definido, um construtor padrão é invocado. Este construtor aloca memória para o objeto, mas não o inicializa. Um construtor é um método que definimos em nossas classes C++ e que possui o mesmo nome da classe. Um construtor não possui tipo de retorno e não retorna nenhum valor. Em geral construtores são públicos, mas, é possível termos construtores privados. Neste caso, somente um método estático da classe poderia criar novos objetos da classe (quando puder dê uma olhada no padrão de projeto Singleton). O uso mais frequente dos métodos construtores é quando queremos inicializar valores das variáveis e demais recursos no momento da criação de uma nova instância da classe. Esta é uma técnica útil, visto que não precisamos dispor de esforço extra para inicializar as variáveis de instância de um objeto, individualmente, após sua criação. Vamos ver um exemplo da definição e uso de construtores em uma classe C++? Comece analisando o código para o arquivo de definição da classe Pessoa: Código para Pessoa.h:
// vamos evitar múltiplas inclusões do
// arquivo de cabeçalho (header file)
#ifndef PESSOA_H
#define PESSOA_H
// vamos incluir o header string
#include <string>
using namespace std;
class Pessoa{
public:
// construtor da classe Pessoa
Pessoa(string, string, int);
// método que permite retornar o nome da pessoa
string getNome();
// método que permite retornar o e-mail da pessoa
string getEmail();
// método que permite retornar a idade da pessoa
int getIdade();
private:
// variáveis privadas
string nome;
string email;
int idade;
};
#endif
Veja a assinatura do método construtor: Pessoa(string, string, int); Note que na lista de parâmetros do construtor não precisamos informar os nomes dos parâmetros, apenas seus tipos. Veja agora o arquivo de implementação para esta classe: Código para Pessoa.cpp:
// arquivo de implementação para a
// classe Pessoa
// vamos incluir o header Pessoa.h
#include "Pessoa.h"
// implementação do construtor
Pessoa::Pessoa(string nome, string email, int idade){
this->nome = nome;
this->email = email;
this->idade = idade;
}
// método que permite obter o nome da pessoa
string Pessoa::getNome(){
return this->nome;
}
// método que permite obter o email da pessoa
string Pessoa::getEmail(){
return this->email;
}
// método que permite obter a idade da pessoa
int Pessoa::getIdade(){
return this->idade;
}
Note que na implementação do método construtor nós recebemos os argumentos para os parâmetros e os usamos para inicializar as variáveis privadas da instância da classe. Observe o uso do ponteiro this para nos referirmos à instância atual da classe Pessoa. Finalmente, veja o código para o método main() do programa. É aqui que criamos um novo objeto da classe Pessoa e usamos seu método construtor para inicializar suas variáveis privadas de uma só vez: Código para main.cpp:
#include <cstdlib>
#include <iostream>
// vamos incluir a classe Pessoa
#include "Pessoa.h"
using namespace std;
int main(int argc, char *argv[])
{
// vamos criar um novo objeto da classe Pessoa
Pessoa *p = new Pessoa("Osmar J. Silva",
"osmar@arquivodecodigos.net", 38);
// vamos exibir os dados da pessoa
cout << "Nome: " << p->getNome() << endl;
cout << "E-Mail: " << p->getEmail() << endl;
cout << "Idade: " << p->getIdade() << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Além do construtor, uma classe C++ possui também um método destrutor. Veja minhas dicas relacionadas a este assunto para aprender como definir e usar destrutores em suas classes C++. |
Python ::: Dicas & Truques ::: Data e Hora |
Como exibir a data atual em Python de acordo com as configurações regionais usando as funções strftime() e setlocale()Quantidade de visualizações: 8061 vezes |
|
Nesta dica mostrarei como podemos combinar os objeto datetime e locale e as funções today(), strftime() e setlocale() para retornar e exibir a data atual em Python usando as configurações regionais do computador do usuário. Veja o código completo para o exemplo:
from datetime import datetime
import locale
# função principal do programa
def main():
# Configurações do usuário
locale.setlocale(locale.LC_ALL, "")
# Obtém um datetime da data e hora atual
hoje = datetime.today()
# Exibe a data atual
print("Hoje é {0}".format(hoje.strftime("%x")))
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Hoje é 04/02/2023 |
Android Java ::: android.widget ::: Button |
Como detectar um clique em um botão do Android usando setOnClickListener() e exibir uma mensagem AlertDialogQuantidade de visualizações: 2062 vezes |
|
O método setOnClickListener() nos permite definir a ação que será disparada ao clicarmos em um botão. Note que primeiro nós localizamos o botão no arquivo XML de layout usando o método findViewById() da classe View. Comece analisando o arquivo XML de layout no qual criamos um botão e o colocamos como filho de um elemento LinearLayout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="
http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
tools:context=".MainActivity">
<Button xmlns:android="
http://schemas.android.com/apk/res/android"
android:id="@+id/btn_enviar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_enviar"
android:textAllCaps="false"
/>
</LinearLayout>
E agora o código Java no arquivo MainActivity.java:
package com.example.estudosandroid;
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// vamos detectar um clique no botão e exibir uma mensagem AlertDialog
Button button = (Button) findViewById(R.id.btn_enviar);
button.setOnClickListener(new View.OnClickListener(){
public void onClick(View view) {
AlertDialog dialogo = new
AlertDialog.Builder(MainActivity.this).create();
dialogo.setTitle("Aviso");
dialogo.setMessage("Esta é uma mensagem de aviso");
dialogo.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which){
dialog.dismiss(); // fecha o AlertDialog
}
}
);
dialogo.show();
}
});
}
}
|
Veja mais Dicas e truques de Android Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




