estrutura condicional - tecnologia da informação ... · quadro 7 – pseudocÓdigo com o...

44
COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO ESTRUTURA CONDICIONAL FOZ DO IGUAÇU 2013

Upload: duongque

Post on 02-Nov-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

COLÉGIO ESTADUAL ULYSSES GUIMARÃES

CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA

ERINALDO SANCHES NASCIMENTO

ESTRUTURA CONDICIONAL

FOZ DO IGUAÇU

2013

Page 2: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

LISTA DE QUADROS

QUADRO 1 – PSEUDOCÓDIGO PARA VERIFICAR SE UM NÚMERO É ÍMPAR ...... 7 QUADRO 2 – CLASSE JAVA QUE VERIFICA SE UM NÚMERO É ÍMPAR ................. 7 QUADRO 3 – PSEUDOCÓDIGO PARA DETERMINAR O MAIOR DE DOIS

NÚMEROS USANDO VARIÁVEL ......................................................................... 8 QUADRO 4 – CLASSE JAVA QUE DETERMINA O MAIOR DE DOIS NÚMEROS

USANDO VARIÁVEL ............................................................................................ 9 QUADRO 5 – PSEUDOCÓDIGO COM ALGORITMO QUE ORDENA OS

CONTEÚDOS DAS VARIÁVEIS X E Y ................................................................ 10 QUADRO 6 – CLASSE JAVA QUE ORDENA OS CONTEÚDOS DE DUAS

VARIÁVEIS, NA ORDEM X E Y .......................................................................... 10 QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR

DO BÔNUS ......................................................................................................... 13 QUADRO 8 – CLASSE JAVA QUE CALCULA E EXIBE O VALOR DO BÔNUS ........ 13 QUADRO 9 – PSEUDOCÓDIGO PARA CALCULAR A ÁREA DO TRIÂNGULO ....... 14 QUADRO 10 – CLASSE JAVA QUE CALCULA A ÁREA DO TRIÂNGULO ............... 15 QUADRO 11 – CLASSE JAVA USANDO OPERADOR CONDICIONAL TERNÁRIO 17 QUADRO 12 – PSEUDOCÓDIGO QUE VERIFICA E CLASSIFICA UMA TRIÂNGULO

VÁLIDO ............................................................................................................... 18 QUADRO 13 – CLASSE JAVA QUE VERIFICA E CLASSIFICA UM TRIÂNGULO

VÁLIDO ............................................................................................................... 19 QUADRO 14 – PSEUDOCÓDIGO QUE ENCONTRA AS RAÍZES DE UMA

EQUAÇÃO DO SEGUNDO GRAU ...................................................................... 21 QUADRO 15 – APLICATIVO JAVA QUE CALCULA E EXIBE AS RAÍZES DE UMA

EQUAÇÃO DO SEGUNDO GRAU ...................................................................... 22 QUADRO 16 – PSEUDOCÓDIGO PARA RETORNAR DADOS DE UMA TABELA ... 25 QUADRO 17 – APLICATIVO JAVA QUE RETORNA DADOS DE UMA TABELA COM

SELEÇÃO MÚLTIPLA ......................................................................................... 26

Page 3: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

LISTA DE TABELAS

TABELA 1 – OPERADORES RELACIONAIS UTILIZADO EM PSEUDOCÓDIGO. ..... 2

TABELA 2 – OPERADORES RELACIONAIS EM JAVA. ............................................. 2

TABELA 3 – OPERADORES LÓGICOS UTILIZADOS EM PSEUDOCÓDIGO. ........... 3

TABELA 4 – TABELA-VERDADE COM OS OPERADORES LÓGICOS E, OU E NÃO.

.............................................................................................................................. 3

TABELA 5 – OPERADORES LÓGICOS EM JAVA. ..................................................... 4

TABELA 6 – EXEMPLOS DE OPERAÇÕES LÓGICAS. .............................................. 4

TABELA 7 – ORDEM DE PRECEDÊNCIA DOS OPERADORES. ............................... 5

Page 4: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

LISTA DE FIGURAS

FIGURA 1 – FLUXOGRAMA DE UMA ESTRUTURA CONDICIONAL SIMPLES. ....... 6

FIGURA 2 – FLUXOGRAMA PARA ESTRUTURA DE SELEÇÃO COMPOSTA. ....... 12

FIGURA 3 – FLUXOGRAMA PARA ESTRUTURA CONDICIONAL ENCADEADA. ... 18

FIGURA 4 – FLUXOGRAMA DA ESTRUTURA CONDICIONAL DE MÚLTIPLA

ESCOLHA. .......................................................................................................... 25

Page 5: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

SUMÁRIO

4 ESTRUTURA CONDICIONAL .................................................................................. 1 4.1 EXPRESSÕES BOOLEANA .................................................................................. 1 4.1.1 Operadores Relacionais ..................................................................................... 2 4.1.2 Operadores Lógicos ........................................................................................... 3 4.1.3 Precedência dos Operadores ............................................................................. 4 4.2 ESTRUTURAS DE SELEÇÃO ............................................................................... 5 4.2.1 Estrutura Condicional Simples ........................................................................... 6 4.2.2 Estrutura Condicional Composta ...................................................................... 12 4.2.2.1 Operador Condicional.................................................................................... 16 4.2.3 Estruturas Condicionais Endadeadas .............................................................. 17 4.2.4 Estruturas Condicionais de Múltipla Escolha .................................................... 23 4.3 EXERCÍCIOS ...................................................................................................... 27 4.4 TRABALHOS PRÁTICOS .................................................................................... 35 4.5 REFERÊNCIA BIBLIOGRÁFICA ......................................................................... 38

Page 6: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

1

4 ESTRUTURA CONDICIONAL

Normalmente, as instruções de um programa são executadas uma após a

outra, na ordem em que são escritas. Esse processo é chamado de execução

sequencial. Várias declarações Java permitem especificar que a próxima instrução a

ser executada não seja necessariamente a próxima na sequência. Isto é chamado

de transferência de controle.

A ordem em que os comandos são executados em um programa em

execução é chamada de fluxo de controle. Como na maioria das linguagens de

programação, Java lida com o fluxo de controle com declarações de ramificação e

looping.

O Java contém três tipos de instruções de seleção. A instrução if realiza uma

ação se uma condição for verdadeira ou pula a ação se a condição for falsa. A

instrução if-else realiza uma ação se uma condição for verdadeira e realiza uma

ação diferente se a condição for falsa. A instrução de seleção switch realiza uma de

muitas ações diferentes, dependendo do valor de uma expressão.

A instrução if é uma instrução de uma única seleção porque seleciona ou

ignora uma única ação (ou um único grupo de ações). A instrução if-else é chamada

instrução de seleção dupla porque seleciona entre duas ações diferentes (ou grupos

de ações). A instrução switch é chamada de instrução de seleção múltipla uma vez

que seleciona entre muitas ações diferentes (ou grupos de ações).

4.1 EXPRESSÕES BOOLEANA

As declarações condicionais em Java permitem ao programador decidir qual

instrução será executada em seguida.

Cada decisão é baseada em uma expressão booleana, também chamada de

condição, no qual uma expressão é avaliada como verdadeira ou falsa. O resultado

da expressão determina que instrução será executada em seguida.

Todos os condicionais são baseados em expressões booleanas, que utilizam

operadores relacionais e lógicos para tomar decisões.

Page 7: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

2

