Você está na página 1de 88

ICC901 Introduo Programao de Computadores

IEC081 Introduo Cincia dos Computadores


IEC037 Introduo Programao de Computadores

2016/2
Aula 01 Variveis e Estrutura Sequencial

Fonte da imagem: https://www.codeschool.com/courses/forging-ahead-with-asp-net-core


Contedo

Conceitos bsicos

Variveis

Entrada e sada de dados

Operadores

Funes e Mdulos

Boas prticas de programao

Errar humano
Contedo

Conceitos bsicos

Variveis

Entrada e sada de dados

Operadores

Funes e Mdulos

Boas prticas de programao

Errar humano
Programar resolver problemas

Drago
Como escrever esses
passos para que o
computador entenda?

Problema Algoritmo Programa


Receita

Quais os passos
para resolver?
Poo
Conceitos Bsicos de Programao

Algoritmo
Descrio de um conjunto ordenado de comandos
para a soluo de um problema em um tempo finito.

Linguagem de programao
Estabelece vocabulrio, sintaxe (formato) e
semntica (significado) para que o algoritmo possa
ser entendido por uma mquina.

Programa
a codificao de um algoritmo em uma linguagem
de programao.
O que Python?

Python uma linguagem


de programao criada
por Guido van Rossum,
na Holanda em 1990.
Site oficial:

www.python.org
Python
:: O nome
Esse nome vem de um antigo grupo de comdia britnico
chamado Monty Pythons Flying Circus.
Fora de contexto, significa serpente grande, tal como a
sucuri ou jiboia.
Como NO escrever:
Phyton
Phython
Pyton
Que programa uso para programar?
Para programar em Python, voc vai precisar de um IDE
(Ambiente de Desenvolvimento Integrado).
O IDE mais recomendado o Spyder.
Onde baixar o Spyder?
O Spyder distribudo junto com outro programa,
chamado Anaconda.
No Google, procure por
1 Anaconda Python

Escolha seu sistema operacional


2 (Windows, Linux ou Mac)

Baixe a verso 3.5 ou mais


3 recente

4 Instale
Spyder Anaconda
:: Download
Qual o sistema operacional do seu computador?
Qual a relao entre CodeBench e
Python?

Python CodeBench
uma linguagem de uma ferramenta de
programao, apoio ao ensino de
independente do programao, que pode
ambiente escolar. ser em Python ou no.
Contedo

Conceitos bsicos

Variveis

Entrada e sada de dados

Operadores

Funes e Mdulos

Boas prticas de programao

Errar humano
O que so variveis?

Varivel uma regio de Identificador Contedo


memria do computador.
Moedas 12
Toda varivel contm um
Nome Maria
valor.
Pi 3.14
Toda varivel deve ser
identificada por um ...
nome. Condicao Falso
Como definir variveis?

Identificador Atribuio Expresso

area = 20

Nome dado aos objetos utilizados no


Identificador programa (variveis, constantes, funes, etc.)

Comando que define o valor guardado em


Atribuio uma varivel

Pode ser um valor ou um conjunto de


Expresso comandos que resulta em um valor
Como definir variveis?
:: Exemplos

var1 = 15 var4 = var3 8 + 0.5


print("var1:", var1) print("var4:", var4)

var2 = 12 * 4 var5 = "Guido van Rossum"


print("var2:", var2) print("var5:", var5)

var3 = var2 var6 = var5 + " criou o


print("var3:", var3) Python"
print("var6:", var6)

var1: 15 var4: 40.5


var2: 48 var5: Guido van Rossum
var3: 48 var6: Guido van Rossum
criou o Python
Qual a relao com variveis no
contexto matemtico?

Matemtica Algoritmos
Variveis podem assumir o Variveis podem assumir
valor de qualquer apenas um nico valor de
elemento de um conjunto. cada vez.
Regras para nomear variveis
O incio do nome da varivel deve ser obrigatoriamente
uma letra do alfabeto ou o caractere sublinhado (_).
Os demais caracteres podem conter letras, nmeros ou o
caractere sublinhado (_).
No use uma palavra-chave reservada:
Regras para nomear variveis
:: Cuidados
No use espaos.
Letras maisculas e minsculas so diferentes.
Variveis Area e area so distintas.
Regras para nomear variveis
:: Exemplos
Nome Vlido Comentrio
dia1

