Fundamentos de Programação Turma CI-240-EST Josiney de ... · Exercícios Propostos Exercícios...

Preview:

Citation preview

Fundamentos de Programação

Turma CI-240-EST

Josiney de Souza

josineys@inf.ufpr.br

Agenda do Dia – Aula 8 (30/09/15)

Comentários sobre exercícios propostos Desvio condicional

Simples Composto

Exercícios Propostos

Exercícios: Mostrar na tela o comprimento de um texto

digitado pelo usuário Solicitar do usuário dois textos separados e

mostrá-los na tela concatenados, isto é, os dois textos como um só, sem espaço entre eles

Calcular a porcentagem de nucleotídeos A, C, G e C em uma cadeia de DNA informada pelo usuário. Indicar também a quantidade e a porcentagem de nucleotídeos inválidos.

Exercícios Propostos

Exercícios extras: Solicitar do usuário dois textos separados e

verificar se os dois são iguais ou se o primeiro está antes do segundo considerando ordem alfabética

Solicitar do usuário um texto qualquer e um caractere qualquer. Mostrar:

O índice da primeira ocorrência do caractere no texto. Se não ocorrer no texto, mostrar -1

O índice da última ocorrência do caractere no texto. Se não ocorrer no texto, mostrar -1

Operadores

É possível realizar operações sobre as variáveis e sobre algumas constantes: Atribuição: guardar valor em variáveis Aritmética: soma, subtração, multiplicação,

divisão Relacional: maior, menor, igual, diferente, maior

ou igual, menor ou igual Lógica: e, ou, não

Operadores – Relacional

Operadores para comparar o valor de operandos: Símbolo: ==, !=, <=, <, >=, >, in, is Sintaxe:

(Retorno) Operando <Operador> Operando

Operandos são comparados entre si O retorno é booleano (verdadeiro ou falso)

Operadores – Relacional

Operadores para comparar o valor de operandos: Símbolo: == (igual) Símbolo: != (diferente) Símbolo: <= (menor ou igual que) Símbolo: < (menor que) Símbolo: >= (maior ou igual que) Símbolo: > (maior que) Símbolo: in (pertinência de strings) Símbolo: is (identidade/igualdade entre strings)

Operadores – Relacional

Exemplo de expressões: (7 == 5) // Avalia como falso (5 > 4) // Avalia como verdadeiro (3 != 2) // Avalia como verdadeiro (6 >= 6) // Avalia como verdadeiro (5 < 5) // Avalia como falso ('ana' in 'banana') // Avalia como verdadeiro (nome is 'jao') // Depende do valor da variavel

nome

Operadores – Lógica

Operadores para comparar o valor de operandos: Símbolo: not, and, or Sintaxe:

(Retorno) Expressao <Operador> Expressao

Compara expressões segundo a tabela-verdade

O retorno é booleano (verdadeiro ou falso)

Operadores – Lógica

Operadores para comparar o valor de operandos: Símbolo: not (não) Símbolo: and (e) Símbolo: or (ou)

Operadores – Lógica

Operador not: Inverte o valor da expressão

not (5 == 5) // Avalia como falso

not (6 <= 4) // Avalia como verdadeiro

not True // Avalia como falso

not False // Avalia como verdadeiro

Operadores – Lógica

Operador and:

A B A and B

VERDADEIRO VERDADEIRO VERDADEIRO

VERDADEIRO FALSO FALSO

FALSO VERDADEIRO FALSO

FALSO FALSO FALSO

Operadores – Lógica

Operador or:

A B A or B

VERDADEIRO VERDADEIRO VERDADEIRO

VERDADEIRO FALSO VERDADEIRO

FALSO VERDADEIRO VERDADEIRO

FALSO FALSO FALSO

Operadores – Precedência

Existe uma ordem de avaliação dos operadores: 5 + 4 * 2 + 10 → 23 (28 está errado!!!) 5 + 4 >= 5 * 2 and 2 + 10 > 33 / 3 ???

Operadores – Precedência

Existe uma ordem de avaliação dos operadores: 5 + 4 >= 5 * 2 and 2 + 10 > 33 / 3

5 + 4 >= 10 and 2 + 10 > 33 / 3

