condicionais - inf1031 introdução a computação

22
Condicionais INF1031 – Introdu¸ ao a Computa¸ ao Noemi Rodriguez [email protected] Departamento de Inform´ atica, PUC-Rio 2 de Setembro de 2020 Noemi Rodriguez Condicionais 1

Upload: others

Post on 16-Oct-2021

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Condicionais - INF1031 Introdução a Computação

CondicionaisINF1031 – Introducao a Computacao

Noemi [email protected]

Departamento de Informatica, PUC-Rio

2 de Setembro de 2020

Noemi Rodriguez Condicionais 1

Page 2: Condicionais - INF1031 Introdução a Computação

Condicionais

Construcoes condicionais (if)I programa nao faz a mesma coisa para qualquer entrada

I exemplos

Noemi Rodriguez Condicionais 2

Page 3: Condicionais - INF1031 Introdução a Computação

Condicionais

Construcoes condicionais (if)and break do else elseif end

false for function goto if in

local nil not or repeat return

then true until while

Noemi Rodriguez Condicionais 3

Page 4: Condicionais - INF1031 Introdução a Computação

Condicionais

Construcoes condicionais (if)

I Permitem fazer tomadas de decisaoI Execucao das instrucoes condicionadas a um teste

I Execucao do codigo deixa de ser sequencial, linha a linhaI Instrucoes codificadas podem ou nao ser avaliadas

Noemi Rodriguez Condicionais 4

Page 5: Condicionais - INF1031 Introdução a Computação

Condicionais

Construcoes if then

I Execucao de comandos condicionada a testeI Uso de uma expressao para teste

I Se, e somente se, a expressao booleana resultar em verdadeiro,o bloco de comandos do if e executado

a = io . read ("*n")

if a < 0 then

a = 0

end

-- neste ponto , valor de ’a ’ nunca e negativo

Noemi Rodriguez Condicionais 5

Page 6: Condicionais - INF1031 Introdução a Computação

Condicionais

Construcoes if then

I Execucao de comandos condicionada a testeI Uso de uma expressao para testeI Se, e somente se, a expressao booleana resultar em verdadeiro,

o bloco de comandos do if e executado

a = io . read ("*n")

if a < 0 then

a = 0

end

-- neste ponto , valor de ’a ’ nunca e negativo

Noemi Rodriguez Condicionais 5

Page 7: Condicionais - INF1031 Introdução a Computação

Condicionais

I na aula passada vimos o uso de booleanos

print (" Entre com o valor Celsius :")

cel = io . read ("*n")

comfebre = cel >= 37

print (" esta com febre ? " , comfebre )

Noemi Rodriguez Condicionais 6

Page 8: Condicionais - INF1031 Introdução a Computação

Condicionais

Construcoes if then

I Execucao de comandos condicionada a testeI e se so quiser imprimir caso esteja com febre?

print (" Entre com o valor Celsius :")

cel = io . read ("*n")

if cel >= 37 then

print (" esta com febre !! ")

end

Noemi Rodriguez Condicionais 7

Page 9: Condicionais - INF1031 Introdução a Computação

Condicionais

Construcoes if then

I Execucao de comandos condicionada a teste

I outro exemplo:

print (" Entre com o numero :")

a = io . read ("*n")

if a %2 == 0 then

print ("o n umero e par !")

end

-- n~ao faz nada se for impar ...

Noemi Rodriguez Condicionais 8

Page 10: Condicionais - INF1031 Introdução a Computação

Condicionais

Construcoes if then else

I Se a expressao for verdadeira, executa o bloco if;caso contrario, executa o bloco else

print (" Entre com o numero :")

a = io . read ("*n")

if a %2 == 0 then

print ("o n umero e par !")

else

print ("o n umero e ımpar !")

end

Para clareza do codigo

Note que os blocos de comandos sao indentados

I Deslocamento da linha para a direita

Noemi Rodriguez Condicionais 9

Page 11: Condicionais - INF1031 Introdução a Computação

Condicionais

Construcoes if then else

I Se a expressao for verdadeira, executa o bloco if;caso contrario, executa o bloco else

print (" Entre com o numero :")

a = io . read ("*n")

if a %2 == 0 then

print ("o n umero e par !")

else

print ("o n umero e ımpar !")

end

Para clareza do codigo

Note que os blocos de comandos sao indentados

I Deslocamento da linha para a direita

Noemi Rodriguez Condicionais 9

Page 12: Condicionais - INF1031 Introdução a Computação

Condicionais

Construcoes if then elseif then ... else

I selecao exclusiva dentre multiplas condicoes

print (" Entre com o valor de temperatura :")

t = io . read ("*n")

if t < 20 then

print (" clima frio ")

elseif t > 30 then

print (" clima quente ")

else

print (" clima agradavel ")

end

Noemi Rodriguez Condicionais 10

Page 13: Condicionais - INF1031 Introdução a Computação

Expressoes booleanas

Operadores relacionais== ( igual a) ~= ( diferente de )

< ( menor que ) <= ( menor ou igual a)

> ( maior que ) >= ( maior ou igual a)

I Expressoes booleanas resultam em valor false ou true

I O valor nil e interpretado como falsoI Qualquer valor diferente de nil e false e tratado como

verdadeiro

I Operadores == e ~= operam sobre quaisquer valores

I Demais operadores operam sobre numeros e strings, apenas

