Dúvidas, comentários e doaçoes: +55 62 9 8513 2505

Planilha de Dimensionamento de Tubulações Hidráulicas Água Fria e Água Quente Completa
Nossa 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 Ética e Legislação Profissional
Card 1 de 8
Noções de licitação pública

Modalidades da licitação:

Convite é a modalidade dirigida para interessados do ramo do objeto da licitação e é adequado para contratações de menor valor. Na Lei n.º 14.133/2021, essa modalidade foi extinta.

Leilão é a modalidade para a venda de bens móveis que não servem mais para a administração pública, a venda de produtos legalmente apreendidos ou penhorados e para a alienação de imóveis da administração pública.

Concurso é a modalidade indicada para a escolha de um trabalho técnico, artístico ou científico.

Pregão é a modalidade de licitação para aquisição de bens e serviços comuns. No artigo 1º, parágrafo único, da Lei n.º 10.520/2002, consta que bens e serviços comuns são "aqueles cujos padrões de desempenho e qualidade possam ser objetivamente definidos pelo edital, por meio de especificações usuais no mercado". Isso significa que são bens e serviços que não têm características técnicas especiais, sendo facilmente encontrados no mercado. O pregão também foi previsto na nova lei de licitações, no artigo 28, i.

Concorrência é a modalidade indicada para contratações de grandes valores, em que o interessado precisa comprovar a qualificação exigida no edital.

Filtrar Cards
Use esta opção para filtrar os cards pelos tópicos que mais lhe interessam.
Termos:
Aviso Importante: Nos esforçamos muito para que o conteúdo dos cards e dos testes e conhecimento seja o mais correto possível. No entanto, entendemos que erros podem ocorrer. Caso isso aconteça, pedimos desculpas e estamos à disposição para as devidas correções. Além disso, o conteúdo aqui apresentado é fruto de conhecimento nosso e de pesquisas na internet e livros. Caso você encontre algum conteúdo que não deveria estar aqui, por favor, nos comunique pelos e-mails exibidos nas opções de contato.
Link para compartilhar na Internet ou com seus amigos:

C ::: Dicas & Truques ::: Ponteiros, Referências e Memória

Como usar ponteiros void na linguagem C - Curso de Linguagem C para iniciantes

Quantidade de visualizações: 17259 vezes
Em dicas desta seção você aprendeu que é possível criar ponteiros para os mais diferentes tipos. Veja:

int *ponteiro_int;
float *ponteiro_float;
double *ponteiro_double;

Existe, porém, um tipo de ponteiro que pode ser usado com todos os tipos de dados existentes ou ainda a serem criados. Este tipo é conhecido como void, ou seja, um ponteiro genérico e pode ser declarado da seguinte forma:

void *ponteiro; // ponteiro genérico

Veja um trecho de código no qual usamos um ponteiro genéríco para apontar para variáveis de diferentes tipos:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int valor = 20;
  float valor2 = 5.23;

  void *ponteiro; // ponteiro genérico

  ponteiro = &valor; // aponta para um inteiro
  printf("%d\n", *(int *)ponteiro);

  ponteiro = &valor2; // aponta para um float
  printf("%0.2f\n", *(float *)ponteiro);

  system("PAUSE");
  return 0;
}

Uma observação importante é a necessidade de uma conversão explícita (cast) no momento de desreferenciar um ponteiro genéríco. Neste caso ele precisa ser convertido para o tipo de ponteiro sendo usado no momento. Veja:

printf("%d\n", *(int *)ponteiro);

A parte (int *)ponteiro converte o ponteiro genérico em um ponteiro do tipo int e o símbolo * externo é usado para desreferenciar. Se essa conversão não for feita teremos um aviso e erro na maioria dos compiladores. Veja:

printf("%d\n", *ponteiro);

[Warning] dereferencing 'void *' pointer
invalid use of void expression  

