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:

PHP ::: Dicas & Truques ::: Arquivos e Diretórios

Como excluir um diretório usando a função rmdir() do PHP

Quantidade de visualizações: 16595 vezes
Diretórios podem ser excluídos usando-se a função rmdir(). Esta função recebe o nome do diretório a ser excluído e retorna um valor boolean informando o sucesso ou não da operação. Veja que só é possível excluir um diretório se este estiver vazio e se você tiver as permissões necessárias para tal tarefa.

Veja um trecho de código no qual excluimos um diretório no diretório public_html:

<?php
  // exclui o diretório "imagens"
  $diretorio = "/site/public_html/imagens";
  
  if(rmdir($diretorio)){
    echo "Diretório excluído com sucesso.";
  }
  else{
    echo "Não foi possível excluir o diretório.";
  }
?>

Ao executar este código PHP nós teremos o seguinte resultado:

Diretório excluído com sucesso.

Seja cuidadoso. Se você não tiver as permissões adequadas para excluir um diretório, a seguinte mensagem de erro será exibida:

Warning: rmdir(/home/public_html/imagens) 
[function.rmdir]: Permission denied in 
/home/public_html/testes.php on line 6
Não foi possível excluir o diretório.



Java ::: Classes e Componentes ::: JTree

Java Swing - Como criar sua primeira JTree usando um vetor de nomes de linguagens de programação

Quantidade de visualizações: 13854 vezes
Este exemplo mostra como criar uma JTree bem simples, e que servirá de base para a criação de aplicações Java Swing mais elaboradas. Os itens da JTree são fornecidos como um vetor de objetos, de forma que cada sub-vetor constitui uma seção da árvore. Os elementos (nós) são inseridos em suas devidas posições usando uma função recursiva.

Veja o resultado na figura abaixo:



E agora o código Java completo para o exemplo:

package arquivodecodigos;

import javax.swing.*;
import java.awt.*;
import javax.swing.tree.*;
 
public class Estudos extends JFrame{
  public Estudos(){
    super("Exemplo de uma JTree simples");
     
    Object[] linguagens = {
      "Linguagens",
      new Object[]{
        "Compiladas",
        "C++",
        "Delphi"
      }, 
      new Object[]{
        "Interpretadas",
        "JavaScript",
        "Python",
        "Ruby"
      }
    };
 
    DefaultMutableTreeNode raiz = montar(linguagens);
    JTree arvore = new JTree(raiz);  
 
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
             
    JScrollPane scrollPane = new JScrollPane(arvore);
    c.add(scrollPane);
         
    setSize(400, 300);
    setVisible(true);
  }
     
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
 
  private DefaultMutableTreeNode montar(Object[] hier){
    DefaultMutableTreeNode no = new DefaultMutableTreeNode(hier[0]), filho;
     
    for(int i = 1; i < hier.length; i++){
      Object n_no = hier[i];
      if(n_no instanceof Object[]){ // nó possui filhos
        filho = montar((Object[])n_no);
      }
      else{
        filho = new DefaultMutableTreeNode(n_no); // folha
      }
      
      no.add(filho);
    }
 
    return(no);
  }
}



Python ::: Fundamentos da Linguagem ::: Estruturas de Controle

Apostila Python para iniciantes - Como exibir os números pares de 0 a 20 usando o laço for da linguagem Python

