Você está na página 1de 74

Fundamentos de

Programação I
GCC250 – Turmas 32I/33E/33F
2017-1

Parte 3 – Estrutura Sequencial


Aulas 07 e 08

Júlio César Alves www.dcc.ufla.br/~jcalves


Linguagem de Programação: Python

Criada por Guido van Rossum entre 1989 e 1991, no CWI, na Holanda.

• Tornou-se muito popular pela simplicidade e versatilidade.


• Possui bibliotecas (códigos prontos) para diversas finalidades.
Exemplo real de uso de Linguagens de Programação

Aposto que as
empresas escolhem
e usam uma
linguagem apenas...

Na empresa onde trabalhei, várias linguagens de programação diferentes eram utilizadas.

C ASP Delphi
Exemplo real de uso de Linguagens de Programação

Na empresa onde trabalhei, várias linguagens de programação diferentes eram utilizadas.

C# C++

Objective-C
Exemplos do mesmo programa em várias linguagens

C C++

FORTRAN
COBOL

Pascal

Java Python
Linguagem de Programação ideal?

Por que não existe Muitas linguagens são


apenas uma linguagem criadas com propósitos
de programação? Não específicos ou para atender
seria mais fácil? deficiências de linguagens
anteriores.

Então Não existe “a melhor


porque todo linguagem”.
mundo não Dependendo da sua
muda pra necessidade, do seu
melhor? objetivo, uma
linguagem pode ser
melhor que outra.

Por isso o mais importante é conhecer bem os conceitos de algoritmos. Pois


assim você terá facilidade de aplicá-los a qualquer linguagem de programação.
A escolha da linguagem Python

Se existem tantas
linguagens, por que
vamos aprender
Python?

• É uma linguagem mais fácil de aprender para iniciantes em programação.


• A sintaxe simples permite que o aluno perca menos tempo com erros de sintaxe.
• É uma linguagem versátil: permite rapidamente criar programas para análise de
dados, web, servidores, música, etc.
• É utilizada como primeira linguagem em universidades renomadas (ex: MIT).
• Você consegue criar algo útil mais rápido (com menos código).
• Atende à ementa da disciplina.
Interpretação x Compilação

Em Python geralmente um programa é interpretado:


• Ou seja, nós não geramos um programa realmente. O interpretador
Python lê cada linha do nosso código e vai executando cada instrução.

Já em outras linguagens (como C++) usamos um compilador que transforma


nosso código em um programa real e depois então executamos esse programa.
Comentários de código

À medida que os programas vão ficando grandes, é


interessante ter comentários no código. Você também
pode
Comentários são linhas que não viram programa. Elas servem
apenas para explicar o que está sendo feito (útil pra quem vai comentar seu
ler o código). código-fonte

# O comando abaixo escreve um texto na tela


print("Meu primeiro programa")

Quando você coloca o símbolo #, tudo que vem a seguir (até


o final da linha) é considerado um comentário.
Comentários de código

Existe também outra forma de comentar códigos em Python:


Você também
pode
""" Isso é um comentário comentar seu
de várias linhas """
''' Isso código-fonte
também '''
print("Meu primeiro programa")

Usando 3 aspas seguidas (simples ou duplas) podemos fazer


comentários que ocupam várias linhas.
Mas precisamos fechar as 3 aspas ao final do comentário.

Obs: se o símbolo # ou ‘’’ estiverem dentro de um texto (entre


aspas) ele não é considerado comentário.
Comandos em Python  Funções

Na semana anterior vimos que um algoritmo é uma sequência de comandos.


Em Python existem comandos chamados funções.

print("FP1 é bacana demais!!!")

exibir()
pra_frente(100)

exit()

print, exibir, pra_frente e exit são exemplos de funções que nós já usamos
em nossos programas.

Funções podem receber argumentos (informações adicionais) ou não. E


eles são passados dentro dos parênteses.
Se não tiver nenhum argumento, mesmo assim precisamos usar os
parênteses.

Fonte: slides do prof. Janderson


Vamos agora continuar conhecendo
conceitos básicos de algoritmos...
As fases de um algoritmo

Geralmente podemos dividir um algoritmo em três fases:


entrada, processamento e saída.

Observe as situações abaixo e indique:


• Quais são as entradas?
• Ou seja, quais são e como são passadas informações para o sistema?
• Qual é o processamento?
• O que o sistema está fazendo a partir das entradas recebidas?
• Qual é a saída?
• Que resultado é exibido de volta para o usuário após o processamento?
Entrada, Processamento e Saída

Essas fases de entrada, processamento e saída, te lembram alguma


coisa que já vimos?

Podemos fazer analogia a uma vitamina


de frutas:
• As frutas e o leite são a entrada.
• Bater as frutas é o processamento.
• E a vitamina é a saída.
Passos para implementação de um algoritmo

• Variáveis de entrada As informações que serão


Passo 1:
fornecidas pelo usuário.

• Variáveis de saída Os resultados que serão


Passo 2:
mostrados pelo programa.

• Definição do Processamento As operações necessárias para transformar


Passo 3:
os dados de entrada em dados de saída.

• Criação de casos de teste Valores de entrada de exemplo com seus


Passo 4:
respectivos valores de saída.

• Escrita do código do programa Implementação do programa em uma


Passo 5: linguagem de programação.

• Teste do programa Testes do programa para garantir que ele


Passo 6: está funcionando corretamente.
Aprendendo a fazer com um exemplo

Como ainda temos um pouquinho de coisas a aprender antes de conseguirmos


fazer um Facebook ou um jogo, vamos pensar em algo mais simples.

O cálculo de IMC é usado para saber a faixa de peso de uma pessoa (se é a ideal,
ou se está abaixo ou acima da ideal).

Se formos criar um algoritmo para calcular o IMC de uma pessoa, quais seriam:
• Passo1: Os dados de entrada? O peso e a altura
• Passo2: Os dados de saída? O valor do IMC calculado
• Passo 3: O Processamento? O próprio cálculo do IMC
Definindo os casos de teste

Agora que já definimos a entrada, o processamento e a saída, o Passo 4 é


definir os casos de teste.
Ou seja, vamos pensar em possíveis valores para as entradas e calcular quais
seriam as saídas (sem usar programação).

Casos de Teste:
Fazendo os cálculos necessários “na mão”
Peso: 80 kg e Altura: 1,78 IMC: 25,2
nós podemos nos assegurar que:
Peso: 130 kg e Altura: 2,01 IMC: 32,2 • Nós sabemos qual é a estratégia para
resolver o problema.
Peso: 49 kg e Altura: 1,58 IMC: 19,6
• Nós teremos como testar nosso
programa depois de pronto.
Entradas Saídas
A Memória

O próximo passo é a escrita do código.


Mas para isso precisaremos conhecer um pouco mais sobre o
uso da memória.
Repare que quando falamos das fases do algoritmo (entrada,
processamento e saída) nós não mencionamos a memória.

Nós usamos a memória especialmente para guardar os dados de entrada.


• Para que o processador realize o processamento das informações, ele precisa
buscá-las de algum lugar.

Durante o processamento muitas vezes é necessário guardar informações


temporárias na memória.
• Ex: para calcular as raízes de uma equação do segundo grau é necessário calcular
o delta.
Por fim, o que a saída exibe, muitas vezes, são dados presentes na memória.
Mas como usar a memória?

Se o processamento precisa que os dados estejam na memória,


precisamos descobrir como podemos guardar as informações nela.
Vamos analisar isso mais de perto.

Nós já vimos que o computador


entende apenas 0’s e 1’s.
Então adivinha como os dados são
guardados na memória?
Mas como usar a memória?

Antes de fazer algum processamento precisamos então pegar os


dados do usuário e guardar na memória como 0’s e 1’s.

Você está
falando
sério?

Fazer isso é mais fácil do que se parece!


Exemplo de Memória e Variáveis
Podemos referenciar dados na memória usando variáveis. v1 v2
Podemos entender uma variável como um nome dado a uma região de v5
memória. v4
• Assim todas as vezes que usarmos esse nome, estaremos falando para o
v3
processador acessar a região de memória com aquele nome.
Variáveis

Bom, nós já vimos que os algoritmos possuem entrada, processamento e


saída.
Vimos também que no caso do IMC a entrada são o peso e a altura.
Nós também vimos que, para fazer o processamento, os dados de entrada
precisam estar na memória.
E por último vimos que guardamos dados na memória utilizando variáveis.

Qual deve ser então a primeira coisa a ser feita em um algoritmo que calcula o IMC?

Precisamos definir as variáveis que referenciarão os dados de entrada.


