• Nenhum resultado encontrado

CONSTRUÇÃO DE ALGORITMOS: ESTRUTURAS DE CONTROLE

DE ALGORITMOS : ESTRU T U RAS

CAPÍTULO 5 CONSTRUÇÃO DE ALGORITMOS: ESTRUTURAS DE CONTROLE

2. public static void main ( String args [ ] ) indica o bloco de instruções que serão executadas seqüencialmente quando o programa for re­ quisitado pelo usuário. Todo aplicativo escrito em Java deve possuir um bloco indicado dessa maneira para poder ser executado.

3. System . out . printl n ( "Alô Mundo ! " ) é a instrução que ordena a exibição da frase na saída do sistema.

As chaves { e } indicam início e fim de bloco, respectivamente.

CUIDADO! A linguagem Java é sensível a maiúsculas e minúsculas. Isso quer dizer

que as palavras reservadas devem ser escritas exatamente como são definidas! class "# Class, public "# Public "# PUBLIC e assim por diante.

EXEMPLO 5.2: O programa a seguir pergunta qual é o nome do usuário e o escreve nova­

mente na tela. Pseudocódigo: 1 . Algoritmo ExEntrada 2 . Var 3 . nome : literal 4 . Início

5 . Mostrar ( "Qual o seu nome ? " )

6 . Ler (nome)

7 . Mostrar (nome)

8 . Fim.

Neste exercício é necessário o uso de uma variável para representar o armazena­ mento do nome do usuário; a declaração dessa variável está sendo feita na linha 3. As linhas 5, 6 e 7 são as ações necessárias para a realização da tarefa; na linha 5 está sendo exibida a mensagem "Qual o seu nome ? " ; as mensagens sempre devem estar entre aspas.

Na linha 6 é indicado que deve ser lido (fornecido) um valor para a variável nome.

Fluxograma: Java: Início "Qual o seu nome?" nome nome Fim 1 . import j ava . i o . * ;

