![]() |
|
|
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. |
||
Você está aqui: Cards de Ética e Legislação Profissional |
||
|
||
|
|
||
Android Java ::: android.widget ::: Spinner |
Entenda e aprenda a usar a classe Spinner em suas aplicações AndroidQuantidade de visualizações: 2745 vezes |
|
Um objeto da classe Spinner no Android representa uma lista de itens, ou uma caixa de combinação, a partir da qual o usuário poderá escolher apenas uma opção. Em outras linguagens de programação tais como Delphi e C#, este controle é chamado de ComboBox. No Swing do Java, ele é chamado JComboBox. No HTML, nós o conhecemos como <select>. Veja a posição da classe Spinner na hieraquia de classes do Android: public class Spinner extends AbsSpinner implements DialogInterface.OnClickListener java.lang.Object android.view.View -> android.view.ViewGroup -> android.widget.AdapterView<android.widget.SpinnerAdapter> -> android.widget.AbsSpinner -> android.widget.Spinner Veja a seguir como podemos declarar um elemento Spinner no arquivo XML de layout: Spinner android:id="@+id/cidade" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_gravity="center" android:layout_margin="10dp" android:entries="@array/cidades_nomes" /> Note que o elemento Spinner que declaramos possui o id "cidade" e, a parte mais importante, o vetor "cidades_nomes" para o seu atributo entries. Este vetor foi declarado no arquivo strings.xml da seguinte forma: <string-array name="cidades_nomes"> <item>Goiânia</item> <item>Cuiabá</item> <item>São Paulo</item> <item>Rio de Janeiro</item> <item>Curitiba</item> </string-array> Pronto. Isso é tudo. Se você executar seu aplicativo agora, já verá um caixa de combinação, ou seja, um Spinner com os nomes de cinco cidades ser exibido na tela. Experimente selecionar um dos itens. Em mais dicas dessa seção você verá como obter o item selecionado, como disparar uma ação como resultado da mudança de seleção de itens, como adicionar itens ao Spinner em tempo de execução e muito mais. |
PHP ::: Dicas & Truques ::: Gráficos e Cores |
Computação gráfica em PHP - Como obter informações sobre a biblioteca GD instaladaQuantidade de visualizações: 8672 vezes |
|
Nesta dica vou mostrar como é possível efetuar uma chamada ao método gd_info() da linguagem PHP para verificar quais recursos da biblioteca GD estão habilitados em nossa instalação do PHP. Veja o código abaixo:
<?php
// vamos efetuar uma chamada à função gd_info()
$info = gd_info();
// agora percorremos as entradas
foreach($info as $chave => $valor){
if($chave != "GD Version"){
if($valor == true || $valor == false){
if($valor == true){
$valor = "Habilitado";
}
elseif($valor == false){
$valor = "Desabilitado";
}
}
}
echo "$chave: $valor<br>";
}
?>
Ao executarmos este código nós teremos um resultado parecido com: GD Version: bundled (2.1.0 compatible) FreeType Support: Habilitado FreeType Linkage: Habilitado GIF Read Support: Habilitado GIF Create Support: Habilitado JPEG Support: Habilitado PNG Support: Habilitado WBMP Support: Habilitado XPM Support: Habilitado XBM Support: Habilitado WebP Support: Habilitado BMP Support: Habilitado TGA Read Support: Habilitado JIS-mapped Japanese Font Support: Desabilitado É sempre bom fazer este teste antes de usar as funções gráficas da GD no PHP. |
Java ::: Tratamento de Erros ::: Erros de Tempo de Execução |
Como tratar o erro StringIndexOutOfBoundsException em seus programas Java - A exceção StringIndexOutOfBoundsException da linguagem JavaQuantidade de visualizações: 12590 vezes |
|
A exceção StringIndexOutOfBoundsException é uma exceção (erro) que acontece quando fornecemos um índice fora dos limites permitidos para o acesso de caracteres individuais em uma string, geralmente usando o método charAt. Lembre-se de que os índices dos caracteres em uma string Java começam em 0 e vão até o tamanho da string menos 1. Antes de vermos os exemplos, observe a posição da classe pública StringIndexOutOfBoundsException na hierarquia de classes da plataforma Java:
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
java.lang.IndexOutOfBoundsException
java.lang.StringIndexOutOfBoundsException
Esta classe implementa a interface Serializable. Veja um trecho de código no qual fornecemos um índice de caractere inválido para o método charAt da classe String:
public class Estudos{
public static void main(String args[]){
String nome = "Java";
// vamos fornecer um índice inválido
System.out.println(nome.charAt(4));
System.exit(0);
}
}
Compile este código e execute-o. Você verá a seguinte mensagem de erro: Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4 at java.lang.String.charAt(Unknown Source) at Estudos.main(Estudos.java:6) Experimente trocar a linha: System.out.println(nome.charAt(4)); por: System.out.println(nome.charAt(3)); Compile novamente e execute. Você verá que a mensagem de erro desapareceu. |
Delphi ::: Dicas & Truques ::: Recursão (Recursividade) |
Como usar recursividade em Delphi - Como usar recursão ou funções recursivas em DelphiQuantidade de visualizações: 16137 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 ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de C - Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior delesQuantidade de visualizações: 968 vezes |
|
Pergunta/Tarefa: Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior deles. Esse programa deve possuir uma função para verificar qual é o maior número. Atenção: seu código deverá assegurar que os dois números informados pelo usuário sejam diferentes. Exiba uma mensagem na tela caso isso acontecer. Sua saída deverá ser parecida com: Informe o primeiro número inteiro: 6 Informe o segundo número inteiro: 3 O maior número é: 6 Veja a resolução comentada deste exercício em C:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
// protótipo da função que receberá dois números inteiros
// e retornará o maior deles
int maior_numero(int num1, int num2);
// função principal do programa
int main(int argc, char *argv[]){
setlocale(LC_ALL,""); // para acentos do português
// variáveis usadas na resolução do problema
int num1, num2, maior;
// vamos pedir para o usuário informar os dois números
printf("Informe o primeiro número inteiro: ");
scanf("%d", &num1);
printf("Informe o segundo número inteiro: ");
scanf("%d", &num2);
// os números são iguais?
if(num1 == num2){
printf("Erro. Os dois números são iguais.");
}
else{
// vamos chamar a função para obter o número maior
maior = maior_numero(num1, num2);
printf("O maior número é: %d", maior);
}
printf("\n\n");
system("PAUSE");
return 0;
}
// função que receberá dois números inteiros e retornará
// o maior deles
int maior_numero(int num1, int num2){
// o primeiro número é maior que o segundo?
if(num1 > num2){
return num1;
}
else{
return num2;
}
}
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