4.1.1 Operadores Relacionais

A tabela 1 apresenta os operadores relacionais utilizados em pseudocódigo

para estabelecer uma relação de comparação entre valores ou expressões. O

resultado dessa comparação é sempre um valor lógico (booleano) verdadeiro ou

falso.

Operador Representação

Maior >

Maior ou igual >=

Menor <

Menor ou igual <=

Igual a =

Diferente de < >

Tabela 1 – Operadores relacionais utilizado em pseudocódigo.

Java também tem vários operadores relacionais que permitem ao orograma

decidir a ordenação relativa entre dois valores. A tabela 2 mostra os operadores

relacionais utilizado em Java.

Operador Representação

Maior que >

Maior ou igual a >=

Menor que <

Menor ou igual a <=

Igual a ==

Não igual a !=

Tabela 2 – Operadores relacionais em Java.

Qualquer tipo em Java podem ser comparados usando o teste de igualdade

(==) e desigualdade (! =). Somente os tipos numéricos (inteiro, ponto flutuante e

operandos de caracteres) podem ser comparados com os operadores de ordenação.

Os operadores relacionais têm menor precedência que os operadores

aritméticos. Portanto, as operações aritméticas são avaliadas em primeiro lugar,

Page 8: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

3

seguidas pelas operações de igualdade e relacionais. Como sempre, os parênteses

podem ser usados para especificar explicitamente a ordem de avaliação.

4.1.2 Operadores Lógicos

A tabela 3 apresenta os operadores lógicos utilizados em pseudocódigo para

concatenar ou associar expressões que estabelecem uma relação de comparação

entre valores. O resultado dessas expressões é sempre um valor lógico (booleano)

verdadeiro ou falso.

Operador Representação

e .e.

ou .ou.

não .não.

Tabela 3 – Operadores lógicos utilizados em pseudocódigo.

A avaliação das expressões nas quais são utilizados os operadores lógicos

está resumida na tabela-verdade apresentada na tabela 4.

Operador

.e. .ou. .não

Expressão A = 5 B < > 9 A = 5 .e. B < > 9 A = 5 .ou. B < > 9 .não. A = 5

Resultados

possíveis

.v. .v. .v. .v. .f.

.v. .f. .f. .v. .f.

.f. .v. .f. .v. .v.

.f. .f. .f. .f. .v.

Tabela 4 – Tabela-verdade com os operadores lógicos E, OU e NÃO.

Os operadores lógicos booleanos mostrados na tabela 5 operam apenas em

operandos booleanos. Todos os operadores lógicos binários combinam dois valores

booleanos para formar um valor booleano resultante.

Operador Representação

& E lógico

| OU lógico

Page 9: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

4

Operador Representação

^ XOR lógico (OU exclusivo)

|| OU

&& E

! Unário NÃO lógico

&= Atribuição E

|= Atribuição OU

^= Atribuição XOR

Tabela 5 – Operadores lógicos em Java.

A tabela 6 mostra o efeito de cada operação lógica:

A B A | B A & B A ^ B

False False False False False

True False True False True

Fase True True False True

True True True True False

Tabela 6 – Exemplos de operações lógicas.

4.1.3 Precedência dos Operadores

Quando, em um algoritmo ou programa, uma expressão envolve mais de um

operador, a ordem da avaliação das expressões segue a precedência deles. A

precedência dos operadores define a ordem para execução das operações.

Para as operações aritméticas temos a seguinte ordem, que deve ser

avaliada sempre da esquerda para a direita.

1. São calculados os fatoriais.

2. São calculadas as funções, potência e raiz quadrada.

3. São calculadas as multiplicações e divisões.

4. São calculadas as adições e subtrações.

Exemplo:

Page 10: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

5

Considerando B ← 5 e A ← 2. Substituindo as variáveis pelos valores

atribuídos: .

1. As expressões tem a mesma precedência. Então, calcula-

se , obtém-se o valor 4 e em seguida 10mod3 e obtém-se 1, reconstruindo

a expressão com os valores obtidos: K ← 2 + 5 * 4 – 1.

2. Calcula-se 5 * 4 = 20, reconstruindo a expressão, tem-se K ← 2 + 20 – 1.

3. Todas as operações resultantes têm a mesma precedência. Dessa maneira

calculando da esquerda para a direta o resultado final é: K ← 21.

A tabela 7 mostra a ordem de precedência dos operadores, da mais alta

para a mais baixa. Os parênteses são usados para alterar a precedência de uma

operação. Em operações lógicas o operador .e. tem prioridade sobre o operador

.ou..

Operador Função realizada

( ), [ ] Parênteses e colchetes são usados para agrupar expressões,

determinando precedência.

^ ou ** Operador aritmético de potenciação.

*, / Operadores aritméticos de multiplicação e divisão.

+, – Operadores aritméticos de adição e subtração.

← Operador de atribuição.

=, <, >, <=, >=, < > Operadores relacionais.

.não. Operador lógico de negação.

.e. Operador lógico e

.ou. Operador lógico ou

Tabela 7 – Ordem de precedência dos operadores.

4.2 ESTRUTURAS DE SELEÇÃO

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

sequência de instruções. Os testes de seleção também podem ser utilizados para

verificar opções de escolha.

Page 11: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

6

A verificação de que uma condição é satisfeita e, a partir daí, a decisão em

relação à execução ou não de uma determinada sequência de comandos é

chamada de estrutura de seleção, estrutura de decisão ou comando de seleção.

Exemplo: supondo que uma pessoa esteja jogando um jogo de computador,

para que o jogador passe de uma fase (etapa) para outra, é necessário verificar se

ele atingiu a pontuação exigida. Assim, existe uma condição para a realização de

uma sequência de instruções para liberar o acesso à próxima fase do jogo.

Ao final do jogo, uma pergunta é feita: “Deseja continuar jogando?”. O

jogador poderá escolher entre as respostas sim ou não.

Uma decisão é o resultado da avaliação de uma expressão booleana. Toda

condição pode ser encarada como uma pergunta que pode ter a resposta verdadeiro

(.v.) ou falso (.f.).

As estruturas de seleção podem ser do tipo simples, composto ou

encadeado.

4.2.1 Estrutura Condicional Simples

São utilizadas para verificar se dada condição é atendida. Se for, um

conjunto de instruções deverá ser executado. Se não for, o fluxo de execução do

algoritmo seguirá após o fim do bloco de decisão.

A sintaxe básica da decisão unidirecional é:

se (condição) então [inicio do bloco de decisão]

conjunto de instruções

fim-se [fim do bloco de decisão]

O conjunto de instruções só será executado se a condição for verdadeira. A

figura 1 apresenta o fluxograma de uma estrutura condicional simples. Uma

condição é uma comparação que possui dois valores possíveis, verdadeiro ou falso.

Figura 1 – Fluxograma de uma estrutura condicional simples.

condição Conjunto de

instruções Fim

.V

.

.F

.

Page 12: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

7

A instrução if é uma instrução de controle de uma única entrada e uma única

saída. A instrução if de uma única seleção realiza uma ação indicada somente

quando a condição é true; caso contrário, a ação é pulada.

Exemplo 1: Desenvolvimento de um algoritmo e programa Java que verifique

se um número fornecido pelo usuário é ímpar. Se for, exibir a mensagem “O número

_____ informado é ímpar”.

O quadro 1 apresenta o pseudocódigo para a solução do problema descrito

no exemplo 1.

