/img/logo
Universidade Federal de Alagoas - UFAL
Campus Arapiraca
Mini curso
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmos e Programa¸c˜ao
Alexandre de Andrade Barbosa
/img/logo
Motiva¸c˜ao Algoritmos Programa¸c˜ao Exerc´ıcios, Resumo e Referˆencias
Objetivos de aprendizagem
Objetivos
Motivar o estudo de programa¸c˜ao
Conhecer conceitos b´asicos
Definir o conceito de algoritmo
Definir o conceito de linguagem de programa¸c˜ao Listar diferentes linguagens de programa¸c˜ao Listar os passos para construir um programa
Compreender conceitos b´asicos
Diferenciar algoritmo de programa Apresentar exemplos de algoritmos
Converter algoritmo para uma representa¸c˜ao
Aplicar conceitos b´asicos
Elaborar algoritmos para resolver problemas
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
/img/logo
Motiva¸c˜ao
Algoritmos Programa¸c˜ao Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Motiva¸c˜
ao
O que ´e poss´ıvel criar...
GunPy projeto dos alunos de Programa¸c˜ao 1 Encainador projeto dos alunos de Programa¸c˜ao 1
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo
“Consideramos um algoritmo como uma sequˆencia de
instru¸c˜oes, cuja execu¸c˜ao resulta na realiza¸c˜ao de uma
determinada tarefa”
Jaime Evaristo, 2004
Exigˆencias para um algoritmo:
1
As instru¸c˜
oes devem ser claras e n˜ao amb´ıguas
2A sequˆencia de a¸c˜
oes n˜ao deve ser d´
ubia
/img/logo
Motiva¸c˜ao
Algoritmos
Programa¸c˜ao Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo
Exemplo de algoritmo:
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo
/img/logo
Motiva¸c˜ao
Algoritmos
Programa¸c˜ao Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo
Exemplo de algoritmo:
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo
/img/logo
Motiva¸c˜ao
Algoritmos
Programa¸c˜ao Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Como representar um algoritmo
Textualmente
Obter nota 1
Obter nota 2
Obter m´
edia (nota 1 e nota 2)
Se a m´
edia ´
e maior ou igual a 6
ent~
ao "Aprovado"
Sen~
ao,
ent~
ao "Reprovado"
Intru¸c˜oes do algoritmo
Graficamente
Diagrama de blocos
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Exerc´ıcios
Exerc´ıcio
1 Algoritmos e Programa¸c˜ao - Question´ario 1
/img/logo
Motiva¸c˜ao
Algoritmos
Programa¸c˜ao Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo - Exemplo 1
Regras:
Somente o homem pode pilotar o barco
O homem s´o pode levar uma carga
A raposa devora a galinha
A galinha devora o milho
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo - Exemplo 1
Solu¸c˜ao 1:
/img/logo
Motiva¸c˜ao
Algoritmos
Programa¸c˜ao Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo - Exemplo 1
Solu¸c˜ao 2:
1
Atravesse a galinha
2Retorne sozinho
3
Atravesse com o milho
4Retorne com a galinha
5Atravesse a raposa
6Retorne sozinho
7Atravesse a galinha
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo - Exemplo 1
Solu¸c˜ao 2:
1
Atravesse a galinha
2Retorne sozinho
/img/logo
Motiva¸c˜ao
Algoritmos
Programa¸c˜ao Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo - Exemplo 2
Como obter 4 litros de ´agua dispondo de dois recipientes com
capacidades de 3 litros e 5 litros?
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo - Exemplo 2
/img/logo
Motiva¸c˜ao
Algoritmos
Programa¸c˜ao Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo - Exemplo 2
Como obter 4 litros de ´agua dispondo de dois recipientes com
capacidades de 3 litros e 5 litros?
Solu¸c˜ao 1
1 Encha o recipiente de 3 litros
2 Transfira o conte´udo do recipiente de 3 litros para o recipiente de 5 litros
3 Encha o recipiente de 3 litros
4 Com o conte´udo do recipiente de 3 litros, complete o recipiente de 5 litros 5 Esvazie o recipiente de 5 litros
6 Transfira o conte´udo do recipiente de 3 litros para o recipiente de 5 litros
7 Encha o recipiente de 3 litros
8 Transfira o conte´udo do recipiente de 3 litros para o de 5 litros
A (o recipiente de 3 litros) B (o recipiente de 5 litros) (A,0)(B,0) 1 (A,3)(B,0) 2 (A,0)(B,3) 3 (A,3)(B,3) 4 (A,1)(B,5) 5 (A,1)(B,0) 6 (A,0)(B,1) 7 (A,3)(B,1) 8 (A,0)(B,4)
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo - Exemplo 2
/img/logo
Motiva¸c˜ao
Algoritmos
Programa¸c˜ao Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo - Exemplo 2
Como obter 4 litros de ´agua dispondo de dois recipientes com
capacidades de 3 litros e 5 litros?
Solu¸c˜ao 2
1 Encha o recipiente de 5 litros
2 Com o conte´udo do recipiente de 5 litros, encha o recipiente de 3 litros
3 Esvazie o recipiente de 3 litros
4 Transfira o conte´udo do recipiente de 5 litros para o recipiente de 3 litros
5 Encha o recipiente de 5 litros
6 Com o conte´udo do recipiente de 5 litros, complete o recipiente de 3 litros
A (o recipiente de 3 litros) B (o recipiente de 5 litros) (A,0)(B,0) 1 (A,0)(B,5) 2 (A,3)(B,2) 3 (A,0)(B,2) 4 (A,2)(B,0) 5 (A,2)(B,5) 6 (A,3)(B,4)
Obs.: Existem solu¸c˜
oes mais eficientes para os problemas
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo - Exerc´ıcios
Sapos na lagoa
Existem trˆes sapos macho nas pedras do lado esquerdo da lagoa e trˆes sapos fˆemea nas pedras do lado direito da lagoa. Cada grupo de sapos precisa chegar ao outro lado. Cada sapo s´o pode pular uma pedra por vez, ou pular um sapo at´e a pr´oxima pedra.
Exerc´ıcio
1 Crie um algoritmo para o problema dos sapos. Ap´os criar uma solu¸c˜ao, visite a p´agina do exerc´ıcio no site do mini curso.
2 Algoritmos e Programa¸c˜ao - Exerc´ıcio 1 (Sapos)
/img/logo
Motiva¸c˜ao
Algoritmos
Programa¸c˜ao Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo - Exerc´ıcios
Lampadas
Existem cinco lˆampadas e cinco interruptores. Cada interruptor acende/apaga as trˆes lˆampadas que est˜ao identificadas abaixo da lˆampada.
Exerc´ıcio
1 Crie um algoritmo para acender todas as lˆampadas. Ap´os criar uma solu¸c˜ao, visite a p´agina do exerc´ıcio no site do mini curso.
2 Algoritmos e Programa¸c˜ao - Exerc´ıcio 2 (Lˆampadas)
3 https://sites.google.com/site/ufalalexandre/mcpython
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo - Exemplo
/img/logo
Motiva¸c˜ao
Algoritmos
Programa¸c˜ao Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Algoritmo - Exemplo
Crie um algoritmo para somar dois n´
umeros
1Receba o n´
umero A
2
Receba o n´
umero B
3Fa¸ca C = A + B
4Imprima C
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Programa
Programa
“Um programa ´e um conjunto de instru¸c˜oes que indicam ao
computador, passo a passo, o que ele tem que fazer. Logo,
um programa nada mais ´e do que um algoritmo descrito em
uma linguagem de programa¸c˜ao.”
Linguagem de Programa¸c˜
ao
/img/logo
Motiva¸c˜ao Algoritmos
Programa¸c˜ao
Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Como representar um algoritmo
Programa na linguagem Python
1
n = i n p u t ( ” D i g i t e um numero i n t e i r o : ” )
2p r i n t ( ”O d o b r o de ” , n , ” e ” , 2
∗
n” )
Programa na linguagem C
1
#i n c l u d e
<
s t d i o . h
>
2
i n t
main ( )
{
3i n t
n ;
4
p r i n t f ( ” D i g i t e um numero i n t e i r o : ” ) ;
5s c a n f ( ”%d” , &n ) ;
6
p r i n t f ( ”O d o b r o de %d e %d
\
n” , n , 2
∗
n ) ;
7r e t u r n
0 ;
8
}
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
/img/logo
Motiva¸c˜ao Algoritmos
Programa¸c˜ao
Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Linguagem de m´
aquina e Linguagem de alto n´ıvel
Tradu¸c˜ao do c´odigo fonte atrav´es de compila¸c˜ao
Tradu¸c˜ao do c´odigo fonte atrav´es de interpreta¸c˜ao
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Exemplo de compila¸c˜
ao em C
1
#i n c l u d e
<
s t d i o . h
>
2
main ( )
{
/img/logo
Motiva¸c˜ao Algoritmos
Programa¸c˜ao
Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Exemplo de compila¸c˜
ao em C
Para compilar utilizando o GCC
1
g c c [ nome
do
s e u programa ] . c
−
o [ nome
do
e x e c u t a v e l ]
Exemplo
1
g c c p r i m e i r o . c
−
o p r i m e i r o
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Exemplo de compila¸c˜
ao em C
Para rodar um programa utilizando o GCC
1
. / [ nome
do
e x e c u t a v e l ]
Exemplo
/img/logo
Motiva¸c˜ao Algoritmos
Programa¸c˜ao
Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Exemplo de interpreta¸c˜
ao em Python
1
p r i n t ”Meu p r i m e i r o programa . . . em Python ”
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Exemplo de interpreta¸c˜
ao em Python
/img/logo
Motiva¸c˜ao Algoritmos
Programa¸c˜ao
Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Exerc´ıcios
Exerc´ıcio
1 Algoritmos e Programa¸c˜ao - Question´ario 2
2 https://sites.google.com/site/ufalalexandre/mcpython
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Programa¸c˜
ao
Resolver problemas ´e uma a¸c˜ao recorrente para um Cientista da
Computa¸c˜ao
Para resolver problemas os cientistas devem:
1
Compreender o problema
2
Buscar uma solu¸c˜ao para o problema
3Descrever a solu¸c˜ao de forma algor´ıtmica
/img/logo
Motiva¸c˜ao Algoritmos
Programa¸c˜ao
Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Programa¸c˜
ao
Programa¸c˜ao estruturada
Sequˆencia
Condi¸c˜ao
Repeti¸c˜ao
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Programa¸c˜
ao
Algoritmo: Receita de Brigadeiro
1
Coloque em uma panela 1 lata de leite condensado, 1 colher de
sopa de margarina e 200g de chocolate em p´
o
2
Cozinhe em fogo m´edio e mexa sem parar com uma colher de pau
3Repita o passo anterior at´e que o brigadeiro comece a desgrudar
da panela
4
Deixe esfriar, e fa¸ca bolinhas de brigadeiro com as m˜aos
5Se preferir, envolva as bolinhas em chocolate granulado
Sequˆencia
Condi¸c˜ao
/img/logo
Motiva¸c˜ao Algoritmos
Programa¸c˜ao
Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Programa¸c˜
ao
Algoritmo: Receita de Brigadeiro
1
Coloque em uma panela 1 lata de leite condensado, 1 colher de
sopa de margarina e 200g de chocolate em p´
o
2
Cozinhe em fogo m´edio e mexa sem parar com uma colher de pau
3
Repita o passo anterior at´e que o brigadeiro comece a desgrudar
da panela
4
Deixe esfriar, e fa¸ca bolinhas de brigadeiro com as m˜aos
5
Se preferir, envolva as bolinhas em chocolate granulado
Sequˆencia
Condi¸c˜ao
Repeti¸c˜ao
/img/logo
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Programa¸c˜
ao
Algoritmo: Receita de Brigadeiro
1
Coloque em uma panela 1 lata de leite condensado, 1 colher de
sopa de margarina e 200g de chocolate em p´
o
2
Cozinhe em fogo m´edio e mexa sem parar com uma colher de pau
3
Repita o passo anterior at´e que o brigadeiro comece a desgrudar
da panela
4
Deixe esfriar, e fa¸ca bolinhas de brigadeiro com as m˜aos
5
Se preferir, envolva as bolinhas em chocolate granulado
Sequˆencia
Condi¸c˜ao
/img/logo
Motiva¸c˜ao Algoritmos
Programa¸c˜ao
Exerc´ıcios, Resumo e Referˆencias
Introdu¸c˜
ao `
a programa¸c˜
ao com Python
Programa¸c˜
ao
Algoritmo: Receita de Brigadeiro
1
Coloque em uma panela 1 lata de leite condensado, 1 colher de
sopa de margarina e 200g de chocolate em p´
o
2
Cozinhe em fogo m´edio e mexa sem parar com uma colher de pau
3
Repita o passo anterior at´e que o brigadeiro comece a desgrudar
da panela
4
Deixe esfriar, e fa¸ca bolinhas de brigadeiro com as m˜aos
5
Se preferir, envolva as bolinhas em chocolate granulado
Sequˆencia
Condi¸c˜ao
Repeti¸c˜ao
/img/logo
Exerc´ıcio
Exerc´ıcio
Algoritmos e Programa¸c˜ao - Exerc´ıcio 3 (Blockly) Algoritmos e Programa¸c˜ao - Question´ario 3
/img/logo
Motiva¸c˜ao Algoritmos Programa¸c˜ao Exerc´ıcios, Resumo e Referˆencias
Resumo
Resumo
Um algoritmo ´e uma sequˆencia de instru¸c˜oes que produz um resultado em tempo finito
Um programa ´e um algoritmo criado utilizando uma linguagem de programa¸c˜ao Uma linguagem de programa¸c˜ao ´e um conjunto de s´ımbolos e regras de sintaxe que permitem a constru¸c˜ao de algoritmos de modo que o computador compreenda Os processos de compila¸c˜ao e interpreta¸c˜ao correspondem a tradu¸c˜ao do c´odigo fonte para uma linguagem compreendida pelo computador
Qualquer programa pode ser criado utilizando instru¸c˜oes: sequenciais, condicionais (ou de sele¸c˜ao) e repeti¸c˜oes (ou de itera¸c˜ao)
/img/logo
Referˆ
encias
Marlos T´acio da Silva (IFAL)
Mini curso: Introdu¸c˜ao a Programa¸c˜ao em Python
, 2015.
Mario Hozano Lucas de Souza (UFAL)
Notas de aula da disciplina “Programa¸c˜ao 1”
, 2013.
Jaime Evaristo
/img/logo
Motiva¸c˜ao Algoritmos Programa¸c˜ao Exerc´ıcios, Resumo e Referˆencias