![]() |
|
|
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 AutoCAD Civil 3D |
||
|
||
|
|
||
C# ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como retornar a quantidade de dimensões de uma matriz em C# usando a propriedade RankQuantidade de visualizações: 8892 vezes |
|
A propriedade Rank de um array do C# pode ser usada para obtermos a quantidade de dimensões de uma matriz (unidimensional, bidimensional, tridimensional, etc). Esta propriedade retorna um inteiro contendo a quantidade de dimensões. Veja o código para o exemplo:
using System;
namespace Estudos {
class Program {
static void Main(string[] args) {
// cria uma matriz de duas dimensões: quatro linhas
// e duas colunas
int[,] matriz = new int[4, 2];
// obtém a quantidade de dimensões
int dimen = matriz.Rank;
Console.WriteLine("Este array possui " + dimen + " dimensões.");
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
Ao executar este código C# nós teremos o seguinte resultado: Este array possui 2 dimensões. |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como testar a ocorrência de uma substring em uma string do C# usando o método Contains() da classe StringQuantidade de visualizações: 3 vezes |
|
Nesta dica mostrarei como usar o método Contains() da classe String do C# para verificar se uma letra ou palavra está contida em uma frase ou texto. Se a substring for encontrada, a função Contains() retorna um valor true (verdadeiro), e false (falso) em caso contrário. Veja o exemplo completo:
using System;
namespace Estudos {
class Program {
static void Main(string[] args) {
string frase = "Gosto de programar em C#";
// a frase contém a palavra "programar"?
if (frase.Contains("programar")) {
Console.WriteLine("A palavra pesquisada está contida na string");
}
// a palavra pesquisada não foi encontrada na string
else {
Console.WriteLine("A palavra pesquisada NÃO está contida na string");
}
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
Ao executar este código C# nós teremos o seguinte resultado: A palavra pesquisada está contida na string Tenha em mente que o método Contains() da classe String do C# diferencia letras maiúsculas de letras minúsculas. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos |
Exercício Resolvido de Java - Crie uma classe Agenda que pode armazenar 10 pessoas e que seja capaz de realizar as seguintes operaçõesQuantidade de visualizações: 6728 vezes |
|
Exercícios Resolvidos de Java - Crie uma classe Agenda que pode armazenar 10 pessoas e que seja capaz de realizar as seguintes operações Pergunta/Tarefa: Crie uma classe Agenda que pode armazenar 10 pessoas e que seja capaz de realizar as seguintes operações: void armazenaPessoa(String nome, int idade, float altura); void removePessoa(String nome); int buscaPessoa(String nome); // informa em que posição da agenda está a pessoa void imprimeAgenda(); // imprime os dados de todas as pessoas da agenda void imprimePessoa(int index); // imprime os dados da pessoa que está na posição "i" da agenda. O código deverá ser desenvolvido em Java console (modo texto) e usar um menu switch() para as operações. Sua saída deverá ser parecida com: ![]() Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: Código para a classe Pessoa (Pessoa.java):
package arquivodecodigos;
public class Pessoa {
private String nome;
private int idade;
private double altura;
// construtor cheio
public Pessoa(String nome, int idade, double altura) {
this.nome = nome;
this.idade = idade;
this.altura = altura;
}
// construtor vazio
public Pessoa() {
}
// método que imprime todos os dados da pessoa
public void imprimirDados(){
System.out.println("Nome: " + nome + "\nIdade: " +
idade + "\nAltura: " + altura);
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
public double getAltura() {
return altura;
}
public void setAltura(double altura) {
this.altura = altura;
}
}
Código para a classe Agenda (Agenda.java):
package arquivodecodigos;
public class Agenda {
// vetor que guardará as pessoas
private Pessoa pessoas[];
// construtor da classe Agenda
public Agenda(int quantidade){
pessoas = new Pessoa[quantidade];
}
public void armazenaPessoa(String nome, int idade, double altura){
// ainda temos posições disponíveis na agenda?
boolean cadastrado = false;
for(int i = 0; i < pessoas.length; i++){
if(pessoas[i] == null){
// encontramos uma posição
Pessoa p = new Pessoa(nome, idade, altura); // criamos uma nova pessoa
// guardamos ela no vetor
pessoas[i] = p;
// e avisamos que o cadastro foi efetuado com sucesso
cadastrado = true;
break; // sai do laço
}
}
if(cadastrado){
System.out.println("\nCadastro efetuado com sucesso");
}
else{
System.out.println("\nNão foi possível cadastrar. Agenda cheia");
}
}
// método que permite pesquisar e excluir uma pessoa
public void removePessoa(String nome){
// vamos verificar se a exclusão foi efetuada com sucesso
boolean excluido = false;
for(int i = 0; i < pessoas.length; i++){
if(pessoas[i] != null){
// esta é a pessoa que estamos procurando?
if(pessoas[i].getNome().equals(nome)){
pessoas[i] = null; // posição disponível novamente
excluido = true;
break; // sai do laço
}
}
}
if(excluido){
System.out.println("\nPessoa removida com sucesso");
}
else{
System.out.println("\nNão foi possível remover. Pessoa não encontrada.");
}
}
// informa em que posição da agenda está a pessoa
public int buscaPessoa(String nome){
int resultado = -1;
// vamos verificar se a pessoa existe na agenda
for(int i = 0; i < pessoas.length; i++){
if(pessoas[i] != null){
// esta é a pessoa que estamos procurando?
if(pessoas[i].getNome().equals(nome)){
resultado = i;
break; // sai do laço
}
}
}
return resultado;
}
// imprime os dados de todas as pessoas da agenda
public void imprimeAgenda(){
// vamos percorrer o vetor de pessoas e imprimir cada uma
for(int i = 0; i < pessoas.length; i++){
if(pessoas[i] != null){
Pessoa p = pessoas[i];
System.out.println("\nNome: " + p.getNome());
System.out.println("Idade: " + p.getIdade());
System.out.println("Altura: " + p.getAltura());
}
}
}
// imprime os dados da pessoa que está na posição "i" da agenda
public void imprimePessoa(int index){
// este índice é válido?
if((index < 0) || (index > (pessoas.length - 1))){
System.out.println("\nÍndice inválido");
}
else{
Pessoa p = pessoas[index];
if(p == null){
System.out.println("\nNão existe pessoa nesse índice ainda.");
}
else{
System.out.println("\nNome: " + p.getNome());
System.out.println("Idade: " + p.getIdade());
System.out.println("Altura: " + p.getAltura());
}
}
}
}
Código para a classe Principal (Principal.java):
package arquivodecodigos;
import java.util.Scanner;
public class Principal {
// para fazer a leitura da entrada do usuário
static Scanner entrada = new Scanner(System.in);
public static void main(String[] args) {
// cria uma nova Agenda
Agenda agenda = new Agenda(10);
String nome; // nome da pessoa
int idade; // idade da pessoa
double altura; // altura da pessoa
// cria o menu de opções
while(true){
System.out.println("\n1. Nova Pessoa");
System.out.println("2. Excluir Pessoa");
System.out.println("3. Buscar Pessoa");
System.out.println("4. Imprimir Agenda");
System.out.println("5. Imprimir Pessoa (Índice)");
System.out.println("6. Sair");
System.out.print("Sua opção: ");
int opcao = Integer.parseInt(entrada.nextLine());
switch(opcao){
case 1:
System.out.print("\nInforme o nome: ");
nome = entrada.nextLine();
System.out.print("Informe a idade: ");
idade = Integer.parseInt(entrada.nextLine());
System.out.print("Informe a altura (use ponto em vez de vírgula): ");
altura = Double.parseDouble(entrada.nextLine());
agenda.armazenaPessoa(nome, idade, altura);
break;
case 2:
System.out.print("\nInforme o nome a ser removido: ");
nome = entrada.nextLine();
agenda.removePessoa(nome);
break;
case 3:
System.out.print("\nInforme o nome a ser pesquisado: ");
nome = entrada.nextLine();
int indice = agenda.buscaPessoa(nome);
if(indice < 0){
System.out.println("\nA pessoa não foi encontrada");
}
else{
System.out.println("\nA pessoa foi encontrada no índice: "
+ indice);
}
break;
case 4:
agenda.imprimeAgenda();
break;
case 5:
System.out.print("\nInforme o índice desejado: ");
int index = Integer.parseInt(entrada.nextLine());
agenda.imprimePessoa(index);
break;
case 6:
System.exit(0);
default:
System.out.println("\nOpção inválida\n");
break;
}
}
}
}
|
Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet |
Como usar a propriedade Active da classe TClientDataSet do DelphiQuantidade de visualizações: 12912 vezes |
|
A propriedade Active de um controle TClientDataSet pode ser definida em tempo de design (pelo Object Inspector) ou em tempo de execução. Se o valor for True os dados armazenados no TClientDataSet podem ser lidos e manipulados. Se o valor for False, o client dataset está fechado (closed) e não podemos acessar nem manipular os dados contidos nele. Veja no trecho de código abaixo como definir o valor da propriedade Active em tempo de execução:
procedure TForm3.Button3Click(Sender: TObject);
begin
// vamos ativar o client dataset
ClientDataSet1.Active := True;
// vamos testar se o client dataset foi mesmo ativado
if ClientDataSet1.Active then
ShowMessage('O ClientDataSet está ativo')
else
ShowMessage('O ClientDataSet NÃO está ativo')
end;
Ao clicar no botão nós "ativamos" o client dataset e em seguida testamos o valor da propriedade Active para informar se o controle foi realmente ativado. É preciso ter muito cuidado. Tentar manipular os dados de um client dataset fechado pode resultar em uma exceção do tipo EDatabaseError com mensagens parecidas com: Project Projeto.exe raised exception class EDatabaseError with message 'ClientDataSet1: Cannot perform this operation on a closed dataset'. Ao definirmos o valor True para a propriedade Active as seguintes ações ocorrem: 1) O client dataset é preenchido com dados. Dependendo das propriedades do controle, estes dados podem vir de três formas diferentes: a) Do arquivo especificado na propriedade FileName; b) Do provider especificado na propriedade ProviderName ou por meio do método SetProvider. (algumas classes derivadas de TCustomClientDataSet possuem um componente interno que faz o papel do provider); c) Os dados que estavam ativos quando o client dataset foi desativado (somente se a aplicação foi executada durante um certo período depois que o dataset foi desativado). 2) O evento BeforeOpen é disparado. 3) O valor dsBrowse é atribuído à propriedade State do dataset. 4) Abre e posiciona um cursor no primeiro registro do conjunto de dados. 5) Dispara o evento AfterOpen. Se o client dataset nunca foi ativado, atribuir o valor True para a propriedade Active faz com que a estrutura (metadata) do client dataset seja definida. Esta estrutura é obtida juntamente com o pacote de dados a partir do provider ou armazenado em disco. Se não houver pacote de dados, tal estrutura é construída usando o valor atual da propriedade FieldDefs ou a partir dos componentes de campos persistentes listados na propriedade Fields. Se um erro ocorrer durante a abertura do dataset, seu estado (State) é definido como dsInactive e o cursor de navegação é fechado. Ao definirmos o valor False para a propriedade Active as seguintes ações ocorrem: 1) O evento BeforeClose é disparado. 2) O valor para a propriedade State é definido como dsInactive. 3) O cursor de navegação é fechado, salvando os dados atuais em disco se a propriedade FileName estiver definida e salvando o pacote de dados atual em cache de forma que o mesmo possa ser restaurado mais tarde quando o dataset for reaberto. 4) O evento AfterClose é disparado. Importante: Uma chamada ao método Open do TClientDataSet define a propriedade Active como True, enquanto uma chamada ao método Close a define como False. Esta dica foi escrita e testada no Delphi 2009. |
Dart ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercícios Resolvidos de Dart - Ler os lados de um triângulo e informar se ele é isósceles, escaleno ou equiláteroQuantidade de visualizações: 1515 vezes |
|
Pergunta/Tarefa: Um triângulo é uma forma geométrica (polígono) composta de três lados, sendo que cada lado é menor que a soma dos outros dois lados. Assim, para que um triângulo seja válido, é preciso que seus lados A, B e C obedeçam à seguinte regra: A < (B + C), B < (A + C) e C < (A + B). Escreva um programa Dart que leia os três lados de um triângulo e verifique se tais valores realmente formam um triângulo. Se o teste for satisfatório, informe se o triângulo é isósceles (dois lados iguais e um diferente), escaleno (todos os lados diferentes) ou equilátero (todos os lados iguais). Sua saída deverá ser parecida com: Informe o primeiro lado do triângulo: 30 Informe o segundo lado do triângulo: 40 Informe o terceiro lado do triângulo: 60 O triângulo é escaleno Veja a resolução comentada deste exercício usando Dart:
// Vamos importar a biblioteca dart:io
import 'dart:io';
void main(){
// vamos ler o primeiro lado do triângulo
stdout.write("Informe o primeiro lado do triângulo: ");
int lado_a = int.parse(stdin.readLineSync());
// vamos ler o segundo lado do triângulo
stdout.write("Informe o segundo lado do triângulo: ");
int lado_b = int.parse(stdin.readLineSync());
// vamos ler o terceiro lado do triângulo
stdout.write("Informe o terceiro lado do triângulo: ");
int lado_c = int.parse(stdin.readLineSync());
// os lados informados formam um triângulo?
if((lado_a < (lado_b + lado_c)) && (lado_b < (lado_a + lado_c))
&& (lado_c < (lado_a + lado_b))){
// é um triângulo equilátero (todos os lados iguais)?
if((lado_a == lado_b) && (lado_b == lado_c)){
stdout.write("\nO triângulo é equilátero\n");
}
else{
// é isósceles (dois lados iguais e um diferente)?
if((lado_a == lado_b) || (lado_a == lado_c) || (lado_c == lado_b)){
stdout.write("\nO triângulo é isósceles\n");
}
else{
// é escaleno
stdout.write("\nO triângulo é escaleno\n");
}
}
}
else{
stdout.write("\nOs lados informados não formam um triângulo.\n");
}
}
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Dart |
Veja mais Dicas e truques de Dart |
Dicas e truques de outras linguagens |
|
wxWidgets - Como baixar, compilar a biblioteca e criar um projeto C++ wxWidgets usando o Visual Studio 2017 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




