Вы находитесь на странице: 1из 30

Introdução à Programação Orientada a

Objetos e aos Algoritmos


Prof. Bruno Nogueira
Programação Orientada a Objetos
} Java é uma linguagem de programação orientada a objetos
(POO). Mas o que isso significa?
} O mundo ao redor é composto por objetos: pessoas, carros,
prédios, ...
} Cada um desses objetos é capaz de realizar algumas ações que
impactam sobre outros objetos
} Essa visão é adotada por POO: objetos que podem agir
sozinhos ou interagir entre si
} Um objeto em um programa representa uma abstração de
um objeto do mundo real

2 Introdução à Programação Orientada a


Objetos e Algoritmos
Exemplo
} Imagine um programa para simular o tráfego em uma
rodovia
} Um objeto para representar cada carro
} Um objeto para cada faixa da rodovia
} Um objeto para cada sinalização
} Um objeto para cada semáforo...

} A interação entre esses objetos nos permite simular o


tráfego da rodovia

3 Introdução à Programação Orientada a


Objetos e Algoritmos
Terminologia - POO
} Em POO, as características de um objeto são chamados
de atributos
} Um carro, por exemplo, tem seu nome, sua velocidade atual e
seu nível de combustível
} Conjunto dos valores dos atributos dá ao objeto o seu estado
} As ações que um objeto podem tomar formam o seu
comportamento
} Em POO, um comportamento é definido por um conjunto de
código, chamado método
} Ações são acionadas por meio da invocação de métodos
} Exemplos:
¨ System.out.println(”Olá.");
¨ n1 = keyboard.nextInt();
4 Introdução à Programação Orientada a
Objetos e Algoritmos
Terminologia - POO
} Objetos de um mesmo tipo, têm os mesmos tipos de
dados e o mesmo comportamento
} Neste caso, dizemos que eles pertencem à mesma classe
} Uma classe define o tipo de um objeto; é um diagrama, um
esboço para a criação de objetos
} No exemplo da simulação da rodovia, todos os automóveis
pertencem à mesma classe – provavelmente chamada
Automóvel
} Todos os objetos de uma mesma classe têm os mesmos
atributos e os mesmos métodos

5 Introdução à Programação Orientada a


Objetos e Algoritmos
Algoritmos
} Objetos têm comportamentos definidos pelos métodos
} É de responsabilidade do desenvolvedor criar estes
métodos com os comportamentos corretos
} Computador não tem senso próprio, deve receber instruções
explícitas
} A parte difícil não é colocar essa solução em uma linguagem de
programação, mas sim desenvolver uma estratégia correta para
desenvolver essas ações e comportamentos
} Essa estratégia para criação de ações é expressa por meio de
algoritmos

6 Introdução à Programação Orientada a


Objetos e Algoritmos
Algoritmos
} Um algoritmo é um conjunto de direções para resolver
um problema
} É como uma receita
} Essas direções devem ser expressas de maneira muito
completa e clara, tal que qualquer pessoa possa replicá-la
} Não pode ser ambíguo
} Por exemplo, um passo de um algoritmo: “Converta a leitura da
temperatura de Celsius para Fahrenheit”
¨ É uma instrução clara para um especialista, mas ambígua para um leigo
¨ O problema está na representação, não no algoritmo

7 Introdução à Programação Orientada a


Objetos e Algoritmos
Algoritmos
} Algoritmo deve possuir 3 qualidades
1. Cada passo do algoritmo deve ser uma instrução que possa
ser realizada
2. A ordem dos passos deve ser precisamente definida
3. O algoritmo deve ter fim
} Exemplo: algoritmo para o cálculo do custo total de uma
lista de itens
1. Escreva o número 0 em um quadro
2. Para cada item da lista, faça o seguinte:
1. Adicione o custo do item ao valor que está no quadro
2. Substitua o número que está no quadro pelo resultado da soma
3. Anuncie que a resposta é o número que está no quadro
8 Introdução à Programação Orientada a
Objetos e Algoritmos
Representação de algoritmos
} Descrição narrativa
} Analisar o enunciado e escrever, em linguagem natural, os
passos a serem seguidos na solução
} Não é necessário aprender novos conceitos J
} Abre espaço para várias interpretações, dificultando a transcrição para
um programa L
} Exemplo: algoritmo para exibir o resultado da multiplicação de
dois números
1. Receber os dois números que serão multiplicados
2. Multiplicar os números
3. Mostrar o resultado obtido da multiplicação

