Buscar

03-programacao-introducao-algoritmo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Fundamentos de Programação I Luiz Arthur1
Universidade Tecnológica Federal do Paraná – UTFPR
Campus:
Campo Mourão
Professor:
Luiz Arthur Feitosa dos Santos
E-mail:
luiz_arthur@fornet.com.br
Sumário:
● Revisão;
● Algoritmos;
 
Fundamentos de Programação I Luiz Arthur2
Conceitos básicos de programação
Desde o início a sociedade procurou criar máquinas que auxiliassem em 
seus trabalhos, diminuindo esforço e economizando tempo.
O computador vem se mostrando uma das máquinas mais versáteis para 
automatização dos trabalhos (como um todo) executando tarefas de forma 
rápida e segura. Tendo o computador como finalidade receber, manipular e 
armazenar dados.
O computador só consegue armazenar dados em disco, imprimir 
relatórios, gerar gráficos, realizar cálculos, entre outras funções, por 
meio de programas.
Quando queremos criar ou desenvolver um software para realizar 
determinado tipo de processamento de dados, devemos escrever um 
programa. 
No entanto, para que o computador compreenda e execute esse programa, 
devemos escrevê-lo usando uma linguagem que tanto o computador 
quanto o criador de software entendam. Essa linguagem é chamada de 
linguagem de programação.
 
Fundamentos de Programação I Luiz Arthur3
Programas
O processamento de dados é feito pela execução de programas. Um 
programa é uma sequência de instruções codificadas em uma linguagem de 
programação e para ser executado precisa ser armazenado na memória do 
computador.
As etapas para o desenvolvimento de um programa são:
● Análise – Nesta etapa estuda-se o enunciado do problema para definir os 
dados de entrada, o processamento e os dados de saída;
● Algoritmo – Ferramenta de tipo descrição narrativa, fluxograma ou 
português estruturado são utilizadas para descrever o problema com 
suas soluções;
● Codificação – O algoritmo é transformado em códigos da linguagem de 
programação escolhida para se implementar;
● Verificação – Tem por finalidade demonstrar que o algoritmo realmente 
resolve o problema proposto.
Portanto, um programa é a codificação de um algoritmo em uma linguagem 
de programação.
 
Fundamentos de Programação I Luiz Arthur4
Análise do Problema
Nesta fase procuramos nos certificar da compreensão correta do 
problema, eliminando possíveis ambiguidades e assegurando o 
entendimento completo das especificações de entrada e saída.
Escolhemos uma amostra significativa de dados, definindo as 
especificações de entrada.
Determinamos a saída desejada correspondente aos dados de entrada.
A escolha da amostra de entrada confirma também a compreensão correta do 
enunciado do problema.
Algoritmos
Um algoritmo, intuitivamente, é uma sequência finita de instruções ou 
operações básicas cuja execução, em tempo finito, resolve um problema 
computacional, qualquer que seja sua instância.
 
Fundamentos de Programação I Luiz Arthur5
Desenvolvimento de Algoritmos – Top-Down
O desenvolvimento pode ser feito por uma técnica chamada de top-down, que 
consiste em identificar partes ou etapas na estratégia de resolução do 
problema, elaborando inicialmente um esboço da resolução. Em seguida, 
detalhamos sucessivamente cada etapa, refinando o processo de 
resolução, até chegar a uma sequência de operações básicas sobre os tipos 
de dados considerados.
Descrição de um Algoritmo
Pode ser feita através de um pseudocódigo (linguagem algorítmica) ou 
através de fluxogramas.
No fluxograma, cada operação básica (instrução) é representada por um 
desenho. Os fluxogramas são preferíveis em alguns casos por permitir uma 
visualização global do processo de resolução e de suas partes.
Na linguagem algorítmica cada operação básica é escrita em uma 
linguagem semelhante à linguagem natural, com algumas regras comuns 
às linguagens de programação. Como vantagem este técnica acaba se 
tornando mais simples a passagem do algoritmo para a programação.
 
