Você está aqui: Teste de Conhecimento em Engenharia Civil - Instalações Hidráulicas Prediais |
|
![]() |
PHP ::: PHP + MySQL ::: MySQL Improved Extension (mysqli) |
Código completo: Como listar os campos de uma tabela MySQL, seus tipos de dados e detalhes adicionais - O comando DML SHOW FULL COLUMNS FROM - RevisadoQuantidade de visualizações: 11993 vezes |
O comando DML do MySQL (e MariaDB) SHOW FULL COLUMNS FROM [nome_tabela] é usado quando queremos obter informações sobre os campos de uma determinada tabela. Entre essas informações temos Field (nome do campo), Type (tipo de dados), Collation (o conjunto de caracteres usado), Null (se o campo aceita nulo ou não), Key (se é uma chave e o tipo da chave), Default (o valor padrão), Extra (informação extra, tal como auto-incremento), Privileges (privilégio do usuário logado) e Comment (comentário). Veja um trecho de código PHP no qual nos conectamos a uma base de dados MySQL usando a extensão mysqli e obtemos as informações dos campos de uma tabela chamada "usuarios". Note como o resultado é exibido em uma tabela HTML. Veja o código a seguir: <? // vamos efetuar a conexão com o banco $con = new mysqli("localhost", "root", "osmar1234", "estudos"); // conexão efetuada com sucesso? if($con->connect_errno){ echo "Não foi possível efetuar a conexão: " . $mysqli->connect_error; exit(); // vamos sair daqui } // obtém os nomes dos campos da tabela, seus tipos e // detalhes adicionais $query = mysqli_query($con, "SHOW FULL COLUMNS FROM usuarios"); // títulos da tabela HTML $titulos = array('Campo', 'Tipo', 'Collation', 'Null', 'Chave', 'Padrão', 'Extra'); echo '<table border="1"><tr>'; for($i = 0; $i < count($titulos); $i++){ echo '<td>' . $titulos[$i] . '</td>'; } echo '</tr>'; while($result = mysqli_fetch_array($query)){ echo '<tr>'; for($i = 0; $i < count($titulos); $i++){ echo '<td>' . $result[$i] . ' </td>'; } echo '</tr>'; } echo '</table>'; mysqli_close($con); // fecha a conexão ?> Esta dica foi revisada, atualizada e testada com o PHP 8. |
Java ::: Dicas & Truques ::: Formulários e Janelas |
Java Swing - Como centralizar a janela JFrame ao abrir a aplicação Java SwingQuantidade de visualizações: 20584 vezes |
Em várias ocasiões nós gostaríamos de centralizar a janela JFrame, ou seja, a janela principal de nossa aplicação Java Swing ao abrir o programa. Para isso nós podemos usar o método setLocationRelativeTo() e fornecer a ele o valor null. Veja como isso pode ser feito no código abaixo: import java.awt.*; import javax.swing.*; public class Estudos extends JFrame{ public Estudos() { super("Uso da classe JFrame"); setSize(350, 250); setVisible(true); // centraliza a janela setLocationRelativeTo(null); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
Java ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Java Insertion Sort - Como ordenar um vetor de inteiros usando a ordenação Insertion Sort (Ordenação por Inserção)Quantidade de visualizações: 4648 vezes |
A ordenação Insertion Sort, Insertion-Sort, ou Ordenação por Inserção, possui uma complexidade de tempo de execução igual à ordenação Bubble Sort (Ordenação da Bolha), ou seja, O(n2). Embora mais rápido que o Bubble Sort, e ser um algorítmo de ordenação quadrática, a ordenação Insertion Sort é bastante eficiente para problemas com pequenas entradas, sendo o mais eficiente entre os algoritmos desta ordem de classificação, porém, nunca recomendada para um grande conjunto de dados. A forma mais comum para o entendimento da ordenação Insertion Sort é compará-la com a forma pela qual algumas pessoas organizam um baralho num jogo de cartas. Imagine que você está jogando cartas. Você está com as cartas na mão e elas estão ordenadas. Você recebe uma nova carta e deve colocá-la na posição correta da sua mão de cartas, de forma que as cartas obedeçam à ordenação. A cada nova carta adicionada à sua mão de cartas, a nova carta pode ser menor que algumas das cartas que você já tem na mão ou maior, e assim, você começa a comparar a nova carta com todas as cartas na sua mão até encontrar sua posição correta. Você insere a nova carta na posição correta, e, novamente, a sua mão é composta de cartas totalmente ordenadas. Então, você recebe outra carta e repete o mesmo procedimento. Então outra carta, e outra, e assim por diante, até não receber mais cartas. Esta é a ideia por trás da ordenação por inserção. Percorra as posições do vetor (array), começando com o índice 1 (um). Cada nova posição é como a nova carta que você recebeu, e você precisa inseri-la no lugar correto no sub-vetor ordenado à esquerda daquela posição. Vamos ver a implementação na linguagem Java agora? Observe o seguinte código, no qual temos um vetor de inteiros com os elementos {4, 6, 2, 8, 1, 9, 3, 0, 11}: package arquivodecodigos; public class Estudos{ // método que permite ordenar o vetor de inteiros // usando a ordenação Insertion Sort public static void insertionSort(int[] vetor){ // percorre todos os elementos do vetor começando // pelo segundo elemento for(int i = 1; i < vetor.length; i++){ int atual = vetor[i]; // o valor atual a ser inserido // começa a comparar com a célula à esquerda de i int j = i - 1; // enquanto vetor[j] estiver fora de ordem em relação // a atual while((j >= 0) && (vetor[j] > atual)){ // movemos vetor[j] para a direita e decrementamos j vetor[j + 1] = vetor[j]; j--; } // colocamos atual em seu devido lugar vetor[j + 1] = atual; } } public static void main(String args[]){ // vamos criar um vetor com 9 elementos int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11}; // exibimos o vetor na ordem original System.out.println("Ordem original:\n"); for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + " "); } // vamos ordenar o vetor agora insertionSort(valores); // exibimos o vetor ordenado System.out.println("\n\nOrdenado:\n"); for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + " "); } } } Ao executar este código Java nós teremos o seguinte resultado: Sem ordenação: 4 6 2 8 1 9 3 0 11 Ordenada usando Insertion Sort: 0 1 2 3 4 6 8 9 11 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Um método recursivo que calcula o fatorial de um determinado número inteiroQuantidade de visualizações: 2467 vezes |
Pergunta/Tarefa: Na matemática, o fatorial de um número natural n, representado por n!, é o produto de todos os inteiros positivos menores ou iguais a n. O fatorial de um número n pode ser definido recursivamente da seguinte forma: 0! = 1; n! = n x (n - 1)!; sendo n > 0 public static long fatorial(int n){ // sua implementação aqui } Informe um número inteiro: 5 O fatorial do número informado é: 120 Veja a resolução comentada deste exercício usando Java console: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // cria um novo objeto da classe Scanner Scanner entrada = new Scanner(System.in); // vamos solicitar o número inteiro System.out.print("Informe um número inteiro: "); // lê o número int numero = Integer.parseInt(entrada.nextLine()); // calcula o fatorial corresponde ao número informado System.out.print("O fatorial do número informado é: " + fatorial(numero)); System.out.println("\n"); } // método recursivo que calcula o fatorial de um inteiro informado public static long fatorial(int n){ if(n == 0){ // caso base....retornar return 1; } else{ return n * fatorial(n - 1); // efetua mais uma chamada recursiva } } } |
Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais |
Java Reflection - Como obter um objeto Class usando os métodos getClass() e forName() da classe Class da linguagem JavaQuantidade de visualizações: 10287 vezes |
Uma das tarefas mais básicas que devemos fazer quando estamos usando reflexão em Java, é obter um objeto Class. Uma vez que tenhamos uma instância de Class, podemos obter várias informações sobre uma classe, até mesmo manipulá-la. Nesta dica veremos como usar o método getClass() para obter um objeto Class. Esta forma de obter um objeto Class é frequentemente útil em situações nas quais temos uma instância de uma classe, mas não sabemos a qual classe esta instância pertence (instanceOf). Há várias formas de se obter um objeto Class. Se você tiver uma classe para a qual o nome de tipo é conhecido em tempo de compilação, há uma forma ainda mais fácil de se obter uma intância da classe. Só precisamos usar a palavra chave do compilador .class. Veja: Class classe = JButton.class; Se o nome da classe não foi conhecido em tempo de compilação, mas estiver disponível em tempo de execução (runtime), podemos usar o método forName() para obter um objeto Class. O código a seguir mostra como criar um objeto Class associado à classe javax.swing.JPanel: try{ Class classe = Class.forName("javax.swing.JPanel"); } catch(ClassNotFoundException e){ // trate os erros aqui } Podemos usar também o método getSuperClass() em um objeto Class para obter o objeto Class representando a superclasse da classe que está sofrendo introspecção. O trecho de código a seguir mostra como o objeto classe1 reflete a classe JTextField, e classe2 reflete a classe JTextComponent, uma vez que esta classe é a superclasse de JTextField: JTextField txtNome = new JTextField(); Class classe1 = txtNome.getClass(); Class classe2 = classe1.getSuperclass(); Esta dica foi revisada e atualizada para o Java 8. |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Java - Como carregar uma imagem em um BufferedImage do Java usando o método read() da classe ImageIO |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |