iec037 introdução à programação de computadores aula 05 ...€¦ · iec037 introdução à...

55
IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B / 01C Professora: Fabíola Nakamura E-mail: [email protected] Página: iccufam.weebly.com

Upload: others

Post on 06-Oct-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

IEC037Introdução à Programação de

ComputadoresAula 05 – Estruturas Condicionais

Turmas: 01A / 01B / 01CProfessora: Fabíola NakamuraE-mail: [email protected]ágina: iccufam.weebly.com

Page 2: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema Inicial

Dois jogadores lançam dados. Ganha aquele que tirar a face com maior número.

Como determinar quem ganhou? Ou se houve empate?

Page 3: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Tentativa de Solução:: Estrutura Sequencial

Este problema requer uma alteração no fluxo de execução do fluxograma.

É necessário incluir alguma forma de ramificação, com um teste de condição para decidir qual ramo seguir durante a execução do algoritmo.

início

início

Lançar Dado1

Lançar Dado2

Comparar Dado1 com

Dado2

Decidir ganhador

fim??

Page 4: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Estruturas Condicionais

Permitem alterar o fluxo de execução, de modo a selecionar qual parte do algoritmo deve ser executada.

Essa decisão é tomada a partir de uma condição, que pode resultar apenas em: Verdade, ou Falsidade

dado1 < dado2

dado1 < dado2

condição

Page 5: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Estruturas Condicionais Simples Condição é

verdadeira: “bloco verdade” é

executado. Condição é falsa:

“bloco verdade” não é executado.

Na condição simples, não há ação alternativa para a condição falsa.

Próximaação

Próximaação

Exibir “Não tem raiz

real”

Exibir “Não tem raiz

real”

delta < 0

delta < 0

FF

VV

Page 6: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Estrutura Condicional Simples:: Exemplo

No fluxograma, a condição de decisão é representada por um losango.

A ramificação do fluxo de execução é indicada pelas próprias setas.

Os círculos são conectores, que indicam que os blocos fazem parte de um fluxograma mais extenso.

olhar o céuolhar o céu

acenderluz

acenderluz

escuro?

escuro?

FF

VV

Page 7: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Estrutura Condicional Simples:: Analogia

Pense a execução de um programa como a direção de um carro.

Enquanto há retas, você só tem de seguir em frente. Somente nas bifurcações você terá de tomar decisões.

Uma vez decido o caminho, você somente percorre ou um ou outro, mas nunca ambos.

?

Page 8: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Estrutura Condicional Composta

Condição é verdadeira: “bloco verdade” é

executado. Condição é falsa:

“bloco alternativo” é executado.

Na condição composta, há uma ação alternativa caso a condição seja avaliada como falsa.

Próximaação

Próximaação

AprovadoAprovado

Média ≥ 5

Média ≥ 5

FF

VV

ReprovadoReprovado

Page 9: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Estrutura Condicional Composta:: Exemplo

início

início

olhar a vovóolhar a vovó

fimfim

Entregar cesta de comida

Entregar cesta de comida

narizgrande?

narizgrande?

FF

Chamar caçadorChamar caçador

VV

Page 10: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Verdadeiro

Verdadeiro

FalsoFalso

Uma condição possui apenas dois resultados possíveis

O resultado de uma condição só pode ser:

Page 11: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Condições são expressões booleanas

Expressões que resultam em apenas dois valores (verdadeiro/falso, sim/não, zero/um) são conhecidas como expressões booleanas.

Este nome vem do matemático inglês George Boole (1815–1864), que lançou os fundamentos da lógica matemática.

Page 12: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Como montar uma condição? Uma condição resulta da combinação

dos seguintes elementos: Operandos (valores aritméticos) Operadores (sinais que representam

operações)

ResultadoResultado

Operador

OperadorOperando1Operando1 Operando

2Operando

2

Page 13: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Operadores

Aritméticos

Relacionais

Lógicos

Tipos de operadores

Page 14: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Operadores Relacionais

São utilizados para a estabelecer relação de comparação entre valores numéricos.

Operador

Operação Exemplos

== Igual a 3 == 3 20 == 18

> Maior que 5 > 4 10 > 11

< Menor que 3 < 6 9 < 7

≥ Maior ou igual a 5 ≥ 3 4 ≥ 4

≤ Menor ou igual a 3 ≤ 5 7 ≤ 7

≠ Diferente de 8 ≠ 9 2 ≠ 2

Page 15: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Operadores relacionais × aritméticos:: Formato

Resultado

Operador

aritmético

Operando1

Operando2

número número

número

Resultado

Operador

relacional

Operando1

Operando2

número número

Verdadeiro/falso

OperadoresAritméticosOperadoresAritméticos

