PHP ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular raiz quadrada usando PHP - Como efetuar cálculos de raiz quadrada em PHP usando a função sqrt()Quantidade de visualizações: 14919 vezes |
Em algumas situações precisamos obter a raiz quadrada de um determinado valor. Em PHP isso pode ser feito com o auxílio da função sqrt(). Veja um exemplo de seu uso:<? // valor cuja raiz quadrada será obtida $valor = 25; // vamos obter a raiz quadrada do valor acima $raiz_quadrada = sqrt($valor); // vamos exibir o resultado echo "A raiz quadrada de " . $valor . " é: " . $raiz_quadrada; ?> Ao executarmos este código teremos o seguinte resultado: A raiz quadrada de 25 é: 5. Note, porém, que se tentarmos obter a raiz quadrada de um número negativo o valor será NAN. Veja: <? // valor cuja raiz quadrada será obtida $valor = -25; // vamos obter a raiz quadrada do valor acima $raiz_quadrada = sqrt($valor); // vamos exibir o resultado echo "A raiz quadrada de " . $valor . " é: " . $raiz_quadrada; ?> Ao executarmos este código teremos o seguinte resultado: A raiz quadrada de -25 é: NAN. |
Python ::: Dicas & Truques ::: Lista (List) |
Como excluir e retornar um item da lista Python baseado em seu índice usando a função pop()Quantidade de visualizações: 9294 vezes |
Nesta dica mostrarei como é possível usar o método pop() do objeto List da linguagem Python para excluir e retornar um item de uma lista baseado em seu índice. Tudo que precisamos fazer é informar o índice do elemento a ser excluído e retornado. Veja o exemplo Python completo: """ Este exemplo mostra como excluir e retornar um determinado item em uma lista """ def main(): # cria uma lista de inteiros valores = [4, 23, 7, 1, 0, 54] # imprime a lista print(valores) # remove um determinado item # vamos remover o terceiro item (7) valor = valores.pop(2) print("Item removido:", valor) # exibe a lista novamente print(valores) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: [4, 23, 7, 1, 0, 54] Item removido: 7 [4, 23, 1, 0, 54] É importante ficarmos atentos aos erros que podem ocorrer com chamadas à função pop(). Por exemplo, se a List estiver vazia, o seguinte erro será exibido: Exception has occurred: IndexError pop from empty list Se, por exemplo, fornecermos ao método pop() um índice inexistente, o seguinte erro ocorrerá: Exception has occurred: IndexError pop index out of range |
Ruby ::: Dicas & Truques ::: Strings e Caracteres |
Como converter uma string em um valor inteiro em Ruby usando a função to_i da classe StringQuantidade de visualizações: 11481 vezes |
Em algumas situações precisamos transformar um valor contido em uma string em um valor numérico do tipo inteiro. Em Ruby podemos fazer isso usando o método to_i da classe String. Veja: # um número inteiro declarado como string valor = "34" # vamos somar este número a um outro resultado = 30 + valor.to_i # exibe o resultado puts resultado Ao executar este código Ruby nós teremos o seguinte resultado: 64 |
PHP ::: Dicas & Truques ::: Strings e Caracteres |
Como usar a função strpos() do PHP para encontrar a posição da primeira ocorrência de uma substring em uma stringQuantidade de visualizações: 6267 vezes |
Em algumas situações gostaríamos de encontrar a posição da primeira ocorrência de uma substring em uma string usando PHP. Para isso podemos usar a função strpos(). Veja sua assinatura:mixed strpos(string $haystack, mixed $needle[, int $offset = 0]) O parâmetro $haystack é a string na qual a substring será pesquisada e $needle é a substring que queremos pesquisar. O parâmetro opcional $offset é o índice a partir do qual a pesquisa será feita. Na ausência deste parâmetro, a pesquisa será feita a partir do primeiro caractere da string. Veja um trecho de código no qual tentamos encontrar o índice da primeira ocorrência da palavra "PHP" na frase "Eu gosto de PHP": <?php $pos = strpos("Eu gosto de PHP", "PHP"); if($pos === false){ echo "A substring não foi encontrada."; } else{ echo "A substring foi encontrada no índice: " . $pos; } ?> Ao executarmos este trecho de código nós teremos o seguinte resultado: A substring foi encontrada no índice: 12 Fique atento ao uso do operador "===" para testar o retorno da função strpos(). Se você quiser inverter o teste, basta usar o operador "!==". Para finalizar, note que a função strpos() diferencia maiúsculas de minúsculas. Se você quiser efetuar uma pesquisa de substrings desconsiderando maiúsculas e minúsculas, use a função stripos(). Ambas as funções strpos() e stripos() podem provocar o erro "Offset not contained in string" se o valor do parâmetro $offset não estiver entre 0 (incluindo e o tamanho da string. |
C++ ::: Win32 API (Windows API) ::: Processos |
Como usar a função EnumProcesses() da WinAPI em seus códigos C++ para obter os identificadores de cada processo ativo no WindowsQuantidade de visualizações: 8495 vezes |
A função EnumProcesses() pode ser usada quando queremos obter os ids de todos os processos sendo executados no momento no Windows. Veja o protótipo desta função:BOOL WINAPI EnumProcesses( DWORD* pProcessIds, DWORD cb, DWORD* pBytesReturned ); Esta função possui três parâmetros: a) DWORD* pProcessIds - Um ponteiro para uma matriz que receberá a lista de identificadores dos processos. É importante definir uma matriz um pouco grande, visto que não sabemos de antemão quantos processos serão retornados. b) DWORD cb - O tamanho da matriz pProcessIds em bytes. c) DWORD* pBytesReturned - O números de bytes retornados na matriz pProcessIds. Podemos facilmente saber quantos processos foram encontrados simplesmente dividindo o número de bytes retornados pela quantidade de bytes em um DWORD. Veja um trecho de código no qual listamos os ids de todos os processos sendo executados atualmente. #include <cstdlib> #include <iostream> #include <windows.h> #include <psapi.h> /* Este exemplo usa o header <psapi.h> É necessário fazer uma referência à psapi.lib */ using namespace std; int main(int argc, char *argv[]){ DWORD processos[1024]; // vamos listar até 1024 processos DWORD pBytesReturned; // bytes retornados pela função EnumProcesses() // vamos listar os processos EnumProcesses(processos, sizeof(processos), &pBytesReturned); // quantidade de processos retornados int retornados = pBytesReturned / sizeof(DWORD); // agora vamos listar os ids dos processos retornados for(int i = 0; i < retornados; i++){ if(!processos[i] == 0){ cout << "Processo " << (i + 1) << ": " << processos[i] << endl; } } system("PAUSE"); return EXIT_SUCCESS; } O id de um processo pode ser fornecido para muitas funções úteis do Windows, entre elas OpenProcess(). Veja um trecho de código no qual fechamos (forçadamente) um processo mediante o fornecimento de seu id: #include <cstdlib> #include <iostream> #include <windows.h> using namespace std; int main(int argc, char *argv[]){ // vamos fechar o processo com o id 3040 // CUIDADO: Verifique o id do processo antes de fechá-lo // pode ser que você esteja fechando processos essenciais // para o bom funcionamento do Windows // vamos abrir o processo desejado // vai retornar ERROR_INVALID_HANDLE se o processo não // puder ser aberto HANDLE hProcesso = OpenProcess(PROCESS_TERMINATE, 0, 3040); // vamos fechar o processo if(TerminateProcess(hProcesso, 0)){ cout << "Processo finalizado com sucesso." << endl; } else{ cout << "Erro ao finalizar o processo: " << GetLastError() << endl; } // vamos fechar o handle do processo CloseHandle(hProcesso); system("PAUSE"); return EXIT_SUCCESS; } |
Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular o determinante de uma matriz 3x3 usando a regra de Sarrus em Java - Java para Álgebra LinearQuantidade de visualizações: 3664 vezes |
Como calcular o determinante de uma matriz 3x3 usando a Regra de Sarrus em Java - Java para Álgebra Linear Os estudos da Geometria Analítica e Álgebra Linear envolvem, em boa parte de seus cálculos, a magnitude de vetores, ou seja, o módulo, tamanho, comprimento ou intensidade dos vetores. E isso não é diferente em relação às matrizes. Quando uma matriz é envolvida nos cálculos, com muita frequência precisamos obter o seu determinante, que nada mais é que um número real associado à todas as matrizes quadradas. Nesta dica mostrarei como obter o determinante de uma matriz quadrada de ordem 3, ou seja, três linhas e três colunas, usando a regra de Sarrus (somente matrizes 3x3). Note que é possível obter o mesmo resultado com o Teorema de Laplace, que não está restrito às matrizes quadradas de ordem 3. Veja também que não considerei as propriedades do determinante, o que, em alguns casos, simplifica muito os cálculos. Então, vamos supor a seguinte matriz 3x3: ![]() O primeiro passo é copiarmos a primeira e a segunda colunas para o lado direito da matriz. Assim: ![]() Agora dividimos a matriz em dois conjuntos: três linhas diagonais descendentes e três linhas diagonais ascendentes: ![]() Agora é só efetuar cálculos. Multiplicamos e somamos os elementos de cada conjunto, subtraindo o segundo conjunto do primeiro. Veja: (1 x 5 x 9 + 2 x 6 x 7 + 3 x 4 x 8) - (7 x 5 x 3 + 8 x 6 x 1 + 9 x 4 x 2) = 0 Como podemos ver, o determinante dessa matriz é 0. E agora veja o código Java no qual declaramos e instanciamos uma matriz 3x3 de double e, em seguida, calculamos o seu determinante: package arquivodecodigos; public class Estudos{ public static void main(String[] args){ double m[][] = {{1, 2, 3}, {2, 5, 2}, {1, 3, 1}}; // calcula o determinante usando a Regra de Sarrus double det = ((m[0][0] * m[1][1] * m[2][2]) + (m[0][1] * m[1][2] * m[2][0]) + (m[0][2] * m[1][0] * m[2][1])) - ((m[2][0] * m[1][1] * m[0][2]) + (m[2][1] * m[1][2] * m[0][0]) + (m[2][2] * m[1][0] * m[0][1])); System.out.println("O determinante da matriz é: " + det); } } Ao executar este código Java nós teremos o seguinte resultado: O determinante da matriz é: 2.0 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas |
Exercícios Resolvidos de Java - Como remover no início de uma lista ligada em Java - Escreva um programa Java que cria uma lista dinamicamente encadeadaQuantidade de visualizações: 727 vezes |
Pergunta/Tarefa: Escreva um programa Java que cria uma lista dinamicamente encadeada (lista singularmente encadeada) e peça para o usuário inserir 5 elementos do tipo inteiro. Em seguida faça a remoção do nó no início da lista ligada e retorne o seu valor. Sua saída deve ser parecida com: Inserindo 5 valores na lista Informe o 1.o valor: 3 Informe o 2.o valor: 8 Informe o 3.o valor: 4 Informe o 4.o valor: 7 Informe o 5.o valor: 6 Valores na lista: 3 -> 8 -> 4 -> 7 -> 6 -> null Removendo no início da lista O nó removido foi: 3 Valores na lista novamente: 8 -> 4 -> 7 -> 6 -> null Na saída podemos ver que a lista contém os valores 3, 8, 4, 7 e 6. Depois que o nó no início é removido, os elementos da lista ficam 8, 4, 7 e 6. Veja a resolução comentada deste exercício usando Java: package estudos; import java.util.Scanner; // classe interna usada para representar um // nó na lista ligada class No { int valor; // valor do nó No proximo; // aponta para o novo nó // construtor cheio da classe No public No(int valor, No proximo) { this.valor = valor; this.proximo = proximo; } // construtor vazio da classe No public No() { this.valor = 0; this.proximo = null; } } public class Estudos { // vamos criar uma referência para o início da lista static No inicio = null; public static void main(String args[]){ // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos inserir 5 valores inteiros na lista ligada int valor; System.out.println("Inserindo 5 valores na lista\n"); for (int i = 0; i < 5; i++) { System.out.print("Informe o " + (i + 1) + ".o valor: "); valor = Integer.parseInt(entrada.nextLine()); // vamos inserir este valor no final da lista inserirFinal(valor); } // vamos exibir os valores na lista ligada System.out.print("\nValores na lista: "); exibirLista(); // vamos remover o nó no início da lista ligada System.out.println("\nRemovendo no início da lista"); No removido = removerInicio(); System.out.println("O nó removido foi: " + removido.valor); // vamos exibir os valores na lista ligada System.out.print("\nValores na lista novamente: "); exibirLista(); } // função que permite remover o nó no início de uma lista // dinamicamente ligada em Java public static No removerInicio() { // primeiro apontamos para o início da lista No no = inicio; // a lista está vazia? if (no != null) { // o início da lista aponta para o seu próximo inicio = inicio.proximo; } // retorna o nó removido ou null no caso da lista vazia return no; } // função que permite adicionar um nó no final da // lista ligada public static void inserirFinal(int valor) { // vamos apontar para o nó inicial No atual = inicio; // criamos um novo nó No novo = criarNo(valor); // a lista ligada ainda está vazia? if (atual == null){ // inicio recebe o novo nó inicio = novo; } else { // temos um ou mais nós na lista ligada // vamos localizar o último nó while (atual.proximo != null) { atual = atual.proximo; } // encontramos o último nó. Agora vamos inserir // o novo nó depois dele atual.proximo = novo; } } // função usada para construir e retornar um novo nó public static No criarNo(int valor) { // cria o novo nó No no = new No(valor, null); // retorna o nó criado return no; } // função usada para percorrer a lista ligada e // exibir os valores contidos em seus nós public static void exibirLista() { // vamos apontar para o início da lista No temp = inicio; // a lista está vazia? if (temp == null) { System.out.println("A lista está vazia."); } else { // esse laço se repete enquanto tempo for // diferente de null while (temp != null) { // vamos mostrar o valor desse nó System.out.print(temp.valor + " -> "); // avança para o próximo nó temp = temp.proximo; } // mostra o final da lista System.out.println("null"); } } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos |
POO - Programação Orientada a Objetos - Exercícios Resolvidos de Java - Ex. 2 - A classe Circulo (construtores, métodos, getters e setters e encapsulamento)Quantidade de visualizações: 19769 vezes |
Pergunta/Tarefa: Escreva uma classe Circulo para representar círculos. Esta classe deverá conter os seguintes atributos e métodos: a) Uma variável privada do tipo double chamada raio que guardará o valor do raio atual do circulo. b) Métodos get() e set() públicos que permitem definir e acessar o valor da variável raio. c) Um construtor que recebe o valor do raio como argumento. d) Um método getArea() que calcula e retorna a área do círculo. e) Um método getCircunferencia() que calcula e retorna a circunferência do círculo. f) Um método aumentarRaio() que recebe um valor double e o usa como percentual para aumentar o raio do círculo. Crie uma classe contendo um método main() para testar a funcionalidade da classe Circulo. Eis um exemplo de entrada e saída: ![]() Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: Circulo.java: package estudos; public class Circulo{ private double raio; // guarda o raio atual do círculo // construtor que recebe o valor do raio como argumento public Circulo(double raio){ this.raio = raio; } // permite obter o raio do círculo public double getRaio(){ return raio; } // permite definir o raio do círculo public void setRaio(double raio){ this.raio = raio; } // obtém a área do círculo public double getArea(){ double area = Math.PI * Math.pow(this.raio, 2); return area; } // obtém a circunferência do círculo public double getCircunferencia(){ double circunferencia = (2 * Math.PI) * this.raio; return circunferencia; } // permite aumentar o raio de acordo com uma porcentagem fornecida public void aumentarRaio(double porcentagem){ this.raio = this.raio + (porcentagem / 100.0) * this.raio; } } Veja agora o método main() que nos permite testar a funcionalidade da classe Circulo: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // vamos criar uma instância da classe Circulo Scanner entrada = new Scanner(System.in); System.out.print("Informe o raio do círculo: "); double raio = Double.parseDouble(entrada.nextLine()); Circulo c = new Circulo(raio); // vamos mostrar o valor do raio atual System.out.println("Raio: " + c.getRaio()); // vamos mostrar a área System.out.println("Área: " + c.getArea() + " metros quadrados"); // vamos mostrar a circunferência System.out.println("Circunferência: " + c.getCircunferencia() + " metros"); // vamos aumentar o raio do circulo em uma determinada porcentagem System.out.print("\nInforme o percentual de aumento do raio: "); double percentual = Double.parseDouble(entrada.nextLine()); c.aumentarRaio(percentual); // vamos mostrar o valor do raio atual System.out.println("Raio: " + c.getRaio()); // vamos mostrar a área System.out.println("Área: " + c.getArea() + " metros quadrados"); // vamos mostrar a circunferência System.out.println("Circunferência: " + c.getCircunferencia() + " metros"); } } |
Python ::: Python para Engenharia ::: Engenharia Civil - Instalações de Águas Pluviais |
Como calcular a área de contribuição de água da chuva de um telhado usando Python - Python para Engenharia Civil - Instalações de Águas PluviaisQuantidade de visualizações: 242 vezes |
![]() De acordo com a NBR 10844 de 1989, que trata das instalações de águas pluviais, a área de contribuição corresponde à "Soma das áreas das superfícies que, interceptando chuva, conduzem as águas para determinado ponto da instalação". As superfícies que interceptam a água da chuva podem ser, por exemplo, superfícies planas horizontais (como lajes), superfícies inclinadas (como os telhados da maioria das casas e edifícios e mostrado na figura acima) e superfícies planas verticais (como as platibandas). No caso das superficies inclinadas, ou seja, os telhados comumente encontrados, a fórmula para o cálculo da área da contribuição da água da chuva é feito por meio da seguinte fórmula: \[A = \left(a + \frac{h}{2}\right) \cdot b\] Onde: A é a área de contribuição de água da chuva do telhado considerado em m2; a é a largura do telhado em metros; b é o comprimento do telhado em metros; h é a altura do telhado em metros, conforme mostrado na figura acima. Veja agora o código Python que pede para o usuário informar a largura, a altura e o comprimento do telhado e mostra a sua área de contribuição de água da chuva: # função principal do programa def main(): # vamos pedir para o usuário informar a largura do telhado largura = float(input("Informe a largura do telhado em metros: ")) # vamos pedir para o usuário informar o comprimento do telhado comprimento = float(input("Informe o comprimento do telhado em metros: ")) # vamos pedir para o usuário informar a altura do telhado altura = float(input("Informe a altura do telhado em metros: ")) # vamos calcular a área de contribuição do telhado area = (largura + (altura / 2.0)) * comprimento # e mostramos os resultados print("\nA área de contribuição do telhado é: {0} m2".format( round(area, 5))) if __name__ == "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Informe a largura do telhado em metros: 5 Informe o comprimento do telhado em metros: 15 Informe a altura do telhado em metros: 1.5 A área de contribuição do telhado é: 86.25 m2 |
Java ::: Classes e Componentes ::: JMenuBar, JMenu, JMenuItem e Afins |
Java Swing - Como usar objetos da classe JCheckBoxMenuItem como itens de menu de suas aplicações Java SwingQuantidade de visualizações: 8958 vezes |
Neste exemplo mostrarei como usar objetos da classe JCheckBoxMenuItem como itens de um menu. Tais itens podem ser usados quando o usuário puder marcar uma ou mais opções, em um grupo relacionado de opções. Veja o resultado na imagem abaixo: ![]() E agora o código completo para o exemplo: package arquivodecodigos; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Estudos extends JFrame{ JCheckBoxMenuItem cores[]; Color valCores[] = {Color.red, Color.white, Color.green}; String nomeCores[] = {"Vermelho", "Branco", "Verde"}; public Estudos(){ super("Menus"); // Cria a barra de menus JMenuBar barra = new JMenuBar(); setJMenuBar(barra); // Cria um menu JMenu formatar = new JMenu("Formatar"); // Cria o menu de cor de fundo JMenu item1 = new JMenu("Cor de Fundo"); // Adiciona o segundo JMenu ao primeiro formatar.add(item1); cores = new JCheckBoxMenuItem[valCores.length]; Gerenciador gerenciador = new Gerenciador(); for(int i = 0; i < valCores.length; i++){ cores[i] = new JCheckBoxMenuItem(nomeCores[i]); item1.add(cores[i]); cores[i].addItemListener(gerenciador); } // Adiciona o menu à barra de menus barra.add(formatar); setSize(300, 150); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } private class Gerenciador implements ItemListener{ public void itemStateChanged(ItemEvent e){ String marcadas = "As checkbox marcadas são:\n\n"; for(int i = 0; i < cores.length; i++){ if(cores[i].isSelected()){ marcadas += nomeCores[i] + "\n"; } } JOptionPane.showMessageDialog(null, marcadas); } } } |
Nossas 20 dicas & truques de programação mais populares |
Java - Estruturas de dados em Java - Como obter a quantidade de nós em uma árvore binária usando Java Excel - Como converter graus em radianos no Excel usando a função RADIANOS() - Trigonometria no Excel |
Você também poderá gostar das dicas e truques de programação abaixo |
Python - Como testar se um ponto está dentro de um círculo em Python - Desenvolvimento de Games com Python |
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 |