Você está aqui: Cards de Ética e Legislação Profissional |
||
|
||
|
|
||
Java ::: Java Swing - Componentes Visuais ::: JPanel |
Como fazer uma sub-classe de JPanel para desenhar um gráfico no Java SwingQuantidade de visualizações: 12426 vezes |
|
Nesta dica mostrarei como podemos criar uma classe Desenho que herda da classe JPanel do Java Swing para criar uma área de desenho. Esta é uma das práticas mais comuns quando queremos desenhar gráficos ou exibir imagens em Java Swing. Note como sobrescrevemos o método paintComponent(Graphics g) herdado da classe JPanel para pintar o fundo do painel na cor amarela e depois desenhamos um retângulo azul. Veja o código Java Swing completo para o exemplo:
package estudos;
import java.awt.*;
import javax.swing.*;
public class Estudos extends JFrame{
public Estudos() {
super("A classe JPanel");
Container c = getContentPane();
Desenho desenho = new Desenho();
c.add(desenho);
setSize(350, 250);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
// Sub-classe de JPanel
class Desenho extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
// Define a cor de fundo
setBackground(Color.YELLOW);
// Desenha um quadrado na cor azul
g.setColor(Color.BLUE);
g.fillRect(10, 10, 100, 100);
}
}
|
Ruby ::: Dicas & Truques ::: Strings e Caracteres |
Como contar as ocorrências de uma substring em uma string em Ruby usando a função scan()Quantidade de visualizações: 8650 vezes |
Podemos obter a quantidade de vezes em que uma substring aparece em uma string Ruby usando o método scan() da classe String. Este método nos permite executar um bloco de código a cada vez que a substring fornecida a ele for encontrada. Veja o exemplo:
# declara e inicializa uma variável string
frase = "Ruby? Gosto muito de Ruby"
puts "A frase é: " + frase
# vamos obter a quantidade de vezes em que a
# substring "Ruby" aparece na frase
quant = 0
substring = "Ruby"
frase.scan(substring){quant = quant + 1}
# exibe o resultado
puts "A substring \"Ruby\" aparece " + quant.to_s \
+ " vezes"
Ao executarmos este código Ruby nós teremos o seguinte resultado: A frase é: Ruby? Gosto muito de Ruby A substring "Ruby" aparece 2 vezes |
Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Estruturas de dados em Java - Como pesquisar um nó em uma árvore binária de busca usando um método recursivo usando JavaQuantidade de visualizações: 2810 vezes |
|
Nesta dica mostraremos um exemplo completo de como pesquisar um valor em uma árvore binária de busca em Java. Note que o exemplo usa apenas inteiros, mas você não terá dificuldades para modificar a classe Nó para os dados que você precisar. Código para No.java:
package arvore_binaria;
public class No {
private int valor; // valor armazenado no nó
private No esquerdo; // filho esquerdo
private No direito; // filho direito
// construtor do nó
public No(int valor){
this.valor = valor;
this.esquerdo = null;
this.direito = null;
}
public int getValor() {
return valor;
}
public void setValor(int valor) {
this.valor = valor;
}
public No getEsquerdo() {
return esquerdo;
}
public void setEsquerdo(No esquerdo) {
this.esquerdo = esquerdo;
}
public No getDireito() {
return direito;
}
public void setDireito(No direito) {
this.direito = direito;
}
}
Código para ArvoreBinariaBusca.java:
package arvore_binaria;
public class ArvoreBinariaBusca {
private No raiz; // referência para a raiz da árvore
// método usado para inserir um novo nó na árvore
// retorna true se o nó for inserido com sucesso e false
// se o elemento
// não puder ser inserido (no caso de já existir um
// elemento igual)
public boolean inserir(int valor){
// a árvore ainda está vazia?
if(raiz == null){
// vamos criar o primeiro nó e definí-lo como a raiz da árvore
raiz = new No(valor); // cria um novo nó
}
else{
// localiza o nó pai do novo nó
No pai = null;
No noAtual = raiz; // começa a busca pela raiz
// enquanto o nó atual for diferente de null
while(noAtual != null){
// o valor sendo inserido é menor que o nó atual?
if(valor < noAtual.getValor()) {
pai = noAtual;
// vamos inserir do lado esquerdo
noAtual = noAtual.getEsquerdo();
}
// o valor sendo inserido é maior que o nó atual
else if(valor > noAtual.getValor()){
pai = noAtual;
// vamos inserir do lado direito
noAtual = noAtual.getDireito();
}
else{
return false; // um nó com este valor foi encontrado
}
}
// cria o novo nó e o adiciona como filho do nó pai
if(valor < pai.getValor()){
pai.setEsquerdo(new No(valor));
}
else{
pai.setDireito(new No(valor));
}
}
return true; // retorna true para indicar que o novo nó foi inserido
}
// método que permite pesquisar na árvore binária de busca
public No pesquisar(int valor){
return pesquisar(raiz, valor); // chama a versão recursiva do método
}
// sobrecarga do método pesquisar que recebe dois
// parâmetros (esta é a versão recursiva do método)
private No pesquisar(No noAtual, int valor){
// o valor pesquisado não foi encontrado....vamos retornar null
if(noAtual == null){
return null;
}
// o valor pesquisado foi encontrado?
if(valor == noAtual.getValor()){
return noAtual; // retorna o nó atual
}
// ainda não encontramos...vamos disparar uma nova
// chamada para a sub-árvore da esquerda
else if(valor < noAtual.getValor()){
return pesquisar(noAtual.getEsquerdo(), valor);
}
// ainda não encontramos...vamos disparar uma nova
// chamada para a sub-árvore da direita
else{
return pesquisar(noAtual.getDireito(), valor);
}
}
}
E finalmente o código para a classe principal:
package arvore_binaria;
import java.util.Scanner;
public class ArvoreBinariaTeste {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos criar um novo objeto da classe ArvoreBinariaBusca
ArvoreBinariaBusca arvore = new ArvoreBinariaBusca();
// vamos inserir 5 valores na árvore
for(int i = 0; i < 5; i++){
System.out.print("Informe um valor inteiro: ");
int valor = Integer.parseInt(entrada.nextLine());
// vamos inserir o nó e verificar o sucesso da operação
if(!arvore.inserir(valor)){
System.out.println("Não foi possível inserir." +
" Um elemento já contém este valor.");
}
}
// vamos pesquisar um valor na árvore
System.out.print("\nInforme o valor a ser pesquisado: ");
int valorPesquisa = Integer.parseInt(entrada.nextLine());
// obtém um objeto da classe NoArvore a partir do
// método pesquisar() da classe ArvoreBinariaBusca
No res = arvore.pesquisar(valorPesquisa);
// o valor foi encontrado?
if(res != null){
System.out.println("O valor foi encontrado na árvore");
}
else{
System.out.println("O valor não foi encontrado na árvore");
}
System.out.println("\n");
}
}
|
PHP ::: Dicas & Truques ::: Arquivos e Diretórios |
Como obter o tamanho de um arquivo em PHP usando a função filesize()Quantidade de visualizações: 13105 vezes |
|
O tamanho de um arquivo pode ser obtido em PHP usando-se a função filesize(). Esta função recebe o caminho e nome do arquivo e retorna seu tamanho em bytes. Lembre-se de que um Kb contém 1024 bytes, caso você queira trabalhar com Kb em vez de bytes. Veja um exemplo de uso da função filesize():
<?php
$arquivo = "testes.txt";
echo "O tamanho do arquivo é: " .
filesize($arquivo) . " bytes";
?>
Ao executar este código PHP nós teremos o seguinte resultado: O tamanho do arquivo é: 940 bytes |
GNU Octave ::: Desafios e Lista de Exercícios Resolvidos ::: Pesquisa Operacional |
Exercício Resolvido de Octave - Programação Linear - Um fazendeiro decidiu misturar duas rações, a Ração X e a Ração Y. Cada porção de ração dada aos animaisQuantidade de visualizações: 559 vezes |
|
Pergunta/Tarefa: Este exercício de Octave aborda o uso da função glpk() para resolver um problema de Pesquisa Operacional usando Programação Linear. 1) Um fazendeiro decidiu misturar duas rações, a Ração X e a Ração Y. Cada porção de ração dada aos animais exige 60g de proteína e 30g de gordura. A Ração X possui 15g de proteína e 10g de gordura, e custa R$ 80,00 a unidade. A Ração Y apresenta 20g de proteína e 5g de gordura e custa R$ 50,00 a unidade. Quanto de cada ração deve ser usada para minimizar os custos do fazendeiro? Sua saída deverá ser parecida com: A solução para o problema de minimização é: x = 2.40 y = 1.20 O custo mínimo é: 252.00 Antes de passarmos ao código Octave, vamos fazer a modelagem matemática do problema. O primeiro passo é identificar as variáveis. Assim, vamos chamar de x o número de unidades da Ração X e de y o número de unidades da Ração Y. Veja: x = Número de unidades da Ração X y = Número de unidades da Ração Y E então temos a função custo: custo = 80x + 50y A primeira restrição diz respeito à quantidade de proteína em cada porção de ração. Sabendo que a Ração X apresenta 15g de proteína e a Ração Y apresenta 20g de proteína nós temos: R1: 15x + 20y >= 60 (proteína) A segunda restrição diz respeito à quantidade de gordura em cada porção de ração. Sabendo que a Ração X apresenta 10g de gordura e a Ração Y apresenta 5g de gordura nós temos: R2: 10x + 5y >= 30 (gordura) As restrições R3 e R4 dizem respeito à não negatividade das variáveis de decisão: R3: x >= 0 R4: y >= 0 Veja agora o código Octave completo (pesquisa_operacional.m):
# vamos começar definindo a matriz que representa a função de
# minimização
c = [80.0, 50.0]';
# agora a matriz de restrições
A = [15, 20; 10, 5];
b = [60, 30]';
# as restrições de não negatividade e o limite superior
lb = [0, 0]';
ub = [];
# definimos as restrições como limites inferiores
ctype = "LL";
# indicamos que vamos usar variáveis contínuas (não inteiros)
vartype = "CC";
# vamos usar minimização, por isso definimos o valor 1. Se fosse
# maximização o valor seria -1
s = 1;
# definimos os parâmetros adicionais
param.msglev = 1;
param.itlim = 100;
# e chamamos a função glpk()
[xmin, fmin, status, extra] = glpk(c, A, b, lb, ub, ctype, vartype, s, param);
# mostramos a solução para o problema de minimização
printf("A solução para o problema de minimização é:\n\n");
printf("x = %.2f\n", xmin(1));
printf("y = %.2f\n", xmin(2));
# para finalizar vamos mostrar o custo mínimo
printf("\nO custo mínimo é: %.2f\n\n", fmin);
Ao executar o código você perceberá que, para minimizar os custos do fazendeiro, deverão ser usados na mistura 2,4 unidades da Ração X e 1,2 unidades da Raça Y, a um custo mínimo de R$ 252,00. |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de GNU Octave |
Veja mais Dicas e truques de GNU Octave |
Dicas e truques de outras linguagens |
|
Python - Como contar quantas vezes um elemento aparece em uma lista do Python usando a função count() |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