OperadoresRelacionaisOperadoresRelacionais

Page 16: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Operadores relacionais × aritméticos:: Prioridade

Na dúvida, use

parênteses.

Prioridade

Operador

1Parênteses mais internos

2Operadores aritméticos

3Operadores relacionais

Da esquerda

para a direita

Page 17: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Como avaliar uma condição? Operadores relacionais têm menor

prioridade que os operadores aritméticos.

2 + 3 > 10 % 6

5 > 4

V

Page 18: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Como avaliar uma condição?:: Exercício

Expressão Verdadeiro

Falso Mal formada

x + y > 6

x - 1 + y == 4

x ** y == x * y

y - 5 = z - 9

1 - z ≠ 4 < 11

x + 8 % z ≥ y * 6 – 15

Considere: x ← 2, y ← 3, z ← 7

Page 19: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Como avaliar uma condição?:: Exercício

Expressão Verdadeiro

Falso Mal formada

x + y > 6 X

x - 1 + y == 4 X

x ** y == x * y X

y - 5 = z - 9 X

1 - z ≠ 4 < 11 X

x + 8 % z ≥ y * 6 – 15

X

Considere: x ← 2, y ← 3, z ← 7

Page 20: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Qual a diferença entre os símbolos “←” e “==” ?

O símbolo “←” indica uma atribuição de valor. O valor da variável à esquerda do símbolo é

modificado pelo valor à direita.

O símbolo “==” indica uma comparação de valores. Nenhum valor é modificado. Eles são

apenas comparados, produzindo um resultado lógico (V ou F).

x ← x + 1x ← x + 1

x == 2x == 2

Page 21: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 1

Uma lata de leite em pó da marca A, com 400g, custa R$ 8,39.

Um saco de leite em pó da marca B, com 1kg, custa R$ 20,30.

Qual marca tem o melhor preço?

Page 22: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 1:: Definir Entradas e Saídas

  GrandezaUnidade de

medidaFaixa de valores

Entradas

Saídas

  GrandezaUnidade de

medidaFaixa de valores

Entradas

PrecoA R$ 8,39

PesoA kg 0,4

PrecoB R$ 20,30

PesoB kg 1,0

SaídasMarca com menor

Preço/Peso--- A ou B

Page 23: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 1:: Solução

FF

VV

inícioinícioPrecoA, PesoA

PrecoB, PesoB

PrecoA, PesoA

PrecoB, PesoB

fimfim

Comprar marca AComprar marca A

rA > rBrA > rB

Comprar marca BComprar marca B

rA ← PrecoA/PesoA

rB ← PrecoB/PesoB

rA ← PrecoA/PesoA

rB ← PrecoB/PesoB

Page 24: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

20,975

20,30

Problema 1:: Testando a Solução (1)

inícioinícioPrecoA, PesoA

PrecoB, PesoB

PrecoA, PesoA

PrecoB, PesoB

Comprar marca A

F

VV

rA ← PrecoA/PesoA

rB ← PrecoB/PesoB

rA ← PrecoA/PesoA

rB ← PrecoB/PesoB

8,39

0,4

20,30

1,0

PesoA

PrecoA

PrecoB

PesoB

Memória

rA

rB

fimfim

Comprar marca BComprar marca B

rA > rBrA > rB

Page 25: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

17,5

20

Problema 1:: Testando a Solução (2)

7,00

0,4

20

1,0

PesoA

PrecoA

PrecoB

PesoB

Memória

rA

rB

início

início

PrecoA, PesoA

PrecoB, PesoB

PrecoA, PesoA

PrecoB, PesoB

fimfim

FF

Comprar marca B

V

rA ← PrecoA/PesoA

rB ← PrecoB/PesoB

rA ← PrecoA/PesoA

rB ← PrecoB/PesoB

Comprar marca AComprar marca A

rA > rBrA > rB

Page 26: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 2

FF

VV

Qual o valor de L para:1. x = 6 e y = 72. x = 4 e y = 83. x = 129873645467

e y = 182163623686329

Qual o valor de L para:1. x = 6 e y = 72. x = 4 e y = 83. x = 129873645467

e y = 182163623686329

início

início

xyxy

fimfim

L ← 33L ← 33

z == 0z == 0

L ← 55L ← 55

z ← x * y % 2z ← x * y % 2

LL

Page 27: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 2:: Solução

FF

VV

Se o produto x*y for par → zeroSe o produto x*y for ímpar → um

Fluxo de execução só passa aqui se (x*y) for par.

x y x*y L

Par Par Par 55

Par Ímpar

Par 55

Ímpar

Par Par 55

Ímpar

Ímpar

Ímpar

33

início

início

xyxy

fimfim

