![]() |
|
Código-Fonte Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimentoDiga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
|
Você está aqui: Cards de Cards de Hidrologia |
||
|
||
|
|
||
PHP ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em PHP - Como usar o modificador de acesso private em suas classes PHPQuantidade de visualizações: 9071 vezes |
O modificador private serve para indicar que as propriedades ou métodos (funções) de uma classe podem ser acessados somente por código residente na mesma classe. Veja um exemplo:
<?
class Pessoa{
private $nome;
}
$pessoa = new Pessoa;
$pessoa->nome = "Osmar J. Silva";
?>
Ao executarmos este código teremos a seguinte mensagem de erro: Fatal error: Cannot access private property Pessoa::$nome in C:\Apache_Web_Server\htdocs\testes.php on line 7 Esse erro ocorre porque a variável $nome, por estar marcada com o modificador private, não pode ser acessada por código fora da classe. Veja agora um exemplo envolvendo um método privado:
<?
class Pessoa{
private function somar($a, $b){
return $a + $b;
}
}
$pessoa = new Pessoa;
echo $pessoa->somar(4, 2);
?>
Ao executarmos este código, a seguinte mensagem de erro será exibida: Fatal error: Call to private method Pessoa::somar() from context '' in C:\Apache_Web_Server\htdocs\testes.php on line 9 Novamente, este erro é causado porque o método somar() não pode ser acessado por código fora da classe Pessoa. É importante notar, contudo, que as propriedades e métodos privados de uma classe não podem ser acessados nem mesmo por suas classes derivadas (sub-classes). |
Java ::: Coleções (Collections) ::: ArrayList |
Java Collections para iniciantes - Arrays (vetores) ou a ArrayList? Qual devo usar?Quantidade de visualizações: 16602 vezes |
|
Uma das perguntas mais frequentes que os usuários do nosso site nos fazem é aquela sobre o uso de simples arrays (vetores e matrizes) ou objetos da classe ArrayList. Se o número de elementos for fixo ou você precisar de muita eficiência ao lidar com tipos primitivos, então arrays podem ser a melhor escolha. Porém, muitos problemas envolvendo o armazenamento de dados requerem estruturas de dados que possam ser redimensionadas de acordo com a necessidade do algorítmo. Neste caso, uma ArrayList (ou qualquer uma das outras classes Collections) pode ser a escolha certa. Veja um trecho de código para ficar mais fácil o entendimento:
package arquivodecodigos;
public class Estudos{
public static void main(String args[]){
int valores[] = {4, 12, 8, 5, 13};
System.out.println("Primeiro elemento no vetor: "
+ valores[0]);
}
}
Ao executar este código nós teremos o seguinte resultado: Primeiro elemento no vetor: 4 Como podemos ver neste exemplo, um array (nesse caso um vetor) possui um tamanho fixo, ou seja, o compilador não nos permite reduzir ou aumentar a quantidade de elementos em um vetor ou matriz criado a partir da notação de arrays. Assim, apesar de todas as facilidades que os arrays trazem consigo, este pode ser um empecilho para o tipo de aplicação que queremos desenvolver em um determinado momento. A classe ArrayList, por outro lado, possui tamanho variado. Isso quer dizer que seu tamanho é aumentado ou reduzido de acordo com as necessidades do seu código. Uma outra questão que diferencia arrays de ArrayList, é que não podemos armazenar tipos primitivos em um objeto da classe ArrayList. Se precisarmos fazer isso, o tipo primitivo deve ser colocado em uma classe encapsuladora, por exemplo, a classe Integer. Em algumas situações o compilador faz isso nos bastidores, e esta operação é chamada de auto-boxing. |
HTML5 ::: Aplicativos Completos ::: Programas de desenho, edição e visualização de imagens e fotos |
Como criar um programa de desenho simples usando o objeto Canvas do HTML5Quantidade de visualizações: 7744 vezes |
|
Revisando alguns códigos que desenvolvi para clientes ao longo desses anos, encontrei um exemplo de um programa de desenho bem simples demonstrando as possibilidades gráficas do elemento Canvas do HTML. Este código foi escrito há uns dois anos e resolvi compartilhar com todos, para que vocês possam aprimorá-lo e acrescentar novas idéias, afinal, o HTML5 está mais atual do que nunca. Veja o resultado no navegador: ![]() Eu o escrevi de forma bem simples, sem usar jQuery ou qualquer outro framework, apenas JavaScript raiz mesmo, de forma que até os estudantes mais iniciantes não terão dificuldade de entender. Veja a listagem completa e com comentários:
<html>
<head>
<title>Desenhando no canvas do HTML5</title>
</head>
<body style="padding: 15px">
<b>Clique e arraste para desenhar</b><br><br>
<canvas id="quadro" style="border: 1px solid #666"
width="600" height="350"></canvas>
<br><br><button onClick="limpar()">Limpar</button>
<script type="text/javascript">
// obtém uma referência ao canvas
var quadro = document.getElementById('quadro');
// vamos obter o contexto de desenho
var areaDesenho = quadro.getContext("2d");
// podemos desenhar?
var podeDesenhar = false; // ainda não
// vetores para guardar as posições x, y, e se o mouse está sendo
// movimentado pressionado
var vetorX = new Array();
var vetorY = new Array();
var vetorArrastar = new Array();
// agora vamos adicionar na área de desenho um "ouvidor" de
// eventos mousedown, ou seja, vamos detectar quando o usuário
// pressionar o botão do mouse (sem soltar)
quadro.addEventListener('mousedown', function(e){
// podemos iniciar o desenho
podeDesenhar = true;
registrarClique(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, false);
desenhar(); // faça o desenho, moço
});
// o "ouvidor" de evento que detecta se o mouse está sendo arrastado
// pressionado
quadro.addEventListener('mousemove', function(e){
if(podeDesenhar){
registrarClique(e.pageX - this.offsetLeft, e.pageY -
this.offsetTop, true);
desenhar(); // faça o desenho, moço
}
});
// o "ouvidor" de evento que detecta se o mouse foi liberado
// e interrompe o desenho
quadro.addEventListener('mouseup', function(e){
podeDesenhar = false;
});
// o mouse saiu da área de desenho?
quadro.addEventListener('mouseleave', function(e){
podeDesenhar = false;
});
function registrarClique(x, y, arrastar){
// aqui nós guardamos em vetores as posições x, y do clique ou
// o movimento do mouse pressionado.
vetorX.push(x);
vetorY.push(y);
vetorArrastar.push(arrastar);
}
// é aqui que a mágica ocorre
function desenhar(){
// primeiro vamos limpar o quadro de desenho
areaDesenho.clearRect(0, 0, areaDesenho.canvas.width,
areaDesenho.canvas.height);
areaDesenho.strokeStyle = "#5c5cd6"; // cor
areaDesenho.lineJoin = "round"; // formato da junção de linha
areaDesenho.lineWidth = 5; // largura da linha
// percorremos os vetores, usando como base o vetor de coordenadas x
for(var i = 0; i < vetorX.length; i++){
areaDesenho.beginPath(); // inicia o caminho
// o mouse foi arrastado neste evento?
if((vetorArrastar[i] == true && i > 0)){
areaDesenho.moveTo(vetorX[i - 1], vetorY[i - 1]);
}
else{
// é o início do desenho
areaDesenho.moveTo(vetorX[i] - 1, vetorY[i]);
}
// desenha a linha do ponto X ao ponto Y
areaDesenho.lineTo(vetorX[i], vetorY[i]);
// fecha o caminho
areaDesenho.closePath();
// conclui de fato o desenho
areaDesenho.stroke();
}
}
// e aqui nós limpamos a área de desenho e esvaziamos os vetores
function limpar(){
areaDesenho.clearRect(0, 0, areaDesenho.canvas.width,
areaDesenho.canvas.height);
vetorX = [];
vetorY = [];
vetorArrastar = [];
}
</script>
</body>
</html>
Salve o código como "desenho.html" (cuidado para não salvar como "desenho.html.txt") e abra-o no seu navegador, remoto ou localmente. Você pode começar suas modificações alterando a cor do desenho, a largura da linha, etc. Você pode também deixar figuras pré-configuradas e até permitir que o usuário inclua fotos no Canvas. Para os estudantes que já sabem Node.js, saiba que é possível enviar os três vetores via sockets em um ambiente real time para que outros usuários na rede vejam o seu desenho em tempo real. Bons estudos. |
JavaScript ::: Dicas & Truques ::: Cookies |
Cookies em JavaScript - Como verificar a existência de um cookie usando JavaScriptQuantidade de visualizações: 3 vezes |
|
Nesta dica mostrarei como podemos criar uma função obterCookie() que recebe o nome de um cookie e nos retorna seu valor ou null. Se o retorno for diferentes de null então sabemos que o cookie existe e podemos prosseguir com alguma operação. Em outras dicas dessa seção você pode aprofundar seu conhecimento de cookies em JavaScript. Veja o código JavaScript completo para o exemplo, incluindo o código HTML:
<html>
<head>
<title>Estudando JavaScript</title>
<script type="text/javascript">
// função que permite obter um cookie
function obterCookie(nome){
if(document.cookie.length > 0){
c_start = document.cookie.indexOf(nome + "=");
if(c_start != -1){
c_start = c_start + nome.length + 1;
c_end = document.cookie.indexOf(";", c_start);
if(c_end == -1){
c_end = document.cookie.length;
}
return unescape(document.cookie.substring(
c_start, c_end));
}
}
return null;
}
</script>
</head>
<body>
<script type="text/javascript">
// verifica se o cookie "nome_visitante" existe
var nome_visitante = obterCookie('nome_visitante');
if(nome_visitante != null){
document.writeln("O cookie nome_visitante existe");
}
else{
document.writeln("O cookie nome_visitante não existe");
}
</script>
</body>
</html>
Ao executar este código JavaScript nós teremos o seguinte resultado: O cookie nome_visitante existe |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercício Resolvido de Python - Um método recursivo que conta de 0 até 10Quantidade de visualizações: 1513 vezes |
|
Exercícios Resolvidos de Python - Um método recursivo que conta de 0 até 10 Pergunta/Tarefa: Escreva um método recursivo que conta e exibe os valores de 0 até 10. Seu método deverá possuir a seguinte assinatura: def contar_recursivamente(n): # sua implementação aqui Sua saída deverá ser parecida com: 0 1 2 3 4 5 6 7 8 9 10 Veja a resolução comentada deste exercício usando Python:
# método recursivo que conta de 0 até 10
def contar_recursivamente(n):
# vamos exibir o número atual
print(n, " ", end =" ")
# devemos prosseguir com a recursividade?
if n < 10:
# incrementa o valor de n
n = n + 1
contar_recursivamente(n) # e faz uma nova chamada recursiva
# método principal
def main():
# efetua uma chamada ao método recursivo fornecendo o primeiro valor
contar_recursivamente(0)
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 |







