Lógica de Programação - Clenisson Calaça · Linguagem de programação Ruby Ruby é a linguagem...

Preview:

Citation preview

Lógica de ProgramaçãoAula 1 - Introdução

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

Sobre mim

Tecnólogo em Análise e Desenvolvimento de Sistemas

– Maurício de Nassau, 2015

Desenvolvedor– Plus Agência – www.plusagencia.digital

(2011 – dias atuais)

“Reinão” em programação desde 2004 e eterno estudante da área.

Instrutor do curso desde out/2016.

Tudo sobre mim: www.clenissoncalaca.com

/clenisson /clenisson clenisson.calaca@gmail.com

Sobre vocês?Apresentem-se :)

Sobre o curso

● http://www.conhecimentodigital.com.br/curso/tecnologico/logica

Sobre o curso

● Aulas expositivas (slides, vídeos, exemplos, códigos, etc.)

– Portal web para divulgação dos conteúdos● Prática (exercícios)● Dúvidas poderão ser tiradas sempre que surgirem,

aqui ou não =)

– Grupo (WhatsApp) e e-mail serão nossos canais de comunicação fora da Conhecimento Digital

Vamos começar?

Pensando em programação

Quantas vezes, ao longo da sua vida como usuário, você já se perguntou como são feitos os programas que você executa nos seus dispositivos?

Alguma vez você já se perguntou...:

● Como o Facebook acessa meu perfil quando eu entro com o login e a senha? Por que não acessa outro perfil?

● Como o WhatsApp faz para abrir a câmera do meu celular quando eu clico no botão para tirar foto em uma conversa?

● Como o Tinder pega a minha localização atual e mostra as pessoas que estão próximas a mim geograficamente para que eu demonstre interesse nelas?

...

Em resumo...

● Como eu faço pra dizer ao computador que executa o meu programa o que ele deve fazer em determinadas situações?– “Leia o login e a senha e procure o usuário na base

de dados...”

– “Quando o usuário clicar no botão, abra a câmera fotográfica de seu dispositivo”

– “Pegue a localização geográfica do usuário utilizando o GPS do dispositivo e liste as pessoas próximas a ele”

Pensando logicamente

● Um programa de computador executa instruções.

● Um programador define essas instruções.– Nós definimos o que o programa deve fazer, e ele

fará aquilo sempre que for executado.

● Mas somente uma instrução não basta...– Deve haver um conjunto de instruções que,

executadas de forma ordenada, atinjam o objetivo que a gente quer.

– Deve haver uma lógica de programação!!!

Lógica de programação

● Técnica empregada para desenvolver uma sequência de passos que visa atingir um determinado objetivo.

● Os passos presentes na sequência devem fazer sentido para que a tarefa seja atingida.

● Algoritmo: sequência finita de passos logicamente encadeados que executam uma determinada tarefa.– “Receita de bolo”

Algoritmos

● Não é nada que nós nunca fizemos antes...– Sacar dinheiro.

1. Dirija-se ao caixa eletrônico

2. Insira seu cartão

3. Selecione a opção “saque”

4. Digite o valor e confirme

5. Digite sua senha

– Dirigir um carro1. Ligue o carro

2. Pise na embreagem

3. Engate a primeira marcha

Algoritmos

● Nós praticamente vivemos executando algoritmos para nossas atividades constantes.– Ou seja, pra tudo o que fazemos, nós seguimos

uma linha de raciocínio. Algo que começa e termina, de acordo com os recursos que temos disponíveis.

● Você não vai dirijir-se a um caixa eletrônico se não tiver como ir a um ao executar a tarefa.

● Você não vai conseguir ligar um carro se o mesmo estiver quebrado ou sem gasolina.

Algoritmos

● Um programa de computador é um algoritmo. – O programador diz o que ele vai fazer de acordo

com sua capacidade

– O computador é responsável por ler o que o programador ordenou e executar a instrução!

Escrevendo Algoritmos

● Um algoritmo sempre deve ser escrito como uma sequência de passos, o que é diferente de um texto comum.

● Não é algoritmo:

– Vá sacar R$50,00 pra mim no caixa eletrônico. Se não houver saldo suficiente neste cartão, utilize o outro.

● É um algoritmo:

– Dirija-se ao caixa eletrônico

– Utilize o primeiro cartão

– Verifique se há saldo suficiente

– Se não houver saldo suficiente no cartão:

● Utilize o outro cartão

– Saque 50,00

– Volte para casa com o dinheiro.

Escrevendo Algoritmos

● Um algoritmo bem escrito é composto por ações imperativas...– Verbos. Ex.: Vá, Saque, Faça, Leia, Volte...

● … condicionais...– Se, senão...

● … e repetições– Enquanto, faça X vezes...

Escrevendo Algoritmos

● Mãos à obra!!● Escreva os algoritmos que executarão os

objetivos abaixo:– Criar um grupo da turma no WhatsApp

● Dica: você vai ter que abrir o aplicativo, clicar no botão, definir um nome....

– Ir daqui para a Ponta Verde de ônibus● Dica: você vai ter que ir até o ponto, estender sua mão,

puxar a corda onde for descer...

LEMBRE-SE: Você deve descrever passo-a-passo e logicamente.Utilize o modo imperativo. Não se preocupe com palavras:

pode usar qualquer uma.

Só tem um problema...

● Nós falamos uma linguagem – Se moramos no Brasil, falamos Português.

● LEIA O LOGIN● LEIA A SENHA● AUTENTIQUE O USUÁRIO● REDIRECIONE PARA A PÁGINA DO SEU PERFIL