Fundamentos de Programação I Luiz Arthur6
Implementação
Na fase de implementação de um algoritmo é feita à sua codificação em 
uma linguagem de programação.
O algoritmo pode ser implementado em qualquer linguagem de programação 
e essa implementação pode ser trivial, como uma simples transcrição de 
operações básicas, ou trabalhosa, dependendo principalmente das 
características da linguagem escolhida e dos tipos de dados nela definidos.
Verificação de Programas
Verificar se o programa está correto, se cumpre o objetivo identificado na 
análise. O programa está pronto? (existem programas que é difícil 
determinar o fim!)
Preciso de um 
editor de 
Textos! 
Etapas
desenvolvimento
 
Fundamentos de Programação I Luiz Arthur7
Tipos de Algoritmos:
Os três tipos mais utilizados de algoritmos são:
Descrição Narrativa – Consiste em analisar o enunciado do problema e 
escrever, utilizando uma linguagem natural (por exemplo, a língua 
portuguesa), os passos a serem seguidos para sua resolução. Vantagem não 
é necessário aprender nenhum conceito novo, já a desvantagem é que 
linguagens naturais dão margem para várias interpretações, o que pode 
gerar problemas.
Fluxograma – O fluxograma consiste em analisar o enunciado do problema e 
escrever, utilizando símbolos gráficos predefinidos, os passos a serem 
seguidos para sua resolução. A vantagem é que elementos gráficos são 
simples de se compreender. A desvantagem é que é necessário 
aprender a simbologia, e o algoritmo não presenta muito detalhes.
Pseudocódigo ou Portugol – Consiste em analisar o enunciado do 
problema e escrever, por meio de regras predefinidas, os passos a serem 
seguidos para sua resolução. Como vantagem o resultado é bem próximo 
da codificação da linguagem de programação. Já a desvantagem é que é 
necessário aprender as regras do pseudocódigo.
 
Fundamentos de Programação I Luiz Arthur8
Conjunto de símbolos utilizados no fluxograma:
Símbolo utilizado para indicar o início e o fim do 
programa.
Indica o sentido do fluxo de dados. Usado para conectar 
símbolos.
Indica cálculos e atribuições de valores.
Representa a entrada de dados.
Símbolo utilizado para representar a saída de dados.
Indica tomada de decisões, apontando a possibilidade de 
desvios.
 
Fundamentos de Programação I Luiz Arthur9
Algoritmos que soma dois números:
1 – Descrição narrativa
1º Receber os dois números;
2º Somar os dois números;
3º Mostrar o resultado da soma.
2 – Fluxograma
3 – Pseudocódigo:
ALGORITMO SOMAR
DECLARE RESULTADO, NUM1, NUM2
ESCREVA “Digite dois números”
LEIA NUM1, NUM2
RESULTADO NUM1 + NUM2←
ESCREVA “O resultado da soma é “, RESULTADO
FIM_ALGORITMO SOMAR
Início
Resultado ← Num1 + Num2
Num1, Num2
Resultado Fim
 
Fundamentos de Programação I Luiz Arthur10
Exercício 1: Faça um algoritmos que multiplique três números.
1 – Descrição narrativa
?
2 – Fluxograma
?
3 – Pseudocódigo:
?
 
Fundamentos de Programação I Luiz Arthur11
Exercício 1: faça um algoritmo que multiplique três números.
1 – Descrição narrativa
1º Receber os três números;
2º Multiplique os três números;
3º Mostrar o resultado da multiplicação.
2 – Fluxograma
?
3 – Pseudocódigo:
?
 
Fundamentos de Programação I Luiz Arthur12
Exercício 1: faça um algoritmo que multiplique três números.
1 – Descrição narrativa
1º Receber os três números;
2º Multiplique os três números;
3º Mostrar o resultado da multiplicação.
2 – Fluxograma
3 – Pseudocódigo:
?
Início
Resultado ← Num1 * Num2
* Num3
Num1, Num2, 
Num3
Resultado Fim
 
Fundamentos de Programação I Luiz Arthur13
Exercício 1: faça um algoritmo que multiplique três números.
1 – Descrição narrativa
1º Receber os três números;
2º Multiplique os três números;
3º Mostrar o resultado da multiplicação.
2 – Fluxograma
3 – Pseudocódigo:ALGORITMO MULTIPLICAR
DECLARE RESULTADO, NUM1, NUM2, NUM3
ESCREVA “Digite três números”
LEIA NUM1, NUM2, NUM3
RESULTADO NUM1 * NUM2 * NUM3←
ESCREVA “O resultado da multiplicação é “, RESULTADO
FIM_ALGORITMO MULTIPLICAR
Início
Resultado ← Num1 * Num2
* Num3
Num1, Num2, 
Num3
Resultado Fim
 