L ← 33L ← 33

z == 0z == 0

L ← 55L ← 55

z ← x * y % 2z ← x * y % 2

LL

Page 28: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 3

FF

VV

início

início

A, BA, B

fimfim

A ← 0A ← 0

A > BA > B

B ← A + 1B ← A + 1

A, BA, B

B ← A + 1B ← A + 1 A ← 0A ← 0

A condição está servindo para alguma coisa, já que A e B parecem ser sempre os mesmos nos dois ramos?

Page 29: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 3:: Solução

FF

VV

início

início

A, BA, B

fimfim

A ← 0A ← 0

A > BA > B

B ← A + 1B ← A + 1

A, BA, B

B ← A + 1B ← A + 1 A ← 0A ← 0

85B

A

Memória

11

22

33

44

55

11

89B

A

22

09B

A

33

47B

A

11

07B

A

44

01B

A

55

33B

A

11

03B

A

44

01B

A

55

Page 30: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema inicial:: Nova tentativa de solução

Dois jogadores lançam dados. Ganha aquele que tirar a face com maior número.

Como determinar quem ganhou? Ou se houve empate?

VV

FF

início

início

Lançar D1Lançar D1

Lançar D2Lançar D2

Jogador 1 ganhouJogador

1 ganhou

fimfim

D1 > D2D1 > D2

Jogador 2 ganhouJogador

2 ganhou??

Page 31: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Condições encadeadas

Condições encadeadas (ou aninhadas) ocorrem quando há necessidade de se testar uma condição interna a outra, a partir de uma combinação de decisões.

Tal situação pode ocorrer em virtude do leque de possibilidades apresentadas em um problema.

Page 32: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Condições encadeadas:: Problema inicial

No problema inicial, temos 03 situações possíveis:

Porém, o algoritmo pode testar apenas uma única condição por vez.

D1D1 D2D2

D1 > D2

Jogador 1 ganha

D2 > D1

Jogador 2 ganha

D2 == D1

Empate

Page 33: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Árvore de decisão

Para estruturar corretamente o encadeamento das condições, devemos montar uma árvore de decisão.

D1 > D2

D2 > D1

J1 ganhou

V

J2 ganhou

F

empate

V F

Page 34: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema inicial:: Solução Final

VV

FF

início

início

Lançar D1

Lançar D1

Lançar D2

Lançar D2

Jogador 1 ganhouJogador

1 ganhou

fimfim

D1 > D2D1 > D2

Page 35: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema inicial:: Solução Final

VV

FF

VV

FF

início

início

Lançar D1

Lançar D1

Lançar D2

Lançar D2

Jogador 1 ganhouJogador

1 ganhou

fimfim

D1 > D2D1 > D2

EmpateEmpate

D2 > D1D2 > D1

Jogador 2 ganhouJogador

2 ganhou

Page 36: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema inicial:: Apenas duas setas no mesmo conector

VV

FF

VV

FF

início

início

Lançar D1

Lançar D1

Lançar D2

Lançar D2

Jogador 1 ganhouJogador

1 ganhou

fimfim

D1 > D2D1 > D2

EmpateEmpate

D2 > D1D2 > D1

Jogador 2 ganhouJogador

2 ganhou

• Não conecte a saída de diferentes condições no mesmo conector.

• Exemplo: e se fosse preciso exibir a mensagem “Jogador 1 não ganhou” após se conhecer o resultado?

Page 37: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema inicial:: Testando Solução Final

VV

FF

VV

FF

início

início

Lançar D1

Lançar D1

Lançar D2

Lançar D2

Jogador 1 ganhouJogador

1 ganhou

fimfim

D1 > D2D1 > D2

EmpateEmpate

D2 > D1D2 > D1

Jogador 2 ganhouJogador

2 ganhou

D1 = 6 e D2 = 1D1 = 1 e D2 = 4D1 = 5 e D2 = 5

Page 38: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema inicial:: Existem outras soluções possíveis?

VV

FF

VV

FF

início

início

Lançar D1

Lançar D1

Lançar D2

Lançar D2

??

fimfim

??

??

??

??

Page 39: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 4

Projete um algoritmo para uma máquina caça-níquel que gere 3 números aleatórios.

Se os três números forem iguais, o jogador ganha. Caso contrário, ele perde.

Page 40: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 4:: Árvore de decisão

N1 == N2

N2 == N3

perdeu

F

perdeu

V

ganhou

F V

Page 41: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 4:: Solução parcial

FF

VV

início

início

Gerar N1, N2, N3

Gerar N1, N2, N3

Perdeu!Perdeu!

fimfim

N1 == N2N1 == N2

Page 42: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 4:: Solução Final

FF