Embora essa conversão seja necessária quando estamos desreferenciando um ponteiro genérico, podemos abrir mão dela na atribuição de um ponteiro genérico a um ponteiro de um tipo específico:

ponteiro = &valor; // aponta para um inteiro
int *ponteiro_int = ponteiro;
printf("%d\n", *ponteiro_int);

Para finalizar, saiba que as funções malloc() e calloc() retornam ponteiros void, ou seja, ponteiros genéricos que podem ser atribuídos a ponteiros de qualquer tipos. Neste caso, o ponteiro retornado por estas funções aponta para a primeira posição do bloco de memória requisitada.


C# ::: Windows Forms ::: ListBox

Como excluir um item de uma ListBox do C# Windows Forms baseado em seu valor usando a função Remove() da propriedade ListBox.Items

Quantidade de visualizações: 1050 vezes
Nesta dica mostrarei como remover um item de uma ListBox do C# Windows Forms usando a função Remove() da propriedade Items da classe ListBox. Note que, se o item fornecido ao método Remove() não estiver na lista, nada acontecerá.

Veja o trecho de código:

private void button2_Click(object sender, EventArgs e){
  // exclui o elemento com o valor "Curitiba"
  listBox1.Items.Remove("Curitiba");
}



JavaScript ::: Fundamentos da Linguagem ::: Estruturas de Controle

JavaScript para iniciantes - Como usar o laço do-while da linguagem JavaScript

Quantidade de visualizações: 7971 vezes
O laço do..while (também chamado de loop ou laço repita enquanto) da linguagem JavaScript é usado quando queremos repetir uma instrução ou um grupo de instruções ENQUANTO uma condição for satisfeita. Veja sua sintáxe:

do{
  // uma instrução ou grupo de instruções
}while(condição);

A condição pode ser qualquer expressão que resulte em um valor boolean (true ou false). Note também que, diferente do laço while (enquanto) o teste condicional do laço do-while é feito DEPOIS de cada iteração (repetição) do laço. Isso faz com que este laço seja executado no mínimo uma vez.

Veja um trecho de código no qual usamos o laço do..while para contar de 0 até 10:

<html>
<head>
<title>Estudos JavaScript</title>
</head>
<body>

<script type="text/javascript">
  var i = 0;
  
  do{
    document.write(i + "<br>");
    i++;
  }while(i <= 10);  
</script>

</body>
</html>

Ao executarmos este código teremos o seguinte resultado:

0
1
2
3
4
5
6
7
8
9
10

Veja que declaramos uma variável de controle i e a inicializamos com o valor 0. No corpo do laço nós exibimos o valor da variável de controle e a incrementamos em 1. Em seguida nós verificamos se seu valor é menor ou igual a 10. Como esta condição é satisfeita, o laço é executado pela segunda vez. Dessa forma o ciclo continua até que o valor da variável de controle seja maior que 10, o que faz com que o laço cesse sua repetição.

Veja agora como modificar o laço do-while anterior para exibir os números de 10 até 0:

<html>
<head>
<title>Estudos JavaScript</title>
</head>
<body>

<script type="text/javascript">
  var i = 10;
  
  do{
    document.write(i + "<br>");
    i--;
  }while(i >= 0);  
</script>

</body>
</html>

Agora o resultado do código será:

10
9
8
7
6
5
4
3
2
1
0

Esta dica foi escrita e testada no Internet Explorer 8 e Firefox 3.6.


VB.NET ::: Dicas & Truques ::: Matemática e Estatística

Como calcular juros simples e montante em VB.NET

Quantidade de visualizações: 8968 vezes
O regime de juros será simples quando o percentual de juros incidir apenas sobre o valor principal. Sobre os juros gerados a cada período não incidirão novos juros. Valor Principal ou simplesmente principal é o valor inicial emprestado ou aplicado, antes de somarmos os juros. Transformando em fórmula temos:

J = P . i . n

Onde:

J = juros
P = principal (capital)
i = taxa de juros
n = número de períodos

Imaginemos uma dívida de R$ 2.000,00 que deverá ser paga com juros de 5% a.m. pelo regime de juros simples e o prazo para o pagamento é de 2 meses. O cálculo em VB.NET pode ser feito assim:

Module Module1
  Sub Main()
    Dim principal As Double = 2000.0
    Dim taxa As Double = 0.08 '8%
    Dim meses As Integer = 2

    Dim juros As Double = principal * taxa * meses

    Console.WriteLine("O total de juros a ser pago é: " _
       & juros)

    Console.WriteLine()
    Console.WriteLine("Pressione uma tecla para sair...")
    Console.ReadKey()
  End Sub
End Module

O montante da dívida pode ser obtido das seguintes formas:

a) Montante = Principal + Juros
b) Montante = Principal + (Principal x Taxa de juros x Número de períodos)

M = P . (1 + (i . n))

Veja o código:

Module Module1
  Sub Main()
    Dim principal As Double = 2000.0
    Dim taxa As Double = 0.08 '8%
    Dim meses As Integer = 2

    Dim juros As Double = principal * taxa * meses
    Dim montante As Double = principal * (1 + (taxa * meses))

    Console.WriteLine("O total de juros a ser pago é: " _
       & juros)
    Console.WriteLine("O montante a ser pago é: " & montante)

    Console.WriteLine()
    Console.WriteLine("Pressione uma tecla para sair...")
    Console.ReadKey()
  End Sub
End Module



Java ::: Tratamento de Erros ::: Passos Iniciais

Quais as diferenças entre checked exceptions, runtime exceptions e errors na linguagem Java?

Quantidade de visualizações: 16070 vezes
Checked exceptions (exceções verificadas), runtime exceptions (exceções de tempo de execução) e errors (erros) possuem diferenças importantes e devem ser entendidas perfeitamente para tirarmos maior proveito da plataforma Java.

Entre as checked exceptions podemos citar FileNotFoundException, ClassNotFoundException e IOException. Agora veja: problemas tais como um arquivo não encontrado, uma classe não encontrada ou problemas com entrada e saída (talvez a impressora parou de responder ou a rede caiu) fogem completamente do domínio da aplicação. Tais exceções não são provocadas por código mal escrito ou mal testado. Desta forma, o Java força que todas as checked exceptions estejam em um bloco try...catch. Vamos ver se isso é verdade? Observe o trecho de código abaixo:

import java.io.*;

public class Estudos{
  public static void main(String[] args){
    DataInputStream in = new DataInputStream(
      new BufferedInputStream(
        new FileInputStream("conteudo.txt")));
        
    while(in.available() != 0)
      System.out.print((char) in.readByte());
    
    System.exit(0);
  }
}

Se tentarmos compilar este código teremos o seguinte resultado:

Estudos.java:7: unreported exception 
java.io.FileNotFoundException; must be caught 
or declared to be thrown
  new FileInputStream("conteudo.txt")));
  ^
Estudos.java:9: unreported exception 
java.io.IOException; must be caught or 
declared to be thrown
  while(in.available() != 0)
           ^
Estudos.java:10: unreported exception 
java.io.IOException; must be caught or 
declared to be thrown
  System.out.print((char) in.readByte());
                             ^
3 errors


Aqui nós temos uma exceção FileNotFoundException e duas exceções IOException. Vamos nos concentrar na exceção gerada pelo construtor da classe FileInputStream. Folheando a documentação do Java nós encontramos:

public FileInputStream(String name)
  throws FileNotFoundException


É aqui que as coisas começam a ficar interessantes. Todos os métodos Java que podem atirar exceções verificadas são marcados com throws e o tipo de exceção lançada. A palavra throws é usada para transferir a responsabilidade do tratamento do erro para o chamador de tais métodos. Outro exemplo é o método readByte() da classe DataInputStream:

public final byte readByte()
  throws IOException


Para corrigir as exceções acima, só precisamos usar um bloco try...catch. Veja:

import java.io.*;

public class Estudos{
  public static void main(String[] args){
    try{
      DataInputStream in = new DataInputStream(
        new BufferedInputStream(
          new FileInputStream("conteudo.txt")));
        
      while(in.available() != 0)
        System.out.print((char) in.readByte());
    } 
    catch(IOException e){
      System.out.print(e.getMessage());
    }

    System.exit(0);
  }
}  

Exceções verificadas são todas aquelas que descendem de Exception mas não descendem de RuntimeException.

As exceções de tempo de execução (runtime exceptions) são provocadas por código mal escrito ou mal testado, ou seja, são causadas por nós programadores. Entre estas exceções podemos citar ArithmeticException, IndexOutOfBoundsException e NoSuchElementException. De fato, um erro aritmético é responsabilidade do programador, pois cabe a este verificar se os valores estão dentro da faixa permitida por cada tipo de dados.

Ao contrário das exceções verificadas, o compilador não força o uso do bloco try...catch para as runtime exceptions. De fato, isso é fácil de compreender, uma vez que tais exceções não deveriam jamais aparecer.

Contudo, pode ser desejável usar o bloco try...catch em casos em que os valores de uma operação são definidos pelo usuário. Veja um exemplo:

import java.util.*;

public class Estudos{
  public static void main(String[] args){
    Scanner in = new Scanner(System.in);
    
    System.out.print("Informe um inteiro: ");
    int valor = in.nextInt();

    System.out.print("Informe outro inteiro: ");
    int valor2 = in.nextInt();

    System.out.println("O resultado é " + 
      valor / valor2);
  }
}

Se executarmos este código e informarmos o valor 0 para o segundo inteiro, teremos a seguinte exceção:

Informe um inteiro: 4
Informe outro inteiro: 0
Exception in thread "main" 
  java.lang.ArithmeticException: / by zero
  at Estudos.main(Estudos.java:13)


Uma forma de corrigir isso é testando os valores informados para verificar suas faixas ou lançar uma exceção. Veja como usamos esta última alternativa:

import java.util.*;

public class Estudos{
  public static void main(String[] args){
    Scanner in = new Scanner(System.in);
    
    System.out.print("Informe um inteiro: ");
    int valor = in.nextInt();

    System.out.print("Informe outro inteiro: ");
    int valor2 = in.nextInt();

    try{
      System.out.println("O resultado é " + 
        valor / valor2);
    }
    catch(ArithmeticException e){
      System.out.println("Uma exceção " +
       "ArithmeticException ocorreu, " +
       "possivelmente uma tentativa de " +
       "divisão por zero.");
    }
  }
}

Agora se informarmos zero para o segundo inteiro, teremos:

Informe um inteiro: 5
Informe outro inteiro: 0
Uma exceção ArithmeticException ocorreu, 
possivelmente uma tentativa de divisão
por zero.


As runtime exceptions (causadas por falha nossa, os programadores) descedem de java.lang.RuntimeException.

Além das runtime exceptions e das checked exceptions, temos também os errors, que descedem de java.lang.Error e não devem jamais ser atirados ou tratados em blocos try...catch. Este tipo de erro é reservado para indicar problema na JVM. Entre tais erros temos OutOfMemoryError, que é lançado quando a Java Virtual Machine não consegue alocar um objeto porque sua fatia de memória esgotou e o Garbage Collector ainda não liberou mais memória. Não há razão para tratarmos isso em um bloco try...catch uma vez que, ao contrário de C++, a liberação de memória só é feita pelo GC. O melhor a fazer é deixar mesmo o programa ser encerrado e encontrar alternativas para a correção do problema.


Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser. Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 19,90


© 2026 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 47 usuários muito felizes estudando em nosso site.