lógica de programação - clenissoncalaca.com · curso = “lógica de programação ... como...

Post on 23-Dec-2018

227 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Lógica de ProgramaçãoAula 2 – Conhecendo o Ruby

Clenisson Calaça <clenisson.calaca@gmail.com>

Mais Ruby● Variáveis

– Já sabemos como atribuir um valor a uma variável escrevendo o seu identificador seguido de = (igual a) e o seu valor

● curso = “Lógica de programação”● Local = “Conhecimento Digital”● duracao_em_horas = 45

● Tipos– String – cadeia de caracters. Ex.: “um texto qualquer”

– Fixnum – números inteiros. Ex.: 10

– Float – números fracionados. Ex.: 2.5

...

Tipos de variáveis● Como saber o tipo da minha variável?

– .class =>Experimente: curso = “Logica de programacao”

puts curso.class

● Tipagem– O Ruby infere o tipo da sua variável de acordo com o valor que

você atribui a ela!

● Em muitas linguagens, você precisa informar previamente qual tipo a variável aceita.

– O tipo da variável pode mudar N vezes ao longo da execução do mesmo progama

idade = 27 (Fixnum)

idade = “27” (String)

Tipos de variáveis● Tipagem forte e dinâmica!

– Forte: o Ruby● Os tipos são importantes

– numero1 = “1”– numero2 = “2”– soma = numero1 + numero2 # retornará a concatenação de strings “12”

– Dinâmica ● Uma mesma variável pode assumir vários tipos durante a

execução.– Numero = “23” # string– numero = 23 # fixnum

Expressões aritméticas● É possível realizar outras operações além da

soma...– Multiplicação: *

● puts 2*6

– Subtração: -● puts 10-5

– Divisão: /● puts 12 / 2

● Agrupando expressões:– puts (6*2 + 10/2) * (9*5 + 100/10)

MAIS EM:https://wmagician.wordpress.com/2008/01/27/ruby-numeros-e-math-basico/

Exercícios – Variáveis e operações aritméticas

1 – Crie um programa que receba o valor de b, a e c e imprima o valor de DELTA (da fórmula de Bháskara):

b² – 4.a.c

2 – Crie um programa que receba o número do mês atual e calcule quantos meses faltam para o ano terminar, informando ao usuário.

Ex.: ● Entrada (teclado): 1● Saída: Meses para o fim do ano: 11

Relações● São comparações entre valores do mesmo tipo. Possuem

operadores e operandos:

– == (igual à)

– != (diferente de)

– > (maior que)

– < (menor que)

– >= (maior ou igual à)

– <= (menor ou igal à)

● Ruby retornará o resultado da comparação: true (verdadeira) ou false (falsa)

– 2 == 2 (“dois é igual à dois”) true

– 5 > 7 (“cinco é maior que sete”) false

Expressões lógicas / booleanas

● São expressões (conjunto de comparações) que ao serem submetidas a operadores lógicos retornam um valor:

– true (verdadeira)

– false (falsa)

● Operadores lógicos no ruby

– && e and significam “e” (conjunção)● 2 > 1 && 10 == 10 (dois é maior que um E 10 é igual à

10) verdadeiro– || e or significam “ou” (disjunção)

● 2 < 1 || 10 == 10 (dois é menor que um OU 10 é igual à 10) verdadeiro

– ! significa “não” (negação)● !(2 < 1) (dois não é menor que um) verdadeiro

Estruturas de seleção● Consiste em estruturas que “testam” uma determinada

condição para executar uma ação (ou um conjunto de ações).

– Exemplo: ALGORITMO do “se”● “SE o número é divisível por 2, é par. SE NÃO, é

ímpar”.● Em Ruby:

– If, elsif, else (“se”, “senão se”, “senão”)

– unless (“a menos que”)

– case (“quando for igual a”)

Estruturas de seleção – if, elsif, else

● “SE” (if). Testa se uma expressão lógica é verdadeira.

– “SE idade for maior que ou igual a 18” => if idade >= 18

● “SENÃO SE” (elsif). Testa se outra expressão lógica é verdadeira, caso a anterior não seja

– “SENÃO SE idade for menor que 18 e maior ou igual a 14” => elsif idade < 18 && idade >= 14

(Neste ponto, já foi identificado que x > 5 é false)● “SENÃO” (else). Caso nenhuma das condições anteriores

seja satisfeita (ou seja, nenhuma retorne true, nenhuma seja verdadeira...)

– “SENÃO” => else

● end (encerra a estrutura)

Estruturas de seleção – if, elsif, else

puts "FESTINHA!!! Para ter acesso, digite sua idade:"idade = gets.to_iif idade >=18puts "LIBERADO"

elsif idade < 18 && idade >= 14puts "LIBERADO COM OS PAIS"

elseputs "BARRADO"

