![]() |
|||||
|
PHP ::: Fundamentos da Linguagem ::: Variáveis e Constantes |
Apostila PHP para iniciantes - Como usar constantes na linguagem PHPQuantidade de visualizações: 12100 vezes |
Como acontece na maioria das linguagens de programação, o PHP também permite o uso de constantes. Como o próprio nome diz, constantes são inicializadas uma vez e não podem ter seus valores alterados durante a execução do programa. A definição de constantes em PHP segue as mesmas regras de nomeação de variáveis, com a exceção de que constantes não possuem o símbolo $ e são geralmente escritas em letras maiúsculas. Diferente de variáveis, constantes, uma vez definidas, são acessadas globalmente. Não há a necessidade de redeclará-las em cada nova função ou arquivo. A síntaxe de definição de uma constante é: define("CONSTANT_NAME", value [, case_sensitivity]) onde: a) CONSTANT_NAME é o nome da constante; b) value é o valor atribuído à constante. Não é possível atribuir arrays nem objetos à constantes; c) case_sensitivity permite definir se o nome da constante será tratado igualmente se referenciado usando letras maiúsculas ou minúsculas. O valor padrão é true, o que quer dizer que "VALOR" e "Valor" serão tratados como uma única constante. REVISÃO: Revisando este código no PHP 8 eu percebi que o terceiro argumento (case_sensitivity) não é mais suportado, e gera um aviso do tipo: Warning: define(): Argument #3 ($case_insensitive) is ignored since declaration of case-insensitive constants is no longer supported in... Veja um exemplo de declaração e uso de constantes em PHP: <? // declara uma constante com o nome MODO e valor 2 define("MODO", 2); echo "O valor definido é: " . MODO; ?> Veja agora o que acontece quando tentamos modificar o valor de uma variável do tipo constante: <? // declara uma constante com o nome MODO e valor 2 define("MODO", 2); // vamos tentar alterar o valor da constante MODO = 10; ?> Este código gera a seguinte mensagem de erro: Parse error: syntax error, unexpected token "=" in... |
Ruby ::: Dicas & Truques ::: Strings e Caracteres |
Como acessar os caracteres de uma string Ruby individualmente usando a notação de vetor []Quantidade de visualizações: 7362 vezes |
Muitas vezes precisamos acessar os caracteres de uma string individualmente. Isso pode ser feito com o auxílio da notação []. Para isso só precisamos fornecer o índice do caractere que queremos acessar e o valor 1, para indicar que queremos acessar apenas um caractere de cada vez. Veja: nome = "Osmar" # vamos acessar os caracteres individualmente for indice in (0..nome.length) letra = nome[indice, 1] puts letra end Ao executar este código Ruby nós teremos o seguinte resultado: O s m a r |
Python ::: Dicas & Truques ::: HTTP Web Server |
Como criar um servidor web em Python usando as classes BaseHTTPRequestHandler e HTTPServerQuantidade de visualizações: 703 vezes |
Nesta dica mostrarei como criar um web server em Python, ou seja, o nosso próprio servidor web. Para isso nós vamos criar uma classe ServidorWeb que herda de BaseHTTPRequestHandler, que nos fornece todos os métodos necessários para tratar requisições HTTP, tais como GET e POST. Note que definir o nome do host como "localhost" e a porta como "8080". Veja o código completo para o nosso web server em Python: # precisamos importar os objetos BaseHTTPRequestHandler e HTTPServer # do módulo http.server from http.server import BaseHTTPRequestHandler, HTTPServer # precisamos também do módulo time import time # vamos criar a classe ServidorWeb, que herda de # BaseHTTPRequestHandler class ServidorWeb(BaseHTTPRequestHandler): # vamos implementar o método que responde às requisições GET def do_GET(self): self.send_response(200) self.send_header("Content-type", "text/html") self.end_headers() self.wfile.write(bytes("<html><head><title>Meu Servidor Web</title></head>", "utf-8")) self.wfile.write(bytes("<p>Requsição: %s</p>" % self.path, "utf-8")) self.wfile.write(bytes("<body>", "utf-8")) self.wfile.write(bytes("<p>Exemplo de Web Server em Python</p>", "utf-8")) self.wfile.write(bytes("</body></html>", "utf-8")) # função principal do programa def main(): # agora criamos um objeto HTTPServer host = "localhost" porta = 8080 servidorWeb = HTTPServer((host, porta), ServidorWeb) print("Servidor iniciado em http://%s:%s" % (host, porta)) # tentamos levantar o servidor try: servidorWeb.serve_forever() except KeyboardInterrupt: pass # liberamos o servidor web servidorWeb.server_close() print("O servidor web foi parado.") if __name__== "__main__": main() Ao executar este código você verá a seguinte mensagem: Servidor iniciado em http://localhost:8080 A partir daí você pode abrir o seu navegador neste endereço e já verá a página web que definimos no corpo do método do_GET() da classe ServidorWeb. Agora é só explorar as dicas dessa seção para aprender ainda mais sobre redes, soquetes e servidores web usando a linguagem Python. |
Java ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular porcentagem em Java - Como efetuar cálculos de porcentagem em JavaQuantidade de visualizações: 55316 vezes |
Cálculos de porcentagens estão presentes em boa parte das aplicações que desenvolvemos. Porém, há momentos em que a mente trava e não conseguimos lembrar com clareza como estes cálculos são feitos, principalmente em Java. Esta anotação tem o objetivo de ser uma fonte de pesquisa para os momentos em que suas habilidades matemáticas insistirem em continuar ocultas. Ex: 1 - Suponhamos que um produto que custe R$ 178,00 sofra um acréscimo de 15%. Qual o valor final do produto? Veja o código em Java: // Algoritmo que calcula porcentagem em Java package estudos; public class Estudos { public static void main(String[] args) { // variáveis usadas na resolução do problema double valor, percentual, valor_final; valor = 178.00; // valor original percentual = 15.0 / 100.0; // 15% valor_final = valor + (percentual * valor); // mostra o resultado System.out.println("O valor final do produto é: " + valor_final); // O resultado será 204,70 } } Ex: 2 - Um produto, cujo valor original era de R$ 250,00, teve um desconto de 8%. Qual foi seu valor final? Veja o código em Java: // Algoritmo que calcula porcentagem em Java package estudos; public class Estudos { public static void main(String[] args) { // variáveis usadas na resolução do problema double valor, percentual, valor_final; valor = 250.00; // valor original percentual = 8.0 / 100.0; // 8% valor_final = valor - (percentual * valor); // mostra o resultado System.out.println("O valor final do produto é: " + valor_final); // O resultado será 230,00 } } Ex: 3 - Em um concurso de perguntas e respostas, um jovem acertou 72 das 90 perguntas apresentadas. Qual foi a porcentagem de acertos? E a porcentagem de erros? Veja o código em Java: // Algoritmo que calcula porcentagem em Java package estudos; public class Estudos { public static void main(String[] args) { // variáveis usadas na resolução do problema double perguntas, acertos; perguntas = 90.0; acertos = 72.0; // mostra a porcentagem de acertos System.out.print("Porcentagem de acertos: "); System.out.println(((acertos / perguntas) * 100) + "%"); // mostra a porcentagem de erros System.out.print("Porcentagem de erros: "); System.out.println((((perguntas - acertos) / perguntas) * 100) + "%"); // Os resultados serão 80% e 20% } } Ex: 4 - Um aparelho de CD foi adquirido por R$ 300,00 e revendido por R$ 340,00. Qual foi a porcentagem de lucro na transação? Veja o código em Java: // Algoritmo que calcula porcentagem em Java package estudos; public class Estudos { public static void main(String[] args) { // variáveis usadas na resolução do problema double valor_anterior, novo_valor, porcentagem_lucro; valor_anterior = 300.0; // valor anterior novo_valor = 340.0; // valor novo // calcula a porcentagem de lucro // efetua o cálculo porcentagem_lucro = ((novo_valor * 100) / valor_anterior) - 100; System.out.println("A porcentagem de lucro foi de: " + porcentagem_lucro + "%"); // O resultado será 13,33 } } Ex: 5 - Uma loja repassa 5% do lucro a seus vendedores. Se um produto custa R$ 70,00, qual o valor em reais repassado a um determinado vendedor? Veja o código em Java: // Algoritmo que calcula porcentagem em Java package estudos; public class Estudos { public static void main(String[] args) { // variáveis usadas na resolução do problema double valor, percentual, comissao; valor = 70.0; // valor do produto percentual = 5.0 / 100.0; // 5% // calcula a comissão comissao = percentual * valor; // mostra o resultado System.out.println("O valor repassado ao vendedor é: " + comissao); // O resultado será 3,5 } } |
Delphi ::: Dicas & Truques ::: Recursão (Recursividade) |
Como usar recursividade em Delphi - Como usar recursão ou funções recursivas em DelphiQuantidade de visualizações: 15566 vezes |
Recursão ou recursividade é a habilidade que uma procedure ou function (função) possui de chamar a si própria uma vez, várias, indefinidamente ou até que a solução do problema a ser resolvido seja encontrada. Assim, podemos definir uma função recursiva (aqui uma procedure recursiva) em Delphi da seguinte forma (atenção: não execute este código):// uma procedure recursiva procedure Recursiva; begin // chama a si própria Recursiva; end; // vamos chamar a procedure pela primeira vez // a partir do Click de um botão procedure TForm1.Button1Click(Sender: TObject); begin Recursiva; end; O fato de eu pedir para que você não execute o código é que, uma vez clicado o botão, a procedure Recursiva será chamada e continuará chamando a si mesma até que a pilha do sistema estoure, ou seja, como funções recursivas são implementadas usando a pilha do sistema operacional e não na área de memória destinada a cada aplicativo o resultado será um travamento do programa, e, caso não estejamos com sorte, um travamento do sistema operacional. Sabedor do risco, clique no botão para ver o resultado você mesmo. O que devemos saber a respeito das funções recursivas é que estas precisam saber o ponto de parada, de forma a evitar chamadas infinitas. Como exemplo, veja uma procedure recursiva que conta de 0 até 10. Note como cada chamada verifica se já é hora de interromper a cadeia: // uma procedure recursiva que conta de 0 até 10 procedure Contar(valor: Integer); begin // vamos exibir o valor atual ShowMessage(IntToStr(valor)); // é hora de parar? if valor = 10 then ShowMessage('Terminei') else begin // chama a si própria (note que aumentamos o valor atual em 1) Inc(valor); Contar(valor); end; end; // vamos chamar a procedure pela primeira vez // a partir do Click de um botão procedure TForm1.Button1Click(Sender: TObject); begin // chama a função recursiva fornecendo o valor inicial Contar(0); end; Execute este código e veja o resultado. Observe que a cada chamada recursiva nós incrementamos a variável de controle. Ela é a responsável por evitar que chamadas infinitas sejam feitas. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
C ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Ordenação e pesquisa em C - Como ordenar um vetor de inteiros usando a ordenação Insertion Sort (Ordenação por Inserção)Quantidade de visualizações: 3080 vezes |
A ordenação Insertion Sort, ou Ordenação por Inserção, possui uma complexidade de tempo de execução igual à ordenação Bubble Sort (Ordenação da Bolha), ou seja, O(n2). Embora mais rápido que o Bubble Sort, e ser um algorítmo de ordenação quadrática, a ordenação Insertion Sort é bastante eficiente para problemas com pequenas entradas, sendo o mais eficiente entre os algoritmos desta ordem de classificação, porém, nunca recomendada para um grande conjunto de dados. A forma mais comum para o entendimento da ordenação Insertion Sort é compará-la com forma pela qual algumas pessoas organizam um baralho num jogo de cartas. Imagine que você está jogando as cartas. Você está com as cartas na mão e elas estão ordenadas. Você recebe uma nova carta e deve colocá-la na posição correta da sua mão de cartas, de forma que as cartas obedeçam à ordenação. A cada nova carta adicionada à sua mão de cartas, a nova carta pode ser menor que algumas das cartas que você já tem na mão ou maior, e assim, você começa a comparar a nova carta com todas as cartas na sua mão até encontrar sua posição correta. Você insere a nova carta na posição correta, e, novamente, a sua mão é composta de cartas totalmente ordenadas. Então, você recebe outra carta e repete o mesmo procedimento. Então outra carta, e outra, e assim em diante, até não receber mais cartas. Esta é a ideia por trás da ordenação por inserção. Percorra as posições do vetor (array), começando com o índice 1 (um). Cada nova posição é como a nova carta que você recebeu, e você precisa inseri-la no lugar correto no sub-vetor ordenado à esquerda daquela posição. Vamos ver a implementação na linguagem C agora? Observe o seguinte código, no qual temos um vetor de inteiros com os elementos {4, 6, 2, 8, 1, 9, 3, 0, 11}: #include <stdio.h> #include <stdlib.h> // função que permite ordenar um vetor de inteiros // usando a ordenação Insertion Sort void insertionSort(int vetor[], int tam){ int i, temp, j; // este laço varre os elementos a partir do segundo // elemento, ou seja, o índice 1 for(i = 1; i < tam; i++){ // guardamos o elemento atual em temp temp = vetor[i]; for(j = i; ((j > 0) && (vetor[j - 1] > temp)); j--){ vetor[j] = vetor[j - 1]; // houve uma troca } vetor[j] = temp; // colocamos temp em seu devido lugar } } int main(int argc, char *argv[]){ int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11}; int i, tamanho = 9; // imprime a matriz sem a ordenação puts("Sem ordenação:\n"); for(i = 0; i < 9; i++){ printf("%d ", valores[i]); } // vamos ordenar a matriz insertionSort(valores, tamanho); // imprime a matriz ordenada puts("\n\nOrdenada usando Insertion Sort:\n"); for(i = 0; i < 9; i++){ printf("%d ", valores[i]); } printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: Sem ordenação: 4 6 2 8 1 9 3 0 11 Ordenada usando Insertion Sort: 0 1 2 3 4 6 8 9 11 |
AutoCAD ::: Dicas & Truques ::: Configurações da Área de Desenho |
Como definir os limites da área de desenho do AutoCAD usando o comando LIMITSQuantidade de visualizações: 1033 vezes |
Quando estamos criando um novo desenho no AutoCAD, muitas vezes usando os arquivos de template acad.dwt (medidas imperiais) ou acadiso.dwt (medidas métricas), nos deparamos com uma área de desenho gigantesca, com medidas enormes. Assim, é sempre uma boa idéia delimitarmos a área de desenho, e isso é feito por meio do comando LIMITS. Este comando, quando acionado, nos pede duas coordenadas: Lower Left e Upper Right. Veja a figura: ![]() Dessa forma, Lower Left define os limites para o canto esquerdo inferior e Upper Right define os limites para o canto superior direito. Quando acionamos o comando LIMITS (ligado: ON), não conseguimos sair desses limites, o que pode ser uma comodidade, pois podemos nos concentrar em pequenos porções de um desenho de grandes proporções. Vamos então aprender a usar o comando LIMITS do AutoCAD? Comece criando um novo desenho (usando ou não os templates mencionados acima) e digite os comandos a seguir: LIMITS [Enter] Specify lower left corner or [ON/OFF] <0.0000,0.0000>: 0,0 Specify upper right corner <420.0000,297.0000>: 100,80 Tenha a certeza de inserir as coordenadas separadas por vírgulas e acionar a opção ON para ativar os limites. No final, digite o comando ZOOM ALL para aproximar a área de desenho dentro dos limites recém-definidos. Agora, sempre que digitarmos coordenadas fora desses limites, o AutoCAD nos avisará que os valores são inválidos e os rejeitará. Para desligar os limites, basta chamar LIMITS novamente e informar o valor OFF. |
JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Adicionando três elementos ao final de um vetor em JavaScript usando o método push() do objeto Array - Como adicionar elementos ao final de um vetor usando JavaScript - RevisadoQuantidade de visualizações: 7276 vezes |
Neste dica mostrarei como usar o método push() do objeto Array da linguagem JavaScript para adicionar três elementos ao final de um vetor. Veja o código completo, incluindo a página HTML que permite executar o exemplo:<html> <head> <meta charset="utf-8"> <title>Estudos JavaScript</title> </head> <body> <script type="text/javascript"> // vamos declarar e instanciar um vetor com 5 elementos var valores = new Array(1, 2, 3, 4, 5); document.write("Valores no vetor: " + valores + "<br>"); // agora vamos adicionar mais três elementos valores.push(6, 7, 8); document.write("Valores no vetor: " + valores); </script> </body> </html> Ao abrir esta página HTML nós teremos o seguinte resultado: Valores no vetor: 1,2,3,4,5 Valores no vetor: 1,2,3,4,5,6,7,8 |
Java ::: Java para Engenharia ::: Hidrologia e Hidráulica |
Como calcular o volume de chuvas em Java - Fórmula do cálculo do volume de chuvas em JavaQuantidade de visualizações: 411 vezes |
O estudo da Hidrologia passa, necessariamente, pelo cálculo do volume de chuvas em uma determinada região, ou bacia hidrológica. Assim, é comum ouvirmos alguém dizer que, em um determinado local, choveu 100 mm durante um determinado período. Mas o que isso significa? O mês mais chuvoso em Goiânia é dezembro, com média de 229 milímetros de precipitação de chuva. Isso significa que, em uma área de 1 m2, a lâmina de água formada pela chuva que cai apresenta uma altura de 229 milímetros. Como sabemos que o volume é a área multiplicada pela altura, tudo que temos a fazer é considerar a área de 1 m2 multiplicada pela altura da lâmina de água (convertida também para metros). Veja a fórmula: \[\text{Volume} = \text{(Área da Base) x Altura}\] Lembre-se de que volume pode ser retornado em litros, ou seja, 1 m3 = 1000 litros. Veja agora o código Java completo que pede para o usuário informar a precipitação da chuva, ou seja, a altura da lâmina de água em milímetros e retorna o volume de água em litros. package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar a altura da lâmina // de água em milímetros System.out.print("Altura da lâmina de água em milímetros: "); double altura_lamina = Double.parseDouble(entrada.nextLine()); // o primeiro passo é converter os milímetros da lâmina de água // para metros altura_lamina = altura_lamina / 1000.00; // agora que já temos a altura da lâmina em metros, vamos multiplicar // pela base (1 metro quadrado) para obtermos o volume da chuva por // metro quadrado double volume_chuva = (altura_lamina * 1.00) * 1000.00; // vamos mostrar o resultado System.out.println("O volume da chuva é: " + volume_chuva + " litros para cada metro quadrado"); } } Ao executar este código Java nós teremos o seguinte resultado: Altura da lâmina de água em milímetros: 229 O volume da chuva é: 229.0 litros para cada metro quadrado Qual é o volume de 1 mm de chuva? A altura pluviométrica é a espessura da lâmina d'água precipitada que cobre a região atingida pela chuva. Geralmente a unidade de medição é o milímetro (mm) porque o aparelho que mede a chuva, o pluviômetro, é lido em milímetros. O pluviômetro é um aparelho meteorológico destinado a medir, em milímetros, a altura da lâmina de água gerada pela chuva que caiu numa área de 1 m2. 1 mm de chuva equivale a 1 litro de água, ou 1 dm3, considerando a área de 1 m2. |
JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como somar os elementos de um array em JavaScript usando a função reduce()Quantidade de visualizações: 571 vezes |
Nesta dica mostrarei como podemos usar a função reduce() do JavaScript para somar todos os elementos de um vetor de inteiros. Lembre-se de que a função reduce() foi introduzida no ECMAScript5 (ES5), também chamado de JavaScript 2009. Veja a página HTML completa para o exemplo: <!doctype html> <html> <head> <title>Estudos JavaScript</title> </head> <body> <script type="text/javascript"> // vamos criar um vetor de inteiros var valores = new Array(7, 2, 1, 3, 5); document.write("Valores do array: " + valores + "<br>"); // agora vamos usar a função para somar // os elementos do vetor var res = valores.reduce((soma, valor) => soma + valor, 0); document.write("A soma dos elementos é: " + res); </script> </body> </html> Ao executar este código JavaScript nós teremos o seguinte resultado: Valores do array: 7,2,1,3,5 A soma dos elementos é: 18 Neste exemplo eu coloquei a função que será executada para cada elemento do array diretamente dentro do corpo da função reduce(). Podemos também colocar esta função do lado de fora. Veja: <script type="text/javascript"> // função que será chamada pela função reduce() function somar_elementos(soma, valor) { return soma + valor; } // vamos criar um vetor de inteiros var valores = new Array(7, 2, 1, 3, 5); document.write("Valores do array: " + valores + "<br>"); // agora vamos usar a função para somar // os elementos do vetor var res = valores.reduce(somar_elementos, 0); document.write("A soma dos elementos é: " + res); </script> |
Nossas 20 dicas & truques de programação mais populares |
Java - Como converter Coordenadas Cartesianas para Coordenadas Polares usando Java - Java para Engenharia |
Você também poderá gostar das dicas e truques de programação abaixo |
AutoCAD Civil 3D - Como criar pontos COGO no AutoCAD Civil 3D |
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 |