diaDaSemana

dia da semana Contm espaos


dia_da_semana

dia#3 Usa smbolo invlido


3o_dia Comea com nmero
_dia
Variveis
:: Observaes
Se voc declarar uma varivel j existente, o contedo
anterior ser perdido.

a = 6 a = 6
print(a) a = 22
print(a)

6 22
O valor das variveis pode mudar

dvida compra
0 ? 1 divida = 0
0 100 2 compra = 100
100 100 3 divida = divida + compra
100 200 4 compra = 200
300 200 5 divida = divida + compra
300 300 6 compra = 300
600 300 7 divida = divida + compra
600 0 8 compra = 0
600 0 9 print(divida)
Tipos de variveis
O tipo define a natureza dos dados que a varivel
armazena.
Tipos mais comuns no Python:

Inteiro
Numrico
Real
Tipos Lgico

String de
caracteres
Tipos Numricos
:: Classificao

Inteiros So nmeros sem a parte fracionria.


(int) Exemplos: 1 | 0 | -5 | 567

So nmeros com parte fracionria.


Reais Tambm conhecidos como ponto
flutuante.
(float) Exemplos: 1.0 | 3.1415 | 2.7182
Tipos Numricos
:: Observaes

Nmeros inteiros e reais Em programao,


so representados de utilizamos o ponto e no
maneiras distintas na a vrgula para separar a
memria do computador. parte inteira e a parte
fracionria de um nmero.
Tipos Numricos
:: Exemplos
Nmero Inteiro Ponto flutuante
5

5.0

4.3

-2

100

1.333
Representao de nmeros reais
:: Observaes (1)
Variveis de ponto flutuante so
representaes da realidade na memria
do computador.

O conjunto dos nmeros reais infinito,


mas o espao de armazenamento em
memria um recurso finito.

Logo, somente alguns elementos do


conjunto de nmeros reais podem ser
representados em um computador.
Representao de nmeros reais
:: Observaes (2)
Variveis de ponto flutuante so guardadas no
formato exponencial.
Nmeros mais prximos do zero so mais provveis
de serem utilizados do que nmeros muito grandes.
nmeros representados
pelo computador
0

x x+
Representao de nmeros reais
:: Exemplo de limitao

print(10**3 + 0.001) print(10**30 + 0.001)

1000.001 1e+30
Tipo Lgico
Uma varivel do tipo lgico (ou booleano) armazena um
contedo que assume apenas um de dois valores
possveis:
True (verdadeiro)
False (falso)

Note que as iniciais T e F so escritas em maisculas.


Tipo Lgico
:: Exemplos

print(2 < 3) print(15/3 < 5)


print(3 < 2) print(15/3 == 5)

True False
False True
String de caracteres
Uma string (= corda) uma cadeia de caracteres.
Uma cadeia de caracteres um sequncia de smbolos,
tais como letras, nmeros, sinais de pontuao, etc., que
formam textos em geral.

m o
A n
o h o
y t
P
String de caracteres

As aspas ("") so usadas


para delimitar uma texto = "Amo o Python."
print(texto)
string.
texto = "Amo o \"Python\"."
Voc pode usar espaos print(texto)
dentro de uma string.
Se o smbolo de aspas
fizer parte da string, use
a expresso \". Amo o Python.
Amo o "Python".
Contedo

Conceitos bsicos

Variveis

Entrada e sada de dados

Operadores

Funes e Mdulos

Boas prticas de programao

Errar humano
Entrada e Sada de Dados
:: Operao Bsica

Entrada Script Python Sada


input() print()
Programao
:: Papis

Usurio Programador

Utiliza o script Projeta e


Insere dados escreve o script
Comandos de Entrada e Sada

Comandos de
Comandos de Sada
Entrada
Permitem que o Permitem que o
usurio do script exiba
programa entre resultados no
com novos valores console.
no script.
Exemplo: Exemplos:
Funo input() Funo print()
Sada de dados
:: print()
Exibe os dados passados como argumento.

print("Oi")

