• Nenhum resultado encontrado

Aula 02 - Condicionais

N/A
N/A
Protected

Academic year: 2021

Share "Aula 02 - Condicionais"

Copied!
48
0
0

Texto

(1)

CMCC

Processamento da

informação

(2)

MediaPonderada{ double x,y,w; double media; x = nextDouble(); y = nextDouble(); w = nextDouble(); media = w*x + (1.0-w)*y; }

(3)

MediaPonderada{ double x,y,w; double media; x = nextDouble(); y = nextDouble(); w =nextDouble(); media = w*x + (1.0-w)*y; }

Média Ponderada (ex. 02/aula01)

Mas e se o

usuário digitar

um valor fora da

(4)

MediaPonderada{ double x,y,w; double media; x = nextDouble(); y = nextDouble(); w = nextDouble(); Se w < 0 ou w > 1 assuma w=0.5; media = w*x + (1.0-w)*y; }

Média Ponderada (ex. 02/aula01)

(5)

Condicionais

Para descrever essas situações de escolha e t o m a da d e d e c i s ã o utilizamos instruções condicionais:

if( condição ){

// instruções para serem realizadas caso a condição seja verdadeira

(6)

Condicionais

if( w < 0 ){

System.out.println( “w deve ser maior que zero” );

}

if( w > 1 ){

System.out.println(“w deve ser menor que um”); }

(7)

Condicionais

Os operadores “>” e “<“ são operadores de relação e avaliam a relação entre duas variáveis.

Esses operadores resultam em um valor de tipo lógico, denominado booleano, que pode ser true (verdadeiro) ou false (falso).

(8)

Condicionais

boolean x;

x = 10 < 20; // x contém o valor “true” x = 10 > 20; // x contém o valor “false”

(9)

Condicionais

Operadores relacionais: < menor > maior <= menor ou igual >= maior ou igual == igual != diferente

(10)

Condicionais

if( w < 0 ){

System.out.println( “w deve ser maior que zero e menor que um” );

}

if( w > 1 ){

System.out.println(“w deve ser menor que que um e maior que zero”);

(11)

Condicionais

Operadores booleanos: ! não

&& e || ou

(12)

Condicionais

if( w < 0 || w > 1 ){

System.out.println( “w deve ser maior que zero e menor que um” );

(13)

MediaPonderada{

double x,y,w, media; x = nextDouble(); y = nextDouble(); w = nextDouble(); if( w < 0 || w > 1 ){ w = 0.5; } media = w*x + (1.0-w)*y; }

Média Ponderada (ex. 02/aula01)

(14)

Conversão Nota - Conceito

O CONSUNI aprovou um novo regulamento alterando os conceitos existentes na UFABC, agora temos apenas aprovado e reprovado.

Um professor de Fundamentos de Desenho e Projeto (FDP) montou a seguinte tabela para converter as notas numéricas para conceito:

nota > 9

-->

A nota <= 9

-->

R

(15)

O algoritmo é bem simples:

[verifica a nota] Se a nota > 9 retorna Aprovado [reprova sem dó] Senão retorna Reprovado

(16)

NotaConceito{ double nota; nota = nextDouble(); if( nota > 9 ){ println(“Aprovado”); } if( nota <= 9 ){ println(“Reprovado”); } }

(17)

Mas se sabemos que a nota não é maior que 9 (no primeiro if), por que temos que verificar se ela é menor?

if( condicao ){

// comandos se condição verdadeira }else{

// comandos se condição falsa }

(18)

NotaConceito{ double nota; nota = nextDouble(); if( nota >= 9 ){ println(“Aprovado”); }else{ println(“Reprovado”); } }

(19)

O professor disponibilizou o algoritmo para os outros professores, que resolveram generalizar mais:

Entrada: nota do aluno e limiar (corte) para ser aprovado

Saída: Aprovado ou Reprovado

[verifica a nota] Se a nota >= limiar retorna Aprovado [reprova sem dó] Senão retorna Reprovado

(20)

NotaConceito{

double nota, limiar; limiar = nextDouble(); nota = nextDouble(); if( nota >= limiar ){

println(“Aprovado”); }else{

println(“Reprovado”); }

}

(21)

Conversão Nota - Conceito

Ops...o CONSUNI esqueceu de incluir o conceito reprovado por falta.

Agora temos que verificar as notas do aluno e as faltas.

(22)

Conversão Nota - Conceito

[verifica nota] Se a nota >= limiar vai para [ ve r i f i c ar f a l ta ] s e n ã o va i p a ra [ ve r i f i c a r reprovação]

[verificar falta] Se falta > maximoFaltas retorna O senão A

[verificar reprovação] Se falta > maximoFaltas retorna O senão R

(23)

Conversão Nota - Conceito

[verifica falta] Se falta > maximoFaltas retorna O

[verificar nota] Se nota >= limiar retorna A senão R

A ordem das condições pode ser importante para manter o algoritmo fácil de ler e executar.

(24)

NotaConceito{

int falta, maximoFalta; double nota, limiar; // ...captura valores... if( falta > maximoFalta ){

println(“O”); }else{

if( nota >= limiar ){ println(“A”); }else{ println(“R”); } } }

(25)
(26)
(27)

Pedra, Papel, Tesoura

Para facilitar o uso de condicionais podemos usar a seguinte sintaxe:

if( condição 1 ){

// instruções caso condição 1 seja verdade }else if( condição 2 ){

// instruções caso condição 2 seja verdade }else{

// instruções caso nenhuma condição seja verdade }

(28)

Tipo de Triângulo

Dado 3 lados de uma forma com tamanhos x, y e z respectivamente, determinar se ele pode formar um triângulo. Sabemos que para formar um triângulo devemos ter:

x + y > z x + z > y y + z > x

(29)

Tipo de Triângulo

Além disso temos:

Se x, y, z forem iguais, ele é equilátero

Se dois dos três lados forem iguais, ele é isósceles Se todos os lados forem diferentes, ele é escaleno.

Determine se ele pode formar o triângulo e qual tipo ele forma.

(30)

Ano Bissexto

Faça um algoritmo para testar se um ano é bissexto sabendo que ele é se o ano for:

- múltiplo de 400 ou

- múltiplo de 4 e não de 100

Para testar se um número é múltiplo de outro, utilize o operador %.

(31)

3 valores em ordem crescente

Dado três valores x, y e z, imprima-os em ordem crescente!

(32)

4 valores em ordem crescente

Dado quatro valores x, y, w e z, imprima-os em ordem crescente!

(33)

Atividade 01

Faça um programa para jogar cara ou coroa. O usuário escolherá cara (0) ou coroa (1).

Utilize o comando Math.random() para gerar um número aleatório entre 0 e 1.

Se o número sorteado for menor que 0,5 o resultado foi cara, se for maior ou igual a 0,5 o resultado foi coroa.

(34)

Atividade 02

O peso ideal de uma pessoa segue a seguinte tabela:

Dependendo se o usuário responder ser homem (0) ou mulher (1) e dependendo de sua altura, e peso, indique se ele está acima do recomendado.

Homem Mulher

Altura Peso Altura Peso

1,5m 50 Kg 1,5m 48 Kg

1,7m 74 Kg 1,7m 68 Kg

1,9m 98 Kg 1,9m 88 Kg

(35)

Atividade 03

Dado uma circunferência com centro localizado em cx e cy e raio r, e dado um ponto na coordenada x, y. Determine se o ponto está dentro do círculo.

(36)

Atividade 04

A estrela da morte é uma arma desenvolvida pelo império para dominar o mundo.

Um telescópio digital foi de-senvolvido pelas forças rebel-des para detectar o local dela.

(37)

Atividade 04

Mas tal telescópio só consegue mostrar o contorno das circunferências encontradas indicando o centro e o raio delas.

(38)

Atividade 04

Duas circunferências podem formar a Estrela da Morte se:

- o raio da maior circunferência for pelo menos 10

vezes maior que o raio da outra

- a c i r c u n f e r ê n c i a m e n o r e n c o n t r a - s e

completamente dentro da circunferência maior e o contorno dela está a pelo menos 2 unidades de distância da maior

(39)

Atividade 05

Altere o programa para exibir o conceito do aluno para, dado as notas da P1 e P2, peso, número de faltas e limiar de aprovação, verifique se o aluno passou ou não na disciplina.

(40)

Atividade 06

Faça uma calculadora simples em que o usuário entra com os números x e y e um operador +, -, * ou / e ele mostra o resultado na tela.

Para os operadores utilize o tipo char de variável. Esse é um tipo que recebe um único caractere (letra, símbolo, número) do teclado.

(41)

Atividade 07

Resolva a equação ax^2 + bx + c = 0 quando temos:

- apenas uma raíz (b^2 = 4ac) - raízes complexas (b^2 < 4ac) - raízes reais (aula anterior)

(42)

RESUMO

Quando temos instruções específicas que devem ser executadas apenas em certas condições, usamos desvios condicionais para instruir o computador:

if( condição1 ){ // instruções

}else if( condição2 ){ // instruções

}else{

// instruções }

(43)

RESUMO

As expressões de condição são do tipo booleanas (bool) e podem assumir o valor true ou false.

bool x = true; if( x ){

// isso será executado }else{

// isso não }

(44)

RESUMO

As expressões de condição são do tipo booleanas (bool) e podem assumir o valor true ou false.

bool x = false; if( x ){

// isso não será executado }else{

// isso será }

(45)

RESUMO

Para ajudar na avaliação das expressões lógicas temos operadores de relação numérica que retorna uma variável booleana:

int x = 10; int y = 5; if( x > y ){

// isso será executado }

(46)

RESUMO

Para ajudar na avaliação das expressões lógicas temos operadores de relação numérica que retorna uma variável booleana:

> maior < menor

>= maior ou igual <= menor ou igual != diferente

(47)

RESUMO

E para fazer expressões lógicas mais complexas, temos a disposição operadores lógicos:

&& e || ou ! não

(48)

RESUMO

int x = 10; int y = 5; int z = 15;

if( !(x > y && (z%5 != 0)) ){

// isso não será executado }

x é maior que

y (true)

o resto da

divisão de z

por 5 é

diferente de 0

(true)

true E true = true

não true = false

Referências

Documentos relacionados

participante autoriza aos organizadores da prova a gravação total ou parcial da sua participação na mesma, pressupõe também a sua concordância para que

• Proteção respiratória: Não é necessário • Proteção das mãos: Não é necessário • Perigos térmicos: Não se aplica Outras informações: Não disponível.

The purpose of this study was to test the hypothesis that fetuses with constriction of ductus arteriosus and no history of maternal ingestion of NSAID, but whose

Para obter este tipo de comportamento são utilizados sensores que se comunicam diretamente com o gateway e alimentamUm sistema de automação residencial pode ser instalado e utilizado

A Superintendente de Gestão de Pessoas da Fundação Universidade Federal do Vale do São Francisco - UNIVASF, no uso das suas atribuições conferidas pela Portaria nº.. 172, de 09

A REITORIA DA UNIVERSIDADE ESTADUAL DE GOIÁS, e a DIRETORA DA UNIDADE UNIVERSITÁRIA DE URUAÇU, tornam pública a abertura de Processo Seletivo

Este trabalho não substitui, de forma alguma, a docu- mentação legal vigente, e seu objetivo é esclarecer ao setor produtivo as etapas do processo de avaliação

Portanto, a partir desta pesquisa realizada numa escola de rede municipal de Canoas com a inserção dos Pibidianos de química da Universidade Luterana do Brasil, campus Canoas,