![]() |
|
|
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 Cards de Hidrologia |
||
|
||
|
|
||
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como embaralhar os caracteres de uma string em C# usando um objeto da classe RandomQuantidade de visualizações: 11406 vezes |
|
Nesta dica mostrarei como podemos embaralhar os caracteres de uma palavra, frase ou texto na linguagem C#. Para isso nós faremos uso do método ToCharArray() da classe String para extrair os caracteres da string como um vetor de chars. Em seguida usaremos um objeto da classe Random para gerar números randômicos que serão usados para auxiliar na troca dos caracteres contidos no vetor. Veja o código completo para o exemplo:
using System;
namespace Estudos {
class Principal {
static void Main(string[] args) {
string palavra = "ARQUIVO";
// converte em uma matriz de caracteres
char[] letras = palavra.ToCharArray();
// mostramos a palavra original
Console.WriteLine("Palavra original: " + palavra);
// vamos embaralhar 5 vezes
embaralhar(ref letras, 5);
// junta as partes da string novamente
string nova_palavra = new String(letras);
// exibe o resultado
Console.WriteLine("Palavra embaralhada: " + nova_palavra);
Console.WriteLine("\nPressione uma tecla para sair...");
Console.ReadKey();
}
static void embaralhar(ref char[] array, int vezes) {
Random rand = new Random(DateTime.Now.Millisecond);
for (int i = 1; i <= vezes; i++) {
for (int x = 1; x <= array.Length; x++) {
trocar(ref array[rand.Next(0, array.Length)],
ref array[rand.Next(0, array.Length)]);
}
}
}
static void trocar(ref char arg1, ref char arg2) {
char strTemp = arg1;
arg1 = arg2;
arg2 = strTemp;
}
}
}
Ao executar este código C# nós teremos o seguinte resultado: Palavra original: ARQUIVO Palavra embaralhada: UVIARQO |
C ::: Estruturas de Dados ::: Lista Ligada Simples |
Estruturas de Dados em C - Como inserir antes de um determinado nó em uma lista encadeada simples usando CQuantidade de visualizações: 2421 vezes |
|
Em algumas situações nós precisamos inserir o novo nó antes de um determinado nó na lista encadeada simples. Veja, por exemplo, uma lista com o seguintes valores: 45 | 3 | 98 | 47 Suponha que queremos inserir o valor 50 antes do 98, então o novo conteúdo da lista será: 45 | 3 | 50 | 98 | 47 Observe que neste exemplo eu tratei o caso de inserir antes do primeiro nó, ou seja, antes do 45, mas não tratei a lista vazia. Há também a questão do laço infinito caso o usuário queira inserir antes de um nó não existente (não tratada). Veja o código completo:
#include <stdio.h>
#include <stdlib.h>
// estrutura Nó
struct No{
int valor;
struct No *proximo;
};
// fim da estrutura Nó
// função que permite exibir os valores de
// todos os nós da lista
void exibir(struct No *n){
if(n != NULL){
do{
printf("%d\n", n->valor);
n = n->proximo;
}while(n != NULL);
}
else
printf("A lista esta vazia\n\n");
}
// função que permite inserir um novo nó
// antes de um determinado valor
struct No *inserir_antes_valor(struct No *n, int v, int v_antes){
// reserva memória para o novo nó
struct No *novo = (struct No*)malloc(sizeof(struct No));
novo->valor = v;
// guarda o nó antes do valor que procuramos
struct No *anterior = NULL;
struct No *temp = n; // aponta para o início da lista
// enquanto for diferente do valor que estamos procurando
while(temp->valor != v_antes){
anterior = temp; // anterior recebe temp
// e temp recebe o seu próximo
temp = temp->proximo;
}
// ATENÇÃO: não estamos tratando a condição
// de lista vazia. Para isso veja minha dica
// sobre como inserior no início da lista
// devemos inserior no início da lista?
if(anterior == NULL){
// o próximo do novo nó é o início da lista
novo->proximo = n;
n = novo; // início da lista é o novo nó
}
else{
// o proximo do anterior é o novo nó
anterior->proximo = novo;
// e o próximo do novo nó é temp
novo->proximo = temp;
}
return n;
}
// função que permite inserir nós no
// final da lista.
// veja que a função recebe o valor a ser
// armazenado em cada nó e um ponteiro para o
// início da lista. A função retorna um
// ponteiro para o início da lista
struct No *inserir_final(struct No *n, int v){
// reserva memória para o novo nó
struct No *novo = (struct No*)malloc(sizeof(struct No));
novo->valor = v;
// verifica se a lista está vazia
if(n == NULL){
// é o primeiro nó...não deve apontar para
// lugar nenhum
novo->proximo = NULL;
return novo; // vamos retornar o novo nó como sendo o início da lista
}
else{ // não está vazia....vamos inserir o nó no final
// o primeiro passo é chegarmos ao final da lista
struct No *temp = n; // vamos obter uma referência ao primeiro nó
// vamos varrer a lista até chegarmos ao último nó
while(temp->proximo != NULL){
temp = temp->proximo;
}
// na saída do laço temp aponta para o último nó da lista
// novo será o último nó da lista...o campo próximo dele deve
// apontar para NULL
novo->proximo = NULL;
// vamos fazer o último nó apontar para o nó recém-criado
temp->proximo = novo;
return n; // vamos retornar o início da lista intacto
}
}
int main(int argc, char *argv[])
{
// declara a lista
struct No *inicio = NULL;
// vamos inserir quatro valores no final
// da lista
inicio = inserir_final(inicio, 45);
inicio = inserir_final(inicio, 3);
inicio = inserir_final(inicio, 98);
inicio = inserir_final(inicio, 47);
// vamos exibir a lista
puts("Valores atuais:\n");
exibir(inicio);
// vamos inserir o valor 50 antes do 98
inicio = inserir_antes_valor(inicio, 50, 98);
// vamos exibir a lista novamente
puts("\nValores agora:\n");
exibir(inicio);
puts("\n\n");
system("pause");
return 0;
}
|
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Vetores e Matrizes - Exercícios Resolvidos de C - Declarar um vetor de 10 elementos, usar um laço for para inicializar os elementos e exibí-los na verticalQuantidade de visualizações: 15800 vezes |
|
Vetores e Matrizes - Exercício Resolvido de C - Declarar um vetor de 10 elementos, usar um laço for para inicializar os elementos e exibí-los na vertical Pergunta/Tarefa: Escreva um programa C que declara um vetor de 10 elementos do tipo int. Em seguida use um laço for para inicializar os elementos com os valores de 1 até 10. Para finalizar exiba os valores dos elementos da matriz na vertical. Seu programa deverá exibir a seguinte saída: 1 2 3 4 5 6 7 8 9 10 Resposta/Solução: A resolução desta tarefa passa pela declaração da matriz. Veja como isso pode ser feito: // vamos declarar uma matriz de 10 ints // neste momento seus elementos terão, todos, // valores aleatórios int valores[10]; Veja a resolução completa do exercício:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// vamos declarar uma matriz de 10 ints
// neste momento seus elementos terão, todos,
// valores aleatórios
int valores[10];
int i;
// vamos usar o laço for para inicializar seus elementos
// com os valores de 1 até 10
for(i = 0; i < 10; i++){
// aqui nós usamos o valor da variável i para acessar o
// elemento da matriz e também para atribuir o valor de i + 1
// ao elemento sendo acessado
valores[i] = (i + 1);
}
// só nos resta exibir os valores de todos os elementos
for(i = 0; i < 10; i++){
printf("%d\n", valores[i]);
}
system("PAUSE");
return 0;
}
|
JavaScript ::: Dicas & Truques ::: Algorítmos Úteis |
Como testar se uma palavra (ou frase) é palíndroma em JavaScriptQuantidade de visualizações: 12318 vezes |
|
Palíndromo é uma palavra, frase ou número que permanece igual quando lida de trás para diante. Por extensão, palíndromo é qualquer série de elementos com simetria linear, ou seja, que apresenta a mesma sequência de unidades nos dois sentidos. Uma palavra palíndroma é aquela cuja sequência de letras é simétrica, permitindo uma leitura idêntica da esquerda para a direita ou da direita para a esquerda: ovo, osso, reler, anilina. Veja um código JavaScript que pede para o usuário informar um palavra e, em seguida, informa se a palavra é palíndroma ou não:
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
<title>Estudos JavaScript</title>
</head>
<body>
<script type="text/javascript">
function palin(pal){
var palindroma = true;
pal = pal.toUpperCase();
for(var i = 0; i < (pal.length / 2); i++){
if(pal.charAt(i) != pal.charAt(pal.length - i - 1)){
palindroma = false;
}
}
return palindroma;
}
// testa se uma palavra é palindroma
var palavra = window.prompt("Informe a palavra",
"palavra");
if(palin(palavra)){
alert("Esta palavra é palindroma");
}
else{
alert("Esta palavra NÃO é palindroma");
}
</script>
</body>
</html>
|
Python ::: Dicas & Truques ::: HTTP Web Server |
Como criar um servidor web em Python usando as classes BaseHTTPRequestHandler e HTTPServerQuantidade de visualizações: 1025 vezes |
|
Nesta dica mostrarei como criar um web server em Python, ou seja, o nosso próprio servidor web. Para isso nós vamos criar uma classe ServidorWeb que herda de BaseHTTPRequestHandler, que nos fornece todos os métodos necessários para tratar requisições HTTP, tais como GET e POST. Note que definir o nome do host como "localhost" e a porta como "8080". Veja o código completo para o nosso web server em Python:
# precisamos importar os objetos BaseHTTPRequestHandler e HTTPServer
# do módulo http.server
from http.server import BaseHTTPRequestHandler, HTTPServer
# precisamos também do módulo time
import time
# vamos criar a classe ServidorWeb, que herda de
# BaseHTTPRequestHandler
class ServidorWeb(BaseHTTPRequestHandler):
# vamos implementar o método que responde às requisições GET
def do_GET(self):
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
self.wfile.write(bytes("<html><head><title>Meu Servidor Web</title></head>",
"utf-8"))
self.wfile.write(bytes("<p>Requsição: %s</p>" % self.path,
"utf-8"))
self.wfile.write(bytes("<body>", "utf-8"))
self.wfile.write(bytes("<p>Exemplo de Web Server em Python</p>",
"utf-8"))
self.wfile.write(bytes("</body></html>", "utf-8"))
# função principal do programa
def main():
# agora criamos um objeto HTTPServer
host = "localhost"
porta = 8080
servidorWeb = HTTPServer((host, porta), ServidorWeb)
print("Servidor iniciado em http://%s:%s" % (host, porta))
# tentamos levantar o servidor
try:
servidorWeb.serve_forever()
except KeyboardInterrupt:
pass
# liberamos o servidor web
servidorWeb.server_close()
print("O servidor web foi parado.")
if __name__== "__main__":
main()
Ao executar este código você verá a seguinte mensagem: Servidor iniciado em http://localhost:8080 A partir daí você pode abrir o seu navegador neste endereço e já verá a página web que definimos no corpo do método do_GET() da classe ServidorWeb. Agora é só explorar as dicas dessa seção para aprender ainda mais sobre redes, soquetes e servidores web usando a linguagem Python. |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