5 + 4 >= 10 and 2 + 10 > 11

9 >= 10 and 2 + 10 > 11

9 >= 10 and 12 > 11

False and 12 > 11

False and True = False

Operadores – Precedência

Existe uma ordem de avaliação dos operadores: 1. Parênteses 2. Operadores unários 3. Operadores Aritméticos 4. Operadores Relacionais 5. Operadores Lógicos 6. Operadores de Atribuição

Operadores – Precedência

Operador Associatividade

() Esquerda para direita

not - (unários) Direita para esquerda

** Esquerda para direita

* / % Esquerda para direita

+ - Esquerda para direita

< <= > >= Esquerda para direita

== != in is Esquerda para direita

and or Esquerda para direita

= += -= *= /= %= Direita para esquerda

Operadores – Observações

O retorno dos operadores relacionais e lógicos é verdadeiro ou falso

Na verdade, o computador entende True e False como números inteiros:

True → 1 False → 0

Na prática, uma expressão só será falsa se for 0 ou False

Qualquer outro valor é considerado verdadeiro

Desvio Condicional

Normalmente, um programa segue um fluxo linear de execução: Instruções são executadas uma após a outra De cima para baixo

Desvio Condicional

Normalmente, um programa segue um fluxo linear de execução: Instruções são executadas uma após a outra De cima para baixo

Porém, existem comandos que desviam o fluxo de execução Algumas instruções podem ser ignoradas Depende da condição dada

Desvio Condicional

Execução normal: Desvio condicional:

Desvio Condicional

Servem para tomadas de decisão Desviam a execução linear do código Dependem de uma condição

Resultado da condição deve retornar VERDADEIRO ou FALSO

Conhecidos como comandos de decisão Conhecidos como desvios condicionais

Desvio Condicional

Existem três tipos de desvios condicionais: Simples: if (se) Composto: if – else (se – senão) Aninhado: desvio condicional dentro de desvio

condicional

Desvio Condicional Simples

Sintaxe:

if <CONDICAO>:

<COMANDO>

if <CONDICAO>:

<COMANDO>

<COMANDO>

Desvio Condicional Simples

Como funciona: A expressão da <CONDICAO> é avaliada Se o resultado da avaliação é VERDADEIRO

<COMANDO> é executado; ou Os comandos dentro do bloco indentado são

executados

Se o resultado da avaliação é FALSO Tudo dentro do escopo do ”if” é ignorado Execução segue normal depois do ”if”

Desvio Condicional Simples - Exemplo

# coding = latin-1

from math import *

from string import *

idade = int( input('Qual a sua idade? ') )

if idade < 18:

print ('Você é menor de idade')

Desvio Condicional Simples - Exemplo

# coding = latin-1

from math import *

from string import *

idade = int( input('Qual a sua idade? ') )

if idade < 18:

print ('Você é menor de idade')

print ('Não pode comprar bebidas alcoólicas')

Desvio Condicional Composto

Serve para tomar decisões mais complexas

Sintaxe:

if <CONDICAO>:

<COMANDO>

else:

<COMANDO>

Desvio Condicional Composto

Como funciona: A expressão da <CONDICAO> é avaliada Se o resultado da avaliação é VERDADEIRO

<COMANDO> entre ”if” e ”else” é executado; ou Os comandos dentro do bloco indentado entre ”if” e

”else” são executados

Se o resultado da avaliação é FALSO <COMANDO> após ”else” é executado; ou Os comandos dentro do bloco indentado após o

”else” são executados

Desvio Condicional Composto - Exemplo

# coding = latin-1

from math import *

from string import *

idade = int( input('Qual a sua idade? ') )

if idade < 18:

print ('Você é menor de idade')

print ('Não pode comprar bebidas alcoólicas')

else:

print ('Maior de idade. Tá liberado')

Desvio Condicional

Desvio Condicional

Exercícios: Descobrir se um número é par ou ímpar Descobrir qual o maior dentre dois números Obter as médias finais e a frequência de Ana e

Mariana. Dizer se elas estão aprovadas, considerando:

Nota: ter pelo menos 50 de média Frequência: ter pelo menos 25 aulas de presença

Próxima Aula

Desvio condicional aninhado

Recommended