Variáveis

Como vimos variáveis possuem um nome.


Que nome poderíamos dar para as variáveis que
guardarão o peso e a altura da pessoa?

Poderíamos chamá-las
de v1 e v2 ou de p e a.

Poder, até poderíamos. Mas o ideal é que os nomes sejam bem


representativos.
Vamos usar então: peso e altura.
Nomeando uma variável

Nomes de variáveis em Python podem conter letras, números e o


caractere sublinhado ( _ ). Mas não pode começar com números.

Portanto, podemos usar os nomes


Já os nomes abaixo são inválidos
abaixo para variáveis em Python:
para variáveis em Python:
peso1
peso medio
salario
1peso
salario_médio
peso.médio
_salario
peso$
salário

A Linguagem Python é case-sensitive, ou seja, ela considera diferentes palavras que


tenham maiúsculas/minúsculas diferentes.
Ex: se você chamar uma variável de “peso”, você não pode usá-la digitando “Peso”.
Usando uma variável

Para que uma variável referencie um dado, nós usamos o Pode deixar
operador de atribuição (sinal de igual). que eu
cuido disso!
Por exemplo, se quisermos guardar o valor 80 na variável peso,
nós dizemos que estamos atribuindo o valor 80 à variável peso.

Em Python nós fazemos isso com a seguinte sintaxe:


variavel = valor;

peso = 80 Ao usar uma variável pela primeira


altura = 1.75 vez, estamos declarando a variável.

Do lado esquerdo da Já do lado direito podemos ter um valor,


atribuição podemos ter uma outra variável ou uma expressão (algo
apenas a variável. que ao ser resolvido se torne um valor).
Tipo de dado

Além de um nome, uma variável também tem um tipo.

A linguagem Python define alguns tipos básicos para os


dados (também chamados de tipos primitivos).

Por exemplo:
• 5 é um número inteiro (int)
• 5.1 é numero de real ou de ponto flutuante (float)
• “Tiao” é um texto ou uma string (str)

>>> type(5)
Nós podemos verificar o tipo de um <class 'int'>
>>> type(5.1)
dado em Python usando a função type:
<class 'float'>
>>> type("Tiao")
<class 'str'>
Tipo de uma variável

No caso da linguagem Python o tipo da variável se refere ao tipo


de dado que a variável está guardando em um dado momento.

Portanto, uma variável pode guardar um valor inteiro e depois


guardar um texto, por exemplo. *

>>> peso = 80
>>> altura = 1.75
>>> type(peso)
<class 'int'>
>>> type(altura)
<class 'float'>

* Obs: em muitas linguagens de programação uma variável tem um tipo de


dados fixo pré-definido, portanto só pode guardar dados daquele tipo.
Tratando o Processamento

O próximo passo é fazer o processamento. E no nosso exemplo o


processamento é o próprio cálculo do IMC.

# declarando as variaveis de entrada e seus valores


peso = 80
altura = 1.75

# declarando a variavel de saida e processando o IMC


resultado = peso / (altura * altura)

Agora nós já fizemos então a entrada e o processamento. Portanto, falta a


saída.
Para isso nós usamos o comando print. Podemos usá-lo também para exibir o
valor de uma variável.
Programa para calcular o IMC

# declarando as variaveis de entrada e seus valores


peso = 80
altura = 1.75

# declarando a variavel de saida e processando o IMC


resultado = peso / (altura * altura)

# exibindo o valor calculado


print(resultado)

Terminamos o Passo 5 do algoritmo (escrita do código).


Qual é o próximo passo?

Testar nosso algoritmo!


Programa para calcular o IMC - Testes

Vamos pegar os casos de teste que havíamos definido no Passo 4 e


testar nosso algoritmo.

Vamos alterar nosso código e executar o programa para cada caso de


teste.

Casos de Teste: Execução do Programa:


Peso: 80 kg e Altura: 1,78 IMC: 25,2 25.24933720489837

Peso: 130 kg e Altura: 2,01 IMC: 32,2 32.17742135095667

Peso: 49 kg e Altura: 1,58 IMC: 19,6 19.62826470116968


Calculando o IMC da sala inteira

Repare que nosso programa tem um problema.


Para cada pessoa que eu quiser calcular o IMC eu preciso alterar o
código do programa.

Na verdade o que queremos é ter um único programa que possa ser