Fundamentos de Programação I Luiz Arthur14
Exercício 2: 
Faça um algoritmo para mostrar o resultado da divisão de dois 
números.
1 – Descrição narrativa;
?
2 – Fluxograma;
?
3 – Pseudocódigo.
?
 
Fundamentos de Programação I Luiz Arthur15
Exercício 2:
Faça um algoritmo para mostrar o resultado a divisão de dois 
números.
1 – Descrição narrativa;
?
2 – Fluxograma;
?
3 – Pseudocódigo.
?
Atenção para a Análise:
Se a análise foi bem feita o desenvolvedor deve saber que existe uma 
exceção, para se dividir números! NÃO EXISTE DIVISÃO POR ZERO...
É claro que você parou pensou e analisou o problema para evitar erros no 
código e não ter de refazer boa parte do processo de desenvolvimento.
Uma boa análise é fundamental para qualquer projeto, mesmo para um 
programa simples como a divisão de dois números. Lembre-se disso!!!
 
Fundamentos de Programação I Luiz Arthur16
Exemplo de algoritmo para mostrar o resultado da divisão de dois 
números:
1 – Descrição narrativa:
1º Receber dois números;
2º Se o segundo número foi igual a zero não poderá ser feita a divisão, 
pois não existe divisão por zero; Caso contrário, dividir os números e 
mostrar o resultado da divisão.
2 – Fluxograma:
?
 
Fundamentos de Programação I Luiz Arthur17
Exemplo de algoritmo para mostrar o resultado da divisão de dois 
números:
1 – Descrição narrativa:
1º Receber dois números;
2º Se o segundo número foi igual a zero não poderá ser feita a divisão, 
pois não existe divisão por zero; Caso contrário, dividir os números e 
mostrar o resultado da divisão.
2 – Fluxograma:
Início
Resultado ← Num1/Num2
Num1, Num2
Impossível dividir
Por zero
Num2 = 0
Fim
Resultado
Falso
Verdadeiro
 
Fundamentos de Programação I Luiz Arthur18
3 – Pseudocódigo
?
 
Fundamentos de Programação I Luiz Arthur19
3 – Pseudocódigo
ALGORITMO DIVISÃO
DECLARE NUM1, NUM2, RESULTADO NUMÉRICO
ESCREVA “Digite dois números”
LEIA N1, N2
SE NUM2 = 0
ENTÃO ESCREVA “Impossível dividir por zero”
SENÃO INÍCIO
RESULTADO NUM1/NUM2←
ESCREVA “O resultado da divisão é “, RESULTADO
FIM
FIM_ALGORITMO DIVISÃO
 
Fundamentos de Programação I Luiz Arthur20
Exercício 3: Dado o pseudocódigo a seguir apresente a descrição 
narrativa, fluxograma, bem como o que este algoritmo faz.
ALGORITMO
DECLARE N1, N2, M NÚMERO
ESCREVA “Digite dois números “
LEIA N1, N2
M (N1 + N2) / 2←
ESCREVA “O resultado é”, M
SE M>= 7
ENTÃO ESCREVA “Aprovado”
SENÃO “Reprovado”
FIM
1 – Descrição narrativa;
?
2 – Fluxograma;
?
 
Fundamentos de Programação I Luiz Arthur21
1 – Descrição narrativa;
1º Receber as duas notas.
2º Calcular média aritmética.
3º Mostrar a média aritmética.
4º Se a média aritmética for maior ou igual a 7, então a situação do aluno é 
aprovado; caso contrário, a situação é reprovado.
2 – Fluxograma;
Início M ← (N1+N2)/2N1, N2
Reprovado
M>=7
Fim
M
Aprovado
Sim Não
 
Fundamentos de Programação I Luiz Arthur22
Exercício 4: Dado o Fluxograma a seguir apresente a descrição 
narrativa e o pseudocódigo.
1 – Fluxograma; Início
NOVO_SAL ←
SAL_ATUAL * 1,10
SAL_ATUAL
NOVO_SAL
SAL_ATUAL
>=
500
FimNOVO_SAL
NOVO_SAL ←
SAL_ATUAL * 1,20
NãoSim
 