Noemi Rodriguez Condicionais 11

Page 14: Condicionais - INF1031 Introdução a Computação

Expressoes booleanas

Operadores logicosand ( conjun c~ao ) or ( disjun c~ao ) not ( nega c~ao )

I Operam sobre valores booleanos

I Resultam em um valor booleano

Exemplos:print (" Entre com o valor de temperatura :")

t = io . read ("*n")

if t >= 20 and t <= 30 then

print (" clima agradavel ")

end

if not b then -- se ’b ’ n~ao tem valor definido

b = 0

end

-- neste ponto , valor de ’b ’ estar a definido

Noemi Rodriguez Condicionais 12

Page 15: Condicionais - INF1031 Introdução a Computação

Expressoes booleanas

Operadores logicosand ( conjun c~ao ) or ( disjun c~ao ) not ( nega c~ao )

I Operam sobre valores booleanos

I Resultam em um valor booleano

Exemplos:print (" Entre com o valor de temperatura :")

t = io . read ("*n")

if t >= 20 and t <= 30 then

print (" clima agradavel ")

end

if not b then -- se ’b ’ n~ao tem valor definido

b = 0

end

-- neste ponto , valor de ’b ’ estar a definido

Noemi Rodriguez Condicionais 12

Page 16: Condicionais - INF1031 Introdução a Computação

Expressoes booleanas

Operadores logicosand ( conjun c~ao ) or ( disjun c~ao ) not ( nega c~ao )

I Operam sobre valores booleanos

I Resultam em um valor booleano

Exemplos:print (" Entre com o valor de temperatura :")

t = io . read ("*n")

if t >= 20 and t <= 30 then

print (" clima agradavel ")

end

if not b then -- se ’b ’ n~ao tem valor definido

b = 0

end

-- neste ponto , valor de ’b ’ estar a definido

Noemi Rodriguez Condicionais 12

Page 17: Condicionais - INF1031 Introdução a Computação

— lab 1 —

Noemi Rodriguez Condicionais 13

Page 18: Condicionais - INF1031 Introdução a Computação

Expressoes booleanas

Operadores logicos

and false true

false false false

true false true

or false true

false false true

true true true

not false true

true false

Noemi Rodriguez Condicionais 14

Page 19: Condicionais - INF1031 Introdução a Computação

Bibliotecas padraoLua oferece diferentes bibliotecas com funcoes utilitariasI Biblioteca matematica: math

I Oferece funcoes matematicasI math.abs(x): retorna o valor absoluto de xI math.sqrt(x): retorna o valor da raiz quadrada de xI math.min(x, ...): retorna valor mınimoI math.max(x, ...): retorna valor maximo

I math.sin(x): retorna valor do seno (x em rad)I math.cos(x): retorna valor do cosseno (x em rad)I math.tan(x): retorna valor do cosseno (x em rad)I math.acos(x): retorna valor da tangente (x em rad)I math.asin(x): retorna o arco seno (em radianos)I math.acos(x): retorna o arco cosseno (em rad)I math.atan(x): retorna o arco tangente (em rad)I math.atan2(y,x): retorna o arco tangente de y/x (em rad)I math.deg(x): converte de radianos para grausI math.rad(x): converte de graus para radianosI math.pi: constante numerica – valor de π

I math.floor(x): retorna maior valor inteiro menor que xI math.ceil(x): retorna menor valor inteiro maior que x

Noemi Rodriguez Condicionais 15

Page 20: Condicionais - INF1031 Introdução a Computação

Aplicacao

Determinacao de raızes de equacao do 2o grau: ax2 + bx + c = 0

−b ±√b2 − 4ac

2a

I Objetivo: Escrever um programa que capture 3 valoresnumericos (valores dos coeficientes a, b e c) e exiba umamensagem informando:I Que nao ha raızes reais; ouI Que so existe uma raiz real, seguida do valor da raiz; ouI Que existem duas raızes reais, seguida dos valores das raızes.

Noemi Rodriguez Condicionais 16

Page 21: Condicionais - INF1031 Introdução a Computação

Aplicacao

Determinacao de raızes de equacao do 2o grau: ax2 + bx + c = 0

−b ±√b2 − 4ac

2a

I Objetivo: Escrever um programa que capture 3 valoresnumericos (valores dos coeficientes a, b e c) e exiba umamensagem informando:I Que nao ha raızes reais; ouI Que so existe uma raiz real, seguida do valor da raiz; ouI Que existem duas raızes reais, seguida dos valores das raızes.

Noemi Rodriguez Condicionais 16

Page 22: Condicionais - INF1031 Introdução a Computação

Aplicacao

Determinacao de raızes de equacao do 2o grau: ax2 + bx + c = 0

−b ±√b2 − 4ac

2a

a , b , c = io . read ("*n" ,"*n" ,"*n")

delta = b ^2 - 4* a*c

if delta < 0 then

io . write (" Nao existem raizes reais \n")

elseif delta == 0 then

x = -b / (2* a)

io . write (" Existe um unica raiz : " ,x ,"\n")

else

x1 = (-b - math . sqrt ( delta )) / (2* a)

x2 = (-b + math . sqrt ( delta )) / (2* a)

io . write (" Existem duas raizes : " ,x1 ," e " ,x2 ,"\n")

end

Noemi Rodriguez Condicionais 17