usado por qualquer pessoa.
Ou seja, o usuário é quem deve informar o peso e a altura na hora da
execução do programa.
Entrada Padrão

Existe um comando para obter os dados da entrada padrão: input.

O comando input lê uma linha inteira de dados da Por exemplo, o programa abaixo exibiria
entrada padrão (teclado), como texto (string),. de volta um texto digitado pelo usuário.
A sintaxe é: texto = input()
variavel = input() print(texto)

Mas para calcular o IMC, nós queremos ler o peso e a altura como números reais.
Nesse caso, usamos a função float (que é o tipo real em Python) para transformar
o texto digitado pelo usuário em um número real.

peso = input()
peso = float(peso) Ou de forma peso = float(input())
altura = input() mais direta: altura = float(input())
altura = float(altura)
De forma similar, se quiséssemos um
número inteiro, usaríamos a função int.
Cálculo de IMC: obtendo dados de entrada do usuário

O comando input pode receber um texto como argumento, que é


exibido para o usuário antes dele digitar o dado.

# declarando as variaveis de entrada e pedindo ao


# usuario que informe seus valores
peso = float(input("Digite o peso: ")) Ao chegar a essa linha o programa ficará
altura = float(input("Digite a altura: ")) esperando o usuário digitar um valor e
apertar ENTER.
# declarando a variavel de saida e processando o IMC
resultado = peso / (altura * altura)
Nessa linha acrescentamos um texto para deixar a
# exibindo o valor calculado informação mais clara. Repare que podemos exibir várias
print("O seu IMC eh:", resultado) informações usando um único print.

Supondo que o usuário digite peso 80 e Digite o peso: 80


altura 1.78 a execução do programa Digite a altura: 1.78
seria como a imagem ao lado: O seu IMC eh: 25.24933720489837
Exercício Resolvido 01

Os funcionários de seu setor receberam 23,7% de aumento de salário!


Faça um programa que, a partir de um valor de salário passado pelo usuário, calcula e exibe o
novo salário.
Exercício Resolvido 01 – Resposta – Parte 1

Os funcionários de seu setor receberam 23,7% de aumento de salário!


Faça um programa que, a partir de um valor de salário passado pelo usuário, calcula e exibe o
novo salário.

Passo 1 – dados de entrada: Passo 4 – casos de teste:


salário 1000  1237
850  1051.45
Passo 2 – dados de saída: 2222  2748.614
salário com aumento
Passo 5 – escrita do código
Passo 3 – processamento:
salário * 1.237
Exercício Resolvido 01 – Resposta – Parte 1

Os funcionários de seu setor receberam 23,7% de aumento de salário!


Faça um programa que, a partir de um valor de salário passado pelo usuário, calcula e exibe o
novo salário.

Passo 5 – Escrita do código: Passo 6 – Testes:


# obtendo o salario do usuario casos de teste:
salario = float(input("Digite o salario atual: ")) 1000  1237 850  1051.45
2222  2748.614
# calculado o aumento
novo_salario = salario * 1.237 C:\Users\Julio\Desktop>python teste.py
Digite o salario atual: 1000
# exibindo o resultado O salario com aumento eh: 1237.0
print("O salario com aumento eh:", novo_salario)
C:\Users\Julio\Desktop>python teste.py
Digite o salario atual: 850
O salario com aumento eh: 1051.45

C:\Users\Julio\Desktop>python teste.py
Digite o salario atual: 2222
O salario com aumento eh: 2748.614
Erros no código

É muito comum cometermos erros enquanto


estamos escrevendo o código de um programa.
Mesmo programadores experientes cometem
erros a todo momento.

O mais importante não é não cometer erros e sim conseguir identificar e corrigir os erros.

Os erros podem ser de sintaxe ou de semântica. Vamos ver alguns exemplos.


Suponha o código abaixo. Você vê algum problema nele?

Está faltando fechar as aspas antes de


fechar os parênteses.

#Esse comando escreve um texto na tela