9 Introdução à Programação Orientada a


Objetos e Algoritmos
Representação de algoritmos
} Fluxograma
} Analisar o enunciado e escrever, usando símbolos gráficos, os
passos a serem seguidos na sua solução
} Entendimento é mais simples que o entendimento de textos J
} Fluxogramas devem ser entendidos e o algoritmo resultante não é
detalhado, dificultando a transcrição para um programa L
} Exemplo da multiplicação de dois números

Início N1, N2

M = N1 * N2 M Fim

10 Introdução à Programação Orientada a


Objetos e Algoritmos
Representação de algoritmos
Início e fim do algoritmo

Fluxo de dados

Cálculos e atribuições de valores

Entrada de dados

Saída de dados

Tomada de decisão, com possíveis desvios

Teste de repetição

11 Introdução à Programação Orientada a


Objetos e Algoritmos
Representação de algoritmos
} Pseudocódigo
} Analisar o enunciado e escrever, por meio de regras
predefinidas, os passos a serem seguidos
} É uma mistura de língua natural com linguagem de
programação
} A passagem do algoritmo para linguagem de programação é quase
imediata J
} As regras do pseudocódigo devem ser aprendidas L

12 Introdução à Programação Orientada a


Objetos e Algoritmos
Representação de algoritmos
} Exemplo da multiplicação de dois números

ALGORITMO

DECLARE N1, N2, M NUMÉRICO


ESCREVA “Digite dois números”
LEIA N1, N2
M ç N1 * N2
ESCREVA “Multiplicação =“, M

FIM_ALGORITMO

13 Introdução à Programação Orientada a


Objetos e Algoritmos
Estrutura de algoritmos
} Algoritmo para trocar pneu de um carro

Início

Trocar pneu

Fim

14 Introdução à Programação Orientada a


Objetos e Algoritmos
Estrutura de algoritmos
} Algoritmo para trocar pneu de um carro

Início E se o estepe
estiver vazio?

Trocar pneu

Fim

15 Introdução à Programação Orientada a


Objetos e Algoritmos
Estrutura de algoritmos

Início

sim Estepe não


Vazio?

Chamar o
borracheiro Trocar pneu

Fim

16 Introdução à Programação Orientada a


Objetos e Algoritmos
Estrutura de algoritmos

Início
Estrutura
Condicional
sim Estepe não
Vazio?

Chamar o
borracheiro Trocar pneu

Fim

17 Introdução à Programação Orientada a


Objetos e Algoritmos
Estrutura de algoritmos

Início

sim Estepe não Vamos


Vazio? detalhar
melhor!

Chamar o
borracheiro Trocar pneu

Fim

18 Introdução à Programação Orientada a


Objetos e Algoritmos
Estrutura de algoritmos
Início

Estrutura
sim Estepe não Sequencial
Vazio?
Levantar o carro

Desparafusar a roda
Chamar o
borracheiro Remover a roda

Colocar o estepe

Parafusar a roda

Abaixar o carro

Fim
19 Introdução à Programação Orientada a
Objetos e Algoritmos
Estrutura de algoritmos
Início

sim Estepe não


Vazio? Vamos
Levantar o carro detalhar

Desparafusar a roda
Chamar o
borracheiro Remover a roda

Colocar o estepe

Parafusar a roda

Abaixar o carro

Fim
20 Introdução à Programação Orientada a
Objetos e Algoritmos
Estrutura de algoritmos
Início

sim Estepe não


Vazio?
Levantar o carro
Desapertar parafuso 1
Desparafusar a roda Desapertar parafuso 2
Chamar o Desapertar parafuso 3
borracheiro Remover a roda Desapertar parafuso 4