Fundamentos de Programação I Luiz Arthur23
Exercício 4: Dado o Fluxograma a seguir apresente a descrição 
narrativa e o pseudocódigo.
2 – Descrição narrativa:
?
3 – Pseudocódigo:
?
 
Fundamentos de Programação I Luiz Arthur24
Exercício 4: Dado o Fluxograma a seguir apresente a descrição 
narrativa e o pseudocódigo.
2 – Descrição narrativa:
1º Receber salário atual do funcionário;
2º Se o salário atual do funcionário for de até R$500, calcula o novo salário 
com percentual de aumento de 20%; caso contrário, calcular o novo salário 
com percentual de aumento de 10%;
3º Mostrar novo salário.
3 – Pseudocódigo:
ALGORITMO NOVO_SALARIO
DECLARE SAL_ATUAL, NOVO_SAL NUMÉRICO
ESCREVA “Digite o salário atual do funcionário”
LEIA SAL_ATUAL
SE SAL_ATUAL >= 500
ENTÃO NOVO_SAL SAL_ATUAL * 1,20←
SENÃO NOVO_SAL SAL_ATUAL * 1,10←
ESCREVA “Novo salário = “, NOVO_SAL
FIM_ALGORITMO NOVO_SALARIO
 
Fundamentos de Programação I Luiz Arthur25
Atenção! 
Um grande erro cometido por estudantes de algoritmos e programação é o 
de tentar decorar soluções (algoritmos) apresentados em sala de aula. Isto 
é um erro por que apenas alterando o enunciado do problema, de forma 
mínima, a solução será diferente.
Desenvolver algoritmos é uma atividade intelectual de formalizar a 
resolução de problemas.
Segundo o livro Algoritmos e Lógica de Programação: é um erro decorar 
soluções o que deve ser procurado é o entendimento de como foi 
obtida uma solução, armazená-la e então utilizar a experiência 
adaptando-a a outras situações, por analogia, generalização ou 
especialização. 
A grande dica é que um problema pode ser diferente de outro, mas 
consegue-se aproveitar grande parte da experiência obtida em problemas 
passados para resolver novos desafios.
Não existe uma “formula mágica” para resolver problemas, mas vai a 
seguir um conjunto de dicas:
 
Fundamentos de Programação I Luiz Arthur26
1. Ao se deparar com um problema novo, tente entendê-lo. Para auxiliar, 
pense no seguinte:
● Qual é o objetivo? O que se deve descobrir ou calcular?
● Quais são os dados disponíveis? São suficientes?
● Quais as condições necessárias e suficientes para resolver o 
problema?
● Faça um esboço informal de como ligar os dados com as condições.
● Se possível, modele o problema de forma matemática.
2. Crie um plano com a solução:
● Consulte sua memória e verifique se você já resolveu algum 
problema similar.
● Verifique se é necessário introduzir algum elemento novo no 
problema, como um problema auxiliar.
● Se o problema foi muito complicado, tente quebrá-lo em partes 
menores e solucionar essas partes.
● É possível enxergar o problema de outra forma, de modo que seu 
entendimento se torne mais simples?
 
Fundamentos de Programação I Luiz Arthur27
3. Formalize a solução:
● Crie um algoritmo informal com passos que resolvam o problema.
● Verifique se cada passo desse algoritmo está correto.
● Escreva um algoritmo formalizado por meio de um fluxograma ou 
outra técnica de representação.
4. Examine os resultados:
● Teste o algoritmo com diversos dados de entrada e verifique os 
resultados (teste de mesa).
● Se o algoritmo não gerou resultado algum, o problema está na sua 
sintaxe e nos comandos utilizados. Volte e tente encontrar o erro.
● Se o algoritmo gerou resultados, estes estão corretos? Analise sua 
consistência.
● Se não estão corretos, alguma condição, operação ou ordem das 
operações está incorreta. Volte e tente encontrar os erros.
 
Fundamentos de Programação I Luiz Arthur28
5. Otimização da solução:
● É possível melhorar o algoritmo?
● É possível reduzir o número de passos ou dados?
● É possível conseguir uma solução ótima?
Mais uma vez, não tem formula mágica para aprender como resolver 
problemas (algoritmos/programas). 
Os passos anteriores são apenas dicas para se tornar um bom profissional. 
A experiência mostra que alunos que tentam decorar soluções 
normalmente reprovam, então não cometa este erro.
 
