Python ::: Python para Engenharia ::: Unidades de Medida

Como converter Metros Quadrados em Quilômetros Quadrados em Python - Python para Física e Engenharia

Quantidade de visualizações: 403 vezes
Em muitas situações nós temos uma medida de área em m2 e queremos transformá-la em km2, ou seja, converter Metros Quadrados para Quilômetros Quadrados. Para isso só precisamos dividir os metros quadrados por 1.000.000.

Veja a fórmula:

\[\text{Quilômetros Quadrados} = \frac{\text{Metros Quadrados}}{1.000.000} \]

Agora veja o código Python que pede para o usuário informar a medida de área em metros quadrados e a converte para quilômetros quadrados. Note que mostrei como exibir o resultado em notação científica e sem notação científica:

# função principal do programa
def main():
  # vamos ler a medida em metros quadrados
  m_quadrados = float(input("Informe os metros quadrados: "))
  
  # agora calculamos os quilômetros quadrados
  km_quadrados = m_quadrados / 1000000.00
    
  # e mostramos o resultado
  print("Você informou {0} metros quadrados.".format(m_quadrados))
  print("Isso equivale a {0} quilômetros quadrados.".format(km_quadrados))
  print(f"Sem notação científica: {km_quadrados:.6f}")
  
if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

Informe os metros quadrados: 80
Você informou 80.0 metros quadrados.
Isso equivale a 8.0E-5 quilômetros quadrados.
Sem notação científica: 0,000080


GNU Octave ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o coeficiente angular de uma reta em GNU Octave dados dois pontos no plano cartesiano

Quantidade de visualizações: 1519 vezes
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x.

Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano:



Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é:

\[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \]

Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente.

Veja agora o trecho de código na linguagem GNU Octave (script GNU Octave) que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:

# x e y do primeiro ponto
x1 = input("Coordenada x do primeiro ponto: ")
y1 = input("Coordenada y do primeiro ponto: ")

# x e y do segundo ponto
x2 = input("Coordenada x do segundo ponto: ")
y2 = input("Coordenada y do segundo ponto: ")

# agora vamos calcular o coeficiente angular
m = (y2 - y1) / (x2 - x1)

# mostramos o resultado
fprintf("O coeficiente angular é: %f\n\n", m)

Ao executar este código em linguagem GNU Octave nós teremos o seguinte resultado:

Coordenada x do primeiro ponto: 3
x1 = 3
Coordenada y do primeiro ponto: 6
y1 = 6
Coordenada x do segundo ponto: 9
x2 = 9
Coordenada y do segundo ponto: 10
y2 = 10
m = 0.6667
O coeficiente angular é: 0.666667

Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):

# x e y do primeiro ponto
x1 = input("Coordenada x do primeiro ponto: ")
y1 = input("Coordenada y do primeiro ponto: ")

# x e y do segundo ponto
x2 = input("Coordenada x do segundo ponto: ")
y2 = input("Coordenada y do segundo ponto: ")

# vamos obter o comprimento do cateto oposto
cateto_oposto = y2 - y1
# e agora o cateto adjascente
cateto_adjascente = x2 - x1
# vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
# (em radianos, não se esqueça)
tetha = atan2(cateto_oposto, cateto_adjascente)
# e finalmente usamos a tangente desse ângulo para calcular
# o coeficiente angular
tangente = tan(tetha)

# mostramos o resultado
fprintf("O coeficiente angular é: %f\n\n", tangente)

Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta:

1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0;

2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0;

3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0).

4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe.


PHP ::: Fundamentos da Linguagem ::: Estruturas de Controle

PHP do básico ao avançado - Como usar o laço foreach() para percorrer os elementos de um vetor ou matriz em PHP

Quantidade de visualizações: 21767 vezes
O laço foreach (para cada) da linguagem PHP é muito útil quando precisamos percorrer os elementos de um array (vetor ou matriz). Veja um exemplo:

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>

<?php
  $valores = array(10, 3, 6, 2, 6);
   
  foreach($valores as $valor){
    echo $valor . "<br>";
  }
?>
 
</body>
</html>

Ao executar este código nós teremos o seguinte resultado:

10
3
6
2
6

Aqui cada elemento do array é representado pela variável $valor durante a execução do laço. Veja outra forma do laço foreach que permite acessar também o índice de cada elemento no vetor:

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>

<?php
  $valores = array(10, 3, 6, 2, 6);
   
  foreach($valores as $indice => $valor){
    echo $indice . " - " . $valor . "<br>";
  }
?>
 
