Mostrando postagens com marcador linguagem de programação. Mostrar todas as postagens
Mostrando postagens com marcador linguagem de programação. Mostrar todas as postagens

terça-feira, 16 de abril de 2013

Lendo dados do usuário em Java

Olá, galera!

     A grande maioria dos programas de computadores são interativos, ou seja, necessitam da participação do usuário para informar valores de entrada necessários para os devidos processamentos. A linguagem Java oferece diferentes meios para que um programa possa ler entradas do usuário.

Lendo entradas do usuário via shell de linha de comando

    Primeiramente, veremos como se dá a leitura de dados do usuário via terminal de linha de comando. Para tanto, utilizaremos a classe Scanner do pacote java.util. A classe Scanner oferece métodos para a leitura de número inteiros ou reais e também para a leitura de strings em forma de linhas. As três classes abaixo exibem o uso da classe Scanner para ler números e strings.

Classe LeitorValorInteiroTeclado

import java.util.Scanner;

public class LeitorValorInteiroTeclado {

 public static void main(String[] args) {
  Scanner leitor = new Scanner(System.in);
  // Lê um valor inteiro do teclado
  System.out.println("Digite a sua idade:");
  int idade = leitor.nextInt();
  System.out.println("Você tem " + idade + " anos de idade."); 
 }
}


Classe LeitorValorPontoFlutuanteTeclado

import java.util.Scanner;

public class LeitorValorPontoFlutuanteTeclado {

 public static void main(String[] args) {
  Scanner leitor = new Scanner(System.in);
  // Lê um valor inteiro e um valor float do teclado
  System.out.println("Digite a sua idade:");
  int idade = leitor.nextInt();
  System.out.println("Digite o seu peso em kg:"); 
  float peso = leitor.nextFloat();
  System.out.println("Você tem " + idade + " anos e pesa " + peso +                                   " kg.");
 }
}


Classe LeitorStringTeclado

import java.util.Scanner;

public class LeitorStringTeclado {

 public static void main(String[] args) {
  Scanner leitor = new Scanner(System.in);
  /**
    * O código abaixo lê uma string do teclado. 
    * Ao terminar de digitar a string, o usuário
    * deve teclar ENTER.
    */
  System.out.println("Qual a sua comida favorita?");
  String resposta = leitor.nextLine();  
                System.out.println("A sua comida favorita é " + resposta + ".");
 }
}


    Os métodos nextInt e nextFloat da classe Scanner possuem um problema. Se o valor lido do usuário não pertencer ao domínio correto a ser lido, os métodos lançam uma exceção. Por exemplo, se o seu programa usa o método nextInt para supostamente ler um valor inteiro digitado pelo usuário, porém o usuário digitar um número real ou mesmo uma string, o método lança a exceção NumberFormatException, sinalizando que o formato do valor digitado é inválido ao dominío de leitura.

Criando janelas gráficas para ler entradas do usuário  

    Uma forma simples de criar uma janela gráfica para ler entradas do usuário é utilizar a classe JOptionPane do pacote javax.swing. As três classes abaixo mostram o uso da classe JOptionPane para ler entradas do usuário.

Classe LeitorInteiroDialog

import javax.swing.JOptionPane;

public class LeitorInteiroDialog {

 public static void main(String[] args) {
  /**
    * Exibe uma janela para ler a resposta do usuário. 
    * Após, exibe outra janela para exibir a resposta 
    * digitada pelo usuário.
    */
  String resposta=JOptionPane.showInputDialog("Qual a sua idade?");  
                // Converte a string em inteiro
  int idade = Integer.parseInt(resposta);
                JOptionPane.showMessageDialog(null, "Você tem " + idade + 
                                              " anos de idade.");
 }
}

Classe LeitorFloatDialog

import javax.swing.JOptionPane;

public class LeitorFloatDialog {

 public static void main(String[] args) {
  String resposta=JOptionPane.showInputDialog("Qual a sua idade?");
  int idade = Integer.parseInt(resposta);
  // Converte a string em inteiro
  resposta = JOptionPane.showInputDialog("Qual o seu peso em kg?");
  float peso = Float.parseFloat(resposta);
  // Converte a string em float 
  JOptionPane.showMessageDialog(null, "Você tem " + idade + 
                                              " anos de idade e pesa " + 
                                              peso + " kg.");
 }
}