VV

FF

VV

início

início

Gerar N1, N2, N3

Gerar N1, N2, N3

Perdeu!Perdeu!

fimfim

N1 == N2N1 == N2

Ganhou!Ganhou!

N2 == N3N2 == N3

Perdeu!Perdeu!

Page 43: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 4:: Testando Solução Final

FF

VV

FF

VV

início

início

Gerar N1, N2, N3

Gerar N1, N2, N3

Perdeu!Perdeu!

fimfim

N1 == N2N1 == N2

Ganhou!Ganhou!

N2 == N3N2 == N3

Perdeu!Perdeu!

N1 = 1, N2 = 2, N3 = 3N1 = 3, N2 = 2, N3 = 3N1 = 5, N2 = 5, N3 = 4N1 = 7, N2 = 7, N3 = 7

Page 44: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 5

A equação de uma circunferência de raio R é .

Escreva um algoritmo que, dado um ponto P qualquer, verifique se ele se encontra ou não no interior da região do plano delimitada pela circunferência.

 y

x

R

Page 45: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 5:: Definir Entradas e Saídas

  GrandezaUnidade de

medidaFaixa de valores

Entradas

Saídas

  GrandezaUnidade de

medidaFaixa de valores

Entradas

R --- > 0Coordenada X de

P---

Coordenada Y de P

---

Saídas Localização de P ---Interior, exterior, na circunferência

  GrandezaUnidade de

medidaFaixa de valores

Entradas

R --- > 0Coordenada X de

P---

Coordenada Y de P

---

Saídas Localização de P ---Interior, exterior, na circunferência

Page 46: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 5:: Árvore de decisão

X**2 + Y**2 == R**2

X**2 + Y**2 < R**2

Na circunferênc

ia

V

P é interno

F

P é externo

V F

Page 47: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 5:: Solução parcial

VV

FF

início

início

R, X, YR, X, Y

Na circunferênc

ia

Na circunferênc

ia

fimfim

C1C1

X**2 + Y**2 == R**2C1

Page 48: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 5:: Solução Final

VV

FF

fimfim

ExternoExterno

C2C2

InternoInterno

VV

FF

início

início

R, X, YR, X, Y

Na circunferênc

ia

Na circunferênc

ia

C1C1

X**2 + Y**2 == R**2C1

X**2 + Y**2 < R**2C2

Page 49: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Problema 5:: Testando Solução Final

VV

FF

fimfim

ExternoExterno

C2C2

InternoInterno

VV

FF

início

início

R, X, YR, X, Y

Na circunferênc

ia

Na circunferênc

ia

C1C1

X**2 + Y**2 == R**2C1

X**2 + Y**2 < R**2C2

R = 1, X = 3, Y = 4R = 10, X = -4, Y = -3R = 13, X = 5, Y = -12

Page 50: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Projeto de estruturas condicionais Todo comando de um fluxograma deve

contribuir para a solução do problema. Todas as alternativas de uma estrutura

condicional devem ter a possibilidade de serem executadas para alguma combinação de entradas.

Veja o contra-exemplo a seguir.

Page 51: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Projeto de estruturas condicionais:: Erros a evitar

VV

FF

A é positivo

A é positivo

fimfim

É possível chegar aqui?

É possível chegar aqui?

A ≤ 0A ≤ 0

A não é positivoA não é positivo

VV

FF

início

início

Ler A

Ler A

A > 0A > 0

Page 52: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Projeto de estruturas condicionais:: Correção 1

A é positivo

A é positivo

fimfim

A não é positivoA não é positivo

VV

FF

início

início

Ler A

Ler A

A > 0A > 0

Page 53: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Projeto de estruturas condicionais:: Correção 2

VV

FF

A é positivo

A é positivo

fimfim

A é zeroA é zero

A < 0A < 0

A é negativo

A é negativo

VV

FF

início

início

Ler A

Ler A

A > 0A > 0

Page 54: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Referências bibliográficas

Menezes, Nilo Ney Coutinho (2010). Introdução à Programação com Python. Editora Novatec.

Farrer, Harry (2011). Algoritmos Estruturados, 3ª edição. Editora LTC.

Forbellone, A. L. V.; Eberspächer, H. F. (2006) Lógica de Programação, 3ª edição. Pearson.

HETLAND, Magnus Lie (2008). Beginning Python: From Novice to Professional. Springer eBooks, 2ª edição. Disponível em: http://dx.doi.org/10.1007/978-1-4302-0634-7.

Page 55: IEC037 Introdução à Programação de Computadores Aula 05 ...€¦ · IEC037 Introdução à Programação de Computadores Aula 05 – Estruturas Condicionais Turmas: 01A / 01B

Dúvidas?