● E o computador???

Liguagem de máquina

● Computadores não entendem “português”, “inglês”, ou “espanhol”...

● Basicamente, entendem bits. Sequências de 0s e 1s

Quer dizer que...

1. LEIA login

2. LEIA senha

3. AUTENTIQUE o usuário

4. REDIRECIONE para o perfil

...

0101010110101001010101101010101010101100110101010101010101010101010101010101010101010101101111100100010001001001010110101001010101010101010101010110101010

...

E agora?

● Nós não entendemos binário● O computador não entende nossa linguagem● Mas...

– Se viajarmos para a China sem saber falar chinês, junto com um intérprete, conseguimos nos comunicar com todo mundo!

– É isso! Precisamos de um “intérprete” que conversa nosso algoritmo para a linguagem de máquina!

Linguagem de alto nível(linguagem de programação)

● São linguagens (conjunto de expressões e regras sobre elas) que utilizamos para criar nossos programas

● Nós escrevemos linhas de códigos utilizando os recursos disponíveis em uma linguagem

● Ao executar o programa, nossas linhas são “convertidas” para a linguagem que o computador entenda, e nossas instruções executadas da forma como escrevemos!

Sintaxe e Semântica● Sintaxe: define a forma correta de se escrever

uma instrução– É o “Como”

● Semântica: é o sentido da instrução.– É o “o quê”

● Exemplos:– “O gato latiu.” (Sintaxe: ok. Semântica: erro.)

– “O cachorro latio.” (Semântica: ok. Sintaxe: erro.)

– “O cachorro latiu.” (Sintaxe: ok. Semântica: ok.)

● Um código de programação, para ser executado, deve ter sua sintaxe correta!

Linguagens de programação

Há uma infinidade delas...

Linguagem de programaçãoRuby

● Ruby é a linguagem com a qual iremos iniciar nossos estudos de linguagem de programação.

● É uma linguagem que possui uma sintaxe com uma rápida curva de aprendizado– Ideal para prática em um curso de iniciantes!

● É popular no mercado de desenvolvimento– Ruby on Rails: framework amplamente utilizado em aplicações web

● https://skillcrush.com/2015/02/02/37-rails-sites/

Escrevendo código● Mãos à obra!! Vamos fazer nosso “Hello World”

– Crie um arquivo chamado hello.rb– Escreva nele a seguinte linha:

● puts “Hello World”– Abra o terminal do seu sistema– Navegue até o local (pasta) do arquivo – Digite:

● ruby hello.rb● O que apareceu na linha abaixo?

● O que fizemos?– Nosso primeiro programa imprimiu na tela do

computador a frase Hello World● Como fizemos?

– Escrevemos puts “Hello World” e pedimos que o interpretador Ruby executasse o arquivo

● O que aconteceu?– O interpretador leu a instrução que demos e

converteu para linguagem de máquina, fazendo com que o computador imprimisse a frase

Escrevendo código

● Perceba que nós executamos o seguinte algoritmo:– ESCREVA NA TELA Hello World

● Para isso, utilizamos a sintaxe da linguagem Ruby– puts “Hello World”

● Que tal brincarmos um pouco mais?● Como executar o algoritmo abaixo?

– FAÇA X = 3– FAÇA Y = 5– ESCREVA NA TELA o resultado de x + y

Recapitulando: algoritmos

Variáveis● Uma variável é um espaço, na memória do computador,

destinado a receber um determinado valor. ● Em linhas gerais, uma variável possui nome, tipo e conteúdo,

onde:– Identificador: “nome” que vai ser utilizado para acessar a variável– Tipo: o dado que a variável suporte como valor (número, caracteres, etc.). Inicialmente,

não nos preocuparemos com isso no Ruby.– Valor: aquilo que será “escrito” (utilizado) sempre que a variável for chamada pelo

programa. ● Exemplos de variáveis no ruby

– nome = “Clenisson” (FAÇA nome = “Clenisson”)– idade = 25 (FAÇA idade = 25)

Variáveis● Já sabemos como imprimir algo na tela (ESCREVA NA TELA...)

– Comando puts● Também sabemos como criar uma variável com seu respectivo

valor (FAÇA...)– X = 1

● Implemente o algoritmo solicitado anteriormente:– FAÇA x = 3– FAÇA y = 5– FAÇA z = x + y– ESCREVA NA TELA z

● DICA: Para utilizar o puts somente para exibir um número, não precisa das aspas.

Variáveis● E se nem sempre eu quiser definir o valor da variável dentro do

próprio programa?● E se eu quiser, por exemplo, digitar o valor dela durante a

execução?● O comando gets

– Atribua à variável o valor gets● digite = gets

– Escreva na tela (puts) o seu valor● puts digite

– Salve o arquivo e execute. O que acontece quando você executa o programa?

Exercícios1 – Crie um programa que some dois valores digitados (um de cada vez) pelo usuário.

● Dica: Utilize o comando .to_i para pegar o valor digitado pelo usuário na variável. Não se preocupe, falaremos dele depois!!

– Ex.: em vez de puts x + y, escreva puts x.to_i + y.to_i

2 – Crie um programa que exiba na tela seu nome e sua idade, no seguinte formato:– “Olá, me chamo _____, tenho ____ anos e estou no curso de

Lógica de Programação da Conhecimento Digital”● Lembrete: para gravar seu nome em uma variável, utilize

aspas.● Lembrete²: para escrever na tela um texto, utilize aspas.● 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 identificador da variável desejada. Ex.: puts “Olá #{nome}, como está?”