![]() |
|
|
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 ::: Strings e Caracteres |
Como inverter uma string em C++ usando as funções begin(), end() e reverse()Quantidade de visualizações: 13850 vezes |
|
Em várias situações nós precisamos inverter a ordem dos caracteres de uma palavra, frase ou texto em C++. Para isso nós podemos usar uma combinação das funções begin(), end() e reverse() da biblioteca padrão do C++. Veja o código completo para o exemplo:
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
// função principal do programa C++
int main(int argc, char *argv[]){
// vamos declarar um objeto da classe string
string frase = "Gosto de programar em C++";
// vamos mostrar a string original
cout << "String original: " << frase << endl;
// agora vamos usar a função reverse() para inverter o
// conteúdo da string
reverse(frase.begin(), frase.end());
// e mostramos o resultado
cout << "String invertida: " << frase << endl;;
cout << "\n" << endl;
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executarmos este código C++ nós teremos o seguinte resultado: String original: Gosto de programar em C++ String invertida: ++C me ramargorp ed otsoG |
LISP ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular MMC em Lisp - Como calcular o Mínimo Múltiplo Comum na linguagem LispQuantidade de visualizações: 1178 vezes |
|
O Mínimo Múltiplo Comum (MMC), ou LCM (Least Common Multiple) é um tipo de operação matemática utilizada para encontrar o menor número positivo, diferente de 0 (zero), que é múltiplo ao mesmo tempo de dois ou mais números. O MMC é utilizado, por exemplo, na soma e subtração de frações - quando é necessário um denominador comum. Nesta dica mostrarei como podemos calcular o MMC de dois números inteiros informados pelo usuário. Veja o código Common Lisp completo:
; variáveis que vamos usar no programa
(let ((num1)(num2)(maior)(mmc))
; Vamos ler o primeiro número
(princ "Informe o primeiro número: ")
; talvez o seu compilador não precise disso
(force-output)
; atribui o valor lido à variável num1
(setq num1 (read))
; Vamos ler o segundo número
(princ "Informe o segundo número: ")
; talvez o seu compilador não precise disso
(force-output)
; atribui o valor lido à variável num2
(setq num2 (read))
; agora escolhemos o maior número
(cond ((> num1 num2)(setq maior num1))
(t (setq maior num2))
)
; e entramos em um laço loop
(loop
; testa se o maior é divisível por num1 e por num2
(cond ((and (= 0 (rem maior num1))(= 0 (rem maior num2)))
; mmc recebe o maior e sai do laço
(setq mmc maior)(return)))
; incrementa o valor da variável maior
(setq maior (+ maior 1))
)
; mostra o resultado
(format t "O MMC dos dois números é ~D" mmc)
)
Ao executarmos este código Common Lisp nós teremos o seguinte resultado: Informe o primeiro número: 6 Informe o segundo número: 3 O MMC dos dois números é: 6 Note que a linguagem Common Lisp possui uma função LCM() que permite calcular o MMC de dois ou mais números. Minha intenção com essa dica foi mostrar como o cálculo do MMC é feito em Common Lisp. |
C++ ::: Fundamentos da Linguagem ::: Estruturas de Controle |
C++ para iniciantes - Como usar a instrução switch em C++Quantidade de visualizações: 10929 vezes |
A instrução switch é usada quando queremos testar várias possibilidades de fluxo de código mas não queremos usar vários else if. Desta forma, cada possibilidade é testada em um bloco case. Veja um exemplo:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int valor = 4;
switch(valor){
case 0:
cout << "Valor e igual a 0" << endl;
break;
case 1:
cout << "Valor e igual a 1" << endl;
break;
case 2:
cout << "Valor é igual a 2" << endl;
break;
default:
cout << "Nenhuma das anteriores" << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
Veja que, se nenhuma das condições testadas em um bloco case for satisfatória, a parte default da instrução switch será executada. A variável fornecida para uma instrução switch pode ser de qualquer tipo integral, ou de um tipo criado pelo usuário mas que pode ser convertido para um tipo integral (mesmo que seja uma conversão forçada - cast). |
C++ ::: Win32 API (Windows API) ::: Arquivos e Diretórios |
C++ Windows API - Como ler o conteúdo de um arquivo usando a função ReadFile() da Win32 APIQuantidade de visualizações: 9318 vezes |
|
A função ReadFile() é usada quando queremos ler o conteúdo de um arquivo. A leitura se inicia na posição zero do arquivo e mantém um ponteiro de arquivo, a partir do qual as leituras subsequentes ocorrerão. Esta função pode ser usada para leituras síncronas e assíncronas. Para leituras apenas assíncronas devemos usar ReadFileEx(). Veja seu protótipo na documentação da API do Windows: BOOL WINAPI ReadFile( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped ); Antes de vermos um exemplo de como usar a função ReadFile(), vamos dar uma olhada em seus parâmetros: a) HANDLE hFile - Este é o handle para o arquivo a partir do qual queremos ler. Tal handle deve ser criado com o direito de acesso GENERIC_READ. b) LPVOID lpBuffer - Um ponteiro para o buffer que receberá os dados lidos do arquivo. c) DWORD nNumberOfBytesToRead - O número máximo de bytes a serem lidos de cada vez. Geralmente este número está relacionado à quantidade de bytes dos elementos do buffer. d) LPDWORD lpNumberOfBytesRead - Um ponteiro para uma variável que receberá o número de bytes lidos. A função ReadFile() define o valor desta variável como 0 antes de cada leitura e verificação de erros. e) LPOVERLAPPED lpOverlapped - Um ponteiro para um estrutura OVERLAPPED. Esta estrutura é exigida se o handle para o arquivo for obtido usando FILE_FLAG_OVERLAPPED para o parâmetro dwFlagsAndAttributes da função CreateFile(). Geralmente usamos NULL para este parâmetro. A função ReadFile() retorna quando um erro ocorre ou a quantidade de bytes solicitados é alcançada. Veja um trecho de código no qual lemos o conteúdo de um arquivo chamado testes.txt:
#include <cstdlib>
#include <iostream>
#include <windows.h>
#define TAM_BUFFER 256 // tamanho do buffer em bytes
using namespace std;
int main(int argc, char *argv[]){
// nome do arquivo
CHAR arquivo[] = "C:\\testes.txt";
CHAR buffer[TAM_BUFFER]; // buffer para o conteúdo do arquivo
DWORD nIn; // bytes lidos
// vamos abrir o arquivo para leitura.
// se o arquivo não existir uma mensagem de erro é exibida.
HANDLE hArquivo = CreateFile(arquivo, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(hArquivo == INVALID_HANDLE_VALUE){
cout << "Erro ao abrir o arquivo: " << GetLastError() << endl;
}
else{
// arquivo aberto com sucesso. Vamos ler
while(ReadFile(hArquivo, buffer, TAM_BUFFER, &nIn, NULL) && nIn > 0){
cout << "Efetuei a leitura de " << nIn << " bytes." << endl;
// vamos adicionar o caractere de final de linha
// caso os bytes lidos não preencham todo o buffer
buffer[nIn] = 0;
cout << "Conteudo da leitura: " << buffer << endl;
}
}
// vamos fechar o handle
CloseHandle(hArquivo);
system("PAUSE");
return EXIT_SUCCESS;
}
|
Você também poderá gostar das dicas e truques de programação abaixo |
|
Delphi - Como usar o evento OnDrawCell para controlar o desenho das células em um TStringGrid do Delphi Excel - Como converter graus em radianos no Excel usando a função RADIANOS() - Trigonometria no Excel Delphi - Delphi para iniciantes - Como criar uma data e hora em Delphi usando a função EncodeDateTime() |
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 |