x = 108
print(x)
print("Metade:", x/2)

texto = "ola mundo"


print(texto)
Entrada de dados pelo usurio
:: input()
Exibe, no console, um texto de orientao para o usurio
e aguarda que este digite um valor.

var = input("Digite um numero: ")

O console ficar travado at que o usurio digite um


valor.
O valor digitado ser armazenado na varivel var.
O valor digitado interpretado como uma string. Por isso,
deve ser convertido ao tipo desejado (inteiro, float,
lgico).
Entrada e Sada de Dados
:: Exemplo
var = input("Digite um numero: ") 1 2 3
print("Voce digitou", var) 4

1 Digite um numero:

15 2

3 var = 15

4 Voce digitou 15
Problema 1

Um estdio oferece trs


categorias de assentos:
Classe A R$ 50
Classe B R$ 30
Classe C R$ 20

Escreva um programa que


pergunta quantos bilhetes
de cada classe foram
vendidos, e, em seguida,
exibe a renda gerada pela
venda dos ingressos.
Problema 1
:: Definir Entradas e Sadas

Grandeza Unidade de medida Faixa de valores


N de bilhetes A bilhetes 0
Entradas N de bilhetes B bilhetes 0
N de bilhetes C bilhetes 0
Sadas Renda R$ 0
Problema 1
:: Soluo
incio

nA
nB
nC

precoA 50
precoB 30
precoC 20

renda precoA * nA
+ precoB * nB
+ precoC * nC

renda

fim
Problema 1
:: Converter o algoritmo em programa
incio
nA = input("No. bilhetes A: ")
nA nB = input("No. bilhetes B: ")
nB nC = input("No. bilhetes C: ")
nC

precoA 50 precoA = 50.0


precoB 30 precoB = 30.0
precoC 20 precoC = 20.0

renda precoA * nA renda = precoA * nA + precoB *


+ precoB * nB nB + precoC * nC
+ precoC * nC

renda
print(renda)

fim
Problema 1
:: Testando o programa
nA = input("No. bilhetes A: ")
nB = input("No. bilhetes B: ")
nC = input("No. bilhetes C: ")
precoA = 50.0
precoB = 30.0
precoC = 20.0
renda = precoA * nA + precoB * nB + precoC * nC
print(renda)

Por que no
funciona?
Problema 1
:: Programa corrigido

nA = int(input("No. bilhetes A: "))


nB = int(input("No. bilhetes B: "))
nC = int(input("No. bilhetes C: "))
precoA = 50.0
precoB = 30.0
precoC = 20.0
renda = precoA * nA + precoB * nB + precoC * nC
print(renda)
Contedo

Conceitos bsicos

Variveis

Entrada e sada de dados

Operadores

Funes e Mdulos

Boas prticas de programao

Errar humano
Tipos de operadores

Aritmticos

Operadores Relacionais

Lgicos
Operadores Aritmticos
So utilizados para realizar as operaes aritmticas bsicas.

Operador Operao Exemplo


+ Adio 1+y

Subtrao xy

* Multiplicao 8*y

/ Diviso real 7 / 2 (= 3.5)

// Diviso inteira 7 // 2 (= 3)
Resto da diviso
% inteira
7 % 2 (= 1)

** Potenciao x ** 2
Operadores Aritmticos
Entrada: 02 valores numricos
Sada: 01 valor numrico

valor numrico
Operador valor numrico
valor numrico Aritmtico
Operadores Aritmticos
:: Formato

Opera
Operando1 Operando2
dor

Exemplos:

2a a 5

2*a a ** 3 5 ** 0.5
Operadores Aritmticos
:: Prioridade
Prioridade Operador
1 Parnteses mais internos
Da esquerda
2 Potenciao
para a direita
3 Multiplicao, diviso, resto
4 Adio, subtrao

4 * 3 ** 2 36

(4 * 3) ** 2 144 Na dvida, use


Exemplos: parnteses.
4 * 5 % 3 2

4 * (5 % 3) 8
Contedo

Conceitos bsicos

Variveis

Entrada e sada de dados

Operadores

Funes e Mdulos

Boas prticas de programao

Errar humano
Funes

Na Matemtica Em Programao