Classe LeitorStringDialog

import javax.swing.JOptionPane;

public class LeitorStringDialog {

 public static void main(String[] args) {
  /**
    * Exibe uma janela para ler a resposta do usuário. 
    * Após, exibe outra janela para exibir a resposta 
    * digitada pelo usuário.
    */
  String resposta = JOptionPane.showInputDialog("Qual a sua comida favorita?");  
  JOptionPane.showMessageDialog(null, "A sua comida favorita é " + resposta);
 }
}

     Em uma aula futura, veremos como ler dados do usuário de forma mais precisa e segura. Abraço!

segunda-feira, 15 de abril de 2013

Estrutura de Programas

Olá, galera!

Nesta aula eu apresento brevemente o que é programação estruturada, explicando os conceitos de sequência, seleção e iteração. Abaixo, os slides de aula e as classes Java utilizadas nos exemplos.



Classe Sequencia


/**
 * Para fins de organização, é uma convenção que os códigos de um projeto
 * Java sejam organizados em pacotes.
 */
package br.edu.ifms.lp1.aula02;

/**
 * Exemplo de sequência.
 * @author Prof.º Sidney
 */
public class Sequencia {

    /**
     * O método <b>main</b> de uma classe Java contém o código a ser
     * executado primeiramente no programa.
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        /**
         * As linhas abaixo contém a sequência de tarefas as quais o nosso 
         * programa executa.
         */
        int numero1 = 1;
        int numero2 = 2;
        int resultado = numero1 + numero2;
        System.out.println(numero1 + " + " + numero2  + " = " + resultado);
        double divisor = 7.43;
        double resultadoPontoFlutuante = resultado / divisor;
        System.out.println(resultado + " / " + divisor + " = " + 
                           resultadoPontoFlutuante);
    }
}


Classe SelecaoIf

/**
 * Para fins de organização, é uma convenção que os códigos de um projeto
 * Java sejam organizados em pacotes.
 */
package br.edu.ifms.lp1.aula02;

/**
 * Exemplo de seleção <b>if</b>.
 * @author Prof.º Sidney
 */
public class SelecaoIf {
    
    public static void main(String[] args) {
        long numeroAleatorio = System.currentTimeMillis();
        System.out.println(numeroAleatorio);
        if(numeroAleatorio % 2 == 0) { // Se o número aleatório for um número par, então:
            System.out.println("O numero aleatorio e um numero par!");
        } else { // Senão, o número aleatório só pode ser um número ímpar!
            System.out.println("Na verdade, o numero aleatorio e um numero ímpar!");
        }
    }
}


Classe SelecaoMultipla

/**
 * Para fins de organização, é uma convenção que os códigos de um projeto
 * Java sejam organizados em pacotes.
 */
package br.edu.ifms.lp1.aula02;

/**
 * Exemplo de seleção múltipla.
 * @author Prof.º Sidney
 */
public class SelecaoMultipla {
    
    public static void main(String[] args) {
        //Escolhe aleatoriamente um número entre [0..9]
        long numeroAleatorio = System.currentTimeMillis() % 10;
        
        // Se o número aleatório for divisível por 2, então:
        if(numeroAleatorio % 2 == 0) { 
            System.out.println("O numero aleatorio e divisivel por 2!");
        } else if(numeroAleatorio % 3 == 0) { // Se o número aleatório for divisível por 3, então: 
            System.out.println("O numero aleatorio e divisivel apenas por 3!");
        } else if(numeroAleatorio % 5 == 0) { // Se o número aleatório for divisível por 5, então:
            System.out.println("O numero aleatorio e divisivel apenas por 5!");
        } else if(numeroAleatorio % 7 == 0) { // Caso contrário, o número só pode ser divisível por 7:
            System.out.println("O numero aleatorio e divisivel apenas por 7!");
        } else {
            System.out.println("So pode ser o numero 1!");
        }
    }
}


Classe SelecaoSwitch1

/**
 * Para fins de organização, é uma convenção que os códigos de um projeto
 * Java sejam organizados em pacotes.
 */
package br.edu.ifms.lp1.aula02;

