Você está na página 1de 71

Lógica de Programação_

Prof. Igor Oliveira Borges


igor.borges@anhembi.br

Aula 1 –
INTRODUÇÃO À
Adaptado dos slides do LÓGICA DE
Prof. Fernando Zuher PROGRAMAÇÃO
Na aula passada...

✓ Apresentação:
I. Professor
II. Alunos
III. Disciplina
Tópicos
Tópicos
1. Objetivos de Aprendizagem.
2. Conhecimentos prévios?
3. Introdução à lógica de programação.
4. What most schools don’t teach?
5. Atividades.
Tópicos de hoje
1. Objetivos de Aprendizagem
2. Conhecimentos prévios?
3. Introdução à lógica de programação.
4. What most schools don’t teach?
5. Atividades.
Objetivos de Aprendizagem
1. Entender o que é lógica e o que é algoritmo e
aprender como construir um algoritmo simples.
2. Compreender as fases de um algoritmo.
3. Aplicar os conceitos iniciais de algoritmos na
resolução de problemas simples, por meio de
exercícios de lógica.
Tópicos de hoje
1. Objetivos de Aprendizagem
2. Conhecimentos prévios?
3. Introdução à lógica de programação.
4. What most schools don’t teach?
5. Atividades.
Tópicos de hoje
1. Objetivos de Aprendizagem
2. Conhecimentos prévios?
3. Introdução à lógica de programação.
4. What most schools don’t teach?
5. Atividades.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
2. Fases de um algoritmo.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
2. Fases de um algoritmo.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
Vamos ver um exemplo no mundo real de algo
que se assemelha a definição de algoritmo...
Introdução à lógica de programação
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
Qual é a ordem dos passos para se fazer um bolo?
• Ordenar em passos lógicos!
• Exercício: Fazer um bolo de chocolate em no máximo 8
passos lógicos.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
Um “algoritmo” seria:
1. Bater os ovos com a manteiga.
2. Adicionar o açúcar e a farinha aos poucos.
3. Adicionar o leite e bater.
4. Adicionar o chocolate.
5. Misturar o fermento.
6. Despejar a mistura em um forma untada.
7. Levar ao forno para assar por 30 minutos.
8. Retirar do forno e comer.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
Introdução à lógica de programação
1. Conceitos de lógica e algoritmos.
2. Fases de um algoritmo.
Introdução à lógica de programação

Valores
iniciais

Sequência
lógica de
instruções
(Algoritmo)

Resultado
Introdução à lógica de programação

Valores
iniciais
Introdução à lógica de programação

Valores
iniciais

Sequência
lógica de
instruções
(Algoritmo)
Introdução à lógica de programação

Valores
iniciais

Sequência
lógica de
instruções
(Algoritmo)

Resultado
Introdução à lógica de programação

Valores
iniciais

Sequência
lógica de
instruções
(Algoritmo)

Resultado
Preciso ser um
gênio para
programar?
Introdução à lógica de programação
Aprender a programar é como
aprender uma nova língua. Esta
relacionado a aprender a se expressar
em um novo dialeto.
É necessário entender o problema.
Identificar uma solução para o problema.
Expressar uma solução, utilizando o raciocínio
lógico, de tal forma que possa ser codificada em
uma linguagem.
Ter vontade de aprender!
E o que mais?
Introdução à lógica de programação
Tópicos de hoje
1. Objetivos de Aprendizagem
2. Conhecimentos prévios?
3. Introdução à lógica de programação.
4. What most schools don’t teach?
5. Atividades.
What most schools don’t teach?

https://www.youtube.com/watch?v=nKIu9yen5nc
Tópicos de hoje
1. Objetivos de Aprendizagem
2. Conhecimentos prévios?
3. Introdução à lógica de programação.
4. What most schools don’t teach?
5. Atividades.
Linguagem de Programação
JAVA
Java segue o paradigma de Programação Orientada
a Objetos.
Desenvolvida na década de 90 por uma equipe de
programadores chefiada por James Gosling, na
empresa Sun Microsystems.
Em 2008 o Java foi adquirido pela empresa Oracle
Corporation.
E como é no JAVA?
Java é uma linguagem tanto compilada quando interpretada, de
forma que o compilador gera bytecodes que a JVM vai
interpretar de forma distinta a cada Sistema Operacional.
Paradigmas (varejão, 2004)
Paradigmas

Imperativo Declarativo

Estruturado Funcional

Orientado a
Objetos Lógico

Concorrente
Paradigma Imperativo

• Computação como um processo que realiza


mudança de estados
– Estado é uma configuração qualquer na memória
do computador
• Foco
– especificar como um programa dever ser feito no
computador
Exemplo de Linguagens Imperativas
• Pascal

• Fortran

• C

• C++

• C#

• Java

• Python

• Ruby

• ETC.
Paradigma Declarativo
• Foco do programador
– Descrever de forma abstrata a tarefa a ser realizada

• Programador não necessita se preocupar como o