Relao entre Bloco de cdigo


dois conjuntos que executa uma
tarefa especfica

()
Funes
:: Nomenclatura

mod = abs(x)
Resultado Argumento
(entrada)
Nome da funo
Funes
:: Valor Absoluto
A funo abs(x)
fornece o valor absoluto de print(abs(-3))
print(abs(3))
um nmero x.

Em notao matemtica,
equivale a |x|, ou seja, a
distncia de at o ponto
zero da reta real.
3
01 argumento 3
Funes
:: Converso de tipos
A funo int(x)
converte um valor x em print(int(1.8))
inteiro. print(float(4))

A funo float(y)
converte um valor y em
real.
01 argumento 1
4.0
Funes
:: Mximo e mnimo
As funes max() e
print(max(1, 2, 3, 4))
min() fornecem, print(min(1, 2, 3, 4))
respectivamente, o
maior e o menor valor
entre uma lista de
argumentos.
Nmero varivel de
argumentos. 4
1
Funes
:: Arredondamento
A funo
round(x,n) x = 2.3456
aproxima um valor x print(round(x, 1))
com at n casas print(round(x, 3))
decimais. print(round(x, 6))

02 argumentos.
No resultado, prevalece o
menor valor: ou n, ou a 2.3
2.346
quantidade de casas 2.3456
decimais do nmero.
Funes
:: Chamadas aninhadas
O resultado de uma
a = -1.2 funo pode ser o
b = -2.3 argumento de outra
c = -3.4
print(int(abs(max(a,b,c)))) funo.
Funcionamento anlogo
ao conceito de funes
compostas na
1 matemtica:
=
Mdulos em Python

O Python oferece poucas


funes nativas, tais como
max() e abs().
Outras funes so
agrupadas em pacotes de
cdigos separados,
conhecidos como mdulos.
A depender do problema a
ser resolvido, o
programador pode
importar o mdulo mais
adequado soluo.
Como importar um mdulo Python?
Para importar as funes definidas em um mdulo
Python, use o seguinte comando:

from <nome_do_mdulo> import *

Pode ser o math, o random ou


outro que voc necessitar.
Mdulo math

Contm diversas funes


que podem ser
usadas em clculos
matemticos.
Mdulo math
:: Funes matemticas e constantes

exp(x) Calcula ex

log(x) Logaritmo natural de x (base e)

log10(x) Logaritmo de x na base 10

sqrt(x) Raiz quadrada de x

pi Valor da constante Pi

e Valor da constante neperiana


Mdulo math
:: Funes trigonomtricas
sin(x) Calcula o seno de x
Entrada
cos(x) Calcula o cosseno de x deve ser
informada
em radianos

tan(x) Calcula a tangente de x

asin(x) Calcula o arco-seno de x


Sada
acos(x) Calcula o arco-cosseno de x dada em
radianos

atan(x) Calcula o arco-tangente de x


Mdulo math
:: Funes trigonomtricas
Funes trigonomtricas
do Python operam em from math import *
radianos. ang = 90
print(sin(ang))
Funes teis: print(sin(radians(ang)))

radians()
converte um ngulo de
graus para radianos.

degrees() 0.8939966636005579
1.0
converte um ngulo de
radianos para graus.
Contedo

Conceitos bsicos

Variveis

Entrada e sada de dados

Operadores

Funes e Mdulos

Boas prticas de programao

Errar humano
Comentrios

Cdigos devem ser


escritos para serem lidos
por seres humanos.
Comentrios ajudam a
entender seu programa.
Os comentrios so
indicados por # e so
ignorados pelo
interpretador Python.
Boas prticas de programao
:: Comentrios
Escreva os comentrios no momento em que estiver
escrevendo o cdigo.
Os comentrios devem acrescentar informao, e no
frasear o comando:

# Multiplicacao de b por h:
area = b * h

# Calculo da area do retangulo:


area = b * h
Boas prticas de programao
:: Comentrios
Faa um cabealho no incio do arquivo para explicar a
finalidade do script

