![]() |
|
|
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. |
||
PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como usar a função array_unique() do PHP para remover elementos duplicados de um vetor - Removendo elementos repetidos de um array PHPQuantidade de visualizações: 18996 vezes |
Em algumas situações nossos códigos precisam remover os elementos duplicados em um array (vetor) PHP. Isso pode ser feito por meio do uso da função array_unique(). Esta função recebe um array e retorna um outro array com os elementos duplicados removidos. Veja um exemplo:
<?php
// vamos declarar e inicializar um vetor de inteiros
$valores = array(43, 2, 6, 11, 98, 6, 3, 6);
// vamos exibir os valores do vetor
echo "Com elementos duplicados:<br>";
foreach($valores as $valor){
echo $valor . " - ";
}
// vamos remover os elementos duplicados
$valores = array_unique($valores);
// vamos exibir os valores do vetor novamente
echo "<br><br>Sem elementos duplicados:<br>";
foreach($valores as $valor){
echo $valor . " - ";
}
?>
Ao executarmos este código teremos o seguinte resultado: Com elementos duplicados: 43 - 2 - 6 - 11 - 98 - 6 - 3 - 6 - Sem elementos duplicados: 43 - 2 - 6 - 11 - 98 - 3 - Note que a função array_unique() remove APENAS os valores dos elementos duplicados, ou seja, as chaves ou índices são mantidos. Isso pode ser visto no trecho de código a seguir:
<?php
// vamos declarar e inicializar um vetor de inteiros
$valores = array(43, 2, 6, 11, 98, 6, 3, 6);
// vamos listar os valores dos elementos no vetor
for($i = 0; $i < count($valores); $i++){
echo $valores[$i] . " - ";
}
// vamos remover os elementos duplicados
$valores = array_unique($valores);
// vamos listar os valores no vetor novamente
echo "<br><br>";
for($i = 0; $i < count($valores); $i++){
echo $valores[$i] . " - ";
}
?>
Este código resultará em: 43 - 2 - 6 - 11 - 98 - 6 - 3 - 6 - 43 - 2 - 6 - 11 - 98 - - Note que a última iteração do laço deveria alcançar o valor 3. Em vez disso o laço imprimiu um valor não definido no índice 5. Esta dica foi escrita no PHP 5.2.10. Vamos torcer para que as versões mais recentes não apresentem este comportamento. Enquanto isso EVITE usar o laço for com vetores resultantes de uma chamada à função array_unique(). Use o laço foreach(). |
CSS ::: Dicas & Truques ::: Barras de Navegação, Menus e Dropdowns |
Como criar uma barra de navegação horizontal com menu dropdown em HTML e CSS - Menu suspenso usando CSSQuantidade de visualizações: 1185 vezes |
|
Nesta dica mostrarei como podemos usar uma combinação de várias propriedades CSS para criar um menu suspenso, ou seja, uma barra de navegação contendo links normais e também links que, ao passar o mouse, exibe uma lista de sub-menus. O código apresentado neste exemplo é muito útil para estudantes de HTML e CSS, pois apresenta várias propriedades interessantes para melhorar o visual e a usabilidade de suas páginas web. Entre as propriedades CSS usadas na criação deste menu suspenso nós podemos citar overflow, margin, padding, list-style-type, background-color, display, float, text-align, text-decoration, position, min-width e z-index. Note que coloquei o mínimo de código para fazer a barra de menus funcional. Fique à vontade para acrescentar as formatações que você achar interessante. Veja a página HTML e CSS para o exemplo:
<!doctype html>
<html>
<head>
<title>Estudos CSS</title>
<style>
/* estiliza o elemento <ul> */
ul{
background-color: #e0e0e0;
margin: 0;
padding: 0;
overflow: hidden;
list-style-type: none;
}
/* aplica estilo aos elementos <li> */
li{
float: left;
}
/* aplica estilo aos links e <li> do sub-menu */
li a, .dropdown_linguagens{
display: inline-block;
text-align: center;
padding: 10px 15px;
text-decoration: none;
}
/* define o display do <li> de linguagens */
li.linguagens{
display: inline-block;
}
/* aplica estilo ao menu de linguagens */
.menus_linguagens{
display: none;
position: absolute;
background-color: #eceff1;
min-width: 160px;
z-index: 1;
}
/* aplica estilo aos links do sub-menu */
.menus_linguagens a {
padding: 10px 15px;
text-decoration: none;
display: block;
text-align: left;
}
/* exibe o sub-menu ao passar o mouse */
.linguagens:hover .menus_linguagens{
display: block;
}
/* aplica uma cor diferente aos menus ao
passar o mouse */
.menus_linguagens a:hover{
background-color: #cfd8dc;
}
</style>
</head>
<body>
<h1>Exemplo de Barra de Navegação com
Menu Dropdown</h1>
<ul>
<li><a href="index.php">Inicial</a></li>
<li class="linguagens">
<a href="javascript:void(0)" class="dropdown_linguagens">
Linguagens</a>
<div class="menus_linguagens">
<a href="java.php">Java</a>
<a href="python.php">Python</a>
<a href="ruby.php">Ruby</a>
<a href="delphi.php">Delphi</a>
</div>
</li>
</ul>
</body>
</html>
|
Java ::: Fundamentos da Linguagem ::: Modificadores |
Como usar o modificador synchronized da linguagem JavaQuantidade de visualizações: 24358 vezes |
|
O modificador synchronized tem seu uso e importância destacados quando várias threads (fluxos de execução) estão sendo executadas em um programa. Tais threads podem tentar acessar métodos de uma ou mais classes ao mesmo tempo. No entanto, pode ser necessário planejarmos o sistema de forma que determinados métodos possam ser acessados por somente uma thread de cada vez, talvez para garantir a integridade de valores das diversas variáveis envolvidas no processo. É aqui que o modificador synchronized é usado. Ao marcarmos um método como synchronized, o sistema de execução Java garantirá que apenas uma thread de cada vez acesse tal método. Se outras threads tentarem fazer o mesmo, elas serão colocadas em espera até que a thread atual finalize seu trabalho e libere o método. Um exemplo de aplicação do modificador synchronized pode ser visto em uma classe Pilha. Como sabemos, esta estrutura de dados possui métodos para inserir um novo item no topo da pilha e para removê-lo do topo (lembra? LIFO: Last In First Out). Ora, para evitar que uma thread remova o elemento do topo ao mesmo tempo em que outra está tentando inserir, tais métodos devem ser marcados como synchronized. Isso evitará que os dados sejam corrompidos. |
VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: VisuAlg Básico |
Exercícios Resolvidos de VisuAlg - Uma loja está concedendo desconto de 20% para clientes do sexo feminino com idade entre 18 e 35 anos (ambas incluídas)Quantidade de visualizações: 626 vezes |
|
Exercícios Resolvidos de VisuAlg - Uma loja está concedendo desconto de 20% para clientes do sexo feminino com idade entre 18 e 35 anos (ambas incluídas) Pergunta/Tarefa: Uma loja está concedendo desconto de 20% para clientes do sexo feminino com idade entre 18 e 35 anos (ambas incluídas). Para os demais clientes o desconto é 5% apenas. Leia o valor do produto, o nome, sexo e a idade do cliente e aplique o desconto correspondente. Sua saída deverá ser parecida com: Informe o valor do produto: 520 Informe o nome do cliente: FABRICIA DE CASTRO Informe a idade: 23 Informe o sexo: F FABRICIA DE CASTRO, você ganhou o desconto de 20% Valor a pagar: 416.0 Informe o valor do produto: 830 Informe o nome do cliente: OSMAR SLVA Informe a idade: 38 Informe o sexo: M OSMAR SLVA, você ganhou apenas o desconto de 5% Valor a pagar: 788.5 Veja a resolução deste exercício em VisuAlg:
algoritmo "Ler o valor do produto, o valor do produto, o sexo..."
var
valor: real
nome, sexo: caractere
idade: inteiro
inicio
// vamos ler o valor do produto
escreva("Informe o valor do produto: ")
leia(valor)
// agora vamos ler o nome do cliente
escreva("Informe o nome do cliente: ")
leia(nome)
// agora vamos ler a idade
escreva("Informe a idade: ")
leia(idade)
// e finalmente vamos ler o sexo do cliente
escreva("Informe o sexo: ")
leia(sexo)
// vamos verificar se o cliente faz jus ao desconto
// de 20%
se ((idade >= 18) e (idade <= 35) e (sexo = "F")) entao
valor <- valor - (valor * (20 / 100))
escreval(nome, ", você ganhou o desconto de 20%")
escreval("Valor a pagar: ", valor)
senao
valor <- valor - (valor * (5 / 100))
escreval(nome, ", você ganhou apenas o desconto de 5%")
escreval("Valor a pagar: ", valor)
fimse
fimalgoritmo
|
Nossas 20 dicas & truques de programação mais populares |
|
VB.NET - Como contar as ocorrências de um caractere em uma string em VB.NET usando o método IndexOf() Laravel - Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 2 JavaScript - Como testar se todos os elementos de um array satisfazem uma condição em JavaScript usando a função every() |
Você também poderá gostar das dicas e truques de programação abaixo |
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 |