print ("Meu Primeiro Programa)

O que acontece quando tentamos executar esse programa?

File "teste.py", line 2


print ("Meu Primeiro Programa)
^
SyntaxError: EOL while scanning string literal

O interpretador detectou o problema e apresentou o que chamamos de


erro de sintaxe.
• Ele apresenta também uma mensagem (em inglês) indicando o problema que
ele encontrou (e que geralmente nos ajuda a resolver o problema).
• Nesse exemplo, a mensagem diz que na linha 2 do arquivo apareceu um erro. Ela
diz ainda que chegou ao final da linha sem terminar a string.
Erros de sintaxe

O que fazer quando o interpretador encontra erros no código (sim, podem ser mais de um):
• Avaliar a linha onde ocorreu o problema e a mensagem apresentada pelo compilador.
• Pode ser que o problema aconteceu em alguma linha anterior (o compilador mostra onde ele
conseguiu perceber o problema).
• Corrigir o problema.
• Salvar novamente o código-fonte.
• Executar novamente o programa.
• Esse processo deve ser repetido até não existir mais nenhum erro de compilação.

Os erros de sintaxe são os “melhores” tipos de erros, porque pelo menos tem alguém (o
interpretador) que nos avisa que ele aconteceu.
Erros de lógica

Mas existem também erros mais difíceis de achar.


São os chamados erros de lógica ou de semântica.

Suponha que seu amigo ficou empolgado que você agora já sabe
fazer programas que escrevem texto na tela e pediu que você fizesse
um programa que escreve: “Cruzeiro Campeao!!!”.
Você fez então o programa abaixo:

# Mostrando que o Cruzeiro foi campeao


print ("Campeao!!!")
Erros de lógica

# Mostrando que o Cruzeiro foi campeao


print ("Campeao!!!")

Esse programa funciona?

Veja que o programa vai ser executado, mostrando um texto na tela.


Portanto, funcionar ele funciona!

Mas ele faz o que foi pedido?

Não! Portanto, ele não é um programa correto.


É isso que chamamos de erro de lógica. Claro que esse é um exemplo bem
simples, mas pense, por exemplo, num cálculo de média errado.
Erros em tempo de execução

Existe ainda um outro tipo de erro: erros em tempo de


execução.
São falhas que finalizam nosso programa inesperadamente
por algum código que escrevemos errado (ex: se tentarmos
fazer uma divisão por zero).

a = 10
b = 0
c = a / b
print(c)

Traceback (most recent call last):


File "teste.py", line 3, in <module>
c = a / b
ZeroDivisionError: division by zero
Sintaxe e Semântica

Vi que problemas no Sintaxe é um conjunto de


código podem ser erros regras que define a forma de
sintáticos. Mas afinal o uma linguagem,
que é sintaxe? estabelecendo como são
compostas as suas estruturas
básicas (palavras).
E o que é
semântica? Já que
erros lógicos são
chamados de erros
semânticos... A semântica
descreve o
significado de
construções
sintáticas válidas.
Cuidados ao usar variáveis

O que acontece se tentarmos executar o seguinte programa:

print(a)
a = 10 Não podemos usar uma variável
antes de declará-la

Traceback (most recent call last):


File "teste.py", line 1, in <module>
print(a)
NameError: name 'a' is not defined
Seu lugar
não está
reservado!
Cuidados ao usar variáveis

O que acontece ao executarmos ano_nascimento = input("Digite seu ano de nascimento: ")


o seguinte programa? ano_atual = input("Digite o ano atual: ")
idade = ano_atual - ano_nascimento
print("Esse ano você completa", idade, "anos")

Digite seu ano de nascimento: 1982


Digite o ano atual: 2017
Traceback (most recent call last):
File "teste.py", line 3, in <module>
idade = ano_atual - ano_nascimento
TypeError: unsupported operand type(s) for -: 'str' and 'str'

Veja que foi identificado um erro na linha 3 ao fazer a subtração.


E a mensagem de erro é: tipo de operação não suportada para -: string e string

O problema é que usamos o input sem fazer a conversão de dados.


Assim, os números digitados foram guardados nas variáveis como textos (strings), e
não existe operação de uma string “menos” a outra.
Cuidados ao usar variáveis

E o programa abaixo, funciona ou mostra erro?

ano_nascimento = input("Digite seu ano de nascimento: ")


idade = input("Digite a sua idade no ano atual: ")
ano_atual = ano_nascimento + idade
print("Entao estamos no ano de", ano_atual)

Digite seu ano de nascimento: 1982


Digite a sua idade no ano atual: 35
Entao estamos no ano de 198235

Repare que neste caso o programa executou normalmente. Mas ele possui um erro
lógico, ou seja, não gera o resultado esperado.

Isso aconteceu porque o operador + é válido para strings. Ele concatena duas strings
(gera uma nova string com a junção das strings utilizadas).
Voltando aos nomes de variáveis

Um programa (...) deve ser


lido por seres humanos.
(...) Mais que isso: um
programa deve
ser agradável de ler.
D.E. Knuth

Algumas palavras são reservadas, e não podem ser usadas como


identificadores.
Exemplos:
• if, break, int, float, for, while, etc.
Python: alinhamento vertical.

O alinhamento entre as linhas de código é muito importante em Python.

Veremos mais pra frente que um espaço no início de uma linha tem
significado. Portanto, não podemos usá-lo de qualquer jeito.

print("linha 1")
O erro acontece por causa print("linha 2")
do espaço que existe antes
do print na segunda linha.
File "teste.py", line 2
print("linha 2")
^
IndentationError: unexpected indent
Treinando o que aprendemos

O que
esse
programa
vai exibir
na tela? #print(“Como nao sou um aluno aplicado”
#print(“e dormi durante a aula, nao”)
print(“entendi”)
#print(“muito bem”)
print(“a materia”)
#print(“apresentada pelo professor!”)
Exercício Resolvido 02

Faça um programa que solicite ao usuário o tamanho do lado de um quadrado e desenhe um


quadrado desse tamanho usando o módulo Tartaruga.
Exercício Resolvido 02 – Resposta – Parte 1

Faça um programa que solicite ao usuário o tamanho do lado de um quadrado e desenhe um


quadrado desse tamanho usando o módulo Tartaruga.

Passo 1 – dados de entrada: Passo 4 – casos de teste:


lado do quadrado Lado 100  desenho do quadrado
Lado 200  quadrado com lados duas
Passo 2 – dados de saída: vezes maiores
Lado 5  quadrado bem pequeno
desenho do quadrado

Passo 5 – escrita do código


Passo 3 – processamento:
exibir a tartaruga
andar pra frente a distância dada pelo lado do quadrado
virar 90º pra esquerda
(repetir os dois últimos comandos 4 vezes)
Exercício Resolvido 02 – Resposta – Parte 1

Faça um programa que solicite ao usuário o tamanho do lado de um quadrado e desenhe um


quadrado desse tamanho usando o módulo Tartaruga.
from tartaruga import *

lado = int(input("Digite o tamanho do lado: "))


angulo = 90
Poderíamos ter colocado o valor 90 diretamente
nas chamadas da função esquerda. Mas
exibir() geralmente preferimos usar variáveis.
pra_frente(lado)
esquerda(angulo)
pra_frente(lado) Passo 6 – Testes
esquerda(angulo)
Executamos o programa com os lados
pra_frente(lado)
100, 200 e 5, como definido nos casos
esquerda(angulo)
de teste.
pra_frente(lado)
esquerda(angulo)

terminar()
Reforçando o aprendizado

Refaça em casa o programa do IMC apresentado na aula.

Provoque erros também (errar propositalmente o nome de


uma variável, por exemplo). É muito importante se
acostumar com as mensagens do interpretador.

Por fim, tente fazer em casa os programas listados no próximo slide.


Exercícios

1) Faça um programa que receba o salário de um funcionário e também o percentual de


aumento e calcule e escreva o novo salário.

2) Faça um programa que leia três notas e seus respectivos pesos, calcule e escreva a média
ponderada dessas notas.