#-------------------------------------------
# UNIVERSIDADE FEDERAL DO AMAZONAS
# FULANO DA SILVA
# DATA: 25/05/2016
#
# OBJETIVO: Calcular o volume de combustivel
# em um tanque cilindrico
#-------------------------------------------
Boas prticas de programao
:: Identificadores (1/2)
Sempre use nomes descritivos e fceis de lembrar para
suas variveis:
x = 1.3 raio = 2.2

Use sempre letras minsculas em nomes de variveis:

raio = 1.3 raio_interno = 1.3


Raio = 4.6 raio_meio = 4.6
RAIO = 7.9 raio_externo = 7.9
Boas prticas de programao
:: Identificadores (2/2)
No utilize acentos nos nomes das variveis. Pode
funcionar em alguns sistemas, mas em outros, no.

rea = 1.3 area = 2.2


Boas prticas de programao
:: Expresses
Use espaos em branco para melhorar a legibilidade.
Utilize parnteses para melhorar a compreenso e evitar
erros, mesmo que no alterem a precedncia.

H=(A**2+B**2)**0.5

H = ((A ** 2) + (B ** 2)) ** 0.5


Boas prticas de programao
Defina todas as variveis no incio de cada script, a fim de
tornar mais fcil a manuteno do cdigo.

nivel = 0.8 # nivel de combustivel (m)


altura = 2.3 # altura do tanque (m)
raio = 1.5 # raio da secao vertical (m)
volume = 0 # volume de combustivel (m3)
Contedo

Conceitos bsicos

Variveis

Entrada e sada de dados

Operadores

Funes e Mdulos

Boas prticas de programao

Errar humano
Todo mundo erra
Lidar com erros faz parte do desenvolvimento de
programas.
Use as mensagens de erro a seu favor e aprenda com elas.
Explorar os erros nos Labs de Codificao ajuda a ter bom
desempenho nos Trabalhos Prticos.
Erros de sintaxe
:: O que so?
Os erros de sintaxe so
violaes das regras de
escrita da linguagem.
O interpretador Python
detecta erros de sintaxe
antes de executar o
programa.


Erros de execuo
:: O que so?
Erros de execuo so
violaes da semntica da
linguagem.
A maioria dos erros de
execuo so detectados
depois de rodar o programa.
Como interpretar mensagens de
erro?

Indica a linha em que o erro foi detectado.


O erro pode estar nessa linha ou em uma anterior.

Natureza do erro: Syntax Error (erro de sintaxe).


Explicao: o nome da varivel invlido, pois contm
espaos.
Como interpretar mensagens de
erro?

Natureza do erro: Syntax Error (erro de sintaxe).


Explicao: o interpretador chegou ao fim da linha (end of
line) sem fechar a string, pois faltou a aspa.
Como interpretar mensagens de
erro?

Natureza do erro: Syntax Error (erro de sintaxe).


Explicao: o interpretador chegou ao fim do arquivo (end of file)
sem fechar a anlise (parsing) do comando, pois faltou o parntese.
Como interpretar mensagens de
erro?

Natureza do erro: Syntax Error (erro de sintaxe).


Explicao: no possvel atribuir (assign) um valor para
uma operao (neste caso, a adio)
Como interpretar mensagens de
erro?

Natureza do erro: Syntax Error (erro de sintaxe).


Explicao: uso de caractere no esperado (conta-barra).
Como interpretar mensagens de
erro?

Natureza do erro: Zero Division Error, ou seja,


erro por diviso por zero.
Como interpretar mensagens de
erro?

Natureza do erro: Name Error (erro no nome de funes ou variveis)


Explicao: erro por usar um nome de varivel no definida previamente.
Como interpretar mensagens de
erro?

Natureza do erro: Name Error (erro no nome de funes ou variveis)


Explicao: erro por usar uma funo no existente.
Como interpretar mensagens de
erro?

Natureza do erro: Type Error (erro de tipo de dado)


Explicao: erro por usar uma funo no existente.
Referncias bibliogrficas
Menezes, Nilo Ney Coutinho (2014). Introduo
Programao com Python, 2 ed. Editora Novatec.
HETLAND, Magnus Lie (2008). Beginning Python: From
Novice to Professional. Springer eBooks, 2 ed. Disponvel
em: http://dx.doi.org/10.1007/978-1-4302-0634-7.
Dvidas?