![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
PHP ::: Dicas & Truques ::: Variáveis e Constantes |
Como testar se uma variável ou constante é do tipo integer - Como usar as funções is_int() e is_integer() do PHPQuantidade de visualizações: 9654 vezes |
Em algumas situações precisamos verificar se uma determinada ou constante é do tipo integer, ou seja, possui um valor inteiro, sem casas decimais. Isso pode ser feito por meio das funções is_int() e is_integer(). Elas retornam um valor true se o arguemento for um inteiro e false em caso contrário. Veja um exemplo completo de como usá-las: <?php /* Em algumas situações podemos querer saber se o tipo de uma variável é integer, ou seja, contém um valor inteiro (sem casas decimais). Este teste pode ser feito com o auxílio da função is_int() ou is_integer(). Esta função retorna um valor true ou false dependendendo do tipo de variável sendo testada. */ $valor = 10; if(is_int($valor)){ echo 'A variável $valor é do tipo integer'; } ?> Ao executarmos este código nós teremos o seguinte resultado: A variável $valor é do tipo integer Esta dica foi revisada, atualizada e testada com o PHP 8. |
CSS ::: Dicas & Truques ::: Barras de Navegação, Menus e Dropdowns |
Como criar uma barra de menus na horizontal usando CSS e o valor inline-block para a propriedade displayQuantidade de visualizações: 578 vezes |
Nesta dica mostrarei como podemos criar uma barra de menus horizontal usando CSS. Para isso cada item de menu será um elemento <li>, contidos dentro de um elemento <ul>. O truque é definir o valor inline-block para a propriedade display de cada elemento <li>. Veja a página HTML e CSS completa para o exemplo: <!doctype html> <html> <head> <title>Estudos CSS</title> <style> #menu{ background-color: #eeeeee; list-style-type: none; text-align: center; margin: 0; padding: 0; } #menu li { display: inline-block; font-size: 20px; padding: 20px; text-decoration: none; } #menu li a{ text-decoration: none; } </style> </head> <body> <h1>Exemplo de Barra de Menu Horizontal</h1> <p>Veja como podemos usar o valor inline-block para a propriedade display do CSS para criar uma barra de menu na horizontal</p> <ul id="menu"> <li><a href="index.php">Início</a></li> <li><a href="servicos.php">Serviços</a></li> <li><a href="produtos.php">Produtos</a></li> <li><a href="contatos.php">Contatos</a></li> </ul> </body> </html> |
C ::: C para Engenharia ::: Física - Mecânica |
Como calcular Velocidade Vetorial Média usando a linguagem C - C para Engenharia - Física - Mecânica - CinemáticaQuantidade de visualizações: 3069 vezes |
Como calcular Velocidade Vetorial Média usando a linguagem C Na Física, mais especificamente na Mecânica e Cinemática, nós estamos o tempo todo interessados em medir a "rapidez" com que uma partícula se move de um ponto para outro ponto. Por partícula podemos entender qualquer móvel: um carro, um avião, uma bola, uma pessoa, etc. No caso de um movimento bidimensional ou tridimensional nós devemos considerar a grandeza velocidade média como vetores e usar a notação vetorial. Em outras dicas do site você encontrará cálculos envolvendo vetores e até mesmo calculadoras com as operações vetoriais mais comuns. Dessa forma, a fórmula para obtenção da Velocidade Vetorial Média é: \[\vec{v}_\text{méd} = \frac{\Delta \vec{r}}{\Delta t} \] Onde __$\Delta \vec{r}__$ é a variação da posição da partícula e __$\Delta t__$ é a variação do tempo entre os dois deslocamentos cuja velocidade vetorial média querermos medir. Antes de vermos o código C, dê uma boa olhada na imagem a seguir: ![]() Nosso objetivo será calcular a velocidade vetorial média da partícula saindo da posição __$\vec{r}_1__$ = 10__$\hat{\imath}__$ + 7__$\hat{\jmath}__$ m (10, 7), no instante t1 = 2s, e indo para a posição __$\vec{r}_2__$ = 12__$\hat{\imath}__$ + 2__$\hat{\jmath}__$ m (12, 2) em t2 = 7s. Note que o trajeto da partícula foi marcado de verde na imagem. E agora, finalmente, vamos ao código C que lê os valores das coordenadas x e y dos dois vetores de posições (inicial e final), o tempo de deslocamento inicial e final e mostra o vetor velocidade média: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]){ // coordenadas dos dois vetores de posições float x1, y1, x2, y2; // guarda o vetor delta r (variação do deslocamento) float delta_r_x, delta_r_y; // guarda o tempo inicial, tempo final e variacao (em segundos) float tempo_inicial, tempo_final, delta_t; // guarda as coordenadas do vetor velocidade float vetor_vm_x, vetor_vm_y; // x e y do primeiro vetor printf("Coordenada x do primeiro vetor: "); scanf("%f", &x1); printf("Coordenada y do primeiro vetor: "); scanf("%f", &y1); // x e y do segundo vetor printf("Coordenada x do segundo vetor: "); scanf("%f", &x2); printf("Coordenada y do segundo vetor: "); scanf("%f", &y2); // vamos ler o tempo inicial e tempo final printf("Tempo inicial em segundos: "); scanf("%f", &tempo_inicial); printf("Tempo final em segundos: "); scanf("%f", &tempo_final); // vamos calcular o vetor delta r delta_r_x = x2 - x1; delta_r_y = y2 - y1; // vamos calcular o delta t (variação do tempo) delta_t = tempo_final - tempo_inicial; // finalmente calculamos o vetor velocidade média vetor_vm_x = delta_r_x / delta_t; vetor_vm_y = delta_r_y / delta_t; // mostramos o resultado printf("O Vetor Velocidade Média é: (%.2f, %.2f)m/s", vetor_vm_x, vetor_vm_y); printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: Coordenada x do primeiro vetor: 10 Coordenada y do primeiro vetor: 7 Coordenada x do segundo vetor: 12 Coordenada y do segundo vetor: 2 Tempo inicial em segundos: 2 Tempo final em segundos: 7 O Vetor Velocidade Média é: (0.40, -1.00)m/s Pressione qualquer tecla para continuar. . . Note que aqui nós estamos usando vetores do R2, mas o processo é o mesmo para vetores do R3. |
C# ::: Threads ::: Thread |
Como usar a classe Thread para criar threads em seus programas C#Quantidade de visualizações: 12110 vezes |
A classe Thread permite criar e controlar uma thread, além de definir sua prioridade e obter seu status. Veja a posição desta classe na hierarquia de classes da plataforma .NET:System.Object System.Runtime.ConstrainedExecution.CriticalFinalizerObject System.Threading.Thread Um processo pode criar uma ou mais threads para executar parte do código do programa associado a tal processo. Usamos um delegate ThreadStart ou um delegate ParameterizedThreadStart para especificar o código do programa que será executado pela thread. O delegate ParameterizedThreadStart nos permite passar dados para as funções a serem executadas pela thread. Durante seu ciclo de vida, uma thread está sempre em um ou mais dos estados definidos pela enumeração ThreadState. Um nível de prioridade de agendamento, como definido na enumeração ThreadPriority, pode ser requisitado para a thread, mas, este comportamento nem sempre é garantido pelo sistema operacional. O método GetHashCode() fornece identificação para threads gerenciadas. Durante o ciclo de vida de uma thread, seu código de identificação não colidirá com os códigos das demais threads, independente do domínio da aplicação a partir do qual obtemos tal valor. Veja um trecho de código no qual criamos uma thread e a agendamos para execução paralela com a thread principal da aplicação. Note como os valores dos dois laços são exibidos de forma compartilhada pelas duas threads, ou seja, um thread exibe alguns valores e pára, para permitir que a outra faça parte do seu trabalho: class Program{ static void Main(string[] args){ // using using System.Threading; // vamos criar uma nova instância da clase Thread // e fornecer o método que será executado Thread thread = new Thread(contar); // vamos agendar a thread para futura execução thread.Start(); // agora vamos contar na thread principal for (int i = 0; i <= 20; i++){ Console.Write("#" + Thread.CurrentThread.GetHashCode() + ": " + i + ", "); } Console.Write("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } // método que será chamado pela thread static void contar(){ for (int i = 0; i <= 20; i++){ Console.Write("#" + Thread.CurrentThread.GetHashCode() + ": " + i + ", "); } } } Aqui eu usei a sintáxe de criação de objetos da classe Thread que cria uma instância de ThreadStart nos bastidores, ou seja, forneci apenas o método a ser executado pela nova thread. Note também que uma chamada ao método Start() da thread não faz com que a thread seja executada imediatamente. Este método apenas torna a thread elegível para execução, ou seja, no estado "pronta" (Running). É o sistema operacional que determina quando a mesma será executada. |
Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como usar construtores em Ruby - Programação Orientada a Objetos em RubyQuantidade de visualizações: 10483 vezes |
Os métodos construtores são recursos muito importantes na construção de objetos de um classe, uma vez que estes permitem inicializar as variáveis de instância do objeto sendo construído. Dessa forma, na programação orientada a objetos, o método construtor tem por finalidade instanciar um novo objeto e já fornecer (ou não) os valores iniciais para as suas variáveis de instância. Em Ruby, o construtor de uma classe é definido com o uso da palavra-chave initialize. Veja um exemplo: # Definição da classe Cliente class Cliente # construtor da classe def initialize(nome, idade) @nome = nome @idade = idade end # método que permite retornar o nome do cliente def obter_nome @nome end # método que permite retornar a idade do cliente def obter_idade @idade end end # Cria uma instância da classe Cliente e inicializa as # variáveis de instância @nome e @idade cliente = Cliente.new("Osmar J. Silva", 35) # Efetua uma chamada ao método obter_nome puts "O nome do cliente é: " + cliente.obter_nome Ao executar este código Ruby nós teremos o seguinte resultado: O nome do cliente é: Osmar J. Silva |
C ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como pesquisar um valor em um vetor de inteiros em CQuantidade de visualizações: 9506 vezes |
Em algumas situações precisamos verificar se um determinado valor está contido em uma matriz de inteiros em C. Nesta dica eu mostro como isso pode ser feito usando a pesquisa ou busca linear. Veja o código completo comentado:#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // vamos declarar e inicializar uma matriz de cinco inteiros int valores[] = {3, 8, 2, 1, 4}; int encontrei = 0; // vamos inicializar encontrei como falso int i; // variável de controle do laço int valor = 2; // valor a ser pesquisado // vamos percorrer os elementos da matriz e verificar se o valor // informado está contido na mesma for(i = 0; i < 5; i++){ // o valor pesquisado é igual ao valor do elemento atual? if(valores[i] == valor){ encontrei = 1; // encontrei agora é verdadeiro break; // vamos sair do laço } } // vamos mostrar o resultado if(encontrei) printf("O valor pesquisado esta contido na matriz"); else printf("O valor pesquisado NAO esta contido na matriz"); printf("\n\n"); system("pause"); return 0; } Ao executar este trecho de código teremos o seguinte resultado: O valor pesquisado está contido na matriz. |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como escrever uma função concat() que reproduz a funcionalidade da função strcat() da linguagem CQuantidade de visualizações: 11774 vezes |
O C (C99, ANSI C) contém uma função strcat(), no header string.h, que permite concatenar duas strings. Para fins de estudo, segue abaixo o código completo para uma função concat(), que recebe duas strings, anexa a segunda à primeira e retorna um ponteiro para uma string contendo ambas:// uma função concat char *concat(char *destino, const char *origem) { // um ponteiro para a string de destino char *original = destino; // vai para o final da string de destino while(*original) original++; // anexa a string de origem while(*original++ = *origem++) ; // retorna o resultado return destino; } Veja como usar no trecho de código abaixo: #include <stdio.h> #include <stdlib.h> // uma função concat char *concat(char *destino, const char *origem) { // um ponteiro para a string de destino char *original = destino; // vai para o final da string de destino while(*original) original++; // anexa a string de origem while(*original++ = *origem++) ; // retorna o resultado return destino; } int main(int argc, char *argv[]) { char frase1[100] = "Gosto"; char frase2[20] = " muito de C e Java."; char *resultado = concat(frase1, frase2); // exibe o resultado printf("%s", resultado); printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: Gosto muito de C e Java. |
Delphi ::: Dicas & Truques ::: Data e Hora |
Como retornar a hora atual em Delphi usando as funções Time(), GetTime() e TimeToStr()Quantidade de visualizações: 19630 vezes |
Como retornar a hora atual em Delphi usando as funções Time(), GetTime() e TimeToStr() Em algumas situações precisamos obter a hora atual (apenas a hora, desconsiderando a data) do sistema. Em Delphi isso pode ser feito com o auxílio da função Time(), presente na unit SysUtils. Esta função não requer nenhum argumento e retorna a hora atual como um TDateTime. Veja o exemplo: procedure TForm1.Button1Click(Sender: TObject); var hora: TDateTime; begin // vamos obter a hora atual hora := Time(); // podemos também usar a função GetTime() //hora := GetTime(); // vamos exibir o resultado ShowMessage(TimeToStr(hora)); end; Ao executar este código Delphi nós teremos o seguinte resultado: 15:17:17 Note que podemos também obter a hora atual (sem a data) usando a função GetTime(), também na unit SysUtils. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
JavaScript ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular juros simples e montante usando JavaScriptQuantidade de visualizações: 16882 vezes |
O regime de juros será simples quando o percentual de juros incidir apenas sobre o valor principal. Sobre os juros gerados a cada período não incidirão novos juros. Valor Principal ou simplesmente principal é o valor inicial emprestado ou aplicado, antes de somarmos os juros. Transformando em fórmula temos: J = P . i . n Onde: J = juros P = principal (capital) i = taxa de juros n = número de períodos Imaginemos uma dívida de R$ 2.000,00 que deverá ser paga com juros de 5% a.m. pelo regime de juros simples e o prazo para o pagamento é de 2 meses. O cálculo em JavaScript pode ser feito assim: <script type="text/javascript"> var principal = 2000.00; var taxa = 0.08; var meses = 2; var juros = principal * taxa * meses; document.write("O total de juros a ser pago é: " + juros); </script> O montante da dívida pode ser obtido das seguintes formas: a) Montante = Principal + Juros b) Montante = Principal + (Principal x Taxa de juros x Número de períodos) M = P . (1 + (i . n)) Veja o código: <script type="text/javascript"> var principal = 2000.00; var taxa = 0.08; var meses = 2; var juros = principal * taxa * meses; var montante = principal + juros; document.write("O total de juros a ser pago é: " + juros + "<br>"); document.write("O montante da dívida é: " + montante); </script> |
C# ::: Dicas & Truques ::: Sistema |
Como retornar a capacidade do HD em MB ou GB em C# usando um objeto ManagementObjectQuantidade de visualizações: 9013 vezes |
Nesta dica mostrarei como podemos usar um objeto ManagementObject para retornar o tamanho de um HD em MB ou GB usando a linguagem C#. No exemplo eu acessei o drive C, mas você pode usar qualquer um que esteja disponível na sua máquina. Veja o código C# completo para o exemplo: private void button2_Click(object sender, EventArgs e) { // não esqueça de importar // using System.Management; // vamos criar um novo objeto ManagementObject ManagementObject dispositivo = new ManagementObject("win32_logicaldisk.deviceid=\"C:\""); // vamos retornar o dispositivo dispositivo.Get(); // agora vamos retornar o tamanho do HD double tam = Convert.ToDouble(dispositivo["Size"]); // convertemos para GB tam = tam / 1024 / 1024 / 1024; // e mostramos o resultado textBox1.Text = "O HD tem capacidade de " + tam + " GB"; } Ao executar este código C# nós teremos o seguinte resultado: O HD tem capacidade de 251,767574310303 GB Se você quiser o tamanho do HD em MB, basta usar: tam = tam / 1024 / 1024; Nos testes que fiz no Visual Studio 2019, não foi possível acessar o HD a partir de uma aplicação C# console, somente por meio de uma aplicação Windows Desktop. Veja a mensagem retornada: System.PlatformNotSupportedException: 'System.Management currently is only supported for Windows desktop applications.' |
Nossas 20 dicas & truques de programação mais populares |
JavaScript - Como arredondar um valor numérico de ponto-flutuante para cima usando a função ceil() do objeto Math do JavaScript |
Você também poderá gostar das dicas e truques de programação abaixo |
MySQL - Como formatar campos DATE, TIME, DATETIME e TIMESTAMP usando a função DATE_FORMAT() do MySQL |
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 |