Quadro 1 – Pseudocódigo para verificar se um número é ímpar

1 ALGORITMO N_IMPAR

2 DECLARE

3 NUMERO : INTEIRO

4 LEIA (NUMERO)

5 SE (NUMERO MOD 2 = 1) ENTÃO

6 ESCREVA (“O número informado é impar”)

7 FIM-SE

8 FIM Nº_IMPAR

O quadro 2 apresenta a classe Java que utiliza caixas de diálogo para

receber o número do usuário e devolver a mensagem informando se o número é

ímpar.

Quadro 2 – Classe Java que verifica se um número é ímpar

1 import javax.swing.JOptionPane;

2 public class impar {

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

4 int numero;

5 numero = Integer.parseInt(JOptionPane.showInputDialog

6 ("Digite um número"));

7 /*avalia se o número é impar

8 * ao verificar se o resto da divsão por 2

9 * é igual a 1

Page 13: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

8

10 */

11 if (numero % 2 == 1){

12 JOptionPane.showMessageDialog(null,

13 "O número "+numero+" é ímpar");

14 }

15 }

16 }

Exemplo 2: Desenvolvimento de um algoritimo e programa Java que

determine o maior de dois números dados. Suponha que o primeiro deles é o maior,

armazenando-o em uma variável MAIOR e depois, compare se o maior procurado é

o segundo dos números dados, neste caso o conteúdo da variável MAIOR deve ser

alterado.

O quadro 3 apresenta o pseudocódigo que representa o algoritmo para

resolver o problema enunciado acima.

Quadro 3 – Pseudocódigo para determinar o maior de dois números usando variável

1 ALGORITMO MAIOR_DE_DOIS

2 DECLARE

3 A, B, MAIOR : INTEIRO

4 ESCREVA (“Digite dois números: ”)

5 LEIA (A, B)

6 MAIOR ← A

7 SE (B > A) ENTÃO

8 MAIOR ← B

9 FIM-SE

10 ESCREVA (“O maior dos números”, A, “e”, B, “é”, MAIOR)

11 FIM MAIOR_DE_DOIS

O quadro 4 apresenta a classe Java que determina o maior de dois números

recebidos via console.

Page 14: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

9

Quadro 4 – Classe Java que determina o maior de dois números usando variável

1 //importa para utilizar a classe Scanner

2 import java.util.*;

3 //o nome da nova classe

4 public class maior_de_dois {

5 //a função principal

6 public static void main(String args[]){

7 //declara entrada como Scanner, para ler do teclado

8 Scanner entrada = new Scanner(System.in);

9 //declara as três variáveis

10 int a, b, maior;

11 //exibe uma mensagem solicitando a digitação dos números

12 System.out.println("Digite dois números inteiros: ");

13 //armazena os números em a e b

14 a = entrada.nextInt();

15 b = entrada.nextInt();

16 //atribui a para maior

17 maior = a;

18 //verifica se b é maior que a

19 if (b > a){

20 //se for, atribui b para maior

21 maior = b;

22 }

23 //exibe a mensagem com os dois valores digitados e o valor de

maior

24 System.out.printf("O maior dos números %d e %d é %d",

a,b,maior);

25 }

26 }

Exemplo 3: Desenvolvimento de um algoritmo e programa que ordene os

conteúdos das variáveis X e Y. Só há necessidade de se realizar alguma ação se o

Page 15: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

10

conteúdo de Y for maior que o conteúdo de X. Neste caso, deve-se fazer a permuta

dos conteúdos de X e de Y.

O quadro 5 apresenta o pseudocódigo para o problema descrito acima.

Quadro 5 – Pseudocódigo com algoritmo que ordena os conteúdos das variáveis X e Y

1 ALGORITMO ORDENA

2 DECLARE

3 X, Y, AUX : INTEIRO

4 ESCREVA (“Digite dois números: ”)

5 LEIA (X, Y)

6 ESCREVA (“Números digitados: X= ”, X, “ Y= ”, Y)

7 SE (X > Y) ENTÃO

8 AUX = X

9 X = Y

10 Y = AUX

11 FIM-SE

12 ESCREVA (“Números ordenados: X= ”, X, “Y= ”, Y);

13 FIM ORDENA

O quadro 6 apresenta a classe Java que faz a permuta dos conteúdos de X

e Y caso o conteúdo de Y seja maior que o de X.

Quadro 6 – Classe Java que ordena os conteúdos de duas variáveis, na ordem X e Y

1 //para usar a classe Graphics

2 import java.awt.*;

3 //para usar a classe JApplet e JOptionPane

4 import javax.swing.*;

5 //classe principal

6 public class ordena extends JApplet{

7 //declaração de variáveis de instância

8 int X, Y;

9 //método para receber informações

Page 16: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

11

10 public void init(){

11 //variáveis que receberão dados digitados pelo usuário

12 String num1, num2;

13 //variável auxiliar para ordenação

14 int AUX;

15 //atribui o valor digitado para num1 e num2

16 num1 = JOptionPane.showInputDialog(

17 "Digite o valor de X");

18 num2 = JOptionPane.showInputDialog(

19 "Digite o valor de Y");

20 //atribui num1 e num2 para X e Y

21 X = Integer.parseInt(num1);

22 Y = Integer.parseInt(num2);

23 //mostra os valores de X e Y na ordem que foram digitados

24 JOptionPane.showMessageDialog(null,

25 "Números digitados: X "+X

26 +" Y "+Y);

27 //verifica se X é maior que Y

28 if (X > Y){//se for

29 //atribui X para a variável auxiliar

30 AUX = X;

31 //atribui Y para X

32 X = Y;

33 /*Y receberá o valor de X

34 * que ficou armazenado

35 * na variável auxiliar

36 */

37 Y = AUX;

38 }

39 }

40 public void paint(Graphics g){

41 super.paint(g);

42 //desenha um retângulo

Page 17: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

12

43 g.drawRect(10, 10, 200, 30);

44 //escreve os valores ordenados de X e Y

45 g.drawString("Números ordenados: X "+X

46 +" Y "+Y, 20, 30);

47 }

48 }

4.2.2 Estrutura Condicional Composta

A estrutura de seleção composta prevê dois conjuntos de instruções para

serem realizados de acordo com a avaliação da condição: um conjunto de instruções

que será realizado quando a condição resultar verdadeiro e um conjunto de

instruções para resultado falso.

se (condição) então

conjunto de instruções A

senão

conjunto de instruções B

fim-se

A figura 2 apresenta o fluxograma para estrutura de seleção composta. Se a

condição for verdadeira, será executado o conjunto de instruções A; caso contrário,

se a condição for falsa, será executado o conjunto de instruções B.

Figura 2 – Fluxograma para estrutura de seleção composta.

.V.

.F. Conjunto de

instruções B

condição Conjunto de

instruções A Fim

Page 18: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

13

A instrução de seleção dupla if-else permite que o programa especifique

uma ação a realizar quando a condição é verdadeira e uma ação diferente quando a

condição é falsa.

Exemplo 4: A empresa XSoftwares concedeu um bônus de 20% do valor do

salário a todos os funcionários com tempo de trabalho na empresa igual ou superior

a cinco anos, e 10% aos demais. O quadro 7 e o quadro 8 apresentam o

pseudocódigo e uma classe Java capaz de calcular e exibir o valor do bônus. Para

resolver o problema é necessário conhecer o valor do salário e o tempo de serviço

do funcionário.

