![]() |
|||||
|
LISP ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular MMC em Lisp - Como calcular o Mínimo Múltiplo Comum na linguagem LispQuantidade de visualizações: 918 vezes |
O Mínimo Múltiplo Comum (MMC), ou LCM (Least Common Multiple) é um tipo de operação matemática utilizada para encontrar o menor número positivo, diferente de 0 (zero), que é múltiplo ao mesmo tempo de dois ou mais números. O MMC é utilizado, por exemplo, na soma e subtração de frações - quando é necessário um denominador comum. Nesta dica mostrarei como podemos calcular o MMC de dois números inteiros informados pelo usuário. Veja o código Common Lisp completo: ; variáveis que vamos usar no programa (let ((num1)(num2)(maior)(mmc)) ; Vamos ler o primeiro número (princ "Informe o primeiro número: ") ; talvez o seu compilador não precise disso (force-output) ; atribui o valor lido à variável num1 (setq num1 (read)) ; Vamos ler o segundo número (princ "Informe o segundo número: ") ; talvez o seu compilador não precise disso (force-output) ; atribui o valor lido à variável num2 (setq num2 (read)) ; agora escolhemos o maior número (cond ((> num1 num2)(setq maior num1)) (t (setq maior num2)) ) ; e entramos em um laço loop (loop ; testa se o maior é divisível por num1 e por num2 (cond ((and (= 0 (rem maior num1))(= 0 (rem maior num2))) ; mmc recebe o maior e sai do laço (setq mmc maior)(return))) ; incrementa o valor da variável maior (setq maior (+ maior 1)) ) ; mostra o resultado (format t "O MMC dos dois números é ~D" mmc) ) Ao executarmos este código Common Lisp nós teremos o seguinte resultado: Informe o primeiro número: 6 Informe o segundo número: 3 O MMC dos dois números é: 6 Note que a linguagem Common Lisp possui uma função LCM() que permite calcular o MMC de dois ou mais números. Minha intenção com essa dica foi mostrar como o cálculo do MMC é feito em Common Lisp. |
Python ::: PyQt GUI Toolkit ::: QPushButton |
Como criar um botão em Python PyQt usando a classe QPushButtonQuantidade de visualizações: 1245 vezes |
Os botões QPushButton são os controles mais básicos e comuns em aplicações GUI PyQt. Eles são criados a partir da classe QPushButton. Veja a sua posição na hierarquia de classes dos PyQt:QObject, QPaintDevice QWidget QAbstractButton QPushButton QCommandLinkButton Veja um trecho de código no qual criamos um botão QPushButton e o colocamos em uma janela QWidget: # vamos importar os módulos necessários import sys from PyQt6.QtCore import * from PyQt6.QtGui import * from PyQt6.QtWidgets import * # método que mostrará a janela principal def mostrar_janela_principal(): # cria uma instância da classe QApplication app = QApplication(sys.argv) # criamos a janela principal janela = QWidget() # definimos o título da janela janela.setWindowTitle("Cadastro de Clientes") # definimos as coordenadas e as dimensões da janela janela.setGeometry(100, 100, 500, 300) # vamos criar um botão QPushButton botao = QPushButton("Cadastrar", janela) # definimos a localização do botão botao.move(10, 10) # tornamos a janela visível janela.show() # e executamos a aplicação sys.exit(app.exec()) if __name__== "__main__": mostrar_janela_principal() Ao executar este código Python PyQt nós teremos o seguinte resultado: ![]() |
QGIS ::: PyQGIS API ::: Projeto QGIS - Classe QgsProject |
Como retornar o título do projeto do QGIS usando PyQGIS e a função title() da classe QgsProjectQuantidade de visualizações: 314 vezes |
Em algumas situações nós precisamos obter o título do projeto atual do QGIS. Para isso nós podemos usar a função title() da classe QgsProject da PyQGIS API. Note que o título do projeto do QGIS é definido indo no menu Projeto -> Propriedades. Na janela Propriedades nós acessamos a guia Geral e definimos no campo Título do Projeto o valor que desejamos. Veja o código PyQGIS completo que acessa e exibe o título do projeto em uma mensagem QMessageBox.information: # vamos obter o título do projeto do QGIS titulo = QgsProject.instance().title() # e mostramos o resultado QMessageBox.information(None, "Aviso", "O título do projeto é: " + titulo) Ao executar este código PyQGIS nós teremos um resultado parecido com: O título do projeto é: Estudo hidrológico cliente AFG Rio Verde-GO |
Java ::: Fundamentos da Linguagem ::: Modificadores |
Como usar o modificador synchronized da linguagem JavaQuantidade de visualizações: 24049 vezes |
O modificador synchronized tem seu uso e importância destacados quando várias threads (fluxos de execução) estão sendo executadas em um programa. Tais threads podem tentar acessar métodos de uma ou mais classes ao mesmo tempo. No entanto, pode ser necessário planejarmos o sistema de forma que determinados métodos possam ser acessados por somente uma thread de cada vez, talvez para garantir a integridade de valores das diversas variáveis envolvidas no processo. É aqui que o modificador synchronized é usado. Ao marcarmos um método como synchronized, o sistema de execução Java garantirá que apenas uma thread de cada vez acesse tal método. Se outras threads tentarem fazer o mesmo, elas serão colocadas em espera até que a thread atual finalize seu trabalho e libere o método. Um exemplo de aplicação do modificador synchronized pode ser visto em uma classe Pilha. Como sabemos, esta estrutura de dados possui métodos para inserir um novo item no topo da pilha e para removê-lo do topo (lembra? LIFO: Last In First Out). Ora, para evitar que uma thread remova o elemento do topo ao mesmo tempo em que outra está tentando inserir, tais métodos devem ser marcados como synchronized. Isso evitará que os dados sejam corrompidos. |
PHP ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular porcentagem em PHP - Como efetuar cálculos de porcentagem em PHPQuantidade de visualizações: 33468 vezes |
Cálculos de porcentagens estão presentes em boa parte das aplicações que desenvolvemos. Porém, há momentos em que a mente trava e não conseguimos lembrar com clareza como estes cálculos são feitos, principalmente em PHP. Esta anotação tem o objetivo de ser uma fonte de pesquisa para os momentos em que suas habilidades matemáticas insistirem em continuar ocultas. Ex: 1 - Suponhamos que um produto que custe R$ 178,00 sofra um acréscimo de 15%. Qual o valor final do produto? Veja o código em PHP: <?php // Algoritmo que calcula porcentagem em PHP $valor = 178.00; // valor original $percentual = 15.0 / 100.0; // 15% $valor_final = $valor + ($percentual * $valor); // mostra o resultado echo "O valor final do produto é: " . $valor_final; // O resultado será 204,70 ?> Ex: 2 - Um produto, cujo valor original era de R$ 250,00, teve um desconto de 8%. Qual foi seu valor final? Veja o código em PHP: <?php // Algoritmo que calcula porcentagem em PHP $valor = 250.00; // valor original $percentual = 8.0 / 100.0; // 8% $valor_final = $valor - ($percentual * $valor); // mostra o resultado echo "O valor final do produto é: " . $valor_final; // O resultado será 230,00 ?> Ex: 3 - Em um concurso de perguntas e respostas, um jovem acertou 72 das 90 perguntas apresentadas. Qual foi a porcentagem de acertos? E a porcentagem de erros? Veja o código em PHP: <?php // Algoritmo que calcula porcentagem em PHP $perguntas = 90.0; $acertos = 72.0; // mostra a porcentagem de acertos echo "Porcentagem de acertos: " . (($acertos / $perguntas) * 100) . "%"; // mostra a porcentagem de erros echo "<br>Porcentagem de erros: " . ((($perguntas - $acertos) / $perguntas) * 100) . "%"; // Os resultados serão 80% e 20% ?> Ex: 4 - Um aparelho de CD foi adquirido por R$ 300,00 e revendido por R$ 340,00. Qual foi a porcentagem de lucro na transação? Veja o código em PHP: <?php // Algoritmo que calcula porcentagem em PHP $valor_anterior = 300.0; // valor anterior $novo_valor = 340.0; // valor novo // calcula a porcentagem de lucro // efetua o cálculo $porcentagem_lucro = (($novo_valor * 100) / $valor_anterior) - 100; echo "A porcentagem de lucro foi de: " . $porcentagem_lucro . "%"; // O resultado será 13,33 ?> Ex: 5 - Uma loja repassa 5% do lucro a seus vendedores. Se um produto custa R$ 70,00, qual o valor em reais repassado a um determinado vendedor? Veja o código em PHP: <?php // Algoritmo que calcula porcentagem em PHP $valor = 70.0; // valor do produto $percentual = 5.0 / 100.0; // 5% // calcula a comissão $comissao = $percentual * $valor; // mostra o resultado echo "O valor repassado ao vendedor é: " . $comissao; // O resultado será 3,5 ?> |
Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais |
Saiba o que é Reflexão (Reflection) em Java - Como usar Reflexão (Reflection) na linguagem Java - RevisadoQuantidade de visualizações: 18458 vezes |
Reflection (ou Reflexão), também conhecida como RTI (Runtime Type Information) em algumas linguagens, é um mecanismo para descobrir dados a respeito de um programa em tempo de execução. Reflection em Java nos permite descobrir informações sobre atributos ou membros (campos), métodos e construtores de classes. Podemos também operar nos campos e métodos que descobrimos. A Reflection permite o que é normalmente chamada de programação dinâmica em Java. A Reflection em Java é conseguida usando a Java Reflection API. Esta API consiste de classes nos pacotes java.lang e java.lang.reflect. Antes de prosseguirmos, veja um exemplo de como podemos listar todos os métodos públicos da classe Object: package arquivodecodigos; import java.lang.reflect.*; public class Estudos{ public static void main(String args[]){ // vamos carregar a classe Object try{ Class c = Class.forName("java.lang.Object"); // obtém os nomes dos métodos Method[] metodos = c.getMethods(); // exibe o nome de cada método for(int i = 0; i < metodos.length; i++){ System.out.println(metodos[i].getName()); } } catch(ClassNotFoundException e){ System.out.println(e.getMessage()); } System.exit(0); } } Ao executarmos este código nós teremos o seguinte resultado: wait wait wait equals toString hashCode getClass notify notifyAll Eis uma lista das coisas que podemos fazer com a Java Reflection API: 1) Determinar a classe de um objeto; 2) Obter informações sobre os modificadores, campos (atributos), métodos, construtores e superclasses de uma classe; 3) Descobrir quais constantes e declarações de métodos pertencem a uma interface; 4) Criar uma instância de uma classe cujo nome não sabemos até o tempo de execução; 5) Obter e definir o valor do campo de um objeto; 6) Invocar um método em um objeto; 7) Criar um novo array, cujo tamanho e tipo de dados só saberemos em tempo de execução. A Java Reflection API é geralmente usada para criar ferramentas de desenvolvimento tais como debuggers, class browsers e construtores de GUI. Geralmente, neste tipo de ferramentas, precisamos interagir como classes, objetos, métodos e campos, e não sabemos quais em tempo de compilação. Assim, a aplicação deve, dinamicamente, encontrar e acessar estes itens. Esta dica foi revisada e testada no Java 8. |
Python ::: Dicas & Truques ::: Lista (List) |
Vetores e matrizes em Python - Como inserir itens em posições aleatórias de uma listaQuantidade de visualizações: 9753 vezes |
Este exemplo mostra como adicionar itens em posições aleatórias de uma lista Python. Note como usamos o método insert() da classe List passando um valor randômico para o índice no qual o novo elemento será inserido. Veja o código completo para a dica: # vamos importar o módulo random import random def main(): # cria uma lista vazia valores = [] # início do laço for for i in range(1, 11): valor = int(input("Informe um inteiro: ")) if(len(valores) == 0): valores.insert(0, valor) else: # insere o valor em um posição aleatória valores.insert(random.randrange(0, len(valores)), valor) # exibe os valores da lista print("Valores na lista:", valores, "\n") # fim do laço for if __name__== "__main__": main() Ao executarmos este código Python nós teremos o seguinte resultado: Informe um inteiro: 9 Valores na lista: [9] Informe um inteiro: 3 Valores na lista: [3, 9] Informe um inteiro: 2 Valores na lista: [2, 3, 9] Informe um inteiro: 8 Valores na lista: [2, 3, 8, 9] Informe um inteiro: 10 Valores na lista: [10, 2, 3, 8, 9] Informe um inteiro: 18 Valores na lista: [18, 10, 2, 3, 8, 9] Informe um inteiro: 30 Valores na lista: [18, 10, 30, 2, 3, 8, 9] Informe um inteiro: 60 Valores na lista: [18, 10, 30, 2, 3, 8, 60, 9] Informe um inteiro: 67 Valores na lista: [18, 10, 67, 30, 2, 3, 8, 60, 9] Informe um inteiro: 82 Valores na lista: [18, 10, 67, 30, 2, 3, 8, 82, 60, 9] |
JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como remover o primeiro elemento de um array em JavaScript - Como usar a função shift() do objeto Array do JavaScriptQuantidade de visualizações: 8759 vezes |
Neste dica mostrarei como usar o método shift() do objeto Array da linguagem JavaScript para remover e retornar o primeiro elemento de um vetor. A ação de remover o primeiro elemento, ou seja, o elemento do topo do vetor é muito usada na construção da estrutura de dados pilha. Veja o código completo, incluindo a página HTML que permite executar o exemplo: <html> <head> <meta charset="utf-8"> <title>Estudos JavaScript</title> </head> <body> <script language="javascript"> // vamos declarar e instanciar um vetor com 5 elementos var valores = new Array(1, 2, 3, 4, 5); document.write("Valores no vetor: " + valores + "<br>"); // vamos remover o primeiro elemento var primeiro = valores.shift(); document.write("Removendo o primeiro elemento: " + primeiro + "<br>"); document.write("Valores no vetor: " + valores); </script> </body> </html> Ao abrir esta página HTML nós teremos o seguinte resultado: Valores no vetor: 1,2,3,4,5 Removendo o primeiro elemento: 1 Valores no vetor: 2,3,4,5 |
AutoLISP ::: Dicas & Truques ::: Layer, Layers |
Como retornar o nome da layer atual do AutoCAD usando AutoLISP e a variável de sistema CLAYERQuantidade de visualizações: 319 vezes |
A variável de sistema CLAYER (Current Layer) é usada quando queremos definir ou retornar o nome da layer atual do AutoCAD. E nesta dica mostrarei como podemos acessar e retornar o valor desta variável usando AutoLISP. O primeiro passo é usar a função getvar e passar para ela o valor "CLAYER". De posse desse valor nós usamos setq para guardá-lo em uma variável de nossa preferência. Para finalizar basta chamar a função princ combinada com strcat para mostrar o resultado. Veja o código AutoLISP completo para o exemplo: ; Esta função permite obter e exibir o valor atual ; da variável CLAYER do AutoCAD. Esta variável retorna ; o nome da layer atual (defun c:layer_atual() (setq nome_layer_atual (getvar "CLAYER")) ; mostramos o resultado (princ (strcat "\nNome da layer atual: " nome_layer_atual)) (princ) ) Ao executar este código AutoLISP nós teremos o seguinte resultado: Nome da layer atual: PAREDES |
Python ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como testar condições em Python usando a estrutura condicional if...elif...else (se, senão se, senão)Quantidade de visualizações: 9994 vezes |
A instrução condicional if (se) é usada para verificar uma condição na linguagem Python. Se esta condição for verdadeira, um bloco de códigos é executado. Opcionalmente um bloco de códigos pode também ser executado caso a condição seja falsa. Veja um exemplo: def main(): numero = 10 valor = int(input("Informe um inteiro: ")) if valor == numero: print("Parabéns, você acertou de primeira") print("Já tentou a Megasena?") elif valor < numero: print("Tente um número maior") else: print("Tente um número menor") if __name__== "__main__": main() Ao executar este código nós teremos o seguinte resultado: Informe um inteiro: 3 Tente um número maior Observe que as instruções a serem executadas em um bloco são agrupadas por indentação. |
Nossas 20 dicas & truques de programação mais populares |
JavaScript - Como testar se uma string contém uma determinada substring em JavaScript usando a função includes() |
Você também poderá gostar das dicas e truques de programação abaixo |
Delphi - Como obter o número do registro atual em um TClientDataSet do Delphi usando a propriedade RecNo VB.NET - Como contar as ocorrências de um caractere em uma string em VB.NET usando o método IndexOf() C - Como alocar memória para instâncias de uma estrutura (struct) e acessá-las usando ponteiros em C |
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 |