Quantidade de visualizações: 14341 vezes
Nesta dica mostrarei como podemos usar o laço for da linguagem Python para exibir os números pares de 0 a 20. Note que usaremos os parâmetros start (valor inicial da variável de controle), stop (valor final da variável de controle, não incluído) e step (que especifica o valor de incremento da variável de controle.

Veja o código completo para o exemplo:

# função principal do programa
def main():
  for i in range(0, 21, 2):
    print(i, end = "  ")

if __name__== "__main__":
  main()

Ao executar este código nós teremos o seguinte resultado:

0 2 4 6 8 10 12 14 16 18 20


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

Como alocar memória dinâmica usando o operador new do C++

Quantidade de visualizações: 12800 vezes
Em algumas situações precisamos alocar memória dinamicamente. Em C++ isso é feito com o auxílio do operador new. Este operador permite alocar uma determinada quantidade de bytes, alinhados de forma a representar o objeto para o qual queremos reservar memória.

Veja um exemplo de código no qual alocamos memória dinâmica para uma variável do tipo int:

#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // aloca memória para um objeto do tipo int
  int *ponteiro = new int;

  // vamos definir o valor para o objeto recém-alocado
  *ponteiro = 20;

  // vamos exibir seu valor
  cout << *ponteiro << endl;

  // vamos liberar a memória
  delete ponteiro;

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Note que aqui a memória foi alocada e guardada em um ponteiro. Veja também o uso do operador delete para liberar a memória alocada. Isso evita os vazamentos de memória tão frequentes em aplicações que lidam com a memória dinâmica.

É claro que este não é o exemplo mais prático. Qual a vantagem de se alocar memória para um int? Declarar uma variável teria sido mais eficiente.

A alocação de memória dinâmica é mais útil quando estamos lidando com objetos mais complexos que os tipos básicos. Alguns exemplos envolvem a criação de objetos de classes, matrizes, estruturas de dados, etc.

Veja um exemplo no qual temos uma declaração de uma classe chamada Cliente e em seguida alocamos memória para uma instância desta classe:

#include <iostream>
#include <string>

using namespace std;

// declaração da classe Cliente
class Cliente{
  public:
    Cliente();
    string obterNome();
    void definirNome(string);
  private:
    string nome;
};

// implementação dos métodos da classe
Cliente::Cliente(){} // construtor vazio

// obtém o nome do cliente
string Cliente::obterNome(){
  return this->nome;
}

// define o nome do cliente
void Cliente::definirNome(string nome){
  this->nome = nome;
}

int main(int argc, char *argv[]){
  // aloca memória para um objeto da classe Cliente
  Cliente *c = new Cliente();

  // vamos definir o nome do cliente
  c->definirNome("Osmar J. Silva");

  // vamos exibir o nome do cliente
  cout << c->obterNome() << endl;

  // vamos liberar a memória usada
  delete c;

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executar este código C++ nós teremos o seguinte resultado:

Nome do cliente: Osmar J. Silva


Java ::: Fundamentos da Linguagem ::: Tipos de Dados

Java para iniciantes - Como usar o tipo de dados byte da linguagem Java

Quantidade de visualizações: 13165 vezes
O tipo de dados byte pode ser usado quando queremos armazenar valores inteiros na faixa ?128 à 127. Veja um exemplo:

public class Estudos{
  static byte valor = 102; 
  
  public static void main(String args[]){
    System.out.println("O valor da variável é: "
      + valor);
    System.exit(0);
  }
}

Porém, é preciso estar atento a um detalhe muito importante (testado na versão 6 do SDK). Veja o trecho de código seguinte:

public class Estudos{
  public static void main(String args[]){
    byte a = 5;
    byte b = 6;
    byte soma = a + b;    

    System.out.println("O resultado é: " + soma);
    System.exit(0);
  }
}

À primeira vista este código está correto, visto que a soma das variáveis a e b não ultrapassam a faixa do tipo byte. Porém, ao tentarmos compilar, temos a seguinte mensagem de erro:

Estudos.java:5: possible loss of precision
found   : int
required: byte
  byte soma = a + b;
              ^
1 error


Isso acontece porque o tipo de dados resultante da aplicação do operador de adição (e demais operadores binários) a dois números, é no mínimo int. Podemos, é claro, fazer uma coerção de dados (cast). Veja:

byte a = 5;
byte b = 6;
byte soma = (byte)(a + b);

O tipo de dados byte pode ser convertido (sem a necessidade de cast) para os seguintes tipos:

byte -> short -> int -> long -> float -> double


Um tipo byte não pode ser convertido implicitamente para o tipo char. Isso acontece porque o tipo char não possui sinal.


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á 50 usuários muito felizes estudando em nosso site.