3) Faça um programa que receba o salário base de um funcionário, calcule e mostre o salário
a receber, sabendo-se que o funcionário tem gratificação de 5% sobre o salário base e
paga imposto de 7% sobre este salário.

4) Faça um programa que receba o valor de um depósito e o valor da taxa de juros, calcule e
escreva o valor do rendimento e o valor total depois do rendimento.
Parte 3 - Conceitos Básicos
Aula 08 - Aula Prática
Dicas importantes

A estratégia de solução de um problema é algo que você precisa pensar antes do código do programa.
• Se você não sabe como resolver o problema, não adianta escrever código.
• Tendo a solução basta escrever na linguagem de programação.
• IMPORTANTE: faça o rascunho da solução no caderno antes de programar!

Tente pensar na estratégia de solução usando as fases de um algoritmo:


entrada, processamento, saída e casos de teste.

O mais importante agora não é entregar o exercício.


E sim pensar na solução e entender o que está sendo feito.
Portanto, discutir a solução com o colega é bom!
Mas olhar a solução dele não vai te ajudar a aprender.
Exercício 01

Usando o Geany faça o programa abaixo.

Faça um programa que recebe um número N inteiro digitado pelo usuário e exibe em uma linha
o dobro de N, e na linha seguinte o triplo de N.

