Computadores e Programao - Departamento de Física da

Propaganda
Computadores e Programação
Engª Biomédica
Departamento de Física
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Ano Lectivo 2006/2007
FICHA 1
AMBIENTE DE PROGRAMAÇÃO PYTHON
1.1 Objectivos
Objectivos que o aluno é suposto atingir com esta ficha:
- Ser capaz de lançar o intérprete Python;
- Utilizar sem dificuldade os comandos de edição de linha;
- Executar algumas instruções Python interactivamente;
- Introduzir, executar e modificar scripts Python.
1.2 O Intérprete da Linguagem Python
A linguagem Python é uma linguagem interpretada. Isso significa que uma sequência
de instruções sob a forma de um script (ou seja um programa), ou uma instrução
isolada, é traduzida para instruções de mais baixo nível (linguagem máquina) no
momento de execução, em vez de ser previamente traduzida para um programa em
linguagem máquina, como sucede nas linguagens compiladas.
O intérprete que vai ser utilizado nas aulas práticas desta disciplina, permite
não só a execução de scripts, como a execução de instruções isoladas,
interactivamente.
Como primeira tarefa, pretende-se que o aluno lance o intérprete Python,
procurando para tal, no menu de Iniciar Programas a pasta do Python. Nessa pasta
deve encontrar algo como o que se ilustra de seguida
Computadores e Programação – Engª Biomédica 2006/07 – Ficha 1
Página 1 de 7
Clique em IDLE (Python GUI) e verá surgir uma janela como a que se mostra;
Repare no símbolo >>> . Este símbolo indica o local onde devem ser introduzidas as
instruções Python que serão interpretadas assim que se pressione a tecla <Enter>.
Por vezes, esse símbolo é designado por prompt.
Por exemplo, escrevendo cidade=”Coimbra” <Enter>1 a seguir ao prompt, o
intérprete vai criar internamente um objecto contendo a cadeia de caracteres
“Coimbra”, atribuindo-lhe de seguida o nome cidade. Referências posteriores a esta
cadeia de caracteres terão de ser feitas através deste nome, cidade. Se por exemplo
pretender visualizar na consola o conteúdo do objecto a que se refere o nome cidade,
poderá fazê-lo executando a instrução print cidade <Enter>. Esta sequência de duas
instruções está ilustrada na figura seguinte,
1
Quando se apresenta <Enter> pretende-se indicar que se deve premir a tecla Enter
Computadores e Programação – Engª Biomédica 2006/07 – Ficha 1
Página 2 de 7
Como se pode verificar, o intérprete utiliza várias cores para facilitar a identificação
das várias palavras introduzidas e/ou apresentadas.
1.3 Scripts
O tipo de utilização do intérprete apresentado na secção anterior não é muito
adequado à execução de listas longas de instruções, pois nessa situação teríamos de
as introduzir uma a uma, e se cometêssemos um só erro pelo meio, seríamos
obrigados a recomeçar a tarefa desde o início! O mesmo problema se coloca, no caso
de se pretender executar várias vezes a mesma sequência de instruções.
Quando se pretende executar muitas instruções seguidas sequencialmente (isto é um
programa), deve-se criar um ficheiro contendo essas mesmas instruções a executar.
Este ficheiro em Python designa-se por script e pode ser invocado a partir da linha de
comando do intérprete.
No caso concreto do ambiente ao nosso dispor (IDLE), pode-se criar um script através
do menu File do intérprete, escolhendo de seguida a opção New Window. Surgirá uma
janela de edição onde as instruções Python que formam o programa devem ser
introduzidas.
No caso anterior, e após introduzir (dactilografar) as instruções em causa, temos que:
Agora salve o script, indo ao menu File e clicando em Save (guarde o script num local
fácil de encontrar, por exemplo no Desktop/Ambiente de Trabalho).
Computadores e Programação – Engª Biomédica 2006/07 – Ficha 1
Página 3 de 7
De seguida, pode executar este script, indo ao menu Run e escolhendo Run Module.
Qual é o resultado?
Reparou que a primeira linha do script começa por #? Trata-se de uma linha de
comentário, destinada a ser lida por pessoas e que não é executada pelo intérprete. Os
comentários são muito úteis para incluir informação adicional que permita a alguém
que esteja a analisar o programa (por vezes o próprio criador do programa, muito
tempo depois de o ter concebido), perceber melhor o funcionamento de certas partes
menos claras do código.
Vamos agora alterar o nosso programa, introduzindo algumas instruções mais
interessantes, por exemplo, leitura do teclado.
Usando o mesmo editor, altere o script para obter o seguinte:
#
# Autor : Luis Cruz
# Data : 24 de Setembro de 2004
#
# Observações : O meu programa esta agora muito maior!
#
cidade="Coimbra"
# Cria uma cadeia de caracteres
nome=raw_input("Qual o seu nome ? ")
# raw_input le uma cadeia de caracteres
print "Olá "+nome+" de "+cidade
# Imprime uma saudação personalizada
idade=input("Qual a sua idade (em anos)? ")
# input le um inteiro
print "O ",nome," tem ",idade," anos,", #Imprime mensagem concatenada com nome e idade
print "ou aproximadamente ",idade*12," meses."
# Apresenta idade em meses
Examine cuidadosamente o programa, e execute-o. Verifique se as instruções fazem o
que esperava.
Se não for esse o caso, peça ajuda ao professor.
1.4 Tipos de Dados
No programa anterior foram usados dois tipos diferentes de dados, cadeias de
caracteres e inteiros.
As cadeias de caracteres (ou strings em Inglês), servem para representar palavras, ou
pedaços de texto ou ainda qualquer informação que seja uma sequência de caracteres.
No exemplo dado, mostrou-se também uma operação muito comum que consiste em
criar uma cadeia de caracteres por junção de outras cadeias de caracteres, operação
que em geral se designa por concatenação de cadeias de caracteres. Um exemplo é
a construção de comando print "Olá "+nome+" de "+cidade, em que a cadeia “Olá” é
concatenada com o conteúdo de nome com a cadeia “ de ” e também com a cadeia
cujo nome é cidade (todos estes tipos de dados são cadeias de caracteres). Outra
Computadores e Programação – Engª Biomédica 2006/07 – Ficha 1
Página 4 de 7
operação executada é a leitura de uma cadeia de caracteres, nome=raw_input("Qual o
seu nome ? ")
Os dados de tipo inteiro servem como é óbvio para representar informação numérica
inteira e sobre eles podemos efectuar as operações aritméticas usuais. No programa
mostra-se a multiplicação de um literal numérico pelo conteúdo de uma variável
inteira (em idade*12). Também se mostra como se pode pedir ao utilizador para
introduzir um inteiro colocando o valor introduzido em memória sob um determinado
nome: idade=input("Qual a sua idade (em anos)? ")
A linguagem Python suporta outros tipos de dados, que iremos estudar em aulas
futuras. Para já, o aluno fica consciente de que também pode utilizar números reais e
complexos, sendo ainda suportadas as operações mais vulgares associadas a esses
tipos de números.
Um número é considerado real sempre que nele figura um ponto decimal (por exemplo
3.1415) ou se este for introduzido usando a representação mantissa
e
expoente (por
exemplo 31415e-4). Experimente introduzir a instrução
>>> pi=3.1415
que criará um real com valor 3.1415 com nome pi. De seguida, escreva apenas
>>> pi <Enter>
O resultado é o esperado?
Verifique o tipo de objecto, executando
>>> type(pi)
O intérprete indica que se trata de um float , isto é, um número em vírgula flutuante,
que é um dos formatos utilizados para representar números reais.
Introduza agora as instruções
>>> raio=1.5
>>> perimetro=2*pi*raio
>>> perimetro
o valor apresentado é obviamente o perímetro de um círculo de raio 1.5
Poderia ter obtido o mesmo valor fazendo simplesmente
>>> 2*3.1415*1.5
Computadores e Programação – Engª Biomédica 2006/07 – Ficha 1
Página 5 de 7
Os
números
complexos
são
introduzidos
<parte_real>+<parte_imaginária> j, tal como em
usando
o
formato
>>> complexo=1+1j
sendo também possível introduzir um número complexo usando a função complex(),
tal como se ilustra
>>> complexo_2=complex(2,2)
Entre as operações suportadas pelos números complexos, contam-se a obtenção da
sua parte real e imaginária, como se exemplifica a seguir
>>> complexo.real
e
>>> complexo.imag
Termina aqui esta breve introdução ao Python. Nas próximas aulas há mais. I´ll be
back ☺
1.5 Exercícios sugeridos
1.
Altere o programa anterior para que este peça ao utilizador além do nome
(tal com está feito), também o dia, o mês e o ano de nascimento (tenha em
especial atenção as diferenças entre input e raw_input). Grave o novo
programa sob o nome de prob_1_1.py
2.
Tomando por base o programa apresentado nos parágrafos anteriores, crie
um programa que leia dois valores numéricos introduzidos pelo utilizador e
imprima a sua soma, diferença, produto e quociente, sendo cada operação
indicada por cima do resultado. Teste-o com (pelo menos) os pares de
valores 4 e 2, 5 e 2, 2 e 3 e ainda 2 e 0. Grave este programa sob o nome
de prob_1_2.py (Nota: Os operadores necessários são +,-,* e /).
3.
Efectue os cálculos do ponto anterior interactivamente.
4.
Divida 5 por 2. Repita o cálculo dividindo 5 por 2.0. Explique a diferença de
resultados.
Computadores e Programação – Engª Biomédica 2006/07 – Ficha 1
Página 6 de 7
5.
Qual o resultado da execução do seguinte comando (tente prevê-lo antes de
o executar)? (Nota: O operador usado no cálculo de um expoente é definido
por dois asteriscos **).
>>> print -3 * 5 + 4 ** 2
6.
Introduza um número complexo 3+4j e calcule o quadrado do seu módulo.
(Nota: a função abs() calcula o valor absoluto de um número. Escreva no
prompt >>> help(abs) para pedir ajuda sobre o significado e o modo de
utilizar a função abs()).
7.
Escreva um programa que peça os comprimentos dos catetos de um
triângulo rectângulo e devolva o valor da hipotenusa. (Nota: Terá de incluir
no início do script a instrução
from math import *
para poder chamar a função
sqrt(<valor_cuja_raiz_pretende>)).
Computadores e Programação – Engª Biomédica 2006/07 – Ficha 1
Página 7 de 7
Download