Você está aqui: Cards de Python |
||
|
||
|
|
||
LISP ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar o laço loop para contar de 1 até 10 em LispQuantidade de visualizações: 1084 vezes |
|
A estrutura de repetição loop da linguagem Common Lisp é o laço mais simples fornecido pela linguagem. Este laço nos permite repetir uma ou mais instruções de código repetidamente, até que o comando return seja encontrado, o que faz com que o laço seja interrompido. Veja no trecho de código abaixo como podemos usar o laço loop da Common Lisp para contar e exibir os valores de 1 até 10:
(
; vamos declarar a variável que vamos usar
let (numero)
; vamos inicializar a variável com o valor 1
(setq numero 1)
; agora iniciamos o laço
(loop
; escrevemos o valor da variável
(write numero)
; aumentamos o valor da variável em 1
(setq numero (+ numero 1))
; provocamos uma quebra de linha
(terpri)
; e fazemos o teste da continuidade
(when (> numero 10) (return))
)
)
Ao executarmos este código Common Lisp nós teremos o seguinte resultado: 1 2 3 4 5 6 7 8 9 10 Veja que usamos a macro when para testar o ponto de parada do laço. Note ainda o uso da função terpri da Common Lisp para provocar uma quebra de linha na saída do programa. |
Firebird ::: Dicas & Truques ::: Tipos de Dados |
Como usar os tipos de dados DATE, TIME e TIMESTAMP do FirebirdQuantidade de visualizações: 30826 vezes |
|
No dialeto 3 (SQL DIALECT 3), o tipo de dados DATE do Firebird armazena apenas a data sozinha, ou seja, sem as horas. Esta forma de guardar apenas a data resulta em uma ocupação de 4 bytes (32 bits) na memória. A data armazenada pode variar de 01/01/0001 até 31/12/9999. No dialeto 1, (SQL DIALECT 1), o tipo DATE é o equivalente ao tipo TIMESTAMP do dialeto 3 (o tipo TIMESTAMP passou a existir somente a partir do dialeto 3). Veja um comando DDL CREATE TABLE que cria uma tabela do Firebird contendo um campo do tipo DATE: CREATE TABLE ALUNOS ( ID INTEGER NOT NULL, NOME VARCHAR(40) NOT NULL, NASCIMENTO DATE NOT NULL ); Aqui o campo ID é do tipo INTEGER, NOME é do tipo VARCHAR(40) e NASCIMENTO é do tipo DATE. Veja agora um comando DML INSERT INTO que insere um novo registro nesta tabela. Fique atento à forma como o valor da data é informado: INSERT INTO ALUNOS VALUES(1, 'OSMAR J. SILVA', '1981-11-28'); Veja que a data, assim como o valor para o campo NOME, foi informada entre aspas simples e seguindo o formato YYYY-MM-DD, ou seja, o ano, mês e dia separados por hifens. Para obter os dados inseridos pela query anterior, podemos usar o seguinte comando DML SELECT FROM: SELECT * FROM ALUNOS; Esta query resulta na exibição dos seguintes dados: ID NOME NASCIMENTO 1 OSMAR J. SILVA 28/11/1981 O tipo de dados TIME, disponível apenas a partir do dialeto 3 (SQL DIALECT 3) nos permite armazenar as horas, sem a data. Este tipo ocupa 4 bytes (32 bits) de memória e pode conter valores na faixa de 00:00 até 23:59:59.9999. Veja um comando DDL CREATE TABLE que cria uma tabela do Firebird contendo um campo do tipo TIME: CREATE TABLE COMPROMISSOS ( ID INTEGER NOT NULL, DESCRICAO VARCHAR(80) NOT NULL, DATA DATE NOT NULL, HORA TIME NOT NULL ); Veja que esta tabela possui 4 campos: ID do tipo INTEGER, DESCRICAO do tipo VARCHAR(80), DATA do tipo DATE e HORA do tipo TIME. Eis um comando DML INSERT INTO que mostra como inserir um registro nesta tabela: INSERT INTO COMPROMISSOS VALUES(10, 'ALMOÇO COM A ESPOSA', '2010-12-10', '19:00:00'); Note que, assim como fazemos com campos do tipo DATE, os valores para campos do tipo TIME também devem ser informados entre aspas simples. Veja um comando DML SELECT FROM que lista o registro inserido na query anterior: SELECT * FROM COMPROMISSOS; Esta query produz o seguinte resultado: ID DESCRICAO DATA HORA 10 ALMOÇO COM A ESPOSA 10/12/2010 19:00:00 O tipo TIMESTAMP, disponível apenas a partir do dialeto 3 (SQL DIALECT 3) nos permite armazenar a data e hora juntas. Este tipo ocupa 8 bytes (64 bits) de memória e é equivalente ao tipo DATE do dialeto 1. Veja um comando DDL CREATE TABLE que cria uma tabela do Firebird contendo um campo do tipo TIMESTAMP: CREATE TABLE COMPROMISSOS ( ID INTEGER NOT NULL, DESCRICAO VARCHAR(80) NOT NULL, DATA_HORA TIMESTAMP NOT NULL ); Veja que esta tabela possui três campos: ID é do tipo INTEGER, DESCRICAO é do tipo VARCHAR(80) e DATA_HORA é do tipo TIMESTAMP. Eis um comando DML INSERT INTO que mostra como inserir um registro nesta tabela: INSERT INTO COMPROMISSOS VALUES(20, 'ALMOÇO COM A ESPOSA', '2010-10-23 19:00:00'); Note que os valores para campos do tipo TIMESTAMP também devem ser informados entre aspas simples. Para finalizar, Veja um comando DML SELECT FROM que lista o registro inserido na query anterior: SELECT * FROM COMPROMISSOS; Esta query produz o seguinte resultado: ID DESCRICAO DATA_HORA 20 ALMOÇO COM A ESPOSA 23/10/2010 19:00:00 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Uma função recursiva que conta quantas vezes um valor inteiro k ocorre em um vetor de inteirosQuantidade de visualizações: 2299 vezes |
|
Pergunta/Tarefa: Escreva um método recursivo que conta quantas vezes um valor inteiro k ocorre em um vetor de 10 inteiros. Seu método deverá ter a seguinte assinatura:
public static int quantRepeticoes(int indice, int valor, int[] vetor){
// sua implementação aqui
}
Informe o 1 valor: 2 Informe o 2 valor: 7 Informe o 3 valor: 4 Informe o 4 valor: 7 Informe o 5 valor: 1 Informe o valor a ser pesquisado no vetor: 7 O valor informado se repete 2 vezes. Veja a resolução comentada deste exercício usando Java console:
package exercicio;
import java.util.Scanner;
public class Exercicio {
public static void main(String[] args) {
// cria um novo objeto da classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos declarar um vetor de 10 inteiros
int valores[] = new int[5];
// vamos pedir ao usuário que informe os valores do vetor
for(int i = 0; i < valores.length; i++){
System.out.print("Informe o " + (i + 1) + " valor: ");
// efetua a leitura do valor informado para a posição atual do vetor
valores[i] = Integer.parseInt(entrada.nextLine());
}
// agora vamos pedir para informar o valor a ser pesquisado
System.out.print("\nInforme o valor a ser pesquisado no vetor: ");
int valor = Integer.parseInt(entrada.nextLine());
// e vamos ver a quantidade de repetições
int repeticoes = quantRepeticoes(0, valor, valores);
System.out.print("O valor informado se repete " + repeticoes + " vezes.");
System.out.println("\n");
}
// método recursivo que recebe um valor
public static int quantRepeticoes(int indice, int valor, int[] vetor){
if(indice == vetor.length - 1){ // caso base...hora de parar a recursividade
if(vetor[indice] == valor){
return 1; // mais um repetição foi encontrada
}
}
else{ // dispara mais uma chamada recursiva
if(vetor[indice] == valor){ // houve mais uma repetição
return 1 + quantRepeticoes(indice + 1, valor, vetor);
}
else{
return 0 + quantRepeticoes(indice + 1, valor, vetor); // não repetiu
}
}
return 0; // só para deixar o compilador satisfeito...esta linha nunca é executada
}
}
|
Java ::: Dicas & Truques ::: Imagens e Processamento de Imagens |
Como criar um programa de visualização de imagens em Java - Código fonte completoQuantidade de visualizações: 19897 vezes |
O que temos abaixo é o código completo para uma aplicação Java Swing que permite visualizar imagens JPG, GIF ou PNG. A imagem é selecinada usando um JFileChooser e carregada usando o método read() da classe ImageIO. Veja que usamos também uma classe personalizada de JPanel para exibir a imagem:
import java.awt.*;
import java.io.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;
import javax.imageio.*;
public class Estudos extends JFrame{
private BufferedImage imagem;
AreaImagem areaImagem;
public Estudos(){
super("Estudos Java");
Container c = getContentPane();
c.setLayout(new BorderLayout());
JButton btn = new JButton("Carregar Imagem");
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
JFileChooser fc = new JFileChooser();
int res = fc.showOpenDialog(null);
if(res == JFileChooser.APPROVE_OPTION){
File arquivo = fc.getSelectedFile();
imagem = null;
try{
imagem = ImageIO.read(arquivo);
}
catch(IOException exc){
JOptionPane.showMessageDialog(null,
"Erro ao carregar a imagem: " +
exc.getMessage());
}
if(imagem != null){
areaImagem.imagem = imagem;
areaImagem.repaint();
}
}
}
}
);
c.add(btn, BorderLayout.SOUTH);
// Cria a área de exibição da imagem
areaImagem = new AreaImagem();
c.add(areaImagem, BorderLayout.CENTER);
setSize(400, 300);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
// Sub-classe de JPanel para exibir a imagem
class AreaImagem extends JPanel{
public BufferedImage imagem;
public void paintComponent(Graphics g){
super.paintComponent(g);
// desenha a imagem no JPanel
g.drawImage(imagem, 0, 0, this);
}
}
|
Fórmulas da Física ::: Mecânica ::: Fórmulas de Cinemática |
Fórmula da Distância - Como calcular a distância dados a velocidade e o tempo decorridoQuantidade de visualizações: 5878 vezes |
|
É muito comum, durante uma viagem ou conversa com amigos, querermos saber qual foi a distância percorrida quando sabemos a velocidade da viagem e o tempo gasto. Para isso podemos usar a seguinte fórmula: \[d = v \cdot t \] Onde: d = distância percorrida em metros (m); v = velocidade em metros por segundo (m/s); t = tempo em segundos (s); Embora metros e segundos sejam as medidas mais adequadas para a resolução deste tipo de problema (por serem as unidades padrões do SI - Sistema Internacional), você pode usar quilômetros em vez de metros, desde que o tempo seja medido em horas, com a velocidade em Km/h (quilômetros por hora). Vamos ver um exemplo? 1) Um jatinho realiza o percurso entre Brasília e São Paulo em 2h, com uma velocidade de 500km/h. Calcule a distância entre as duas cidades considerando essas informações. Resolução: Aqui nós temos o tempo do percurso em horas, e a velocidade em quilômetros por hora. Dessa forma não precisamos converter para metros e segundos. Tudo que temos a fazer é jogar na fórmula as informações que já temos. Veja: \[d = 500 \cdot 2 \] \[d = 1000 \] Assim, a distância entre as duas cidades é de 1.000km. |
Veja mais Dicas e truques de Fórmulas da Física |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