end

Estruturas de seleção – if, elsif, else

● Alternativamente..

puts "FESTINHA!!! Para ter acesso, digite sua idade:"idade = gets.to_iputs "LIBERADO" if idade >=18puts "LIBERADO COM OS PAIS" if idade < 18 && idade >= 14puts "BARRADO" if idade < 14

Estruturas de seleção – unless

● “UNLESS” (“a menos que”). Testa se uma expressão lógica é verdadeira e, se ela não for, executa as instruções dentro do bloco.

– “A MENOS QUE seja Alemanha, o Brasil ganha. SENÃO, o Brasil toma 7x1!”

puts "Brasil joga com quem?"adversario = gets.chompunless adversario == "Alemanha"

puts "Brasil ganha!"else

puts "Brasil toma 7x1"end

puts "Brasil joga com quem?"adversario = gets.chompputs "Brasil ganha!" unless adversario == "Alemanha"

Estruturas de seleção – case

● Testa várias condições em uma mesma estrutura

● Sintaxe:

case expressaowhen valor1

...when valor2

...when valor3...else

...end

Estruturas de seleção – case

puts "Capitais do Nordeste. Digite a sigla do estado:"estado = gets.chompcase estadowhen "AL"

puts "Maceio"when "PE"

puts "Recife"when "SE"

puts "Aracaju"when "BA"

puts "Salvador"else

puts "Você nao digitou uma sigla de um estado do Nordeste, ou nós não temos esse estado cadastrado ainda!"end

Exercícios – Estruturas de seleção

1 – Idosos com 60 anos ou mais possuem gratuidade ao andar de ônibus. Crie um programa que receba (no teclado) a idade do usuário e diga se o mesmo possui ou não direito à gratuidade.

2 – Crie um programa que receba a sigla e imprima a capital dos estados do Sul do Brasil. Se o estado não for do sul, deve exibir uma mensagem informando ao usuário. Para referência:– RS – Porto Alegre; SC – Florianópolis; PR – Curitiba.

Estruturas de repetição● Consiste em estruturas que obedecem uma determinada

condição para executar uma mesma instrução N vezes, até que uma condição de parada seja satisfeita (verdadeira / true) – do contrário, teremos um loop infinito: o código da estrutura será executado “eternamente” até ser interrompido de alguma maneira brusca.

– Exemplo: ALGORITMO do “enquanto”● “ENQUANTO a senha estiver incorreta, solicite que

seja digitada”.● Em Ruby:

– while (“enquanto”)

– until (“a menos que”)

– for (“para”)

Estruturas de repetição – while

● “ENQUANTO” (while). Executa a instrução contida no bloco enquanto a expressão lógica for verdadeira.

– “ENQUANTO senha for diferente de 123456” => while senha != “123456”

end (encerra a estrutura)

● O restante do algoritmo será executado somente após a execução da estrutura.

puts "Digite a senha:"senha = gets.chompwhile senha != "123456"

puts "Senha incorreta. Digite a senha:"senha = gets.chomp

endputs "Parabéns, você sabe a senha!!!!"

Estruturas de repetição – while

● #dica: O mesmo programa anterior pode ser reescrito com “menos repetições”...

puts “Digite a senha:”

senha = gets.chomp● … utilizando blocos – begin e end

beginputs "Digite a senha:"senha = gets.chomp

end while senha != "123456"puts "Parabéns, você sabe a senha!!!!"

Estruturas de repetição – until

● “ATÉ QUE” (until). Executa a instrução contida no bloco enquanto a expressão lógica for falsa.

– “ATÉ QUE senha seja igual à 123456” => until senha == “123456”

– Comportamento semelhante ao unless nas estruturas de seleção...

puts "Digite a senha:"senha = gets.chompuntil senha == "123456"

puts "Senha incorreta. Digite a senha:"senha = gets.chomp

endputs "Parabéns, você sabe a senha!!!!"

Estruturas de repetição – until

● Utilizando blocos:

beginputs "Digite a senha:"senha = gets.chomp

end until senha == "123456"puts "Parabéns, você sabe a senha!!!!"

Estruturas de repetição – for

● “PARA” (for). Executa a instrução contida no bloco para um determinado intervalo/grupo de valores.

– “PARA todo numero de 1 à 5” => for numero in 1..5

end (encerra a estrutura)

for numero in 1..5if numero % 2 == 0

puts "#{numero} é par!"else

puts "#{numero} é ímpar!"end

end

Exercícios – Estruturas de repetição

1 – Utilizando while ou until, crie um programa cuja execução só se encerre quando for digitado um número par e maior que 100

2 – Utilizando o for, crie um programa que exiba a tabuada de um número digitado pelo usuário

● Entrada (teclado): 10● Saída: 10x0 = 010x1 = 1010x2 = 20...

top related