Fundamentos de Programação I Luiz Arthur29
Conceito de variável
Uma variável representa uma posição de memória, possui um nome para 
sua representação, que é utilizada para guardar um valor que pode sermodificado pelo programa. 
O conceito de variável as vezes é difícil de explicar, de tão comum que é em 
nosso dia a dia (só que nós não nos damos conta!). Exemplo:
Duas pessoas estão conversando e precisam realizar uma conta:
Gaúcho eu já
Marquei 3 gols!
Quantos você já
Marcou?
Gordo eu já
marquei 2 gols...
Opa, então 
Estamos ganhando
de 5!!!
Chocolate...
 
Fundamentos de Programação I Luiz Arthur30
Nesta conversa entre Ronaldo Gaúcho e o Fenômeno: primeiro o Fenômeno 
diz que marcou três (3) gols, e ambos os jogadores guardam esta 
informação em suas memórias, quando o Gaúcho diz que marcou dois (2) 
gols, ambos também armazenam este resultado em suas memórias 
(sem esquecer o primeiro resultado, ou seja, cada número foi 
armazenado em posições de diferentes da memória dos jogadores, sem 
sobreposições).
De posse dos dois valores em memória o Gaúcho faz o processamento 
dos dados somando 3+2 (buscando estes valores de sua memória) e 
apresenta o resultado que é 5 (3+2=5). Neste cenário os valores 3, 2 e 5 
foram armazenados em variáveis na memória de cada jogador. Se 
algum jogador fizer mais gols este valor vai ser alterado!
Usamos 
variáveis
para armazenar
dados!
As variáveis
Podem 
armazenar
várias coisas!
Tal como 
números
palavras, etc.
 
Fundamentos de Programação I Luiz Arthur31
Todo computador possui uma tabela de alocação que contém o nome da 
variável, seu tipo (para saber quantos bytes ocupará) e seu endereço inicial 
de armazenamento. 
Quando queremos buscar algum dado na memória, basta sabermos o nome 
da variável que o computador, por meio da tabela de alocação busca 
automaticamente seu conteúdo.
Tipos de dados
Existem vários tipos de dados (os quais podem ser atribuídos à variáveis, por 
exemplo), os mais comuns são apresentados a seguir.
● Dados numéricos
Os dados numéricos dividem-se em dois grupos: inteiros e reais.
Os números inteiros podem ser positivos ou negativos e não possuem 
parte fracionária (números separados por virgula/ponto).
Os gols, do exemplo anterior, são exemplos de números inteiros, tal como:
2
3
-1
33
 
Fundamentos de Programação I Luiz Arthur32
Os números reais podem ser positivos ou negativos e possuem parte 
fracionária. Tal como:
1,99
1001,1
-11,23
0,0
1,0
0,41
Note que gols feitos pelos jogadores vão ser do tipo numérico inteiros. Um 
jogador não vai fazer meio gol (0,5). Porém, mantendo a analogia com o 
futebol, um jogador em um campeonato pode ter uma média de 2,5 gols por 
partida (15gols/6partidas=2,5gols/partida). Então, dados inteiros podem 
produzir dados reais.
● Dados Lógicos
São também chamados dados booleanos (em homenagem a álgebra de 
Boole) e podem assumir apenas dois valores verdadeiro ou falso (ou 
qualquer representação de dois valores, tal como 0 e 1 em binário).
 
