• Nenhum resultado encontrado

Lógica de Programação

N/A
N/A
Protected

Academic year: 2021

Share "Lógica de Programação"

Copied!
31
0
0

Texto

(1)

Lógica de Programação

Recapitulando

(2)

Recapitulando...

O que vimos até agora?

– Algoritmos

– Variáveis

– Operadores

– Expressões

– Estruturas de seleção e repetição

– Coleções (arrays / hashes)

– Funções / métodos

– Classes

(3)

Recapitulando...

Lógica de Programação

– Técnica para escrever algoritmos.

Um software (programa de computador) é um algoritmo,

escrito por um programador utilizando uma linguagem de

programação através da qual os comandos escritos pelo

programador serão “entendidos” pelo computador, que os executará na ordem definida..

● Qualquer linguagem de programação pode executar um

algoritmo! Ou seja, saber programar não é saber uma

linguagem, mas sim saber criar algoritmos. Linguagens

possuem manuais e documentações que facilitam o aprendizado...

Ex.: Programar em Java -> “Como fazer um hello world em

(4)

Recapitulando...

Algoritmo

– Sequência finita de instruções que objetivam a

solução de um determinado problema / execução de uma açao (“Receita de bolo”)

● Bata 2 ovos no liquidificador ● Misture com o leite

● Leve ao forno por 30 minutos … – “Somar dois números”

● Leia número A ● Leia número B ● Faça C = A + B ● Escreva C

(5)

Recapitulando...

Ruby

– Linguagem de fácil aprendizado por ter sua sintaxe

simples. Popular no mercado principalmente pelo seu uso no framework Ruby on Rails, presente de forma massiva na web

– Executando um programa em ruby

● Testes rápidos: Abra o terminal (Windows: Prompt de

comando), digite irb e pressione Enter.

● Online: http://repl.it (várias linguagens de programação

para testar)

Scripts salvos: salve o arquivo com a extensão .rb

– No seu terminal, vá até a pasta onde salvou o arquivo e digite:

● ruby arquivo.rb

(6)

Recapitulando...

Variáveis

– São espaços reservados na memória do computador que executa

o algoritmo, que servem para guardar valores. Possuem

identificador (nome), tipo (quais valores suporta -> números, letras, etc.) e valor. Durante a execução do algoritmo, cada vez

em que o identificador da variável for encontrado, será lido o seu valor.

– Regras para nomes de variáveis: podem conter letras, números e

_. Não podem iniciar com números!

nome = “Maria”

idade = 25

peso = 50.4

cidade = “Maceió”

Idenificador da variável

Valor do tipo string (cadeia de caracteres)

Valor do tipo número (inteiro)

(7)

Recapitulando...

Constantes

– São variáveis cujo valor não deve ser modificado ao longo do

programa. São indicadas pelo seu identificador composto por letras maiúsculas.

● EX.: IDADE_MINIMA = 18

– Se durante o algoritmo o valor de IDADE_MINIMA for

(8)

Recapitulando...

Operadores Relacionais

– São (conjuntos de) caracteres cuja função é executar uma

comparação de relação entre dois operandos, retornando o resultado da comparação (verdadeiro / falso).

== (igual à) != (diferente de) > (maior que) < (menor que) >= (maior ou igual à) <= (menor ou igal à) Ex.: 2 == 2 (verdadeiro)

“Curso” != “Curso” (falso) 10 > 3 (verdadeiro)

10 < 3 (falso)

10 >= 3 (verdadeiro) 3 <= 10 (verdadeiro)

(9)

Recapitulando...

Expressões booleanas

São conjuntos de operações submetidas a operadores lógicos

(e, ou, não) que retornam sempre um valor (verdadeiro / falso)

Operadores lógicos (Ruby):

&& e and signficam “e” (conjunção) || e or significam “ou” (disjunção)

! significa “não” (negação)

Exemplos:

2 > 1 && 10 == 10 verdadeiro

2 < 1 || 10 == 10 verdadeiro

(10)

Recapitulando...

Tabela verdade

– São tabelas que auxiliam a interpretação de uma expressão

(11)

Recapitulando...

Estruturas de seleção

– Consiste em estruturas que “testam” uma determinada condição

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

– Ruby:

If, elsif, else (“se”, “senão se”, “senão”)unless (“a menos que”)

(12)