2 . c1ass ExEntrada {

3 . pub1ic static void main ( String args ( ) ) {

4 . BufferedReader entrada;

5 . entrada = new BufferedReader ( new InputStreamReader ( System. in) ) ; 6 . 7 . 8 . 9 . 1 0 . 1 1 . 1 2 . String nome ; try {

System.out.print1n( "Qual o seu nome?" ) ; nome = entrada . readLine ( ) ;

System.out . print1n (nome) ;

} catch (Exception e ) {

System . out . println( "Ocorreu um erro durante a

leitura ! " ) ;

1 3 . }

1 4 . }

1 5 . }

Sobre o código:

1. A cláusula import indica a utilização do pacote de entrada e saída de dados

(j ava . i o . *) da linguagem Java nesse programa. Embora isso seja desne­

cessário para a saída de dados, a linguagem requer um tratamento de entrada de dados para sua leitura correta.

2. e 3.

c

las s ExEn tr a da indica o nome do programa e, novamente, publ i

c

' -

CAPITULO 5 - CONSTRUÇAO DE ALGORITMOS: ESTRUTURAS DE CONTROLE 5 1

que serão seqüencialmente executadas quando o programa for requisitado pelo usuário.

4. e 5. Não se assuste! Nessas linhas estão a declaração e a criação da variável

entrada que será utilizada para a leitura do teclado. Isso é necessário para garantir que a leitura seja armazenada na memória com o formato de uma seqüência de caracteres (String) para que seu valor possa ser manipulado sempre da mesma forma. A vantagem dessa sintaxe é que o programador pode utilizar apenas uma variável de entrada e depois convettê-la para os valores desejados quantas vezes forem necessárias.

6. A variável nome está sendo declarada para receber e armazenar na memória o valor escrito pelo usuário. Como se deseja a entrada de um texto, ela é declarada como do tipo String.

7., 11., 12. e 13. Definem um bloco de tratamento de erros característico da linguagem Java. Sempre que houver entrada de dados na linguagem Java, um tratamento de erros simjlar será necessário. Para os fins da lógica deste livro, o tratamento será utilizado sempre dessa forma.

'

E recomendável que o programa exiba uma frase solicitando ao usuário as

informações necessárias para a sua execução.

9. A variável nome recebe, por meio do método readLine ( ) , o valor que o usuário escreveu. A variável entrada é um objeto que permite a utilização desse método para a leitura. Essa maneira de chamar métodos é típica da orientação a objetos.

10. Após a leitura da variável, ela é mostrada oa tela como saída de dados.

14. e 15. As chaves dessas linhas fecham os blocos do método e da classe, res­ pectivamente.

EXEMPLo 5.3: O programa a seguir realiza a soma de dois números inteiros dados pelo

Pseudocódigo:

' .

usuano.

1 . Algoritmo ExSoma 2 . Var

3 . valor1 , valor2 , soma : inteiro

4 . Início

5 . Mostrar ( "Qual o primeiro valor? " ) 6 . Ler (valor1)

7 . Mostrar ( "Qual o segundo valor? " )

8 . Ler (valor2 )

9 . soma � valor1 + valor2

1 0 . Mostrar ( soma )

Fluxograma: Início "Qual . . o pnme•ro valor?" valor1 "Qual o segundo valor?" valor2 soma f-valorl + valor2 soma Fim

Neste exemplo, além da exibição de mensagens e entrada de dados, ocorre tam­ bém um processamento determinado pela opemção aritmética de adição entre as variá­

veis valorl e valor2 e pela atribuição do resultado à variável soma (linha 9).

Java:

1 . import java . io. * ; 2 . class ExSoma {

3 . public static void main ( String args [ ) ) {

4 . BufferedReader entrada;

5 . entrada = new BufferedReader ( new InputStreamReader

(System. in) ) ;

6 . 7 .

int valorl, valor2 , soma ; try {

' -

CAPITULO 5 - CONSTRUÇAO DE ALGORITMOS: ESTRUTURAS DE CONTROLE 53

8 . 9 . 1 0 . 1 1 . 1 2 . 1 3 . 1 4 . 15 .

System .out.print1n( "Qua1 o primeiro valor? " ) ; valor1 = Integer . parseint ( entrada. readLine ( ) ) ;

System .out.print1n( "Qual o segundo valor? " ) ; valor2 = Integer . parseint ( entrada . readLine ( ) ) ;

soma = valor1 + valor2;

System.out.println(soma) ;

} catch (Exception e) {

System .out.println( "Ocorreu um erro durante a leitura ! " ) ;

1 6 . }

1 7 . }

1 8 . }

Repare que as linhas em itálico são exatamente iguais às do programa anterior. Essas linhas são características da linguagem e não afetam a lógica do problema.

Sobre o código:

Na linha 6 são declaradas três variáveis do tipo inteiro para armazenar os valores inteiros dados pelo usuário e realizar a soma.

As linhas 9 e 1 1 recebem os valores lidos do console na forma de texto e os convertem para números inteiros utilizando o método Integer . parseint ( ) , tam­ bém específico da linguagem Java. Note que, no caso de o usuário digitar um número real ou uma letra., o programa não efetuará um erro fatal devido ao tratamento de erro, mas exibirá uma mensagem de erro para o usuário, sem realizar a conta. Essa mensa­ gem pode ser personalizada para cada programa.

Finalmente, as linhas 1 2 e 1 3 realizam a soma desejada e mostram o resultado na tela.

5.3

E S T RUTURAS D E S E L EÇAO OU D E C I SAO

,... ,...

As estruturas de seleção ou decisão são utilizadas quando existe a necessidade de verificar condições para a realização de uma instrução ou de uma seqüência de ins­ truções. Os testes de seleção também podem ser utilizados para verificar opções de escolha. A seguir são apresentados exemplos para os dois casos.

Suponha que uma pessoa esteja jogando um jogo de computador:

1. Para que o jogador passe de uma fase (etapa) para a fase seguinte, é necessá­ rio que se verifique se ele atingiu a pontuação exigida. Assim, existe uma condição para a realização de uma seqüência de instruções para liberar o acesso

à próxima fase do jogo.

2. Ao final do jogo, uma pergunta é feita: "Deseja continuar jogando?" O joga­ dor poderá escolher entre as respostas sim ou não.

5.4

'"'