processamento será realizado ou sobre como o
computador funciona

• Utiliza relações ou funções

• Não há o conceito de variável


Exemplo Linguagens Declarativas

• Lisp

• Prolog
Paradigmas
Paradigmas

Imperativo Declarativo

Orientado a Funcional
Estruturado Concorrente
Objetos

C Java
Lógico
Diferenças
• Programa principal é • Programa principal é uma
uma classe função
• Lógica construída • Lógica construída através
através da criação de da manipulação de
objetos e dos informações por funções
relacionamentos entre • Bibliotecas de funções
eles • Acesso direto a memória
• Biblioteca de Classes e ao Hardware
• Não há acesso direto a • Performance
memória ou hardware
• Portabilidade
Exemplos
import java.util.*;
public class Programa
{
public static void main (string args[]s)
{
system.out.println (“Tecnicas de Programacao”);
}
}

#include <stdio.h>
int main()
{
printf(“Tecnicas de Programacao\n”);
return 0;
}
Popularidade (TIOBE – Junho 2015)

Linguagem de
jun/15 jun/14 Percentual Alteração
Programação
1 2 Java 17,82 +1.71%
2 1 C 16,79 +0.60%
3 4 C++ 7,76 +1.33%
4 5 C# 5,06 +1.11%
5 3 Objective-C 4,34 -6.60%
6 8 Python 4,00 +1.29%
7 10 Visual Basic .NET 3,17 +1.25%
8 7 PHP 2,87 +0.02%
9 9 JavaScript 2,30 +0.30%

10 17 Delphi/Object Pascal 1,87 +1.04%


Projetos OpenSource (Freshmeat)

Fonte: http://langpop.com/
Atividades
Exercitando a lógica
Vamos, então, praticar nossa lógica. ☺
Atividades
Problema 1:
4 pontos e 3 retas
• Una os 4 pontos com apenas três retas sem
levantar a ponta do lápis e acabando no ponto
onde começou.
Atividades
Problema 2:
O Lobo, a Cabra e o Repolho
Atividades
Problema 2:
O Lobo, a Cabra e o Repolho
❑ Um homem precisa atravessar um rio com um
barco que possui capacidade apenas para
carregar ele e mais uma de suas 3 cargas, que
são: um lobo, uma cabra e um repolho.
❑ O que o homem deve fazer para conseguir
atravessar o rio sem perder suas cargas?
➢ Sendo que, o lobo não pode ficar sozinho com a
cabra.
➢ A cabra não pode ficar sozinha com o repolho.
Atividades
Problema 3:
Missionários e canibais
• Jogue por aqui:
http://www.jogos360.com.br/missionarios_e_canibais.html
Atividades
Problema 3:
Missionários e canibais
• No problema dos canibais e missionários, três
missionários e três canibais devem atravessar um rio
com um barco que pode transportar no máximo duas
pessoas.
• Há a restrição de que, para ambas as margens, se há
missionários presentes naquela margem, eles não
podem ser ultrapassados pelo número de canibais na
mesma margem (se fossem, os canibais comeriam os
missionários).
• O barco não pode atravessar o rio por si só, sem
pessoas a bordo.
Problema 4: A corrida dos 8 carros
• Oito carros, de marcas e cores diferentes, que nada
tem a ver com suas cores da Formula 1, estão
alinhados, lado a lado, para uma corrida. Estabeleça
a ordem em que os carros estão dispostos,
baseando-se nas seguintes informações:

58
Regras
a. O FERRARI está entre os carros 'vermelho' e 'cinza'
b. O carro 'cinza' está à esquerda do LOTUS
c. O MACLAREN é o segundo carro à esquerda do FERRARI e o primeiro à
direita do carro 'azul'
d. O TYRREL não tem carro a sua direita e esta logo depois do carro 'preto'
e. O carro ‘preto’ está entre o TYRREL e o carro 'amarelo'
f. O JORDAN não tem carro algum à esquerda: está a esquerda do carro 'verde'
g. A direita do carro 'verde' está o MARCH
h. O LOTUS é o segundo à direita do carro 'creme' e o segundo a esquerda do
carro 'marrom'
i. O WILLIAN é o segundo à esquerda do BENETTON

59
Atividades
Instalar IDE e JDK
Utilizaremos o NetBeans em sala de aula (em casa
utilize o de sua preferência)
• Netbeans 8.2
https://netbeans.org/community/releases/82/
• JDK 11
https://www.oracle.com/technetwork/java/javase/dow
nloads/jdk11-downloads-5066655.html
Atividades
Aprender programação jogando.
Onde?
Labirinto clássico: https://studio.code.org/hoc/1
Atividades
Aprender programação jogando.
Onde?
Frozen:
https://studio.code.org/s/frozen/stage/1/puzzle/1
Atividades
Você deve completar todas as fases de ambos
os jogos até a próxima aula.

Para outros jogos: https://studio.code.org/


Se cadastre no site
para acompanhar
o desenvolvimento
das atividades.
Fim

Você também pode gostar