![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes. |
||
C ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Como usar ponteiros void na linguagem C - Curso de Linguagem C para iniciantesQuantidade de visualizações: 17380 vezes |
Em dicas desta seção você aprendeu que é possível criar ponteiros para os mais diferentes tipos. Veja:int *ponteiro_int; float *ponteiro_float; double *ponteiro_double; Existe, porém, um tipo de ponteiro que pode ser usado com todos os tipos de dados existentes ou ainda a serem criados. Este tipo é conhecido como void, ou seja, um ponteiro genérico e pode ser declarado da seguinte forma: void *ponteiro; // ponteiro genérico Veja um trecho de código no qual usamos um ponteiro genéríco para apontar para variáveis de diferentes tipos:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int valor = 20;
float valor2 = 5.23;
void *ponteiro; // ponteiro genérico
ponteiro = &valor; // aponta para um inteiro
printf("%d\n", *(int *)ponteiro);
ponteiro = &valor2; // aponta para um float
printf("%0.2f\n", *(float *)ponteiro);
system("PAUSE");
return 0;
}
Uma observação importante é a necessidade de uma conversão explícita (cast) no momento de desreferenciar um ponteiro genéríco. Neste caso ele precisa ser convertido para o tipo de ponteiro sendo usado no momento. Veja:
printf("%d\n", *(int *)ponteiro);
A parte (int *)ponteiro converte o ponteiro genérico em um ponteiro do tipo int e o símbolo * externo é usado para desreferenciar. Se essa conversão não for feita teremos um aviso e erro na maioria dos compiladores. Veja:
printf("%d\n", *ponteiro);
[Warning] dereferencing 'void *' pointer
invalid use of void expression
Embora essa conversão seja necessária quando estamos desreferenciando um ponteiro genérico, podemos abrir mão dela na atribuição de um ponteiro genérico a um ponteiro de um tipo específico:
ponteiro = &valor; // aponta para um inteiro
int *ponteiro_int = ponteiro;
printf("%d\n", *ponteiro_int);
Para finalizar, saiba que as funções malloc() e calloc() retornam ponteiros void, ou seja, ponteiros genéricos que podem ser atribuídos a ponteiros de qualquer tipos. Neste caso, o ponteiro retornado por estas funções aponta para a primeira posição do bloco de memória requisitada. |
JavaScript ::: Web APIs (APIs Web) ::: MediaDevices Interface (Interface MediaDevices) |
Como acessar as mídias do usuário em JavaScript usando a função getUserMedia() da interface MediaDevicesQuantidade de visualizações: 3299 vezes |
|
O método getUserMedia() da interface MediaDevices nos permite acessar as entradas de mídias do usuários, tais como áudio e vídeo. Isso facilita o desenvolvimento de aplicações muito interessantes, a saber, tirar foto usando a webcam, gravar áudio a partir do microfone, gravar vídeo a partir da webcam, etc. No entanto, antes de usar o MediaStream retornado pelo método getUserMedia(), é importante saber que o usuário deverá dar a sua permissão. Assim, sempre que o método getUserMedia() é chamado, uma janela de informação é mostrada para que o usuário concorde ou não em permitir o acesso às suas mídias. Veja, por exemplo, como solicitar acesso à webcam/câmera do usuário:
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>A interface MediaDevices</title>
</head>
<body>
<script type="text/javascript">
async function obterMediaUsuario(){
// vamos obter o stream
var stream = null;
try{
stream = await navigator.mediaDevices.getUserMedia({video: true});
window.alert("A mídia para vídeo foi obtida com sucesso.");
// agora podemos fazer algo com o stream aqui
}
catch(erro){
window.alert("Houve um erro: " + erro);
}
}
// o browser suporta o MediaDevices?
if(navigator.mediaDevices){
obterMediaUsuario()
}
else{
window.alert("O navegador não suporta o MediaDevices");
}
</script>
</body>
</html>
Veja que usamos uma função assíncrona para getUserMedia(). Isso é necessário porque esta função retorna uma Promise que, em caso de sucesso, será convertida em um objeto MediaStream. Se o usuário não permitir o acesso, um erro do tipo NotAllowedError ou NotFoundError será retornado. Alguns navegadores só permitem o uso do método getUserMedia() em ambiente seguro HTTPS ou localhost. Em mais dicas dessa seção você verá como tirar proveito do MediaStream retornado pela função getUserMedia() e também como tratar melhor os erros retornados. |
Java ::: Dicas & Truques ::: Mouse e Teclado |
Como verificar se Num Lock está ativado no seu teclado usando o método getLockingKeyState() da classe Toolkit da linguagem JavaQuantidade de visualizações: 9196 vezes |
|
Nesta dica mostrarei como é possível verificar se Num Lock está ativado no seu teclado. Para isso nós podemos usar o método getLockingKeyState() da classe Toolkit, do pacote java.awt. Veja o exemplo completo:
package arquivodecodigos;
import java.awt.Toolkit;
import java.awt.event.*;
public class Estudos{
public static void main(String[] args){
Toolkit tk = Toolkit.getDefaultToolkit();
if(tk.getLockingKeyState(KeyEvent.VK_NUM_LOCK)){
System.out.println("Num Lock está ativado");
}
else{
System.out.println("Num Lock não está ativado");
}
System.exit(0);
}
}
Ao executar este código nós teremos o seguinte resultado: Num Lock não está ativado |
Java ::: Fundamentos da Linguagem ::: Passos Iniciais |
Java GUI - Como ler entrada do usuário usando a classe JOptionPane da linguagem JavaQuantidade de visualizações: 22339 vezes |
Nesta dica mostrarei como podemos ler a entrada do usuário em aplicações console (ou Java Swing) usando a classe JOptionPane e seu método showInputDialog(). Veja um exemplo:
package arquivodecodigos;
import javax.swing.*;
public class Estudos{
public static void main(String[] args){
String nome = JOptionPane.showInputDialog(
"Qual é seu nome?");
int idade = Integer.parseInt(JOptionPane.showInputDialog(
"Qual é sua idade?"));
System.out.println("Olá, " + nome + ". Você tem " +
idade + " anos.");
}
}
Ao executar este código Java nós teremos o seguinte resultado: Olá, Osmar. Você tem 38 anos. |
Nossas 20 dicas & truques de programação mais populares |
|
VB.NET - Como comparar strings em VB.NET usando o método Compare() da classe String do .NET Framework Revit Python Shell - Como copiar grupos no Revit usando a função Create.PlaceGroup() e o Revit Python Shell |
Você também poderá gostar das dicas e truques de programação abaixo |
|
C - Como alocar memória para instâncias de uma estrutura (struct) e acessá-las usando ponteiros em C |
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 |