Dicas:
• Pense primeiro em quais são os dados de entrada, depois em quais cálculos são necessários
(processamento) e, por fim, em quais informações precisam ser exibidas (saída).
• Em seguida, pense nos casos de teste. Ou seja, alguns valores possíveis de N e o que seria exibido pelo
programa para cada valor.
• Rascunhe a solução no caderno antes de fazer o programa.
• Lembre-se que Python tem os seguintes tipos de dados (entre outros):
• int números inteiros
• float números decimais
• str texto
• Coloque comentários no seu código explicando para você mesmo o que está fazendo.
Exercício 01 – Reposta – Parte 1

Usando o Geany faça o programa abaixo.

Faça um programa que recebe um número N inteiro digitado pelo usuário e exibe em uma linha
o dobro de N, e na linha seguinte o triplo de N.
Exemplo de rascunho de solução:

Problema:
Calcular o dobro e o triplo de um número N.
Entradas:
Um número inteiro N  variável inteira N.
Processamento:
Calcular o 2 * N  variável inteira dobro.
Calcular o 3 * N  variável inteira triplo.
Saída:
Escrever na tela os valores de dobro e triplo em linhas separadas.
Casos de Teste:
N: 2  4 e 6 N: 25 50 e 75 N: 123483  246966 e 370449
Exercício 02 – Resposta – Parte 2

Uma possível solução

# declarando a variavel que guarda o numero e


# pedindo ao usuario que digite o valor (entrada)
n = int(input("Digite o valor de N: "))

# fazendo os calculos necessarios


dobro = 2*n
triplo = 3*n

# exibindo os resultados
print("O dobro eh:", dobro)
print("O triplo eh:", triplo)
Exercício 02

Usando o Geany faça o programa abaixo.

Faça um programa que recebe um número N inteiro digitado pelo usuário e exibe em uma linha
o dobro de N, e na linha seguinte o triplo de N.
Ao terminar seu programa você deve testá-lo.
• Testar o programa não é executá-lo uma única vez.
• E sim executá-lo várias vezes e em cada uma usar um valor
diferente de entrada (de preferência baseando-se nos
casos de testes).
Digite o valor de N: 2
O dobro eh: 4
Obs: nesse primeiro programa pode parecer desnecessário. Mas O triplo eh: 6
acredite, isso fará muita diferença!
Digite o valor de N: 25
O dobro eh: 50
O triplo eh: 75

Digite o valor de N: 123483


O dobro eh: 246966
O triplo eh: 370449
Python Tutor

O Python Tutor é um site que nos permite executar um programa em Python linha por
linha e nos mostra uma representação dos dados em memória.
Isso pode ajudar muito na hora de fazermos exercícios!

O endereço é:
www.pythontutor.com
Obs: há um link no Campus Virtual.

Nos vídeos da disciplina há


um que explica o uso do
Python Tutor.
Módulos em Python
Os programas completos que usamos no dia a dia geralmente tem centenas ou
milhares de linhas de código.
Imagina como seria confuso se todo esse código ficasse em único arquivo.

Para organizar o código do programa, geralmente os códigos são separados em


arquivos diferentes (todos com extensão .py). Nós chamamos de módulos esses
arquivos de código Python.

Mas como posso acessar


os comandos (códigos)
escritos em um módulo?

Para usar um módulo, usamos o seguinte comando no início do arquivo do nosso programa:

from modulo import função

Colocamos aqui o Colocamos aqui o


nome do módulo nome da função
Módulos Úteis

Mas vamos precisar fazer Por hora não há necessidade de criarmos módulos para os
programas tão grandes nossos códigos.
assim agora?
Mas o que já é muito interessante é poder utilizar os
módulos disponibilizados pela linguagem Python.

Quando instalamos o Python nós ganhamos não só o


interpretador (que executa nossos programas) e o editor
(IDLE), mas também um monte de códigos prontos que
podemos utilizar em nossos programas (módulos).

Um exemplo de módulo muito útil é o math.