Quadro 7 – Pseudocódigo com o algoritmo para calcular o valor do bônus

1 ALGORITMO PREMIO

2 DECLARE

3 SALARIO, BONUS : REAL

4 TEMPO : INTEIRO

5 LER (SALARIO)

6 LER (TEMPO)

7 SE (TEMPO >= 5) ENTÃO

8 BONUS ← SALARIO * 0.20

9 SENÃO

10 BONUS ← SALARIO * 0.10

11 FIM-SE

12 ESCREVA (“O valor do bônus é ”, BONUS)

13 FIM PREMIO

Quadro 8 – Classe Java que calcula e exibe o valor do bônus

1 import javax.swing.JOptionPane;

2 public class bonus {

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

4 //declaração das variáveis necessárias para a resolução do

problema

5 float salario, premio;

6 int tempo;

Page 19: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

14

7 //leitura (entrada) dos valores com as conversões adequadas

8 salario = Float.parseFloat(JOptionPane.showInputDialog(

9 "Salário"));

10 tempo = Integer.parseInt(JOptionPane.showInputDialog(

11 "Tempo de empresa"));

12 //avalia a condição:

13

14 if (tempo >= 5){

15 //se o resultado for verdadeiro

16 premio = salario * 0.20f;

17 }

18 else{

19 //se o resultado for falso

20 premio = salario * 0.10f;

21 }

22 JOptionPane.showMessageDialog(null, "O valor do bônus é:

"+premio);

23 }

24 }

Exemplo 5: Desenvolvimento do algoritmo e programa Java que calcule a

área de um triângulo, dados os comprimentos dos seus lados. Para os números

serem comprimentos dos lados de um triângulo, cada um deles precisa ser menor

que a soma dos outros dois.

O quadro 9 apresenta o pseudocódigo com o algoritmo que calcula a área

do triângulo a partir do comprimento dos seus lados.

Quadro 9 – Pseudocódigo para calcular a área do triângulo

1 ALGORITMO AREA_TRIANGULO

2 DECLARE

3 X, Y, Z, AREA, SEMIPER : REAL

4 ESCREVA (“Digite os comprimentos dos lados do triângulo: ”)

5 LEIA (X, Y, Z);

Page 20: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

15

6 SE (X < Y + Z) .E. (Y < X + Z) .E. (Z < X + Y) ENTÃO

7 SEMIPER ← (X + Y + Z) / 2

8 AREA ←

9 ESCREVA (“A área do triângulo é:”,AREA:0:2);

10 SENÃO

11 ESCREVA (“Os valores não podem ser comprimentos dos lados de um

triângulo”);

12 FIM-SE

13 FIM AREA_TRIANGULO

O quadro 10 mostra a classe Java que calcula a área do triângulo. Essa

classe usa caixas de diálogos para receber os valores dos lados do triângulo. O

resultado da área do triângulo é exibido no formato com 3 casas decimais.

Quadro 10 – Classe Java que calcula a área do triângulo

1 //para usar a classe JOptionPane

2 import javax.swing.*;

3 //para formatar números reais

4 import java.text.DecimalFormat;

5 //classe principal

6 public class area_triangulo {

7 //função principal

8 public static void main(String args[]){

9 //num_real recebe o formato de número decimal

10 DecimalFormat num_real = new DecimalFormat ("0.000");

11 //declaração das variáveis

12 float x, y, z, area, semiper;

13 //atribuição dos valores para x, y e z

14 x = Float.parseFloat(JOptionPane.showInputDialog(

15 "Digite o primeiro lado: "));

16 y = Float.parseFloat(JOptionPane.showInputDialog(

17 "Digite o segundo lado: "));

Page 21: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

16

18 z = Float.parseFloat(JOptionPane.showInputDialog(

19 "Digite o terceiro lado: "));

20 //verifica se cada lado é menor que a soma dos outros dois

21 if ((x < y+z) && (y < x+z) && (z < x+y)){//se for

22 //acha o semiperímetro

23 semiper = (x + y + z)/2;

24 //calcula a área

25 area = (float)Math.sqrt(semiper*

26 (semiper-x)*(semiper-y)*(semiper-z));

27 //exibe a área no formato de num_real

28 JOptionPane.showMessageDialog(null,

29 "A área do triângulo é:

"+num_real.format(area));

30 }

31 else{//caso a verificação seja falsa

32 //exibe a mensagem informando que não é um triângulo

33 JOptionPane.showMessageDialog(null,

34 "Os valores não podem ser comprimentos

dos lados de um triângulo");

35 }

36 }

37 }

4.2.2.1 Operador Condicional

O Java fornece o operador condicional ?:, que pode ser utilizado no lugar de

uma instrução if-else. Esse é o único operador ternário1 do Java. Juntos, os

operandos e o símbolo ?: formam uma expressão condicional.

O primeiro operando (à esquerda do ?) é uma expressão booleana, o

segundo operando (entre o ? e :) é o valor da expressão condicional se a expressão

1 Significa que ele recebe três operandos.

Page 22: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

17

booleana for true, e o terceiro operando (à direita do :) é o valor da expressão

condicional se a expressão booleana for avaliada como false.

Exemplo 6: O quadro 11 apresenta uma classe Java que imprime ‘Aprovado’

se a média do aluno for maior ou igual a 60, mas imprime ‘Reprovado’ se for menor

que 60.

Quadro 11 – Classe Java usando operador condicional ternário

1 import java.util.Scanner;

2 public class mediaaluno {

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

4 Scanner entrada = new Scanner(System.in);

5 float media;

6 System.out.print("Digite a média do aluno: ");

7 media = entrada.nextFloat();

8 System.out.println(media>=60 ? "Aprovado" : "Reprovado");

9 }

10 }

4.2.3 Estruturas Condicionais Endadeadas

Uma estrutura de seleção encadeada é uma sequência de testes de

seleção, os quais serão executados ou não de acordo com o resultado das

condições e com o encadeamento dos testes.

Um teste de seleção pode ter dois conjuntos de instruções, um para

resultado verdadeiro e outro para falso, porém esses conjuntos de instruções podem

conter outros testes de seleção, que, por sua vez, também podem conter outros, e

assim por diante.

se (condição_1) então

se (condição_2) então

conjunto de instruções A

senão

conjunto de instruções B

Page 23: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

18

fim-se

senão

conjunto de instruções C

fim-se

Se a condição_1 resultar verdadeiro, então será realizado o teste da

condição_2; se esse teste resultar verdadeiro, será realizado o conjunto de

instruções A; se resultar falso, será realizado o conjunto de instruções B. Se o teste

da condição_1 resultar falso, será realizado o conjunto de instruções C.

A figura 3 apresenta o fluxograma que representa a descrição acima.

Figura 3 – Fluxograma para estrutura condicional encadeada.

Um programa Java pode testar múltiplos casos colocando instruções if-else

dentro de outras instruções if-else criando instruções if-else aninhadas.

Exemplo 7: Desenvolvimento de um algoritmo e programa que recebe três

valores fornecidos pelo usuário, que representam os lados de um triângulo. Verifica-

se, então, se os valores formam um triângulo, classificando-o como:

a) equilátero: três lados iguais;

b) isósceles: dois lados iguais;

c) escaleno: três lados diferentes

Deve-se lembrar que, para formar um triângulo, nenhum dos lados pode ser

igual a zero, um lado não pode ser maior que a soma dos outros dois. O quadro 12

