![]() |
|
|
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 Hidrostática |
||
|
||
|
|
||
C ::: Dicas & Truques ::: Strings e Caracteres |
Como escrever uma função na linguagem C que verifica se duas strings são iguais ou diferentesQuantidade de visualizações: 10117 vezes |
|
Esta dica mostra como escrever uma função em C que verifica se duas strings são iguais ou diferentes. O nome da função é str_equal(). Esta função aceita duas strings como argumentos e retorna 1 se estas forem iguais e 0 em caso contrário. Experimente, faça as devidas alterações e adicione mais esta função ao seu repertório de códigos C. Veja o código completo para o exemplo:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// função personalizada que permite verificar
// se duas strings são iguais ou diferentes
int str_equal(const char *str1, const char *str2){
while((*str1 == *str2) && (*str1)){
str1++;
str2++;
}
return((*str1 == 0) && (*str2 == 0));
}
int main(int argc, char *argv[]){
char palavra1[] = "Java";
char palavra2[] = "Java";
if(str_equal(palavra1, palavra2) == 1)
printf("As palavras sao iguais");
else
printf("As palavras sao diferentes");
puts("\n\n");
system("PAUSE");
return 0;
}
Ao executar este código nós teremos o seguinte resultado: As palavras são iguais |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercício Resolvido de C++ - Calculando e exibindo os números primos entre 2 e 100Quantidade de visualizações: 10687 vezes |
|
Exercícios Resolvidos de C++ - Calculando e exibindo os números primos entre 2 e 100 Pergunta/Tarefa: Um inteiro é um número primo se ele for divisível somente por 1 e por ele mesmo. Assim, 2, 3, 5 e 7 são primos, enquanto 4, 6, 8 e 9 não são. Note que o número 1 não é primo. Escreva um programa C++ que usa um laço for, while ou do...while para calcular e exibir os números primos entre 2 (incluindo) e 100 (incluindo). A saída do programa deverá ser parecida com: Numeros primos entre 2 e 100 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 Veja a resolução comentada deste exercício:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// limite dos números primos (incluindo)
int limite = 100;
// Lembre-se! O número 1 não é primo
cout << "Numeros primos entre 2 e " << limite << endl;
// laço que percorre os valores de 2 até o limite desejado
for(int i = 2; i <= limite; i++){
bool primo = true;
// se o valor de i for 7, a variável j do laço contará
// de 2 até 7 / 2 (divisão inteira), ou seja, 3. Se o
// módulo de 7 por qualquer um dos valores neste intervalo
// for igual a 0, então o número não é primo
for(int j = 2; j <= (i / 2); j++){
if(i % j == 0){
primo = false; // não é primo
break;
}
}
if(primo){
cout << i << " ";
}
}
cout << "\n\n";
system("PAUSE");
return EXIT_SUCCESS;
}
|
C ::: Dicas & Truques ::: Arquivos e Diretórios |
Como abrir ou criar arquivos em C usando a função fopen()Quantidade de visualizações: 67330 vezes |
Há muitas situações nas quais precisamos ler ou gravar dados em arquivos a partir de nossos programas C. O primeiro passo para esta tarefa é aprender a usar a função fopen(). Esta função é a responsável por conectar um ponteiro de arquivos ao arquivo que queremos manipular. Veja sua assinatura:FILE *fopen(const char *nome, const char *modo); O parâmetro nome é uma string que indica o nome do arquivo a ser aberto ou criado. O parâmetro modo indica se o arquivo será aberto para leitura, escrita ou ambos. Antes de continuarmos, veja um trecho de código que tenta abrir um arquivo chamado "testes.txt" localizado no diretório "c:\":
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *arquivo = fopen("c:\\testes.txt", "r");
// testa se o arquivo foi aberto com sucesso
if(arquivo != NULL)
printf("Arquivo foi aberto com sucesso.");
else
printf("Nao foi possivel abrir o arquivo.");
printf("\n\n");
system("PAUSE");
return 0;
}
Veja que a primeira linha declara um ponteiro para a estrutura FILE e atribui a este ponteiro o resultado de uma chamada à função fopen(). Se o arquivo for aberto com sucesso, poderemos manipulá-lo a partir do ponteiro *arquivo. Do contrário, o valor NULL será retornado. A linguagem C padrão permite a definição dos seguintes modos de abertura de arquivos: a - abre um arquivo para inserção. Se o arquivo não existir, o sistema operacional tentará criá-lo. r - abre um arquivo existente para leitura. w - abre um arquivo para escrita. Se o arquivo não existir, o sistema operacional tentará criá-lo. Se o arquivo existir, todo o seu conteúdo será substituído pelo novo conteúdo. r+ - abre um arquivo existente para leitura e gravação. w+ - abre um arquivo para leitura e escrita. Se o arquivo não existir, o sistema operacional tentará criá-lo. Se o arquivo existir, todo o seu conteúdo será substituído pelo novo conteúdo. a+ - abre um arquivo para inserção e leitura. Se o arquivo não existir, o sistema operacional tentará criá-lo. |
C# ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de C# - Escreva um programa (algorítmo) C# que usa o laço do...while para ler um número indeterminado de idades. A condição de parada do laço é o valor da idade igual a 0Quantidade de visualizações: 2644 vezes |
|
Pergunta/Tarefa: Escreva um programa (algorítmo) C# que usa o laço do...while para ler um número indeterminado de idades de algumas pessoas. A condição de parada do laço é o valor da idade igual a 0. Calcule a escreva a idade média deste grupo de pessoas. Sua saída deverá ser parecida com: Informe a idade: 19 Informe a idade: 30 Informe a idade: 21 Informe a idade: 45 Informe a idade: 0 A idade média é: 28,75 Veja a resolução comentada deste exercício usando C# console:
using System;
namespace Estudos {
class Program {
static void Main(string[] args) {
int idade; // guarda a idade lida de cada indivíduo
double idade_media; // a idade média calculada
int soma = 0; // a soma das idades de cada indivíduo
int contador = 0; // conta as idades lidas
// laço do...while que repetirá até que o valor da idade seja 0
do {
Console.Write("Informe a idade: ");
idade = int.Parse(Console.ReadLine());
// a idade lida é diferente de 0?
if (idade != 0) {
soma = soma + idade; // soma mais esta idade
contador++; // aumenta a quantidade de idades lidas
}
} while (idade != 0);
// calcula a idade média
// note que forcei contador para o tipo double antes da divisão
// isso faz com que o resultado seja do tipo double
idade_media = soma / (contador * 1.0);
// finalmente mostramos o resultado
Console.WriteLine("A idade média é: " + idade_media);
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
|
Revit C# ::: Dicas & Truques ::: Eixos - Grids |
Como criar eixos no Revit via programação usando a função Create() da classe Grid da Revit C# APIQuantidade de visualizações: 684 vezes |
|
Os eixos, ou grids, são linhas que auxiliam na construção de um projeto, ou seja, uma espécie de malha de linhas. Eles são mais utilizados quando se trabalha com elementos estruturais, para a locação de colunas e pilares. No Revit, os eixos podem ser verticais, horizontais, inclinados e até em forma de arcos. Para criá-los, vá na aba Arquitetura, seção Dados e localize o item Eixo (ou digite GR). Via programação nós podemos criar um eixo no Revit usando a função Create() da classe Grid da Revit C# API. Neste exemplo mostrarei, em detalhes, como isso pode ser feito. O primeiro passo é obter uma referência ao documento UI atual usando this.ActiveUIDocument. Após isso acessar o documento usando uidoc.Document. As coordenadas geométricas de início e fim do eixo são criadas como objetos da classe XYZ. Então, de posse das coordenadas, nós criamos um objeto Line usando a função Line.CreateBound(). Para finalizar nós usamos a função Grid.Create() para desenhar o eixo na área de desenho do Revit. Note como passamos o objeto Line e uma referência ao documento atual para esta função. Veja ainda o uso de uma Transaction para abrir uma transação do Revit, criar o elemento e fechá-la em seguida. Este exemplo criará um eixo com o LevelId -1, ou seja, no primeiro nível do documento. Em outras dicas dessa seção eu mostro como definir o nível para o grid recém-criado. Veja o código Revit C# API completo para o exemplo:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Architecture;
using Autodesk.Revit.DB.Structure;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;
namespace Estudos {
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.
TransactionMode.Manual)]
[Autodesk.Revit.DB.Macros.AddInId("ED8EC6C4-9489-48F7-B04E-B45B5D1BEB12")]
public partial class ThisApplication {
private void Module_Startup(object sender, EventArgs e) {
// primeiro obtemos uma referência ao documento atual
UIDocument uidoc = this.ActiveUIDocument;
Document doc = uidoc.Document;
// criamos a linha geométrica para posicionar o eixo
// não se esqueça de converter metros para pés
XYZ inicio = new XYZ(0, -100, 0);
XYZ final = new XYZ(0, 100, 0);
// construímos a linha
Line linhaGeometrica = Line.CreateBound(inicio, final);
// iniciamos uma nova transação
using(Transaction t= new Transaction(doc)) {
t.Start("Criar um novo Grid");
// e criamos o novo eixo
Grid eixo = Grid.Create(doc, linhaGeometrica);
t.Commit();
// e mostramos o resultado
TaskDialog.Show("Aviso", "O novo eixo foi criado com o ID: " +
eixo.Id);
}
}
private void Module_Shutdown(object sender, EventArgs e) {
// para fazer alguma limpeza de memória ou algo assim
}
#region Revit Macros generated code
private void InternalStartup() {
this.Startup += new System.EventHandler(Module_Startup);
this.Shutdown += new System.EventHandler(Module_Shutdown);
}
#endregion
}
}
Ao executar este código Revit C# API teremos o seguinte resultado: O novo eixo foi criado com o ID: 49827 |
Veja mais Dicas e truques de Revit C# |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




