![]() |
|
|
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. |
||
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Como verificar quantas vezes um valor é encontrado em um vetor - Como usar vetores e matrizes em JavaQuantidade de visualizações: 16669 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que declara, constrói e inicializa um vetor de 10 inteiros. Em seguida peça para que o usuário informe um valor a ser pesquisado. Faça uma varredura no vetor e informe quantas vezes o valor pesquisado é encontrado:
// declara, constrói e inicializa um vetor de 10 inteiros
int valores[] = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10};
Informe um valor: 4 O valor foi encontrado: 3 vezes Informe um valor: 8 O valor foi encontrado: 1 vezes Informe um valor: 3 O valor foi encontrado: 0 vezes Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos{
public static void main(String[] args){
// declara, constrói e inicializa um vetor de 10 inteiros
int valores[] = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10};
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos ler um valor inteiro
System.out.print("Informe um valor: ");
int pesquisa = Integer.parseInt(entrada.nextLine());
// vamos verificar quantas vezes o valor informado está
// contido no vetor
int repeticoes = 0;
for(int i = 0; i < valores.length; i++){
if(valores[i] == pesquisa){
repeticoes++; // encontrou? vamos contar esta ocorrência
}
}
// vamos mostrar o resultado
System.out.println("O valor foi encontrado: " +
repeticoes + " vezes");
}
}
|
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: 9462 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;
}
|
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como usar o modificador abstract em suas classes e métodos Java - Programação Orientada a Objetos em Java - Java POOQuantidade de visualizações: 18890 vezes |
O modificador abstract pode ser aplicado a classes e métodos. Seu uso com variáveis pode causar o erro abaixo:
abstract String nome;
Estudos.java:2: modifier abstract not
allowed here
abstract String nome;
^
1 error
Classes abstratas não podem ser instanciadas, ou seja, não podemos chamar seu construtor. Veja um exemplo:
public class Estudos{
public static void main(String args[]){
Cliente cliente = new Cliente();
System.exit(0);
}
}
abstract class Cliente{
public Cliente(){
}
}
Ao tentarmos compilar esta classe teremos o seguinte erro:
Estudos.java:3: Cliente is abstract; cannot be
instantiated
Cliente cliente = new Cliente();
^
1 error
A função principal de classes abstratas é forçar a implementação para as sub-classes. Desta forma, seus métodos são declarados com o modificador abstract e sem corpo. Veja:
abstract class Cliente{
abstract void obterNome();
}
Sempre que suas classes contiverem um ou mais métodos abstratos, você deverá declará-la abstrata. Não seguir esta regra provocará o seguinte erro:
class Cliente{
abstract void obterNome();
}
Estudos.java:9: Cliente is not abstract and does
not override abstract method obterNome() in Cliente
class Cliente{
^
1 error
As situações que fazem com que uma classe deva ser declarada abstract são:
Para finalizar, abstract é o oposto de final. Uma classe final não pode ter sub-classes. Uma classe abstract precisa ter sub-classes. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Declarar e construir um vetor de inteiros e usar um laço for para inicializar seus elementos com os valores de 1 até 10 em JavaQuantidade de visualizações: 18116 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que declara e constrói um array 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 do vetor na vertical. Seu programa deverá exibir a seguinte saída: 1 2 3 4 5 6 7 8 9 10 A resolução desta tarefa passa pela declaração e construção do array. Aqui eu demonstro como isso pode ser feito em dois passos. Primeiro a declaração e depois a construção: // vamos declarar um vetor de 10 ints int valores[]; // vamos construir o vetor...neste momento seus elementos // terão, todos, o valor 0 valores = new int[10]; Veja a resolução completa do exercício:
public static void main(String[] args){
// vamos declarar um array de 10 ints
int valores[];
// vamos construir o array...neste momento seus elementos
// terão, todos, o valor 0
valores = new int[10];
// vamos usar o laço for para inicializar seus elementos
// com os valores de 1 até 10
for(int i = 0; i < valores.length; i++){
// aqui nós usamos o valor da variável i para acessar o
// elemento do array 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(int i = 0; i < valores.length; i++){
System.out.println(valores[i]);
}
}
|
Nossas 20 dicas & truques de programação mais populares |
|
JavaScript - Como converter uma string para letras minúsculas em JavaScript usando a função toLowerCase() do objeto String |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Java - Como testar se uma determinada chave está contida no HashMap do Java usando o método containsKey() JavaScript - Como remover elementos duplicados de um array em JavaScript usando as funções filter() e indexOf() do objeto Array JavaScript - Como retornar uma coleção de nós filhos de um elemento HTML usando a propriedade childNodes do DOM do JavaScript Dart - Como testar se um ponto está dentro de um círculo em Dart - Desenvolvimento de Games com Dart |
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 |