representa o pseudocódigo para resolver o exemplo, e o quadro 13 apresenta a

classe Java que verifica e classifica um triângulo válido.

Quadro 12 – Pseudocódigo que verifica e classifica uma triângulo válido

.V.

.F. Conjunto de

instruções B

Condição

_2

Conjunto de

instruções A Fim Condição

_1

.V.

Conjunto de

instruções C

.F.

Page 24: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

19

1 ALGORITMO TRIANGULO

2 DECLARE

3 A, B, C : INTEIRO

4 LER (A, B, C)

5 SE (A <> 0) .E. (B <> 0) .E. (C <> 0) ENTÃO

6 SE (A + B > C) .E. (A + C > B) .E. (B + C > A) ENTÃO

7 SE (A <> B) .E. (A <> C) .E. (B <> C) ENTÃO

8 ESCREVA (“É um triângulo escaleno”)

9 SENÃO

10 SE (A = B) .OU. (B = C) ENTÃO

11 ESCREVA (“É um triângulo equilátero”)

12 SENÃO

13 ESCREVA (“É um triângulo isósceles”)

14 FIM-SE

15 FIM-SE

16 SENÃO

17 ESCREVA (“Os valores não formam um triângulo”)

18 FIM-SE

19 ESCREVA (“Os valores não formam um triângulo”)

20 FIM-SE

21 FIM TRIANGULO

Quadro 13 – Classe Java que verifica e classifica um triângulo válido

1 import javax.swing.*;

2 public class triangulo {

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

4 //declara as variáveis A, B e C

5 int A, B, C;

6 //inicializa as variáveis

7 A = Integer.parseInt(JOptionPane.showInputDialog("Lado A"));

8 B = Integer.parseInt(JOptionPane.showInputDialog("Lado B"));

9 C = Integer.parseInt(JOptionPane.showInputDialog("Lado C"));

Page 25: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

20

10 //verifica se os lados não são iguais a zero

11 if (A != 0 && B != 0 && C != 0){

12 //verifica se um lado não é maior que a soma dos outros

dois

13 if (A+B > C && A+C>B && B+C > A){

14 //verifica se todos os lados são diferentes

15 if (A != B && A != C && B != C){

16 JOptionPane.showMessageDialog(null,

"Escaleno");

17 }

18 //caso não sejam todos diferentes

19 else{

20 //verifica se todos os lados são iguais

21 if (A == B && B == C){

22 JOptionPane.showMessageDialog(null,

"Equilátero");

23 }

24 //caso não sejam todos iguais

25 else{

26 JOptionPane.showMessageDialog(null,

"Isósceles");

27 }

28 }

29 }

30 //caso a soma de dois lados não seja maior que um dos

lados

31 else{

32 JOptionPane.showMessageDialog(null, "Não forma

um triângulo");

33 }

34 }

35 //caso algum dos lados seja igual a zero

36 else{

Page 26: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

21

37 JOptionPane.showMessageDialog(null, "Não forma um

triângulo");

38 }

39 }

40 }

Exemplo 8: Desenvolvimento de um algoritmo e aplicativo Java que

determina as raízes de uma equação do segundo grau. Sabendo que uma equação

ax2 + bx + c = 0 só tem raízes reais se b2 – 4ac 0. Além disso, para que ela seja

do segundo grau, deve-se ter a 0.

No quadro 14 é apresentado o pseudocódigo que resolve o problema do

exemplo acima. O quadro 15 cria o aplicativo Java que executa o algoritmo.

Quadro 14 – Pseudocódigo que encontra as raízes de uma equação do segundo grau

1 ALGORITMO EQ_GRAU2

2 DECLARE

3 A, B, C, X1, X2, DELTA : REAL;

4 LEIA (A, B, C)

5 SE (A <> 0) ENTÃO

6 DELTA ←

7 SE DELTA >= 0 ENTÃO

8

X1 ←

9 X2 ←

10 ESCREVA (“Raízes da equação: ”, X1, “e ”, X2)

11 SENÃO

12 ESCREVA (“A equação dada não tem raízes reais”)

13 FIM-SE

14 SENÃO

15 ESCREVA (“A equação não é do segundo grau”)

16 FIM-SE

17 FIM EQ_GRAU2

Page 27: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

22

Quadro 15 – Aplicativo Java que calcula e exibe as raízes de uma equação do segundo grau

1 //para ler do teclado

2 import java.util.Scanner;

3 //para formatar número decimal

4 import java.text.DecimalFormat;

5 //programa

6 public class eqgrau2 {

7 //principal

8 public static void main(String args[]){

9 //declara entrada para ler do teclado

10 Scanner entrada = new Scanner(System.in);

11 //declara num_real para números decimais

12 DecimalFormat num_real = new DecimalFormat("0.0");

13 //declaração de variáveis

14 float a, b, c, x1, x2, delta;

15 //recebe os valores da equação

16 System.out.println("Digite os valores de a, b e c: ");

17 //atribui os valores às variáveis

18 a = entrada.nextFloat();

19 b = entrada.nextFloat();

20 c = entrada.nextFloat();

21 //verifica se o valor de a é diferende de 0

22 if (a != 0){//se for diferente de 0

23 //calcula o valor de delta

24 delta = (float)Math.pow(b, 2)-4*a*c;

25 //verifica se delta é maior ou igual a 0

26 if (delta >= 0){//se for

27 //calcula as raízes

28 x1 = (-b+(float)Math.sqrt(delta))/2*a;

Page 28: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

23

29 x2 = (-b-(float)Math.sqrt(delta))/2*a;

30 //exibe o valor das raízes

31 System.out.println("Raízes da equação: "+

32 num_real.format(x1)+" e "+

33 num_real.format(x2));

34 }

35 //se delta não for maior ou igual a 0

36 else{

37 //exibe a mensagem

38 System.out.println("A equação dada não tem raízes

reais");

39 }

40 }

41 //se a for igual a 0

42 else{

43 //exibe a mensagem

44 System.out.println("A equação não é do segundo grau");

45 }

46 }

47 }

4.2.4 Estruturas Condicionais de Múltipla Escolha

Uma estrutura de seleção de múltipla escolha (ou estrutura de seleção

homogênea) funciona como um conjunto de opções para escolha. Existem duas

maneiras para representá-la:

Utilizando a estrutura condicional encadeada da instrução if;

se (variável = tal_coisa_1) então

faça conjunto de instruções A

senão

se (variável = tal_coisa_2) então

Page 29: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

24

faça conjunto de instruções B

senão

se (variável = tal_coisa3) então

faça conjunto de instruções C

senão

faça conjunto de instruções D

fim-se

fim-se

fim-se

Utilizando a estrutura com seleção de múltipla escolha da instrução

switch case.

escolha variável

caso tal_coisa_1:

faça conjunto de instruções A

caso tal_coisa_2

faça conjunto de instruções B

caso tal_coisa_3

faça conjunto de instruções C

caso contrário

faça conjunto de instruções D

fim-escolha

A segunda opção é a mais indicada. Cada rótulo da estrutura possui o

próprio bloco e é separado dele pela marca : (dois pontos). Todos os rótulos são

dispostos um nível de indentação2 acima no nível onde está a palavra chave escolha

(switch). Blocos de instruções dispõem-se um nível de indentação acima daquele

onde estão os rótulos.

Após a avaliação da expressão (ou variável) de controle um valor inteiro é

obtido, o rótulo com este valor selecionado e por fim o bloco executado. Quando a

execução encerra, ocorre um desvio para fora da estrutura para que outros blocos

não sejam executados. A figura 4 mostra a representação do fluxograma para a

estrutura condicional de múltipla escolha.

2 Espaço entre a margem e o início do texto em um parágrafo.

Page 30: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

25

O Java oferece a instrução de múltipla seleção switch para realizar

diferentes ações baseadas nos possíveis valores de uma variável de inteiro ou

expressão. Cada ação está associada com o valor de uma expressão integral

constante (byte, short, int ou char) que a variável ou expressão em que a switch é

baseada pode assumir.

Figura 4 – Fluxograma da estrutura condicional de múltipla escolha.

Exemplo 9: Desenvolvimento de um algoritmo e aplicativo Java que leia o

código de um produto e exiba seu nome de acordo com a tabela abaixo:

Código do produto Nome do produto

1 Caderno

2 Lápis

3 Borracha

Qualquer outro Diversos

O quadro 16 apresenta o pseudocódigo que cria o algoritmo sugerido

usando seleção múltipla, e o quadro 17 apresenta o aplicativo Java que executa o

algoritmo.

Quadro 16 – Pseudocódigo para retornar dados de uma tabela

1 ALGORITMO PRODUTO

2 DECLARE

3 CODIGO : INTEIRO

4 LEIA (CODIGO)

5 ESCOLHA CODIGO

Tal_coisa_

1

Tal_coisa_

2

Tal_coisa_

3

Conjunto

de instruções A

Conjunto

de instruções A

Conjunto

de instruções A

Conjunto

de instruções D

...

...

...

Page 31: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

26

6 CASO 1 : ESCREVA (“O produto é caderno”)

7 CASO 2 : ESCREVA (“O produto é lápis”)

8 CASO 3 : ESCREVA (“O produto é borracha”)

9 CASO CONTRÁRIO : ESCREVA (“Diversos”)

10 FIM-ESCOLHA

11 FIM PRODUTO

Quadro 17 – Aplicativo Java que retorna dados de uma tabela com seleção múltipla

1 //para mostrar caixas de diálogo

2 import javax.swing.JOptionPane;

3 //programa

4 public class exibeproduto {

5 //principal

6 public static void main(String args[]){

7 //declaração de variáveis

8 int codigo;

9 String texto;

10 //atribuição do valor do código do produto

11 codigo = Integer.parseInt(JOptionPane.showInputDialog

12 ("Digite o código do produto"));

13 //verifica o valor do código

14 switch (codigo){

15 //caso seja 1

16 case 1 :

17 //atribui a string à variável texto

18 texto = "O produto é caderno";

19 //interrompe o fluxo

20 break;

21 //caso seja 2

22 case 2:

23 //atribui a string à variável texto

24 texto = "O produto é lápis";

25 //interrompe o fluxo

Page 32: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

27

26 break;

27 //caso seja 3

28 case 3:

29 //atribui a string à variável texto

30 texto = "O produto é borracha";

31 //interrompe o fluxo

32 break;

33 //caso o código não seja 1, 2 ou 3

34 default :

35 //atribui a string à variável texto

36 texto = "Diversos";

37 }

38 //exibe o conteúdo da variável texto

39 JOptionPane.showMessageDialog(null, texto);

40 }

41 }

O Java fornece a instrução break para alterar o fluxo de controle. A instrução

break ocasiona sua saída imediata da instrução. A execução continua com a

primeira instrução depois da instrução de controle.

4.3 EXERCÍCIOS

1. Dadas as expressões a seguir, identifique o resultado verdadeiro ou falso que

cada uma delas retornaria, em função dos valores dados.

A ← 2; B ← 7;

a) A = 3 .e. B = 7

b) A = 2 .e. B = 5

