Algoritmos e Programação - Material Unificado
Algoritmos e Programação - Material Unificado
Algoritmos e Programação - Material Unificado
DE COMPUTADORES I
Noção de Algoritmos
CONSTRUÇÃO DE PROGRAMAS
ALGORITMO
Um algoritmo é uma sequência de passos
que visam atingir um objetivo bem definido.
-Pessoas têm inteligência e habilidade
racional: fazem perguntas para se
esclarecer.
-Computador não tem senso próprio: deve
receber instruções explícitas e precisas
(algoritmos).
ALGORITMO
Um algoritmo correto deve possuir 3
qualidades:
Cada passo do algoritmo deve ser uma
instrução que possa ser realizada.
A ordem dos passos deve ser
precisamente determinada.
O algoritmo deve ter fim.
ALGORITMO
Primeiro algoritmo: trocar uma lâmpada
no teto.
-Quais serão as instruções?
-Usaremos o português coloquial.
ALGORITMO
Algoritmo para trocar uma lâmpada no teto
Início
Remova a lâmpada queimada
Coloque a nova lâmpada
Fim.
ALGORITMO
Algoritmo para trocar uma lâmpada no teto
Início
Remova a lâmpada queimada
Coloque a nova lâmpada
Fim.
O que é necessário para remover a
lâmpada queimada?
ALGORITMO
Algoritmo para trocar uma lâmpada no teto
- Posicione a escada debaixo da lâmpada
queimada
- Suba na escada até que a lâmpada possa ser
alcançada
- Gire a lâmpada queimada no sentido anti-horário
até que se solte
ALGORITMO
Algoritmo para trocar uma lâmpada no teto
Início
Remova a lâmpada queimada
Coloque a nova lâmpada
Fim.
O que é necessário para colocar a
lâmpada nova?
ALGORITMO
Algoritmo para trocar uma lâmpada no teto
Noção de Algoritmos
ALGORITMOS E PROGRAMAÇÃO
DE COMPUTADORES I
Fluxogramas
ALGORITMOS
Na aula passada aprendemos o conceito
de algoritmos.
Instrução
Ponto de decisão
Fluxogramas
ALGORITMOS E
PROGRAMAÇÃO DE
COMPUTADORES I
Sobre Python
PYTHON
Desenvolvida no final da década de 80 por
Guido van Rossum (CWI – Holanda)
De propósito geral, projetada para
desenvolver programas de alta legibilidade
Possui uma vasta biblioteca para diferentes
aplicações
Grande popularidade nos últimos anos
Versão atual: 3.8.3 (desejável: > 3.5)
PYTHON
Em nossa disciplina, poderemos aprender
Python:
- Usando uma interface online, que não
precisa instalar nenhum software no
computador
ou
- Instalando o interpretador Python no
computador e uma IDE
INTERFACE ONLINE
Jupyter Notebook:
https://jupyter.org/
INSTALAÇÃO
Para configurar o Python no computador, é necessário
fazer o download e instalar o kit de desenvolvimento
em Python - https://www.python.org/downloads/
- Windows
- Linux
- Mac OSX
TESTANDO
O kit já vem com o interpretador IDLE
Para executá-lo, basta selecioná-lo no menu
Fonte: https://www.youtube.com/watch?time_continue=92&v=3Xy221yv9A8&feature=emb_logo
TESTANDO
Interpretador IDLE
Fonte: https://www.youtube.com/watch?time_continue=92&v=3Xy221yv9A8&feature=emb_logo
TESTANDO
Abrindo uma nova janela
Fonte: https://www.youtube.com/watch?time_continue=92&v=3Xy221yv9A8&feature=emb_logo
TESTANDO
Executando o arquivo
Fonte: https://www.youtube.com/watch?time_continue=92&v=3Xy221yv9A8&feature=emb_logo
IDE
Integrated Development Environment
Aplicativo que fornece funcionalidades
interessantes para o programador de
software
Geralmente consiste de um editor de texto,
compilador e debugador de Código
Para Python, existem várias IDEs
disponíveis:
https://wiki.python.org/moin/IntegratedDevelop
mentEnvironments
PyCharm
Iremos utilizar o PyCharm:
https://www.jetbrains.com/pycharm/
Sobre Python
ALGORITMOS E
PROGRAMAÇÃO DE
COMPUTADORES I
Expressões aritméticas
e operadores
EXPRESSÕES ARITMÉTICAS
𝑁
𝐻= −𝑋
1
∑$
!"# 𝑛
!+𝑋
ALGORITMOS E
PROGRAMAÇÃO DE
COMPUTADORES I
Expressões aritméticas
e operadores
ALGORITMOS E
PROGRAMAÇÃO DE
COMPUTADORES I
Expressões lógicas e
operadores
EXPRESSÕES LÓGICAS
São expressões onde os operadores são
lógicos ou relacionais e cujos operandos
são relações, ou variáveis/constantes do
tipo lógico.
Expressões lógicas e
operadores
ALGORITMOS E
PROGRAMAÇÃO DE
COMPUTADORES I
Variáveis
VARIÁVEIS
Variável é um nome que é atribuído a um
objeto (um número por exemplo)
Exemplo:
>>> x = 3
>>> x
3
Variáveis
ALGORITMOS E
PROGRAMAÇÃO DE
COMPUTADORES I
Strings
STRINGS
Além de variáveis do tipo numérico (int e
float), e do tipo lógico (bool), Python
permite definir variáveis de tipos mais
complexos.
Strings
ALGORITMOS E PROGRAMAÇÃO
DE COMPUTADORES I
Tipos de dados
TIPOS DE DADOS
Até o momento, vimos os seguintes tipos de
dados suportados pela linguagem Python:
int, float, bool, str, list e tuple.
Cada dado é armazenado na memória na
forma de objetos.
Todo objeto possui um tipo e um valor.
Tipos de dados
ALGORITMOS E PROGRAMAÇÃO
DE COMPUTADORES I
>>> a + b
Fractions
MÓDULO fractions
Uma particularidade do tipo Fraction é que ele
permite representar números muito maiores,
quando comparado com o tipo float:
>>> 0.5 ** 1075
0.0
>>> fractions.Fraction(1, 2) ** 1075
Fraction(1, 40480450661462 ...
40480450661462)
Obs. Por outro lado, usar o tipo float em
expressões é muito mais rápido do que o tipo
Fraction.
ALGORITMOS E PROGRAMAÇÃO
DE COMPUTADORES I
Programas em Python
Programa Python
Um programa em Python é um conjunto
de instruções que são executadas em
ordem, seguindo os conceitos sobre
algoritmos que vimos antes:
-sequenciamento
-estruturas de condição
-estruturas de repetição
Programa Python
Em vez de usarmos o shell interativo
para executar cada instrução em Python,
iremos implementar as instruções de um
programa em um ou mais arquivos com
extensão .py
Para isso, devemos usar o editor
disponível na IDE que estamos usando.
IDE IDLE
Abrindo o editor
Fonte: https://www.youtube.com/watch?time_continue=92&v=3Xy221yv9A8&feature=emb_logo
IDE IDLE
Executando o programa
Fonte: https://www.youtube.com/watch?time_continue=92&v=3Xy221yv9A8&feature=emb_logo
IDE PyCharm
Implementação do programa no editor
Programas em Python
ALGORITMOS E PROGRAMAÇÃO
DE COMPUTADORES I
Definição de funções
Definição de funções
Python permite que o programador crie
suas próprias funções.
É útil quando precisamos executar uma
sequência de instruções várias vezes, em
diferentes partes do programa.
Permite modularizar o programa,
facilitando o reúso e manutenção.
Primeira função
def f(x):
res = x**2 + 1
return res
17
Formato
O formato geral para definição de
funções em Python é:
def g(x):
return f(x)
def f(x):
return x**2 + 1
ALGORITMOS E PROGRAMAÇÃO
DE COMPUTADORES I
Definição de funções
ALGORITMOS E PROGRAMAÇÃO
DE COMPUTADORES I
Documentação de programas
Documentação
A documentação de programas permite:
- que usuários entendam o que o programa
faz
- que desenvolvedores entendam como o
programa funciona
É importante documentar programas até
para o próprio autor daquele código, já que à
medida em que o programa se torna
complexo, o desenvolvedor pode se
esquecer daquele trecho que implementou
anteriormente.
Documentação
Documentar um código em Python
normalmente é realizado por meio de
comentários.
Um comentário é um texto que precede o
caractere '#'.
Exemplo:
def f(x):
res = x**2 + 1 # calcula x**2 + 1 e armazena o
# resultado em res
return res # retorna o valor de res
Documentação
Caso o comentário ocupe várias linhas,
pode-se delimitá-lo por três aspas simples ou
três aspas duplas:
Exemplo:
'''
Calcula x**2 + 1
Retorna o resultado
'''
def f(x):
res = x**2 + 1
return res
Documentação
É importante saber balancear entre
comentários e legibilidade de código.
>>> help(f)
Help on function f in module __main__:
f(x)
Docstrings
Para documentar uma função, usamos
comentários especiais, os quais chamamos
de docstrings:
def f(x):
'Calcula x**2 + 1'
res = x**2 + 1
return res
>>> help(f)
Help on function f in module __main__:
f(x)
Calcula x**2 + 1
ALGORITMOS E PROGRAMAÇÃO
DE COMPUTADORES I
Documentação de programas
ALGORITMOS E PROGRAMAÇÃO
DE COMPUTADORES I
Estruturas de condição de
uma ou duas vias
ESTRUTURAS DE SELEÇÃO
if <condição>:
<bloco de instruções identado>
<bloco de instruções não identado>
SELEÇÃO DE DUAS VIAS
Dois blocos alternativos dependendo da
condição:
if <condição>:
<bloco 1 de instruções identado>
else:
<bloco 2 de instruções identado>
<bloco de instruções não identado>
EXEMPLO
Estruturas de condição de
uma ou duas vias
ALGORITMOS E PROGRAMAÇÃO
DE COMPUTADORES I
Estruturas de condição de
três ou mais vias
SELEÇÃO DE TRÊS OU
MAIS VIAS
Decisões de três ou mais vias têm o seguinte
formato:
if <condição 1>:
<bloco de instruções identado 1>
elif <condição 2>:
<bloco de instruções identado 2>
elif <condição 3>:
<bloco de instruções identado 3>
else:
<último bloco de instruções identado>
<bloco de instruções não identado>
SELEÇÃO DE TRÊS OU
MAIS VIAS
Se <condição 1> é verdadeira, então <bloco de
instruções identado 1> é executado
Se <condição 1> é falsa e <condição 2> é verdadeira,
então <bloco de instruções identado 2> é executado
Se <condição 1> e <condição 2> são falsas mas
<condição 3> é verdadeira, então <bloco de instruções
identado 3> é executado
Se nenhuma condição for verdadeira, então <último
bloco de instruções> é executado
Em todos os casos, o programa irá prosseguir com
<bloco de instruções não identado>
EXEMPLO
Dados três valores positivos, A, B e C,
construir um programa em Python que
verifica se os mesmos podem ser os
comprimentos dos lados de um triângulo.
def temperatura(t):
if t > 32:
print('Frio!')
elif t > 86: Como corrigir?
print('Quente!')
else:
print('Congelando!')
ALGORITMOS E PROGRAMAÇÃO
DE COMPUTADORES I
Estruturas de condição de
três ou mais vias
ALGORITMOS E PROGRAMAÇÃO
DE COMPUTADORES I
s = 'algoritmos'
for c in s:
if c in 'aeiou':
print(c)
COMANDO FOR
Função range(). Formato:
range(start, stop, step)
Exemplo:
while <condição>:
<bloco de instruções identado>
<bloco de instruções não-identado>
O COMANDO WHILE
Exemplo:
Pedir para o usuário digitar um número
inteiro positivo. Caso contrário, emitir uma
mensagem e pedir novamente.
O COMANDO WHILE
Exemplo:
Armazenar nomes de pessoas em uma lista
enquanto o usuário digitar strings
diferentes de vazio.
LOOP INFINITO
Um loop infinito é aquele que é executado "para
sempre":
while True:
<bloco de instruções identado>
Fonte: https://www.programiz.com/python-programming/break-continue
BREAK
Fonte: https://www.programiz.com/python-programming/break-continue
CONTINUE
Exemplo:
Dada a função primo() for n in range(2, 100):
implementada no slide if not primo(n):
anterior, faça um continue
programa que imprima print(n)
todos os números
primos de 2 a 100.
PASS
Todos os comandos def, if, else, for ou while
precisam ter necessariamente um bloco
indentado não vazio.
if n % 2 == 0:
pass
else:
print(n)
ALGORITMOS E PROGRAMAÇÃO
DE COMPUTADORES I
Depuração de programas
DEPURAÇÃO DE PROGRAMAS
É o processo de encontrar e reduzir erros em
programas.
Os erros podem:
- impossibilitar que o programa continue sua
execução, ou
- fazer com que o programa gere como saída
um resultado incorreto.
DEPURADORES
Ferramentas que auxiliam o programador,
permitindo:
- monitorar a execução de um programa
- parar a execução em algum ponto do tempo
- reiniciar o programa
- ativar pontos de parada
- alterar áreas de memória durante a execução
- etc.
DEPURADORES
Depuração de programas
ALGORITMOS E PROGRAMAÇÃO
DE COMPUTADORES I
Webconferência
Revisão
Objetivos
Compreender os conceitos básicos de
programação.
x=2 l = [1, 2, 3]
y=3 g(l)
f(x, y) print(l)
print(x, y) ??
??
Outros tópicos importantes
- Estruturas de condição: como criar uma
estrutura de 2, 3 ou mais vias?
- Estruturas de repetição: for, while e outros
comandos agregados (range, break,
continue, pass, etc.)
- Listas multi-dimensionais: como funciona a
indexação?
- Entrada e saída: funções print(), input() e
eval()
ALGORITMOS E PROGRAMAÇÃO
DE COMPUTADORES I
Webconferência
Revisão