![]() |
|
Código-Fonte Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesTenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
|
Você está aqui: Cards de |
||
|
||
|
|
||
PHP ::: Dicas & Truques ::: Upload de Arquivos |
Como fazer upload de arquivos em PHP - Escreva do zero seu código de upload de arquivos e imagens em PHPQuantidade de visualizações: 11015 vezes |
|
Nesta dica mostrarei como escrever seu primeiro código para upload de arquivos em PHP. Trata-se de um código realmente básico e, depois de aprendê-lo, recomendo que leia as demais dicas desta seção e implemente outras funcionalidades, tais como restringir os tipos e tamanhos dos arquivos a serem enviados ao servidor. O primeiro passo é definir em qual diretório de sua hospedagem os arquivos enviados serão salvos. Feito isso, verifique se você possui permissão de escrita neste diretório. Se estiver usando Linux, um CHMOD 666 ou 777 deve resolver. Vamos começar então. Crie uma página contendo o seguinte formulário: <html> <head> <title>Upload de arquivos usando PHP</title> </head> <body> <form action="testes.php" method="post" enctype="multipart/form-data"> Arquivo: <input type="file" name="arquivo"><br> <input type="submit" name="submit" value="Enviar"> </form> </body> </html> Veja que este formulário aponta para um arquivo testes.php e contém um campo <input type="file"> chamado "arquivo". Tenha este nome em mente para o perfeito entendimento do código. Veja agora o conteúdo do arquivo testes.php:
<?php
// diretório no qual o arquivo será gravado. este diretório
// deverá ter permissão de escrita
$diretorio = "/home/xxx/xxx/xxx/imagens/";
// vamos verificar o código do erro
if($_FILES['arquivo']['error'] == UPLOAD_ERR_OK){
// o arquivo foi transferido com sucesso. vamos usar a
// função move_uploaded_file() para copiá-lo para
// seu local definitivo
move_uploaded_file($_FILES["arquivo"]["tmp_name"],
$diretorio . $_FILES["arquivo"]["name"]);
echo "Upload feito com sucesso";
}
else
echo "Ocorreu um erro no upload";
?>
Salve os dois arquivos na sua área de hospedagem, acesse a primeira página e envie um arquivo. Se você seguiu as instruções corretamente, o upload será feito com sucesso. A parte mais importante deste código é o uso da função move_uploaded_file(). Esta função recebe o o local e nome temporário do arquivo e o diretório e nome para o qual o arquivo será enviado em definitivo. Note que usamos o nome original do arquivo na máquina do usuário para salvá-lo com o mesmo nome. É neste procedimento que aproveitamos para remover espaços e caracteres especiais do nome do arquivo. Se você faz parte do mundo Linux entenderá perfeitamente o que estou dizendo. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Como calcular salário líquido em Java - Calculando o salário líquido de um professorQuantidade de visualizações: 10973 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que calcule o salário líquido de um professor. Seu programa deverá solicitar que o usuário informe o valor da hora aula (como double), o número de horas trabalhadas no mês (como inteiro) e o percentual de desconto do INSS (como double). Em seguida mostre o salário líquido, formatado de acordo com a moeda brasileira em vigor (na resolução eu usei o Real). Sua saída deverá ser parecida com: Informe o valor da hora aula: 28 Informe o número de horas trabalhadas no mês: 12 Informe o percentual de desconto do INSS: 8 Salário Bruto: R$ 336,00 Total de Descontos: R$ 26,88 Salário Líquido: R$ 309,12 Veja a resolução comentada deste exercício usando Java console:
package estudos;
import java.text.NumberFormat;
import java.util.Scanner;
public class Estudos{
public static void main(String[] args) {
// vamos fazer a leitura usando a classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos ler o valor do hora aula
System.out.print("Informe o valor da hora aula: ");
double valorHoraAula = Double.parseDouble(entrada.nextLine());
// vamos ler o número de horas trabalhadas no mês
System.out.print("Informe o número de horas trabalhadas no mês: ");
int horasTrabalhadas = Integer.parseInt(entrada.nextLine());
// vamos ler o percentual de desconto do INSS
System.out.print("Informe o percentual de desconto do INSS: ");
double percentualDescontoINSS = Double.parseDouble(entrada.nextLine());
// vamos calcular o salário bruto
double salarioBruto = valorHoraAula * horasTrabalhadas;
// agora calculamos o total do desconto
double totalDesconto = (percentualDescontoINSS / 100) * salarioBruto;
// finalmente calculamos o salário líquido
double salarioLiquido = salarioBruto - totalDesconto;
// mostramos o resultado
NumberFormat formato = NumberFormat.getCurrencyInstance();
System.out.println("Salário Bruto: " + formato.format(salarioBruto));
System.out.println("Total de Descontos: " + formato.format(totalDesconto));
System.out.println("Salário Líquido: " + formato.format(salarioLiquido));
}
}
|
LISP ::: Fundamentos da Linguagem ::: Variáveis e Constantes |
Como declarar variáveis globais em Lisp usando as funções defvar e defparameterQuantidade de visualizações: 1384 vezes |
|
Em algumas situações nós precisamos declarar variáveis globais em Lisp, ou melhor, em Common Lisp, que é a padronização da Lisp que adotamos para estas dicas. Variáveis globais em Common Lisp se comportam de forma idêntica àquelas de outras linguagens de programação, ou seja, possuem valores permanentes por todo o sistema Lisp e mantém seus valores até que novos valores são especificados. Se quisermos, por exemplo, a partir do corpo de uma função acessar uma variável fora dela, então esta variável deverá ser declarada globalmente. Em Common List nós podemos declarar variáveis globais usando as funções defvar e defparameter. Vamos ver exemplos envolvendo as duas e no final desta dica eu mostro a diferença. Veja um trecho de código Common Lisp na qual declaramos uma variável global chamada valor e a acessamos de dentro de uma função: ; vamos declarar uma variável global (defvar valor 10) ; vamos mostrar o valor atual da variável global (format t "O valor da variável global é ~D" valor) ; agora vamos acessar a variável global ; de dentro de uma função (defun ModificaValor() ; vamos alterar o valor da variável global (setq valor 50) ) ; chamamos a função ModificaValor (ModificaValor) ; e checamos se o valor da variável global foi ; mesmo alterado (terpri) (format t "O valor da variável global é ~D" valor) Ao executar este código Common List nós teremos o seguinte resultado: O valor da variável global é 10 O valor da variável global é 50 Veja agora um trecho de código Common Lisp no qual usamos a função defparameter para declarar e inicializar as variáveis globais: ; vamos declarar três variáveis globais (defparameter *a* 5) (defparameter *b* 3) (defparameter *soma* 0) ; agora vamos acessar as variáveis globais ; de dentro de uma função (defun Somar() ; vamos somar as duas variáveis globais ; e guardar o resultado em uma terceira ; variáveis global (setq *soma* (+ *a* *b*)) ) ; chamamos a função Somar (Somar) ; e mostramos o resultado da soma (format t "A soma das variáveis globais é ~D" *soma*) Ao executar este novo código Common Lisp nós teremos o seguinte resultado: A soma das variáveis globais é 8 Note que coloquei asteríscos (*) ao redor dos nomes das variáveis globais. Esta é uma prática comum entre programadores Lisp e altamente recomendado pelo comunidade, pois facilita a distinção entre variáveis globais e locais. Então, qual é a diferença entre defvar e defparameter? A primeira delas é que a função defparameter nos obriga a informar o valor inicial para a variável global, enquanto a função defvar não o faz. A segunda diferença é que, ao redefinirmos o valor de uma variável global usando defparameter, o valor armazenado anteriormente será sobreposto, enquanto a função defvar não altera o valor anterior. |
Python ::: Dicas & Truques ::: Matemática e Estatística |
Como corrigir o problema da divisão com inteiros em Python (versões anteriores a 3.0)Quantidade de visualizações: 11143 vezes |
A divisão em Python (na versão 2.5), quando feita com operandos do tipo inteiro, resultará em um número inteiro, ou seja, o resultado será arredondado para o menor inteiro mais próximo. Veja:v1 = 5 v2 = 2 res = v1 / v2 print res Aqui fica claro que o resultado deveria ser 2,5. Porém, ao exibirmos o valor da variável res, vemos que ela armazena 2. Veja agora este novo exemplo: v1 = 5.0 v2 = 2 res = v1 / v2 print res Agora o resultado é o que esperamos: 2,5. Isso aconteceu porque um dos operandos é um valor do tipo ponto-flutuante. Dessa forma, o interpretador fará a promoção do outro operando (de inteiro para ponto-flutuante) e o comportamento do operador de divisão será o correto. Então lembre-se: divisão por inteiros, resultado também em inteiro. Se não é isso que deseja, faça com que pelo menos um dos operandos seja do tipo ponto-flutuante. Existe uma forma de forçar o interpretador a se comportar de forma correta também com inteiros. Veja: # força o novo comportamento do operador # de divisão from __future__ import division v1 = 5 v2 = 2 res = v1 / v2 print res Agora o resultado será 2,5. A chave para isso está na linha: from __future__ import division Esta linha importa a nova forma de divisão para seus programas Python anteriores à versão 3.0. |
Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet |
Como usar o método FindField para pesquisar um campo no TClientDataSet do Delphi e retornar um objeto da classe TFieldQuantidade de visualizações: 14520 vezes |
O método FindField pode ser usado quando queremos pesquisar um campo no TClientDataSet e retornar um objeto da classe TField. Este método possui a seguinte assinatura:function FindField(const FieldName: string): TField; Veja um trecho de código no qual eu mostro como encontrar um campo chamado "autor" em um ClientDataSet e retornar seu valor no registro atual:
procedure TForm3.Button3Click(Sender: TObject);
var
campo: TField;
begin
// vamos obter o campo com o nome "autor" no ClientDataSet
campo := ClientDataSet1.FindField('autor');
// este campo existe no dataset?
if campo <> nil then
ShowMessage('O campo existe e seu valor no registro atual é: ' +
campo.AsString)
else // o campo não existe no dataset
ShowMessage('O campo não existe no dataset');
end;
Se o campo existir no dataset, veremos uma mensagem parecida com: "O campo existe e seu valor no registro atual é: M. D. Deitel". Em geral usamos o método FindField para determinar se um determinado componente field existe no dataset. O argumento para o método é o nome do campo que queremos pesquisar. Este nome pode ser o nome de um campo simples, o nome de um sub-campo de um objeto field que tenha sido qualificado pelo nome do campo pai ou o nome de um campo agregado. O comportamento do método FindField é o mesmo do método FieldByName. A diferença é que FindField retorna o valor nil se o campo não existir, enquanto FieldByName lança uma exceção do tipo EDatabaseError com a mensagem "Field not found". Esta dica foi escrita e testada no Delphi 2009. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
|
JavaScript - Como testar se um ponto está dentro de um círculo em JavaScript - Desenvolvimento de Games com JavaScript Fórmulas da Física - Fórmula da Distância - Como calcular a distância dados a velocidade e o tempo decorrido |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