c) A < 3 .ou. B < > 7

d) A <= 2 .e. B = 7

e) .não. A = 2 .e. B = 7

f) A < 5 .e. B > 2 .ou. B < > 7

2. Complete a tabela-verdade a seguir:

Operador

Page 33: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

28

.e. .ou. .não.

Expressão A = 4 B < > 5 A = 4 .e. B < > 5 A = 4 .ou. B < > 5 .não. A = 4

Resultados

possíveis

3. Preencha as lacunas:

a) A instrução __________ é utilizada para executar uma ação quando uma

condição for verdadeira e outra quando essa condição for falsa.

b) O Java requer que todas as variáveis tenham um __________.

c) A instrução __________ seleciona entre múltiplas ações com base nos

possíveis valores de uma variável ou expressão integrais.

d) O operador __________ pode ser utilizado para assegurar que duas

condições são verdadeiras antes de escolher certo caminho de execução.

4. Determine se cada uma das seguintes afirmações é verdadeira ou falsa. Se

falso, explique por que.

a) Um algoritmo é um procedimento para resolver um problema em termos das

ações a serem executadas e a ordem em que essas ações são executas.

b) Um conjunto de instruções dentro de um par de parênteses é chamado bloco.

c) Uma instrução de seleção especifica que uma ação deve ser repetida

enquanto algumas condições permanecem verdadeiras.

d) O pseudocódigo ajuda um programador a pensar sobre um programa antes

de tentar escrevê-lo em uma linguagem de programação.

e) O caso default é requerido na instrução de seleção switch.

f) A instrução break é necessária no último caso de uma instrução de seleção

switch.

g) A expressão ((x>y)&&(a<b)) é verdadeira se x>y for verdadeira ou a<b for

verdadeira.

h) Uma expressão contendo o operador || é verdadeira se um ou ambos de seus

operandos forem verdadeiros.

i) Para testar uma série de valores em uma instrução switch, utilize um hífen (–)

entre os valores inicial e final da série em um rótulo case.

Page 34: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

29

5. Suponha que n1 e n2 são duas variáveis int que foram dadas valores. Adicione

uma expressão booleana que retorna verdadeiro se o valor de n1 é maior ou

igual ao valor de n2, caso contrário, ele deve voltar falso.

6. Suponha que n1 e n2 são duas variáveis int que foram dadas valores. Escreva

uma declaração if-else que exiba "n1" se n1 é maior ou igual a n2, e escreva "n2"

de outra forma.

7. Suponha var1 e var2 duas variáveis que receberam valores. Como teste se eles

são iguais quando as variáveis são do tipo int? Como testar se são iguais quando

as variáveis são do tipo String?

8. Suponha que proximaPalavra é uma variável String que recebeu um valor de

String que consiste inteiramente em letras. Escreva um código Java que exibe a

mensagem "Primeira metade do alfabeto", desde que proximaPalavra precede

"N" em ordem alfabética. Se proximaPalavra não preceder "N" em ordem

alfabética, o código deve emitir "Segunda metade do alfabeto". (Note-se que "N"

usa aspas para produzir um valor String, em vez de usar aspas simples para

produzir um valor de char).

9. Escreva uma instrução if-else que exiba como saída a palavra "passou" desde

que o valor da variável exame seja maior do que ou igual a 6,0 e também o valor

da variável programaConcluido seja maior do que ou igual a 1,0. Caso contrário,

a declaração if-else deve imprimir a palavra "falhou".

10. Escreva uma instrução if-else que exiba como saída a palavra "emergência"

desde que o valor da variável de pressao seja maior do que 160 ou o valor da

variável de temperatura seja maior do que ou igual a 40. Caso contrário, a

declaração if-else deve imprimir a palavra "OK".