</body>
</html>

Este novo código vai gerar o seguinte resultado:

0 - 10
1 - 3
2 - 6
3 - 2
4 - 6


Java ::: Pacote java.awt.event ::: KeyEvent

Java Swing - Como obter o caractere da tecla pressionada usando o método getKeyChar() da classe KeyEvent do Java

Quantidade de visualizações: 3118 vezes
Em algumas situações nós precisamos obter o caractere da tecla pressionada em nossas aplicações Java Swing. Para isso podemos usar o método getKeyChar() da classe KeyEvent. Veja sua assinatura:

public char getKeyChar()


O retorno do método é um char representando o caractere associado à tecla "digitada" (pressionada e liberada). Veja um trecho de código no qual temos uma janela JFrame que implementa a interface KeyListener e reage ao evento keyTyped() mostrando a letra digitada:

package estudos;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class Janela extends JFrame implements KeyListener{
  public Janela(){
    super("Eventos do Teclado");
    Container c = getContentPane();
    FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
    c.setLayout(layout);
    
    // vamos adicionar o objeto listener 
    addKeyListener(this);

    setSize(350, 250);
    setVisible(true);
  }
    
  @Override
  public void keyPressed(KeyEvent e){
    // sem implementação
  }
    
  @Override
  public void keyReleased(KeyEvent e){
    // sem implementação
  }

  @Override
  public void keyTyped(KeyEvent e){
    // vamos obter o caractere que foi digitado
    char letra = e.getKeyChar();
    // mostra o caractere digitado
    JOptionPane.showMessageDialog(null, "O caractere pressionado foi: " + letra);
  }   
  
  public static void main(String args[]){
    Janela j = new Janela();
    j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

É importante observar que o valor retornado pelo método getKeyChar() só possui sentido quando usado com eventos KEY_TYPED, uma vez que o caractere não é exibido quando o método é usado com os eventos KEY_PRESSED e KEY_RELEASED. Note ainda que a tecla Shift pode ser usada durante este evento. Assim, se combinarmos Shift + "s", o retorno será "S".

Este método retorna o valor da constante KeyEvent.CHAR_UNDEFINED se um caractere Unicode válido não existir para o evento de "digitação" da tecla.


Python ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o seno de um número ou ângulo em Python usando a função sin() do módulo Math

Quantidade de visualizações: 1493 vezes
Em geral, quando falamos de seno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função seno disponível nas linguagens de programação para calcular o seno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria.

No entanto, é sempre importante entender o que é a função seno. Veja a seguinte imagem:



Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles.

Assim, o seno é a razão entre o cateto oposto (oposto ao ângulo theta) e a hipotenusa, ou seja, o cateto oposto dividido pela hipotenusa. Veja a fórmula:

\[\text{Seno} = \frac{\text{Cateto oposto}}{\text{Hipotenusa}} \]

Então, se dividirmos 20 por 36.056 (na figura eu arredondei) nós teremos 0.5547, que é a razão entre o cateto oposto e a hipotenusa (em radianos).

Agora, experimente calcular o arco-cosseno de 0.5547. O resultado será 0.9828 (em radianos). Convertendo 0.9828 radianos para graus, nós obtemos 56.31º, que é exatamente o ângulo em graus entre o cateto oposto e a hipotenusa na figura acima.

Pronto! Agora que já sabemos o que é seno na trigonometria, vamos entender mais sobre a função sin() da linguagem Python. Este método, que faz parte do módulo Math, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja:

# importamos a biblioteca Math
import math as math
  
def main():
  print("Seno de 0 = ", math.sin(0))
  print("Seno de 1 = ", math.sin(1))
  print("Seno de 2 = ", math.sin(2))
  
if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

Seno de 0 = 0.0
Seno de 1 = 0.8414709848078965
Seno de 2 = 0.9092974268256817

Note que calculamos os senos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função seno mostrada abaixo:




Java ::: Dicas & Truques ::: Mouse e Teclado

Como retornar as coordenadas do mouse durante um evento mouseClicked em uma janela JFrame do Java Swing

Quantidade de visualizações: 10886 vezes
Nesta dica eu mostro como podemos obter as coordenadas do mouse no momento que o usuário clica em uma janela JFrame de nossas aplicações Java Swing. Note que exibimos as coordenadas x e y do mouse na barra de títulos da janela JFrame.

Saber como retornar as coordenadas do mouse durante um evento é uma das técnicas úteis para o desenvolvimento de jogos e aplicativos gráficos em Java.

Veja o código completo para o exemplo:

package arquivodecodigos;

/*
  Este exemplo mostra como obter as coordenadas
  do mouse durante um evento.
*/
 
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
public class Estudos extends JFrame{
  public Estudos() {
    super("Eventos do Mouse e Teclado");
    Container c = getContentPane();
    FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
    c.setLayout(layout);
     
    this.addMouseListener(
      new MouseAdapter(){
        @Override
        public void mouseClicked(MouseEvent e){
          setTitle("X = " + e.getX() + "; Y = " + e.getY());
        }
      }
    );    
 
    setSize(350, 250);
    setVisible(true);
  }
   
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



C# ::: Dicas & Truques ::: Strings e Caracteres

C# para iniciantes - Qual a diferença entre string e String?

Quantidade de visualizações: 138 vezes
Muitos usuários do nosso site nos enviam essa pergunta, pois ficam confusos com a escrita de "string" e "String". Nesta dica mostrarei a diferença entre esses dois tipos de dados. Comece analisando o código abaixo:

using System;

namespace Estudos{
  class Program{
    static void Main(string[] args) {
      string frase = "Sou uma string";
      String outra = "Sou outra string";

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Se você tentar compilar o código acima, verá que ele não somente compila como também executa sem problemas. Isso acontece porque, do ponto de vista do compilador e interpretador C#, não há diferença alguma entre "string" e "String".

O tipo string representa uma string de caracteres Unicode (16 bits - 2 bytes) e é um apelido para a classe String da plataforma .NET. O fato de os projetistas da linguagem C# terem permitido a escrita toda em letras minúsculas se deve à frequência com que esse tipo é usado em nossos códigos, se asemelhando aos tipos primitivos int, float, double, etc.


C++ ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como ordenar os elementos de vetor C++ usando a Ordenação da Bolha (Bubble Sort) - Revisado

Quantidade de visualizações: 15582 vezes
O método ou algorítmo de ordenação da bolha é uma das técnicas mais simples de ordenação. No entanto, este método não é eficiente, visto que o tempo despendido para sua execução é muito elevado se comparado à outros métodos existentes. Geralmente usamos este método quando queremos ordenar 50 elementos ou menos.

O entendimento deste método é fácil. Se estivermos ordenando os valores do menor para o maior, o método da bolha percorre os elementos da matriz, comparando e movendo o menor valor para a primeira posição do vetor (array), tal qual bolhas indo para a superfície. Veja um exemplo completo:

#include <iostream>
 
using namespace std;
 
void bubble_sort(int matriz[], int tam){
  int temp, i, j;
 
  for(i = 0; i < tam; i++){
    for(j = 0; j < tam; j++){
      if(matriz[i] < matriz[j]){
        temp = matriz[i];
        matriz[i] = matriz[j];
        matriz[j] = temp;
      }
    }
  }
}
 
int main(int argc, char *argv[])
{
  int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11};
  int const quant_elem = 9;
 
  // imprime a matriz sem a ordenação
  for(int i = 0; i < quant_elem; i++){
    cout << valores[i] << "  ";
  }
 
  // vamos ordenar a matriz
  bubble_sort(valores, quant_elem);
 
  // imprime a matriz ordenada
  cout << endl;
  for(int i = 0; i < 9; i++){
    cout << valores[i] << "  ";
  }
 
  cout << "\n" << endl;
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executarmos este código nós teremos o seguinte resultado:

4 6 2 8 1 9 3 0 11
0 1 2 3 4 6 8 9 11

Pressione qualquer tecla para continuar...


AutoCAD ::: Dicas & Truques ::: Configurações da Área de Desenho

Como definir os limites da área de desenho do AutoCAD usando o comando LIMITS

Quantidade de visualizações: 996 vezes
Quando estamos criando um novo desenho no AutoCAD, muitas vezes usando os arquivos de template acad.dwt (medidas imperiais) ou acadiso.dwt (medidas métricas), nos deparamos com uma área de desenho gigantesca, com medidas enormes.

Assim, é sempre uma boa idéia delimitarmos a área de desenho, e isso é feito por meio do comando LIMITS. Este comando, quando acionado, nos pede duas coordenadas: Lower Left e Upper Right. Veja a figura:



Dessa forma, Lower Left define os limites para o canto esquerdo inferior e Upper Right define os limites para o canto superior direito. Quando acionamos o comando LIMITS (ligado: ON), não conseguimos sair desses limites, o que pode ser uma comodidade, pois podemos nos concentrar em pequenos porções de um desenho de grandes proporções.

Vamos então aprender a usar o comando LIMITS do AutoCAD? Comece criando um novo desenho (usando ou não os templates mencionados acima) e digite os comandos a seguir:

LIMITS [Enter]
Specify lower left corner or [ON/OFF] <0.0000,0.0000>: 0,0
Specify upper right corner <420.0000,297.0000>: 100,80

Tenha a certeza de inserir as coordenadas separadas por vírgulas e acionar a opção ON para ativar os limites. No final, digite o comando ZOOM ALL para aproximar a área de desenho dentro dos limites recém-definidos.

Agora, sempre que digitarmos coordenadas fora desses limites, o AutoCAD nos avisará que os valores são inválidos e os rejeitará. Para desligar os limites, basta chamar LIMITS novamente e informar o valor OFF.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos

Exercícios Resolvidos de Java - Escreva uma classe Biblioteca que possui uma ArrayList de objetos da classe Livro. Forneça um menu para listar, cadastrar, pesquisar e excluir livros

Quantidade de visualizações: 545 vezes
Pergunta/Tarefa:

Escreva um programa Java contendo duas classes: Biblioteca e Livro. A classe Biblioteca deverá ter uma coleção de livros, ou seja, uma ArrayList de objetos da classe Livro. Além da coleção de livros a classe Biblioteca deverá conter um atributo nome, que será informado assim que a classe for instanciada.

A classe Livro, por sua vez, deverá possuir os atributos id, titulo, autor e paginas. O atributo id deverá ser auto-incremento, isto é, 1 para o primeiro livro cadastrado, 2 para o segundo, e assim por diante. Além disso, a exclusão de livros deverá ser feita de acordo com o seu id ou título.

Seu programa deverá exibir um menu de opções para as diversas operações da biblioteca. Uma boa opção em Java é usar a estrutura switch case para a criação do menu de opções. Atenção: todos os métodos de manipulação de livros deverão estar na classe Biblioteca, e não na classe principal do programa Java.

Para finalizar, tanto a classe Biblioteca quanto a classe Livro deverão apresentar boas práticas de programação orientada a objetos: nomenclatura correta de classes, atributos e métodos, encapsulamento de dados e construtores.

Sua saída deverá ser parecida com:

-------------------------------------------------
:: Biblioteca Programação e Artes ::
-------------------------------------------------
Bem-vindo(a) ao sistema. Escolha a opção desejada

1 - Novo Livro
2 - Listar Livros
3 - Pesquisar Livro
4 - Excluir Livro
5 - Sair

Sua opção: 1

Título: JAVA PARA INICIANTES
Autor: OSMAR J SILVA
Quant Páginas: 480

O livro foi cadastrado com sucesso
Resposta/Solução:

Veja a resolução comentada deste exercício em Java:

Código para a classe Livro, que deve estar no arquivo Livro.java:

package estudos;

// definição da classe Livro
public class Livro {
  private int id; // id do livro. Não pode repetir
  private String titulo;
  private String autor;
  private int paginas;
  
  // construtor vazio da classe Livro
  public Livro() {}
  
  // construtor cheio da classe Livro
  public Livro(int id, String titulo, String autor, int paginas) {
    this.id = id;
    this.titulo = titulo;
    this.autor = autor;
    this.paginas = paginas;
  }

  public int getId() {
    return id;
  }

  public void setId(int id) {
    this.id = id;
  }

  public String getTitulo() {
    return titulo;
  }

  public void setTitulo(String titulo) {
    this.titulo = titulo;
  }

  public String getAutor() {
    return autor;
  }

  public void setAutor(String autor) {
    this.autor = autor;
  }

  public int getPaginas() {
    return paginas;
  }

  public void setPaginas(int paginas) {
    this.paginas = paginas;
  }
}

Código para a classe Biblioteca, que deve estar no arquivo Biblioteca.java:

package estudos;

// imports necessários
import java.util.ArrayList;
import java.util.Scanner;

// definição da classe Biblioteca
public class Biblioteca {
  String nome;
  ArrayList<Livro> livros; // ArrayList para guardar os livros
  // variável do tipo int para gerar IDs auto-incremento para os livros
  int idUltimoLivroCadastrado = 0;
  
  // construtor da classe
  public Biblioteca(String nome) {
    this.nome = nome;
    this.livros = new ArrayList();
  }
  
  // exibe o menu de opções da biblioteca
  public void exibirMenu(){
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // variáveis temporárias
    Livro temp;
    String pesquisaLivro;
    
    // um laço infinito com as opções do menu
    while(true){
      System.out.println("\n-------------------------------------------------");
      System.out.println(":: " + this.nome + " ::");
      System.out.println("-------------------------------------------------");
      System.out.println("Bem-vindo(a) ao sistema. Escolha a opção desejada\n");
      System.out.println("1 - Novo Livro");
      System.out.println("2 - Listar Livros");
      System.out.println("3 - Pesquisar Livro");
      System.out.println("4 - Excluir Livro");
      System.out.println("5 - Sair");
      System.out.print("\nSua opção: ");
      // lê a opção do usuário
      int opcao = Integer.parseInt(entrada.nextLine());
    
      // um menu switch para ler as opções do menu 
      switch(opcao){
        case 1: // vamos cadastrar um novo livro
          System.out.print("\nTítulo: ");
          String titulo = entrada.nextLine();
          System.out.print("Autor: ");
          String autor = entrada.nextLine();
          System.out.print("Quant Páginas: ");
          int quantPaginas = Integer.parseInt(entrada.nextLine());
          
          // vamos gerar o id deste livro
          int id = ++this.idUltimoLivroCadastrado;
        
          // agora vamos criar um novo objeto da classe Livro
          Livro livro = new Livro(id, titulo, autor, quantPaginas);
          // e o adicionamos no ArrayList de livros
          livros.add(livro);
        
          // e finalmente mostramos uma mensagem de sucesso.
          System.out.println("\nO livro foi cadastrado com sucesso");
        
          break;
        
        case 2: // vamos listar os livros cadastrados
          if(livros.isEmpty()){
            System.out.println("\nNão há nenhum livro cadastrado.");  
          }
          else{
            for(int i = 0; i < livros.size(); i++){
              temp = livros.get(i); // obtém o livro da iteração atual
              System.out.println("\nId: " + temp.getId());
              System.out.println("Título: " + temp.getTitulo());
              System.out.println("Autor: " + temp.getAutor());
              System.out.println("Quant. Paginas: " + temp.getPaginas());
            }  
          }
          break;  
          
        case 3: // vamos pesquisar um livro
          System.out.print("\nInforme o id ou título do livro: ");
          pesquisaLivro = entrada.nextLine();
          // chamamos o método que pesquisa o livro
          temp = this.pesquisarLivro(pesquisaLivro);
          if(temp == null){ // livro não encontrado
            System.out.println("\nO livro náo foi encontrado.");  
          }
          else{
            // mostra o livro encontrado
            System.out.println("\nId: " + temp.getId());
            System.out.println("Título: " + temp.getTitulo());
            System.out.println("Autor: " + temp.getAutor());
            System.out.println("Quant. Paginas: " + temp.getPaginas());
          }
          
          break;
        
        case 4: // vamos excluir um livro
          System.out.print("\nInforme o id ou título do livro a ser excluído: ");
          pesquisaLivro = entrada.nextLine();
          // chamamos o método que pesquisa o livro
          temp = pesquisarLivro(pesquisaLivro);
          if(temp == null){ // livro não encontrado
            System.out.println("\nO livro não foi encontrado.");  
          }
          else{
            // vamos excluir este livro
            livros.remove(temp);
            System.out.println("\nLivro excluído com sucesso.");
          }
          
          break;  
          
        case 5: // sai da aplicação
          System.out.println("\nObrigado por usar a biblioteca\n");
          System.exit(0);
          
        default:
          System.out.println("\nOpção inválida\n");
          break;
      }
    }
  }
  
  // método que pesquisa um livro pelo id ou e retorna um objeto da classe Livro
  public Livro pesquisarLivro(String pesquisaLivro){
    Livro livro = null;
    
    // este livro existe?
    for(int i = 0; i < livros.size(); i++){
      // pesquisa pelo id
      if(Integer.toString(livros.get(i).getId()).equals(pesquisaLivro)){
        return livros.get(i);  
      }
      // pesquisar por título
      else if(livros.get(i).getTitulo().contains(pesquisaLivro)){
        return livros.get(i);  
      }
    }
    
    return livro;
  }
}

E aqui está o código para a classe principal Estudos, no arquivo Estudos.java:

package estudos;

public class Estudos {
  public static void main(String[] args) {
    // vamos criar um novo objeto da classe Biblioteca
    Biblioteca b = new Biblioteca("Biblioteca Programação e Artes");
    
    // mostra o menu da biblioteca
    b.exibirMenu();
  }
}


Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 18 usuários muito felizes estudando em nosso site.