Colocar o estepe
Apertar parafuso 1
Parafusar a roda Apertar parafuso 2
Apertar parafuso 3
Abaixar o carro Apertar parafuso 4

Fim
21 Introdução à Programação Orientada a
Objetos e Algoritmos
Estrutura de algoritmos
Início

sim Estepe não


Vazio? Repetições
Levantar o carro
Desapertar parafuso 1
Desparafusar a roda Desapertar parafuso 2
Chamar o Desapertar parafuso 3
borracheiro Remover a roda Desapertar parafuso 4

Colocar o estepe
Apertar parafuso 1
Parafusar a roda Apertar parafuso 2
Apertar parafuso 3
Abaixar o carro Apertar parafuso 4

Fim
22 Introdução à Programação Orientada a
Objetos e Algoritmos
Estrutura de algoritmos
Início

sim Estepe não


Vazio?
Levantar o carro Estrutura de repetição
Existe parafuso p/
Chamar o desapertar? não
sim
borracheiro
Desapertar parafuso Remover a roda

Colocar o estepe

Parafusar a roda

Abaixar o carro

Fim
23 Introdução à Programação Orientada a
Objetos e Algoritmos
Estrutura de algoritmos
Início

sim Estepe não


Vazio?
Levantar o carro Estrutura de repetição
Existe parafuso p/
Chamar o desapertar? não
sim
borracheiro
Desapertar parafuso Remover a roda

Colocar o estepe

Parafusar a roda Procedimento idêntico


Fica como exercício
Abaixar o carro

Fim
24 Introdução à Programação Orientada a
Objetos e Algoritmos
Estrutura de algoritmos
} Estrutura sequencial: passos são tomados em uma
sequência predefinida

ALGORITMO

DECLARE N1, N2, M NUMÉRICO


ESCREVA “Digite dois números”
LEIA N1, N2
M ç N1 * N2
ESCREVA “Multiplicação =“, M

FIM_ALGORITMO

25 Introdução à Programação Orientada a


Objetos e Algoritmos
Estrutura de algoritmos
} Estrutura condicional: permite a escolha do grupo de
ações a ser executado quando uma condição é ou não
satisfeita

sim não
?

26 Introdução à Programação Orientada a


Objetos e Algoritmos
Estrutura de algoritmos
} Estrutura condicional: permite a escolha do grupo de
ações a ser executado quando uma condição é ou não
satisfeita
ALGORITMO

DECLARE N1, N2 NUMÉRICO


ESCREVA “Digite dois números”
LEIA N1, N2
SE N1 < N2 FAÇA
ESCREVA “N1 é menor que N2”
FIM_SE
SENÃO FAÇA
ESCREVA “N1 é maior ou igual a N2”
FIM_SENÃO
FIM_ALGORITMO

27 Introdução à Programação Orientada a


Objetos e Algoritmos
Estrutura de algoritmos
} Estrutura de repetição: permite que uma sequência de
comandos seja executada repetidamente até que uma
determinada condição de parada seja satisfeita

sim
não

28 Introdução à Programação Orientada a


Objetos e Algoritmos
Estrutura de algoritmos
} Estrutura de repetição: permite que uma sequência de
comandos seja executada repetidamente até que uma
determinada condição de parada seja satisfeita

ALGORITMO

DECLARE CONT NUMÉRICO


CONT = 10
ENQUANTO CONT > 0 FAÇA
ESCREVA “Contador = ”, CONT
CONT = CONT – 1
FIM_ENQUANTO
FIM_ALGORITMO

29 Introdução à Programação Orientada a


Objetos e Algoritmos
Exercícios
Resolva os exercícios utilizando a representação por
fluxograma e pseudocódigo

1. Elaborar um algoritmo que calcule a área de um triângulo


retângulo
2. Faça um algoritmo que exiba o resultado da divisão de dois
números
3. Criar um algoritmo que resolva uma equação do segundo
grau na forma:
Ax2 + Bx + C = 0
sendo que A, B e C são fornecidos pelo usuário. Considere
que A, B e C são números reais e A é diferente de 0.

30 Introdução à Programação Orientada a


Objetos e Algoritmos

Вам также может понравиться