11. Determine o valor verdadeiro ou falso, de cada uma das expressões booleanas

abaixo, assumindo que o valor da variável de contagem é 0 e o valor da variável

limite é 10.

a) (contagem == 0) && (limite < 20)

b) contagem == 0 && limite < 20

c) (limite > 20) || (contagem < 5)

d) !(contagem == 12)

e) (contagem == 1) && (x < y)

f) (contagem < 10) || (x < y)

g) !( ((contagem < 10) || (x < y)) && (count >= 0) )

Page 35: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

30

h) ((limite/contagem) > 7) || (limite < 20)

i) (limite < 20) || ((limite/contagem) > 7)

j) ((limite/contagem) > 7) && (limite < 0)

k) (limite < 0) && ((limite/contagem) > 7)

12. A seguinte sequência produz uma divisão por zero?

int j = -1;

if ((j > 0) && (1/(j+1) > 10))

System.out.println(i);

13. O que está errado com o seguinte fragmento de código? Reescreva-o para que

ele produza uma saída correta.

if (total == MAX)

if (total < soma)

System.out.println ("total == MAX and < soma");

else

System.out.println ("total is not equal to MAX");

14. O que está errado com o seguinte fragmento de código? Este código compilará

se for parte de um programa? Explique.

if (tamanho = MIN_TAMANHO)

System.out.println ("O tamanho é mínimo.");

15. Qual saída é produzida pelos seguintes fragmentos de códigos?

a) int num = 87, max = 25;

if (num >= max*2)

System.out.println ("maçã");

System.out.println ("laranja");

System.out.println ("pêra");

b) int limit = 100, num1 = 15, num2 = 40;

if (limit <= limit)

{

if (num1 == num2)

System.out.println ("lemon");

System.out.println ("lime");

}

System.out.println ("grape");

16. Considere o seguinte trecho de código:

Page 36: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

31

if(i == 10.0)

System.out.println("verdadeiro");

Qual das seguintes declarações da variável i irá compilar sem erros e imprimir

verdadeiro quando o programa é executado?

a) int i = 012;

b) int i = 10.0F;

c) int i = 10L;

d) int i = 10,0;

17. Considere o seguinte segmento de código:

Boolean b = null;

System.out.println(b ? true : false);

Qual das seguintes opções descreve corretamente o comportamento deste

segmento de código?

a) Este código irá resultar num erro do compilador, uma vez que um tipo de

referência (de tipo booleano) não pode ser usado como parte de expressão, para

verificação de estado.

b) Este código irá resultar em lançar um NullPointerException.

c) Este código irá imprimir verdade no console.

d) Este código irá imprimir falso no console.

18. Considere o seguinte programa:

class PrintlnTest {

public static void main(String[] args) {

String dois = "2";

System.out.println("1 + 2 + 3 + 4 = "

+ 1 + Integer.parseInt(dois) + 3 + 4); // ANALISE

}

}

Qual das seguintes opções descreve corretamente o comportamento desse

programa?

a) Quando compilado, este programa vai dar um erro do compilador em linha

marcada com comentários ANALISE por falta de um manipulador catch para

NumberFormatException.

b) Quando executado, o programa imprime o seguinte: 1 + 2 + 3 + 4 = 1234.

c) Quando executado, o programa exibe o seguinte: 1 + 2 + 3 + 4 = 10.

Page 37: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

32

d) Quando executado, o programa imprime o seguinte: 1 + 2 + 3 + 4 = 127.

e) Quando executado, o programa imprime o seguinte: 1 + 2 + 3 + 4 = 19.

f) Quando executado, o programa lança um NumberFormatException na linha

marcada com comentário ANALISE.

19. Considere o seguinte programa e prever o resultado:

class Test {

public static void main(String []args) {

int a = 7, b = 10;

System.out.printf("no:%2$s and %1$s", a, b);

System.out.printf("\nno:2$s and 1$s", a, b);

}

}

a) no: 10 e 7

no: 2$s e 1$s

b) no: 7 e 10

no: 2$s e 1$s

c) no: 10 e 7

no: 10 e 7

d) no: 7 e 10

no: 7 e 10

e) Este programa irá resultar em erro do compilador (s).

20. Assinale V para verdadeiro ou F para falso:

( ) Nas estruturas de controle, tais como as estruturas de seleção simples,

compostas ou encadeadas, é necessário verificar as condições para a

realização de uma instrução ou sequência de instruções.

( ) A instrução de desvio incondicional realiza a transferência do controle da

execução para um lugar especificado no programa.

( ) As instruções de seleção bidirecional e as construções de seleção

múltipla são tipos de instruções iterativas.

( ) Seleção bidirecional e n-direcional ou múltipla são tipos de instruções de

seleção.

21. Verifique se um número fornecido pelo usuário é par ou impar. Apresente uma

mensagem mostrando o número digitado e o resultado do teste.

Page 38: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

33

22. Um aluno realizou três provas de uma disciplina. Considerando o critério abaixo

faça um programa que mostre se ele ficou para exame. Em caso positivo, leia a

nota do exame e verifique se conseguiu a aprovação ou não.

Media = (prova1 + prova2 + prova3)/3

A média deve ser maior ou igual a 7,0. Se não conseguir, a nova média deve ser:

Final = (Media + Exame)/2

Nesse caso, a média final deve ser maior ou igual a 5,0.

23. A nota final de um estudante é calculada a partir de três notas atribuídas

respectivamente a um trabalho de laboratório, a uma avaliação semestral e a um

exame final. A média das três notas mencionadas anteriormente obedece aos

pesos a seguir:

Nota Peso

Trabalho de laboratório 2

Avaliação semestral 3

Exame final 5

Faça um programa que receba as três notas, calcule e mostre a média

ponderada e o conceito que segue a tabela abaixo:

Média ponderada Conceito

8,0 a 10,0 A

7,0 a 8,0 B

6,0 a 7,0 C

5,0 a 6,0 D

0,0 a 5,0 E

24. Faça um programa que recebe três notas de um aluno, calcule e mostre a média

aritmética e a mensagem que segue a tabela abaixo. Para alunos de exame,

calcule e mostre a nota que deverá ser tirada no exame para aprovação,

considerando que a média no exame é 6,0.

Média aritmética Mensagem

0,0 a 3,0 Reprovado

3,0 a 7,0 Exame

7,0 a 10,0 Aprovado

25. Usando o operador condicional faça um programa que receba dois números e

mostre o maior.

Page 39: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

34

26. Faça um programa que receba três números e mostre-os em ordem crescente.

27. Faça um programa que mostre o menu de opções a seguir, receba a opção do

usuário e os dados necessários para executar cada operação.

Menu de opções:

1. Somar dois números

2. Raiz quadrada de um número

Digite a opção desejada:

28. Faça um programa que receba o código corresponde ao cargo de um funcionário

e seu salário atual e mostre o cargo, o valor do aumento e seu novo salário. Os

cargos estão na tabela a seguir.

Código Cargo Percentual

1 Escriturário 5%

2 Secretário 3,5%

3 Caixa 20%

4 Gerente 10%

5 Diretor Não tem aumento

29. Faça um programa que receba dois números e execute as operações listadas a

seguir de acordo com a escolha do usuário.

Escolha do usuário Operação

1 Média entre os números digitados

2 Diferença do maior pelo menor

3 Produto entre os números digitados

4 Divisão do primeiro pelo segundo