Fundamentos de Programação I Luiz Arthur33
● Dados Literais ou Caracteres
Os dados literais ou caracteres são formados por um único caractere ou por 
uma cadeia de caracteres (também chamado de string). Esses caracteres 
podem ser as letras maiúsculas, minúsculas, números (não sendo estes 
utilizados para cálculos) e os caracteres especiais (!,@,#,$,%,^,&,*, etc). 
Exemplos de dados:
'aula'
'123456'
'joao@internet'
'x'
'0,5'
Identificador
Os identificadores são os nomes das variáveis, programas, constantes, 
rotinas, unidades, etc. De forma geral podemos dizer que um 
identificador esta associado a uma célula de memória. O termo variável 
é geralmente sinônimo de identificador, mas o termo identificador abrange 
mais do que variáveis.
 
Fundamentos de Programação I Luiz Arthur34
As regras básicas para a formação dos identificadores são:
● Um identificador pode ser:
● Caracteres:
● Números;
● Letras maiúsculas;
● Letras minúsculas;
● Caractere sublinhado;
● O primeiro caractere deve ser sempre uma letra ou o caractere 
sublinhado;
● Não são permitidos espaços em branco e caracteres especiais;
● Não pode-se utilizar palavras reservadas nos identificadores, ou seja, 
palavras que pertençam a uma linguagem de programação (exemplo, 
case, if, do, etc).
Estas regras são bem específicas para as linguagens de programação, por 
isto é sempre bom verificar o manual da linguagem para constatar estas 
regras de criação de nomes de identificadores.
 
Fundamentos de Programação I Luiz Arthur35
Bons exemplos de identificadores:
X
x
Resultado
RESULTADO
valorNota
_numero
Exemplos inválidos de identificadores:
1numero
valor Nota
tcp/ip
z-y
numero(2)
@email
Case
 
Fundamentos de Programação I Luiz Arthur36
Paradigmas de programação
Um paradigma de programação está intimamente relacionado à forma de 
pensar do programador e como ele busca a solução para os problemas.
Existem vários paradigmas de programação, mas os principais são: 
estruturado e orientado a objetos.
Paradigmas de programação estruturado
Neste paradigma (também conhecido de imperativo), qualquer problema 
pode ser resolvido utilizando três estruturas: sequencial, condicional, 
iterativa (repetição). Este paradigma, procura encontrar uma forma de 
quebrar um problema complexo em pequenas partes mais simples 
que, trabalhadas conjuntamente, permitem solucioná-lo.
A ideia é que, utilizando corretamente tais estruturas, o recurso da 
modularização e parametrização, seja possível criar programas com menor 
repetição possível de linhas de comandos.
 
Fundamentos de Programação I Luiz Arthur37
Paradigmas de programação orientado a objetos
Compreende o problema como uma alocação de objetos interagindo por 
meio de troca de mensagens. 
Os objetos são estruturas de dados contendo lógica. Dessa maneira, um 
conjunto de objetos com informações comuns e com o mesmo 
comportamento dá origem a uma classe.
Um programador que utilizar o paradigma estruturado analisa o 
problema tentando relacionar as ações que deverão ser executadas e 
como poderão ser divididas em módulos.
Um programador que utilize o paradigma orientado a objetos analisaria 
o mesmo problema tentando identificar os objetos que compõem essa 
realidade e como interagem.
O paradigma não está ligado diretamente a linguagem de 
programação, ou seja, não é por que foi utilizado uma linguagem de 
programação voltada ao paradigma orientado a objeto que a solução do 
problema foi implementada desta forma, o mesmo se aplica a linguagens 
estruturadas (é possível implementar orientação a objetos em linguagens de 
programação não orientadas a objeto).
 
Fundamentos de Programação I Luiz Arthur38
Diferenças de implementação de um mesmo problema usando 
paradigmas diferentes:
O problema a ser resolvido é: calcular a área e o perímetro de um retângulo.
Para isso, deverá existir uma janela (tela na qual existe a entrada e saída de 
dados), pela qual serão informadas as medidas dos lados do retângulo e 
poderão ser vistos os cálculos realizados.
Descrição narrativa:
1º Obter o valor da altura do retângulo.
2º Obter o valor da largura do retângulo.
3º Calcular a área (altura * largura).
4º Calcular o perímetro ((altura*2)+(largura*2)).
5º Mostrar o cálculo realizado.
 
Fundamentos de Programação I Luiz Arthur39
Segundo o paradigma estruturado a solução via pseudocódigo seria:
FUNÇÃO CALCULA_AREA(A, B NÚMERO)
 CALCULA_AREA A*B←
 RETORNA CALCULA_AREA
FIM FUNÇÃO CALCULA_AREA
FUNÇÃO CALCULA_PERIMETRO(X, Y NÚMERO)
 CALCULA_PERIMETRO 2*X + 2*Y←
 RETORNA CALCULA_PERIMETRO
FIM FUNÇÃO CALCULA_PERIMETRO
ALGORITMO RETANGULO
 DECLARE ALTURA, LARGURA, AREA, PERIMETRO NÚMERICO
 ESCREVA “Digite o valor da altura do retângulo: ”
 LEIA ALTURA
 ESCREVA “Digite o valor da largura do retângulo: “
 LEIA LARGURA
 AREA CALCULA_AREA(ALTURA, LARGURA)←
 PERIMETRO CALCULA_PERIMETRO(ALTURA, LARGURA)←
 ESCREVA “O valorda área é “, AREA
 ESCREVA “O valor do perímetro é ”, PERIMETRO
FIM ALGORITMO RETANGULO
 
Fundamentos de Programação I Luiz Arthur40
Segundo o paradigma orientado a objeto a solução seria:
CLASSE RETANGULO
 DECLARE ALTURA, LARGURA NÚMERICO
 PRIVADO RETANGULO (INICIA VARIÁVEIS)
 PUBLICO OBTER_ALTURA (RETORNA VARIÁVEL ALTURA)
 PUBLICO ATRIBUI_ALTURA (FORNECE O VALOR DE ALTURA)
 PUBLICO OBTER_LARGURA (RETORNA VARIÁVEL LARGURA)
 PUBLICO ATRIBUI_LARGURA (FORNECE O VALOR DE LARGURA)
 PUBLICO CALCULA_AREA (ALTURA * LARGURA)
 PUBLICO CALCULA_PERIMETRO (2*ALTURA + 2*LARGURA)
FIM CLASSE RETANGULO
CLASSE JANELA
 DECLARE ALTURA, LARGURA, AREA, PERIMETRO NÚMERICO
 DECLARE R RETANGULO
 ESCREVA “Digite o valor da altura do retângulo: “
 LEIA ALTURA
 ESCREVA “Digite o valor da largura do retângulo: “
 LEIA LARGURA
 R = NOVO RETANGULO
 R.ATRIBUI_ALTURA(ALTURA)
 R.ATRIBUI_LARGURA(LARGURA)
 AREA R.CALCULA_AREA();←
 PERIMETRO R.CALCULA_PERIMETRO();←
 ESCREVA “O valor da área é “, AREA
 ESCREVA “O valor do perímetro é ”, PERIMETRO
FIM CLASSE JANELA
 
Fundamentos de Programação I Luiz Arthur41
--o algoritmo orientado a objeto, não é a melhor representação, é só para dar uma ideia!
No paradigma estruturado cada módulo (funções) poderá receber 
valores e também devolver um valor a quem solicitou. Neste algoritmo 
estruturado a solução tem três módulos: 
● Um principal pelo qual o algoritmo iniciará; 
● A função CALCULA_AREA, responsável por calcular e devolver o valor 
da área do retângulo; 
● A função CALCULA_PERIMETRO, responsável por calcular e devolver 
o valor do perímetro.
No paradigma orientado a objeto a solução do problema é obtida seguindo 
estas etapas:
● Procurar objetos existentes no problema;
● Determinar as características e responsabilidades de cada objeto;
● Estabelecer como ocorrerá a interação entre os objetos.
Então no exemplo orientado a objetos observamos dois objetos: o objeto 
RETANGULO que tem a obrigação de armazenar e manipular o valor da 
altura e da largura, além de calcular a área e o perímetro; E o objeto 
JANELA que tem a obrigação de receber os valores iniciais (altura e largura) 
e enviá-los para o objeto RETANGULO, depois o objeto JANELA deve solicitar 
os valores obtidos e mostrá-los. 
 
Fundamentos de Programação I Luiz Arthur42
Cada linguagem de programação atende a pelo menos um paradigma. É 
difícil dizer qual é o melhor (isto pode ser pessoal), mas inicialmente vamos 
seguir o estruturado.
Referência:
ASCENCIO, Ana F.G; CAMPOS, Edilene A.V. Fundamentos da 
programação de computadores – Algoritmos, Pascal, C/C++ e Java. 
2ed. Editora Pearson. 2007.
MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: 
lógica para desenvolvimento de programação de computadores. 22.ed. 
São Paulo: Érica, 2009.
SALVETTI, Dirceu D; BARBOSA, Lisbete M. Algoritmos. Editora Makron 
Books. 1998.
UTIYAMA, Fabiano. Introdução Algoritmos. UNIPAR. 2010.
 
Fundamentos de Programação I Luiz Arthur43
Fim!
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43

Outros materiais