Com ele podemos usar diversas funções matemáticas, tais como: seno, cosseno,
valor de PI, conversão graus e radianos, logaritmo, etc.
Módulo math

Por exemplo, suponha que precisamos calcular o log216.


O módulo math possui a função log(x, base). Com ela eu posso passar o valor para o
qual eu quero calcular o logaritmo e a base e ele me retorna o resultado.

Como podemos fazer então esse cálculo em Python?

# importa o comando log do modulo math


from math import log

# calcula o log de 16 na base 2


resposta = log(16, 2)

# exibe o resultado do calculo


print(resultado)
Módulo math

Essas são algumas das funções disponíveis no módulo math.

ceil(x) Retorna o teto de um número. Ex: ceil(2.1)  3

floor(x) Retorna o piso de um número. Ex: floor(2.9)  2

trunc(x) Retorna a parte inteira de um número. Ex: trunc(2.6)  2

sqrt(x) Retorna a raiz quadrada de um número. Ex: sqrt(25)  5.0

pi Valor da constante PI.

sin(x) Retorna o seno do ângulo, em radianos, passado. Ex: sin(pi)  1.22..e-16

cos(x) Retorna o cosseno do ângulo, em radianos, passado. Ex: cos(pi)  -1.0

tan(x) Retorna a tangente do ângulo, em radianos, passado. Ex: tan(pi)  -1.22..e-16

degrees(x) Converte o ângulo em radianos passado para graus. Ex: degrees(pi)  180

radians(x) Converte o ângulo em graus passado para radianos. Ex: radians(180)  3.1415..

O comando round (arredondamento) está disponível built-in, ou seja, sem precisar importar
nenhum módulo. Ex: round(2.5)  3
A função help

A linguagem Python possui uma função chamada help.


Passando para ela um outro comando como parâmetro ela exibe uma ajuda sobre
como utilizar aquele comando (em inglês).

from math import sin

help(sin)
Wiki – Mensagens de Erro do Python

Não se esqueça que você pode usar a Wiki no Campus Virtual


para buscar mais informações sobre as mensagens de erro que
podem ocorrer em seu programa.
Uso do Dredd

Vamos agora aprender a usar o Dredd


para resolvermos as listas de exercícios.
A partir de agora a aula seguirá a metodologia self-paced
learning, ou seja, cada um fará as atividades em seu próprio
ritmo, e o professor os auxiliará durante as atividades.

Para começar, acesse a página da disciplina no Moodle.


E baixe a apresentação que tem os slides da aula de
hoje: “GCC250 - Parte 03 – Estrutura Sequencial”.
Siga então os slides a partir deste.
Exercício 03

Faça um programa que receba quatro números inteiros, calcule e mostre a soma desses
números.
Exercício 04

Faça um programa que faça a conversão de moedas. Ou seja, dada uma quantia em dólar, o
programa deve informar quanto essa quantia vale em reais.
Use a cotação de moeda: U$ 1,00 = R$ 3,70.
Exercício 05

Dada a equação y = x3 + 2x2 + 5, faça um programa que, a partir de um valor de x informado pelo
usuário, calcule e exiba o valor de y.
Acostumando-se a identificar e corrigir erros em programas

Como já vimos, é muito comum que ocorram erros durante a


programação.
Tais erros podem ser:
• Sintáticos (error).
• Erros em tempo de execução (runtime error).
• Semânticos ou de lógica.
Exercício

Para cada alteração abaixo:


a) Execute seu programa e veja a mensagem de erro.
b) Tente entender a mensagem de erro (use a Wiki do Campus Virtual, se necessário).
c) Em caso de dúvidas chame o monitor ou o professor.

1) Altere o programa do exercício 02 retirando as aspas finais da linha que pede o valor de N.
2) Volte as aspas finais e agora retire as aspas iniciais.
3) Volte as aspas iniciais, mas agora comente a linha (coloque # no início da linha)
4) Retire o comentário do item anterior e em uma linha que tenha print retire a vírgula que
separa o texto da variável.
5) Retire o caractere # de uma linha que seja um comentário.
Que bacana que conseguiu chegar até aqui!! A partir de
agora, vamos começar a fazer a lista de exercícios.
Acesse a lista de exercícios no Dredd.

Continue fazendo a lista de exercícios em casa.


É muito importante fazer a maior parte a lista antes da
próxima aula.

Você também pode gostar