![]() |
|||||
|
PHP ::: Dicas & Truques ::: Data e Hora |
Datas e horas em PHP - Como obter o timestamp do primeiro dia do mês e ano informadosQuantidade de visualizações: 79 vezes |
Nesta dica eu mostrarei como é possível obter o timestamp do primeiro dia de um determinado mês e ano. O "Unix timestamp" contém o número de segundos entre a "Unix Epoch" (1 de janeiro de 1970, às 00:00:00 GMT) e o tempo decorrido desde então. Veja o código PHP completo para o exemplo: <html> <head> <title>Estudando PHP</title> </head> <body> <?php $mes = 1; // 1 = janeiro; $ano = 2021; $primeiro_dia = mktime(0, 0, 0, $mes, 1, $ano); echo "O timestamp do primeiro dia do mês e ano informado é: " . $primeiro_dia; ?> </body> </html> Ao executar este código nós teremos o seguinte resultado O timestamp do primeiro dia do mês e ano informado é: 1609455600 |
Dart ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular o ponto de interseção de duas retas em Dart - Geometria Analítica e Álgebra Linear em DartQuantidade de visualizações: 1821 vezes |
Duas retas podem encontrar-se em 0, 1 ou 2 pontos. No primeiro caso, elas são chamadas paralelas; no segundo, elas são chamadas concorrentes e o ponto de encontro entre elas é chamado ponto de interseção; no terceiro caso, se duas retas possuem dois pontos em comum, então elas obrigatoriamente apresentam todos os pontos em comum e são chamadas coincidentes. Nesta dica mostrarei como podemos encontrar o ponto de interseção (ou intersecção) de duas retas usando Dart. Mas, antes de vermos o código, dê uma olhada na seguinte imagem: ![]() Note que temos os pontos A e B correspondentes ao segmento de reta AB e os pontos C e D correspondentes ao segmento de reta CD. Nossa tarefa é encontrar o ponto exato de intersecção entre esses dois segmentos de reta. Veja o código Dart completo que nos auxilia na resolução deste problema: // Vamos importar a biblioteca dart:io import "dart:io"; // Classe usada para representar um ponto no // plano 2d (Plano Cartesiano) class Ponto{ double x, y; // construtor da classe Ponto(double x, double y){ this.x = x; this.y = y; } } void main(){ // vamos construir os quatro pontos Ponto A = new Ponto(5, 7); Ponto B = new Ponto(9, -4); Ponto C = new Ponto(-8, 2); Ponto D = new Ponto(11, 6); // vamos obter a representação do segmento AB double a1 = B.y - A.y; double b1 = A.x - B.x; double c1 = (a1 * A.x) + (b1 * A.y); // vamos obter a representação do segmento CD double a2 = D.y - C.y; double b2 = C.x - D.x; double c2 = (a2 * C.x) + (b2 * C.y); // obtém o determinante double determinante = (a1 * b2) - (a2 * b1); // as duas retas são paralelas? if(determinante == 0){ print("\nAs duas retas são paralelas.\n"); } else{ // e construímos o ponto de intersecção double x = ((b2 * c1) - (b1 * c2)) / determinante; double y = ((a1 * c2) - (a2 * c1)) / determinante; Ponto inters = new Ponto(x, y); print("O ponto de interseção é: " + "x = ${x.toStringAsFixed(2)}; y = ${y.toStringAsFixed(2)}"); } } Ao executar este código Dart nós teremos o seguinte resultado: O ponto de interseção é: x = 5,76; y = 4,90 De fato, se você olhar a imagem novamente e desenhar este ponto, verá que ele se situa exatamente na intersecção das retas indicadas. |
Java ::: Java + MySQL ::: Passos Iniciais |
Java MySQL - Como efetuar uma conexão Java + JDBC + MySQL usando o NetBeans IDEQuantidade de visualizações: 8369 vezes |
Se sua intenção é usar a linguagem Java em combinação com o banco de dados MySQL, o primeiro passo é aprender como se conectar a este banco de dados usando JDBC (Java Database Connectivity). Para isso, siga atentamente os passos abaixo: a) Pesquise e baixe o driver Sun Microsystem's JDBC Driver for MySQL. A versão mais recente deste driver é chamada de MySQL Connector/J e pode ser baixada no endereço http://dev.mysql.com/downloads. Durante a autoria deste artigo, o nome do arquivo a ser baixado era semelhante à mysql-connector-java-5.1.10.zip. b) Depois de descompactar o arquivo baixado, adicione uma referência para o Jar mysql-connector-java-5.1.10-bin.jar. Se você estiver usando NetBeans, crie uma nova aplicação. Em seguida clique com o botão direito em Bibliotecas -> Adicionar Jar/pasta e localize o jar. Em seguida clique o botão Open. c) Hora de efetuar uma conexão com o banco de dados. Para este exemplo eu fiz uma conexão com o MySQL 5.0 (o nome da base de dados que usei foi "estudos"). Veja o código: package estudosjavamysql; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class EstudosJavaMySQL{ public static void main(String[] args){ // strings de conexão String databaseURL = "jdbc:mysql://localhost/estudos"; String usuario = "root"; String senha = "osmar1234"; String driverName = "com.mysql.jdbc.Driver"; try { Class.forName(driverName).newInstance(); Connection conn = DriverManager.getConnection(databaseURL, usuario, senha); System.out.println("Conexão obtida com sucesso."); } catch (SQLException ex) { System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } catch (Exception e) { System.out.println("Problemas ao tentar conectar com o banco de dados: " + e); } } } Execute a aplicação. Se tudo correu bem você verá o resultado: Conexão obtida com sucesso. |
C++ ::: Dicas & Truques ::: Strings e Caracteres |
Como retornar o tamanho de uma string em C++ usando a função size()Quantidade de visualizações: 8159 vezes |
Nesta dica mostrarei como podemos obter a quantidade de caracteres de uma string em C++ usando a função size() da classe string. Esta função não exige nenhum argumento e retorna um número inteiro contendo a quantidade de caracteres na string. Veja o código C++ completo para o exemplo: #include <string> #include <iostream> using namespace std; // função principal do programa C++ int main(int argc, char *argv[]){ // vamos declarar um objeto string string frase = "Gosto de C++"; // vamos obter o tamanho da string size_t tamanho = frase.size(); // e mostramos o resultado cout << "A frase possui " << tamanho << " caracteres."; cout << "\n" << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executarmos este código C++ nós teremos o seguinte resultado: A frase possui 12 caracteres. |
PHP ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o comprimento da hipotenusa em PHP dadas as medidas do cateto oposto e do cateto adjascenteQuantidade de visualizações: 1641 vezes |
Nesta dica mostrarei como é possível usar a linguagem PHP para retornar o comprimento da hipotenusa dadas as medidas do cateto oposto e do cateto adjascente. Vamos começar analisando a imagem a seguir:![]() Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras): \[c^2 = a^2 + b^2\] Tudo que temos a fazer a converter esta fórmula para código PHP. Veja: <?php $a = 20; // medida do cateto oposto $b = 30; // medida do cateto adjascente // agora vamos calcular o comprimento da hipotenusa $c = sqrt(pow($a, 2) + pow($b, 2)); // e mostramos o resultado echo "O comprimento da hipotenusa é: " . $c; ?> Ao executar este código PHP nós teremos o seguinte resultado: O comprimento da hipotenusa é: 36.05551275464 Como podemos ver, o resultado retornado com o código PHP confere com os valores da imagem apresentada. |
MySQL ::: Dicas & Truques ::: Tipos de Dados |
Como usar o tipo de dados TINYINT do MySQLQuantidade de visualizações: 21196 vezes |
O tipo de dados TINYINT do MySQL é usado quando precisamos armazenar valores inteiros que se encaixem na faixa de -128 a 127. Este tipo ocupa 1 byte de espaço (8 bits). Veja um trecho de código no qual criamos uma tabela MySQL chamada produtos contendo três campos: CREATE TABLE produtos( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, categoria TINYINT UNSIGNED NOT NULL, nome` VARCHAR(45) NOT NULL, PRIMARY KEY(id) ) ENGINE = InnoDB; Aqui nós usamos o tipo TINYINT para a categoria do produto. Isso quer dizer que poderemos ter no máximo 127 categorias diferentes no sistema. Mas, note o uso do modificador UNSIGNED após o nome do tipo de dados. Este modificador faz com que o valor seja somente positivo, o que altera a faixa de valores positivos para 0 até 255. Valores negativos não serão permitidos. Veja agora uma instrução SQL INSERT que insere um novo produto na tabela recém-criada: INSERT INTO produtos VALUES(null, 23, 'CAMISETA REGATA AX'); Se o valor fornecido para a categoria estiver fora da faixa permitida para um TINYINT você verá a seguinte mensagem de erro: Out of range value adjusted for column 'categoria' at row 1 (Erro: 1264) Vamos verificar o comportamento deste tipo de dados em uma função MySQL? Veja o código que cria uma função somar(): DELIMITER $$ DROP FUNCTION IF EXISTS somar $$ CREATE FUNCTION somar(a TINYINT, b TINYINT) RETURNS TINYINT BEGIN RETURN a + b; END $$ DELIMITER ; Veja que os parâmetros e o retorno da função são do tipo TINYINT. Eis uma demonstração de como chamá-la: SELECT somar(4, 3) AS soma; Experimente fornecer valores que, quando somados, excedam a capacidade de um TINYINT e observe o comportamento da função. Para finalizar, note que é comum informarmos o tipo TINYINT com um valor inteiro em parênteses, por exemplo, TINYINT(2). Este número nos parênteses não interfere em nada nos valores a serem armazenados. Ele é usado para controlar a largura do campo na exibição do valor nos resultados de uma query SELECT ou como um lembrete da quantidade de dígitos a serem usados no campo. |
PHP ::: Dicas & Truques ::: Strings e Caracteres |
Como remover espaços no início e no fim de uma string PHP usando a função trim()Quantidade de visualizações: 126 vezes |
The trim() function removes whitespaces and other predefined characters from both sides of a string. A função trim() do PHP é muito útil quando precisamos excluir os espaços antes e depois de uma palavra, frase ou texto. Veja um exemplo de seu uso: <?php // uma frase contendo espaços no início e // no final $frase = " PHP? Eu gosto de PHP. "; // vamos remover os espaços no início e no fim $frase = trim($frase); // e mostramos o resultado echo "A frase é: " . $frase; ?> Além dos espaços, a função trim() do PHP remove também os seguintes caracteres: "\0" (NULL), "\t" (Tabulação), "\n" (Nova linha), "\x0B" (Tabulação vertical), "\r" (Retorno para nova linha). |
Delphi ::: Dicas & Truques ::: Arquivos e Diretórios |
Como verificar se um arquivo existe usando a função FileExists() da unit SysUtils do DelphiQuantidade de visualizações: 19997 vezes |
Quando estamos trabalhando com arquivos, é sempre uma boa idéia checar se um arquivo já existe antes de permitir que nosso código tente criar outro arquivo com o mesmo nome. Em Delphi a existência de um arquivo pode ser verificada por meio do uso da função FileExists(), na unit SysUtils. Esta função recebe o caminho e nome do arquivo e retorna true se ele existir, e false caso contrário. Veja um trecho de código no qual testamos se um determinado aqui já existe no sistema: procedure TForm1.Button1Click(Sender: TObject); var arquivo: string; begin // diretorio e nome do arquivo arquivo := 'C:\arquivo de codigos\dados.txt'; // vamos verificar se o arquivo existe no caminho especificado if FileExists(arquivo) then ShowMessage('O arquivo existe') else ShowMessage('O arquivo NÃO existe'); end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
C ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular juros compostos e montante usando CQuantidade de visualizações: 12116 vezes |
O regime de juros compostos é o mais comum no sistema financeiro e portanto, o mais útil para cálculos de problemas do dia-a-dia. Os juros gerados a cada período são incorporados ao principal para o cálculo dos juros do período seguinte. Chamamos de capitalização o momento em que os juros são incorporados ao principal. Após três meses de capitalização, temos: 1º mês: M = P .(1 + i) 2º mês: o principal é igual ao montante do mês anterior: M = P x (1 + i) x (1 + i) 3º mês: o principal é igual ao montante do mês anterior: M = P x (1 + i) x (1 + i) x (1 + i) Simplificando, obtemos a fórmula: M = P . (1 + i)^n Importante: a taxa i tem que ser expressa na mesma medida de tempo de n, ou seja, taxa de juros ao mês para n meses. Para calcularmos apenas os juros basta diminuir o principal do montante ao final do período: J = M - P Vejamos um exemplo: Considerando que uma pessoa empresta a outra a quantia de R$ 2.000,00, a juros compostos, pelo prazo de 3 meses, à taxa de 3% ao mês. Quanto deverá ser pago de juros? Veja o código C para a resolução: #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]) { float principal = 2000.00; float taxa = 0.03; // 3% int meses = 3; float montante = principal * pow((1 + taxa), meses); float juros = montante - principal; printf("O total de juros a ser pago é: %f\n", juros); printf("O montante a ser pago é: %f", montante); printf("\n\n"); system("pause"); return 0; } Um outra aplicação interessante é mostrar mês a mês a evolução dos juros. Veja o código a seguir: #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]) { float principal = 2000.00; float taxa = 0.03; // 3% int meses = 3; float anterior = 0.0; float montante; float juros; for(int i = 1; i <= meses; i++){ montante = principal * pow((1 + taxa), i); juros = montante - principal - anterior; anterior += juros; printf("Mês: %d - Montante: %f - Juros %f\n", i, montante, juros); } printf("\n\n"); system("pause"); return 0; } |
Java ::: Pacote java.lang ::: String |
Como comparar strings em Java usando os métodos compareTo() e compareToIgnoreCase() da classe StringQuantidade de visualizações: 8945 vezes |
Em algumas situações precisamos efetuar comparação léxica de strings, ou seja, verificar se uma palavra ou frase é "igual, ""maior" ou "menor" que outra. Isso pode ser feito por meio do uso dos métodos compareTo() e compareToIgnoreCase() da classe String (definidos originalmente na interface Comparable<String>). Veja a assinatura do método compareTo(): public int compareTo(String anotherString) O retorno do método é 0 se a duas strings são iguais. O retorno será menor que 0 se a string na qual o método está sendo chamado for menor que a string passada como argumento. O retorno será maior que 0 se a string na qual o método está sendo chamado for maior que a string passada como argumento. Veja um exemplo de comparação léxica de duas strings: public class Main { public static void main(String[] args) { // vamos declarar duas strings String nome1 = "Márcio"; String nome2 = "Márcia"; // vamos comparar as duas strings lexicamente if(nome1.compareTo(nome2) == 0){ System.out.println("As strings são iguais"); } else if(nome1.compareTo(nome2) > 0){ System.out.println("A primeira string é maior que a segunda"); } else{ System.out.println("A primeira string é menor que a segunda"); } } } Ao executarmos este código teremos o seguinte resultado: A primeira string é maior que a segunda A funcionalidade fornecida pelo método compareToIgnoreCase() é semelhante à aquela do método compareTo(). A diferenção é que, quando usamos compareToIgnoreCase(), o método não diferencia letras maiúsculas de letras minúsculas. A comparação efetuada pelos métodos compareTo() e compareToIgnoreCase() é baseada no valor Unicode de cada caractere na string. A sequencia de caracteres representada pelo objeto String é comparada lexicamente com a sequencia de caracteres representada pela string fornecida como argumento. |
Nossas 20 dicas & truques de programação mais populares |
C++ Builder - Como obter a quantidade de caracteres em um TEdit usando a função GetTextLen() do C++ Builder |
Você também poderá gostar das dicas e truques de programação abaixo |
Java - Como inserir uma substring em uma string em Java usando o método insert() da classe StringBuffer JavaScript - Como testar se uma string termina com uma determinada substring em JavaScript usando a função endsWith() JavaScript - Como calcular o coeficiente angular de uma reta em JavaScript dados dois pontos no plano cartesiano Delphi - Como calcular MDC em Delphi JavaScript - JavaScript Avançado - Como escrever uma função JavaScript que aceita um número variável de argumentos |
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 |