![]() |
|
|
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. |
||
PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como embaralhar os elementos de um array em PHP usando a função shuffle() - Vetores e matrizes em PHPQuantidade de visualizações: 13369 vezes |
|
Em algumas situações nós precisamos misturar os elementos de um vetor em PHP, ou seja, embaralhar de forma aleatória os elementos. Para isso nós podemos usar a função shuffle(), que recebe um vetor e o devolve com a ordem dos elementos embaralhada de forma randômica. Veja o exemplo completo:
<html>
<head>
<title>Estudando PHP</title>
</head>
<body>
<?php
$nomes = array("Osmar", "Marcos", "Igor", "Gustavo");
// ordem original
for($i = 0; $i < count($nomes); $i++){
echo $nomes[$i] . "<br>";
}
echo "<br>";
// embaralha o vetor
shuffle($nomes);
// ordem embaralhada
for($i = 0; $i < count($nomes); $i++){
echo $nomes[$i] . "<br>";
}
?>
</body>
</html>
Ao executar este código nós teremos o seguinte resultado: Osmar Marcos Igor Gustavo Gustavo Osmar Marcos Igor |
Java ::: Projetos Java Completos - Códigos Fonte Completos Java ::: Projetos Java Programação Orientada a Objetos - Exemplos Java |
Simulação de Sistema Bancário usando Programação Orientada a Objetos em Java - Projeto completo com código fonte - Versão consoleQuantidade de visualizações: 19510 vezes |
|
Sobre este projeto Java Durante estes anos que tenho trabalhado como freelancer, mais da metade das requisições dos meus clientes foram ajuda para desenvolver idéias de programação orientada a objetos em Java para projeto de faculdades e universidades. Com isso percebi que boa parte dos alunos e iniciantes em programação orientada a objetos já entendem toda a teoria. O que lhes falta é prática, ou seja, aplicar estes conhecimentos em aplicações do mundo real. Pensando nisso, apresento a você um projeto muito interessante e que, se bem entendido e praticado, o ajudará a desenvolver qualquer tipo de aplicação, seja comercial ou para solucionar problemas cotidianos. O projeto Java apresentado nesta dica é uma simulação completa de um Sistema Bancário, tudo com código fonte em Java, comentado, com variáveis em português, em um nível médio de programação, para facilitar o entendimento de todos. Nesta simulação nós temos a criação de classes Java, construtores, encapsulamento de dados, agregação e composição, métodos com retorno e sem retorno, variáveis estáticas, variáveis públicas e privadas, e relacionamento entre objetos (um para um, um para muitos, muitos para um) usando ArrayList. Sim, o projeto faz uso extensivo de ArrayList, o que o torna muito rico para o aprendizado e fixação dos conhecimentos da linguagem Java e suas classes principais. O Diagrama de Classes Java Antes de falarmos mais sobre o projeto, dê uma boa olhada no seu diagrama de classes: ![]() Como a aplicação está estruturada? Como podemos ver no diagrama de classes, nós temos uma classe Sistema que contém zero ou vários objetos da classe Banco (relacionamento um para muitos). A classe Banco, por sua vez, possui uma ArrayList de objetos da classe Agência, ou seja, mais um relacionamento um para muitos, já que cada agência pertence a um único banco. Cada agência pode possuir zero ou mais contas, e cada conta possui um ArrayList de objetos da classe Transação, o que nos permite registrar todas as operações nas contas e emitir o extrato bancário, com os débitos, créditos e transferências entre contas. Tudo isso é feito por meio de vários menus de opções, como podemos ver na imagem a seguir: ![]() Devo usar ArrayList do Java para desenvolver o sistema? Sim, objetos da classe ArrayList são perfeitos quando precisamos representar relacionamentos um para muitos e muitos para um. É claro que poderíamos usar vetores de objetos (usando array), mas ficaríamos restritos a tamanhos fixos, enquanto o ArrayList nos permite cadastrar quantos bancos, pessoas, agências e contas quisermos. Dessa forma, veja, por exemplo, o trecho de código que cria um novo banco:
switch(opcao){
case 1: // vamos cadastrar um novo banco
System.out.print("\nNúmero do Banco: ");
String numeroBanco = entrada.nextLine();
System.out.print("Nome do Banco: ");
String nomeBanco = entrada.nextLine();
// vamos incrementar o contador de bancos
Banco.contadorBancos++;
// agora vamos criar um novo objeto da classe Banco
Banco b = new Banco(Banco.contadorBancos, nomeBanco,
numeroBanco);
// e o adicionamos no ArrayList de bancos
bancos.add(b);
// e finalmente mostramos uma mensagem de sucesso.
System.out.println("\nO banco criado com sucesso");
break;
Note que este trecho de código é parte do case da opção Novo Banco do menu Gerenciar Bancos. Veja como usamos uma variável estática contadorBancos da classe Banco para criarmos um valor inteiro auto-incremento que nos permite identificadores únicos para cada banco. Veja agora mais um trecho de código muito interessante. Trata-se
case 3: // vamos pesquisar uma conta
System.out.print("\nId, número ou nome cliente da conta: ");
pesquisaConta = entrada.nextLine();
// chamamos o método que pesquisa a conta
temp = pesquisarConta(agenciaAtual, pesquisaConta);
if(temp == null){ // conta não encotrada
System.out.println("\nConta não encontrada na agência.");
}
else{
// mostra a conta encontrada
System.out.println("\nId da conta bancária: " +
temp.getId());
System.out.println("Número da conta: " +
temp.getNumero());
System.out.println("Cliente: " +
temp.getCliente().getNome());
System.out.println("Agência: " + agenciaAtual.getNumero() +
" - " + agenciaAtual.getCidade());
System.out.println("Banco: " +
bancoAtual.getNumero() + " - " + bancoAtual.getNome());
System.out.println("Saldo atual: " + temp.getSaldo());
System.out.println("Limite atual: " + temp.getLimite());
}
break;
Viu que código mais lindo? Note como a Programação Orientada a Objetos em Java nos permite desenvolver idéias de forma bem parecida mesmo ao mundo real. O fechamento com chave de ouro O produto final da aplicação Java deverá ser um extrato bancário mostrando os dados da conta escolhida, o histórico de transações com data, tipo da transação e valor, e o saldo atual da conta, com ou sem limite. Veja na imagem abaixo a formatação apresentada (mesmo em modo texto): ![]() Como posso obter este código fonte? Os links para você baixar todas as versões deste projeto estão abaixo: 1) SBJCNB-A - Sistema Bancário em Java com Código Fonte Versão Console - NetBeans IDE - Faça o Download. 2) SBJCNB-B - Sistema Bancário em Java com Código Fonte Versão Console - Lê e salva os dados em arquivo usando serialização (Serializable), ou seja, os métodos readObject() e writeObject() - NetBeans IDE - Faça o Download. Não se esqueça: Uma boa forma de estudar o código é fazendo pequenas alterações e rodando para ver os resultados. Outra opção é começar um projeto Java do zero e ir adicionando trechos do código fonte para melhor entendimento de suas partes. |
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como criar herança em Java usando extends - Programação orientada a objetos em JavaQuantidade de visualizações: 29893 vezes |
|
Quando estamos projetando as classes que farão parte de um sistema, é aconselhável ter em mente um conceito muito importante da programação orientada a objetos: a herança. O que um aluno, um professor e um funcionário possuem em comum? Todos eles são pessoas e, portanto, compartilham alguns dados comuns. Todos têm nome, idade, endereço, etc. E, o que diferencia um aluno de uma outra pessoa qualquer? Um aluno possui uma matrícula; Um funcionário possui um código de funcionário, data de admissão, salário, etc; Um professor possui um código de professor e informações relacionadas à sua formação. É aqui que a herança se torna uma ferramenta de grande utilidade. Podemos criar uma classe Pessoa, que possui todos os atributos e métodos comuns a todas as pessoas e herdar estes atributos e métodos em classes mais específicas, ou seja, a herança parte do geral para o mais específico. Comece criando uma classe Pessoa (Pessoa.java) como mostrado no código a seguir:
public class Pessoa{
public String nome;
public int idade;
}
Esta classe possui os atributos nome e idade. Estes atributos são comuns a todas as pessoas. Veja agora como podemos criar uma classe Aluno que herda estes atributos da classe Pessoa e inclui seu próprio atributo, a saber, seu número de matrícula. Eis o código:
public class Aluno extends Pessoa{
public String matricula;
}
Observe que, em Java, a palavra-chave usada para indicar herança é extends. A classe Aluno agora possui três atributos: nome, idade e matricula. Veja um aplicativo demonstrando este relacionamento:
public class Estudos{
public static void main(String args[]){
// cria um objeto da classe Aluno
Aluno aluno = new Aluno();
aluno.nome = "Osmar J. Silva";
aluno.idade = 36;
aluno.matricula = "AC33-65";
// Exibe o resultado
System.out.println("Nome: " + aluno.nome + "\n" +
"Idade: " + aluno.idade + "\n" +
"Matrícula: " + aluno.matricula);
}
}
Ao executar este código nós teremos o seguinte resultado: Nome: Osmar J. Silva Idade: 36 Matrícula: AC33-65 A herança nos fornece um grande benefício. Ao concentrarmos características comuns em uma classe e derivar as classes mais específicas a partir desta, nós estamos preparados para a adição de novas funcionalidades ao sistema. Se mais adiante uma nova propriedade comum tiver que ser adicionada, não precisaremos efetuar alterações em todas as classes. Basta alterar a superclasse e pronto. As classes derivadas serão automaticamente atualizadas. Esta dica foi testada no Java 8. |
GoLang ::: Fundamentos da Linguagem ::: Laços de Repetição |
Como usar o laço for em GoLang - O laço for da linguagem GoQuantidade de visualizações: 1329 vezes |
|
Como todas (ou praticamente todas) as linguagens de programação, a GoLang também possui o seu laço for, ou loop for. Este laço é usado para repetir uma ou mais instruções quando sabemos exatamente quantas vezes essa repetição ocorrerá. Em Go, o laço for é composto de três partes: inicialização, teste de continuidade e incremento ou decremento da variável de controle. Na parte da inicialização nós declaramos e inicializamos as variáveis que serão usadas dentro da estrutura. O teste de continuidade é a parte na qual verificamos se o laço deverá continuar repetindo ou encerrar. Finalmente, a parte de incremento ou decremento é usada para ajustarmos a variável de controle do laço. Veja, por exemplo, como escrever um laço for em GoLang que contará de 1 até 10, escrevendo os números na tela:
// pacote principal
package main
// vamos importar o módulo de formatação de
// entrada e saída
import "fmt"
// esta é a função principal do programa
func main() {
for i := 1; i <= 10; i++ {
fmt.Printf("%d ", i)
}
}
Ao executar este código Go nós teremos o seguinte resultado: 1 2 3 4 5 6 7 8 9 10 O laço for da linguagem GoLang nos permite omitir as partes da inicialização e de incremento ou decremento, embora esse tipo de código não seja muito usual. Veja um trecho de código no qual usamos o laço for da linguagem Go para contar de 10 até 0 (omitindo a parte da inicialização da variável de controle):
// pacote principal
package main
// vamos importar o módulo de formatação de
// entrada e saída
import "fmt"
// esta é a função principal do programa
func main() {
i := 10 // definimos o valor inicial aqui
for ; i >= 0; i-- {
fmt.Printf("%d ", i)
}
}
Ao executarmos este código Go nós teremos o seguinte resultado: 10 9 8 7 6 5 4 3 2 1 0 Veja, agora, uma modificação do código acima. Desta vez eu omiti a parte de incremento ou decremento da variável de controle:
// pacote principal
package main
// vamos importar o módulo de formatação de
// entrada e saída
import "fmt"
// esta é a função principal do programa
func main() {
for i := 10; i >= 0; {
fmt.Printf("%d ", i)
i--
}
}
|
Nossas 20 dicas & truques de programação mais populares |
|
wxWidgets - Como usar a classe wxFrame para criar a janela principal de suas aplicações C++ wxWidgets JavaScript - Como testar se um ponto está dentro de um círculo em JavaScript - Desenvolvimento de Games com JavaScript |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Delphi - Como excluir o item ou itens selecionados em uma TListBox do Delphi usando a função DeleteSelected C - Como calcular a energia cinética de um corpo dado sua massa e sua velocidade usando a linguagem C Java Servlets - Como compartilhar dados entre um Java Servlet e uma página JSP usando a requisição HttpServletRequest |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