Se a opção digitada for inválida, mostrar uma mensagem de erro e terminar a

execução do programa.

Lembre-se: na operação 4 o segundo número deve ser diferente de zero.

30. Uma agência bancária possui dois tipos de investimentos, conforme o quadro a

seguir. Faça um programa que receba o tipo de investimento e o valor do

investimento e que calcule e mostre o valor corrigido de acordo com o tipo de

investimento.

Tipo Descrição Rendimento mensal

1 Poupança 3%

2 Fundos de renda fixa 4%

Page 40: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

35

4.4 TRABALHOS PRÁTICOS

1. Elabore um algoritmo para validação do CPF (cadastro de pessoa física). O

número do CPF é composto de 11 dígitos, sendo que os dois últimos são os

dígitos verificadores. A validação do CPF é feita por meio de cálculos com base

nos 9 primeiros dígitos. As etapas desse cálculo são descritas a seguir. Para isso

utilize o CPF exemplo ABC.DEF.GHI-XY.

Calculo do X

Multiplicar o dígito A por 10, o dígito B por 9, o dígito C por 8 e assim

sucessivamente. Até o dígito I, que deverá ser multiplicado por 2.

Calcular a soma entre todos os valores calculados no passo 1.

Dividir o valor obtido no passo 2 por 11. Essa divisão deve ser por inteiro.

Se o resto da divisão for menor que 2, o primeiro dígito verificador será 0.

Caso contrário, subtrai-se de 11 o valor obtido.

Calculo do Y

Multiplicar o dígito A por 11, o dígito B por 10, o dígito C por 9, e assim

sucessivamente até o dígito Y, que deverá ser multiplicado por 2.

Calcular a soma entre todos os valores calculados no passo 1.

Dividir o valor obtido no passo 2 por 11. Essa divisão deve ser por inteiros.

Se o resto da divisão for menor que 2, o primeiro dígito verificador será 0.

Caso contrário, subtrai-se de 11 o valor obtido.

2. Faça um programa que receba:

O código de um produto comprado, supondo que a digitação do código do

produto seja sempre válida (um número inteiro entre 1 e 10);

O peso do produto em quilos;

O código do país de origem, supondo que a digitação do código do país seja

sempre válida (um número inteiro entre 1 e 3).

Código do país de origem Imposto

1 0%

2 15%

Page 41: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

36

3 25%

Código do produto Preço por grama

1 a 4 10

5 a 7 25

8 a 10 35

Calcule e mostre:

O peso do produto convertido em gramas;

O preço total do produto comprado;

O valor do imposto, sabendo-se que o imposto é cobrado sobre o preço total

do produto comprado e que depende do país de origem.

O valor total, preço total do produto mais imposto.

3. Faça um programa que receba o valor do salário mínimo, o número de horas

trabalhadas, o número de dependentes do funcionário e a quantidade de horas

extras trabalhadas. Calcule e mostre o salário a receber do funcionário de acordo

com as regras a seguir:

O valor da hora trabalhada é igual a 1/5 do salário mínimo;

O salário do mês é igual ao número de horas trabalhadas multiplicado pelo

valor da hora trabalhada;

Para cada dependente acrescentar R$ 27,24;

Para cada hora extra trabalhada calcular o valor da hora trabalhada acrescida

de 50%;

O salário bruto é igual ao salário do mês mais o valor dos dependentes mais

o valor das horas extras;

Calcular o valor do imposto de renda retido na fonte de acordo com a tabela a

seguir:

Salário bruto IRRF

Isento Até R$

1.499,15

de R$ 1.499,16 até R$

2.246,75

7,5%

de R$ 2.246,76 até R$

2.995,70

15%

Page 42: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

37

de R$ 2.995,71 até R$

3.743,19

22,5%

acima de R$ 3.743,19 27,5%

O salário líquido é igual ao salário bruto menos IRRF;

A gratificação de acordo com a tabela a seguir:

Salário líquido Gratificação

até R$ 650,00 R$ 100,00

acima de R$

650,00

R$ 50,00

O salário a receber do funcionário é igual ao salário líquido mais gratificação.

4. Faça um programa que apresente o menu de opções a seguir:

Menu de opções:

1. Imposto

2. Novo salário

3. Classificação

Digite a opção desejada:

Permita ao usuário escolher a opção desejada, receba os dados necessários

para executar a operação e mostre o resultado. Verifique a possibilidade de

opção inválida e não se preocupe com restrições como salário negativo

Opção 1: receber o salário de um funcionário, calcular e mostrar o valor do

imposto usando as regras a seguir:

Salários Percentual de imposto

até R$ 1.106,90 8%

de R$ 1.106,91 a R$ 1.844,83 9%

de R$ 1.844,84 a R$ 3.689,66 11%

Opção 2: receber o salário de um funcionário, calcular e mostrar o valor do novo

salário, usando as regras a seguir:

Salário Aumento

Maiores que R$ 1.500,00 R$ 25,00

De R$ 750,00 (inclusive) até R$ 1.500 (inclusive) R$ 50,00

De R$ 450,00 (inclusive) a R$ 750,00 R$ 75,00

Menores que R$ 450,00 R$ 100,00

Page 43: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

38

Opção 3: receber o salário de um funcionário e mostrar sua classificação usando

a tabela a seguir:

Salário Classificação

Até R$ 700,00 (inclusive) Mal remunerado

Maiores que R$ 700,00 Bem remunerado

5. Considere a situação em que um cliente faz uma determinada compra em uma

loja. Ao realizar o pagamento, são-lhe oferecidas as seguintes condições para

pagamento:

Pagamento à vista: 15% de desconto sobre o valor total da compra.

Pagamento com cheque pré-datado para 30 dias: 10% de desconto sobre o

valor total da compra.

Pagamento parcelado em 3 vezes: 5% de desconto sobre o valor total da

compra.

Pagamento parcelado em 6 vezes: não tem desconto.

Pagamento parcelado em 12 vezes: 8% de acréscimo sobre o valor total da

compra.

De acordo com o valor total da compra, verifique a opção de pagamento do

cliente, calcule o valor final da compra e, se a escolha for por pagamento

parcelado, calcule também o valor das parcelas.

Apresente ao usuário uma mensagem com o valor total da compra, o valor final

da compra, a diferença entre os dois, identifique como desconto se a diferença

for positiva, como juros se for negativa, mostre, também, a quantidade e o valor

das parcelas.

4.5 REFERÊNCIA BIBLIOGRÁFICA

ASCENCIO, Ana F. G.; CAMPOS, Edilene A. V. Fundamentos da Programação de

Computadores. São Paulo: Pearson Prentice Hall.

DEITEL, Paul; DEITEL, Harvey. Java for Programmers, 2nd ed. Boston: Pearson

Education, 2012.

Page 44: ESTRUTURA CONDICIONAL - Tecnologia da Informação ... · QUADRO 7 – PSEUDOCÓDIGO COM O ALGORITMO PARA CALCULAR O VALOR DO BÔNUS ... se , obtém-se o valor 4 e em seguida 10mod3

39

LEWIS, John; DEPASQUALE, Peter J.; CHASE, Joseph. Java Foundations:

Introduction to program design & data structures, 2nd ed. Boston: Addison-

Wesley, 2011

SAVITCH, Walter. Absolute Java, 5th Ed. Boston: Pearson, 2013.

SCHIDT, Herbert. Java: The Complete Reference, 7th Ed. New York: Mc Graw Hill,

2007.