Recapitulando...

If, elsif, else

puts "FESTINHA!!! Para ter acesso,

digite sua idade:"

idade = gets.to_i

if

idade >=18

puts "LIBERADO"

elsif

idade < 18 && idade >= 14

puts "LIBERADO COM OS PAIS"

else

puts "BARRADO"

(13)

Recapitulando...

unless

puts "Brasil joga com quem?" adversario = gets.chomp

unless adversario == "Alemanha"

puts "Brasil ganha!"

else

puts "Brasil toma 7x1"

(14)

Recapitulando...

case

puts "Capitais do Nordeste. Digite a sigla do estado:" estado = gets.chomp case estado when "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!"

(15)

Recapitulando...

Estruturas de repetição

● Consiste em estruturas que obedecem uma determinada

condição para executar uma mesma instrução N vezes. – Exemplo: ALGORITMO do “enquanto”

“ENQUANTO a senha estiver incorreta, solicite que

seja digitada”.

Em Ruby:

while (“enquanto”)

until (“a menos que”)

(16)

Recapitulando...

Estruturas de repetição - while

puts "Digite a senha:"

senha = gets.chomp

while senha != "123456"

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

end

(17)

Recapitulando...

Estruturas de repetição - until

puts "Digite a senha:"

senha = gets.chomp

until senha == "123456"

puts "Senha incorreta. Digite a senha:"

senha = gets.chomp

end

(18)

Recapitulando...

Estruturas de repetição - for

for numero in 1..5

if numero % 2 == 0

puts "#{numero} é par!" else

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

(19)

Recapitulando...

Arrays

– Coleções de elementos agrupados em uma mesma

variável, com seus valores separados por índices

numéricos, onde:

Primeiro índice: 0

Segundo índice: n – 1 (n = total de elementos do array)

# Array de nomes com 5 elementos. n = 5

nomes = ["João", "José", "Maria", "Joaquina", "Austragísio"] puts nomes[0] # Primeiro índice: 0. João

puts nomes[1] # José

puts nomes[2] # Maria

puts nomes[3] # Joaquina

(20)

Recapitulando...

Operando sobre arrays

● Iniciando um array vazio

● Total de elementos no array

● Adicionando elementos durante execução

● Acessando o primeiro e o último elemento

Acessando o elemento na posição n

● https://ruby-doc.org/core-2.2.0/Array.html array = Array.new array = [] array.length array << "elemento" array << 199 array.first array.last array[n] array.at(n)

(21)

Recapitulando...

Iterando sobre arrays

Como fazemos para percorrer um array?

Liste todos os elementos do array nomes:

Estrutura for

Estrutura each

nomes = ["João", "José", "Maria", "Joaquim", "Austragísio"]

for nome in nomes

puts nome

end

for i in 0 .. nomes.length-1

puts nomes[i]

end

nomes.each do |nome| puts nome

end

nomes.each_with_index do |nome, indice| puts nomes[indice]

(22)

Recapitulando...

Hashes

– Coleções de elementos que, como o array, se

organizam em índices e valores...

– Mas os índices não precisam ser sempre

numéricos!

(23)

Recapitulando...

Hashes

Criando um hash:

Adicionando e acessando elementos

Chaves como símbolos

Todos os valores de um Hash (método values)

https://ruby-doc.org/core-2.2.0/Hash.html

hash = Hash.new

hash = {} # chaves no lugar de colchetes

hash[“chave”] = “valor”

puts hash[“chave”] # Imprimirá “valor”

hash[:chave] = "valor"

puts hash[:chave] hash = {chave: "valor"}puts hash[:chave] hash = {:chave => "valor"}puts hash[:chave]

hash = {nome: “José”, idade: 25, cidade: “Maceió”} puts hash.values

(24)

Recapitulando...

Hashes - exemplo

carros = {

ford: ["Fiesta", "Focus"], fiat: ["Uno", "Palio"],

chevrolet: ["Corsa", "Celta"], volswagen: "Gol"

}

puts carros[:ford] # Fiesta

(25)

Recapitulando...

Funções

– Blocos de códigos que podem ser reutilizados,

atraves de sua chamada, em qualquer ponto do programa.

ola_mundo # Imprimirá "Olá, mundo!"

def ola_mundo

puts "Olá, mundo!" end

● Estrutura de uma função:

def é a palavra reservada do Ruby que é utilizada para dizer que

você está definindo uma função.

ola_mundo é o identificador da sua função. Uma vez definido

com esse identificador, seu bloco de códigos será executado sempre que o identificador for encontrado.

(26)

Recapitulando...

Funções - parâmetros

– São variáveis que passamos para as nossas

funções, de forma que os códigos contidos nelas

possam trabalhar de acordo com os valores que atribuímos às mesmas.

def numero_ao_quadrado(numero)

numero * numero end

puts numero_ao_quadrado(4) # 16

def ola_fulano(nome)

"Ola #{nome}" end

(27)

Recapitulando...

Classes

– São tipos criados pelo programador para

representar entidades do mundo real em seu

programa. Uma classe possui objetos, que por sua vez possuem todos os métodos e atributos

definidos pela classe.

– Exemplo:

● Toda pessoa come e dorme (métodos –

comportamento!). Tem nome, peso e altura (atributos – características!).

Eduardo, José, Mariana, Patrícia e Paula são objetos da classe

(tipo) Pessoa.

● Todo carro acelera e freia. Possui cor e modelo.

(28)

Recapitulando...

Classes

class Pessoa

attr_accessor :nome, :peso, :altura def comer

puts "#{nome} comeu!" end

def dormir

puts "#{nome} dormiu!" end end joao = Pessoa.new joao.nome = "João" joao.comer joao.dormir ●

Classes

class Pessoa

attr_accessor :nome, :peso, :altura def comer

puts "#{nome} comeu!" end

def dormir

puts "#{nome} dormiu!" end end joao = Pessoa.new joao.nome = "João" joao.comer joao.dormir

(29)

Recapitulando...

Trabalhando com arquivos externos

– É possível que possamos definir nossas classes e funções em arquivos

externos, para que possamos reutilizá-los (esta é a ideia!).

class Pessoa

attr_accessor :nome, :peso, :altura def comer

puts "#{nome} comeu!" end

def dormir

puts "#{nome} dormiu!" end

end

pessoa.rb

class Carro

attr_accessor :cor, :modelo def acelerar

puts "#{modelo} acelerou!" end

def freiar

puts "#{modelo} feriou!" end end carro.rb require_relative 'pessoa' require_relative 'carro' joao = Pessoa.new corsa = Carro.new joao.nome = "João" joao.comer corsa.modelo = "Corsa" corsa.acelerar programa.rb

(30)

Recapitulando...

GUI

– Conjunto de componentes que possibilitam que um

usuário interaja com um programa de computador por meio de recursos visuais

(31)

Recapitulando...

GUI

– Cada elemento em uma GUI pode ter uma ação

associada a ele no código

● Ex.: ao clicar no botão “OK”, mostre uma mensagem ao

usuário

Funcionalidade “equivalente ao puts”

– Ferramenta de GUI para Ruby

Referências

Documentos relacionados

O centro de apoio trabalhista de Atsugi é um centro que permite aos habitantes e os sindicatos de Atsugi a promover assistência social e trocar opiniões, bem como oferecer um local

• 1º e 2º campos (cadeias de caracteres): respectivamente, nome do intérprete e nome da faixa: iniciados por um número ou por uma letra, podem conter números ou letras,

Organiza, em duas colunas, os nomes seguintes, conforme sejam concretos ou abstratos:.. Saudade, hospital, semana, montanha, fama, paixão, escola, desporto, orgulho, felicidade,

● Dica: ao utilizar o método puts com as aspas (para escrever textos), dentro das aspas você pode acessar as variáveis com #{IDENTIFICADOR} , trocando IDENTIFICADOR pelo

Na informática, o algoritmo é o &#34;projeto do programa“, ou seja, antes de se fazer um programa (software) na Linguagem de Programação desejada (Pascal, Java, C, Delphi,

O seguinte exemplo, composto por 5 comandos em alto nível, representa um algoritmo de extrema complexidade de ser implementado, pois os comandos são muito

Um comando de atribuição permite-nos fornecer um valor a uma variável (guardar um valor em uma gaveta), em que o tipo do dado deve ser compatível com o tipo da

• Elabore uma sequência que mova três discos de uma Torre de Hanói, que consiste em três hastes (a-b-c), uma das quais serve de suporte para três discos de tamanhos diferentes