/**
 * Exemplo de seleção com <b>switch</b>.
 * @author Prof.º Sidney
 */
public class SelecaoSwitch1 {
    
    public static void main(String[] args) {
        //Escolhe aleatoriamente um número entre [0..9]
        int numeroAleatorio = Math.abs((int)System.currentTimeMillis() % 10);
        switch(numeroAleatorio) {
            case 0:
                System.out.println("Sorteou o numero 0");
                break;
            case 1:
                System.out.println("Sorteou o numero 1");
                break;
            case 2:
                System.out.println("Sorteou o numero 2");
                break;
            case 3:
                System.out.println("Sorteou o numero 3");
                break;
            case 4:
                System.out.println("Sorteou o numero 4");
                break;
            case 5:
                System.out.println("Sorteou o numero 5");
                break;
            default:
                System.out.println("Sorteou um numero entre [6..9]");
        }
    }
}


Classe SelecaoSwitch2

/**
 * Para fins de organização, é uma convenção que os códigos de um projeto
 * Java sejam organizados em pacotes.
 */
package br.edu.ifms.lp1.aula02;

/**
 * Exemplo de seleção com <b>switch</b>.
 * @author Prof.º Sidney
 */
public class SelecaoSwitch2 {
    
    public static void main(String[] args) {
        //Escolhe aleatoriamente um número entre [0..9]
        int numeroAleatorio = Math.abs((int)System.currentTimeMillis() % 10);
        System.out.println(numeroAleatorio);
        switch(numeroAleatorio) {
            case 1:
                System.out.println("O numero sorteado e divisivel apenas por 1");
                break;
            case 2:
            case 4:
            case 6:
            case 8:
                System.out.println("O numero sorteado e divisivel por 2");
                break;
            case 3:
            case 9:
                System.out.println("O numero sorteado e divisivel apenas por 3");
                break;
            case 5:
                System.out.println("O numero sorteado e divisivel apenas por 5");
                break;
            case 7:
                System.out.println("O numero sorteado e divisivel apenas por 7");
                break;
        }
    }
}


Classe IteracaoWhile.java


/**
 * Para fins de organização, é uma convenção que os códigos de um projeto
 * Java sejam organizados em pacotes.
 */
package br.edu.ifms.lp1.aula02;

/**
 * Exemplo de iteração com <b>while</b>.
 * @author Prof.º Sidney
 */
public class IteracaoWhile {
    
    public static void main(String[] args) {
        int x = 1;
        while(x <= 10) {
            if(x % 3 == 0) {
                System.out.println(x + " e divisivel por 3!");
            } else {
                System.out.println(x + " nao e divisivel por 3!");
            }
            x = x + 1;
        }
    }
}


Classe IteracaoDoWhile

/**
 * Para fins de organização, é uma convenção que os códigos de um projeto
 * Java sejam organizados em pacotes.
 */
package br.edu.ifms.lp1.aula02;

/**
 * Exemplo de iteração com <b>do-while</b>.
 * @author Prof.º Sidney
 */
public class IteracaoDoWhile {
    
    public static void main(String[] args) {
        int x = 11;
        do {
            if(x % 3 == 0) {
                System.out.println(x + " e divisivel por 3!");
            } else {
                System.out.println(x + " nao e divisivel por 3!");
            }
            x = x + 1;
        }while(x <= 10);
    }

}


Classe IteracaoFor

/**
 * Para fins de organização, é uma convenção que os códigos de um projeto
 * Java sejam organizados em pacotes.
 */
package br.edu.ifms.lp1.aula02;

/**
 * Exemplo de iteração com <b>for</b>.
 * @author Prof.º Sidney
 */
public class IteracaoFor {
    
    public static void main(String[] args) {
        for(int x = 1; x <= 10; x = x + 2) {
            if(x % 3 == 0) {
                System.out.println(x + " e divisivel por 3!");
            } else {
                System.out.println(x + " nao e divisivel por 3!");
            }
        }
    }

}

Conceitos Iniciais de Linguagem de Programação

Olá, galera!

Nesta primeira aula, veremos os conceitos iniciais sobre linguagens de programação, visitando a história das linguagens de programação e entendendo os diferentes tipos de linguagens. Abaixo, os slides desta aula. Abraço!