Vocˆe pode colocar coment´arios no seu programa para documentar o que est´a fazendo. O com- pilador ignora completamente o que quer esteja dentro de um coment´ario.
Coment´arios em Python come¸cam com um #. Alguns exemplos:
# Este ´e um comentario sem graca # Este ´e
# um comentario # que usa
# diversas linhas #
Regras para coment´ario
´
E sempre uma boa id´eia colocar coment´arios em seu programa das coisas que n˜ao s˜ao claras. Isto vai ajudar quando mais tarde vocˆe olhar o programa que escreveu j´a h´a algum tempo ou vai ajudar a entender programas escritos por outra pessoa.
Um exemplo de coment´ario ´util:
# converte temperatura de farenheit para celsius celsius = (fahrenheit - 32) * 5.0 / 9.0
O coment´ario deve ser escrito em portuguˆes e n˜ao em Python . No exemplo abaixo # usando input(), obter valor de idade e multiplicar
# por 365 para obter dias #
idade = int( input() ) dias = idade * 365
o coment´ario ´e basicamente uma transcri¸c˜ao do c´odigo do programa. Em seu lugar, um coment´ario como
# obtem idade e transforma em numero de dias
seria mais informativo neste ponto. Ou seja, vocˆe deve comentar o c´odigo, e n˜ao codificar o coment´ario.
Vocˆe tamb´em deve evitar coment´arios in´uteis. Por exemplo: # Incrementa i
i = i + 1
Documenta¸c˜ao de fun¸c˜oes
Vocˆe deve documentar as fun¸c˜oes que escreve. Na documenta¸c˜ao vocˆe deve especificar as se- guintes informa¸c˜oes:
A¸c˜ao – o que a fun¸c˜ao faz
Entrada – descri¸c˜ao dos argumentos passados para a fun¸c˜ao
Sa´ıda – descri¸c˜ao do valor retornado pela fun¸c˜ao
Suposi¸c˜oes – o que vocˆe assume ser verdade para que a fun¸c˜ao funcione apropri- adamente
Algoritmo – como o problema ´e resolvido (m´etodo)
Estas informa¸c˜oes devem ser colocadas como coment´ario antes do cabe¸calho de defini¸c˜ao da fun¸c˜ao conforme o exemplo abaixo:
# funcao instrucoes()
# acao: mostra instrucoes do programa
# entrada: nenhuma
# saida: nenhuma
# suposicoes: nenhuma
# algoritmo: imprime as instrucoes #
def instrucoes() : # mostra instrucoes
print(’O processo de purifica¸c~ao do Uranio-235 ´e . . . ’; .
.
23.4 Exerc´ıcios de Fixa¸c˜ao
1. (calcMedia) Fa¸ca programa que obtenha do usu´ario um conjunto de valores reais e calcule a m´edia aritm´etica dos valores lidos. O usu´ario indica o final do conjunto de valores digitando um valor qualquer n˜ao num´erico. A valida¸c˜ao da entrada do usu´ario deve ser feita pela fun¸c˜ao ehNumerico(), que recebe como parˆametro um string e verifica se esta string representa um valor num´erico (inteiro ou real), retornando True se for o caso, ou False se n˜ao for o caso.
2. (dna) Calcular a porcentagem dos nucleot´ıdeos G e C em diversas cadeias de DNA fornecidas pelo usu´ario. O programa termina quando uma cadeia vazia ´e informada. O programa deve usar a fun¸c˜ao conta gc() que recebe como parˆametro uma sequˆencia de DNA e retorna a porcentagem de nucleot´ıdeos G e C nesta sequencia.
3. (pesoIdeal) Fa¸ca um programa que obt´em do usu´ario um conjunto de pares de valores (sexo, altura) representando o sexo (M ou F) e altura de pessoas. Para cada um, mostre o peso ideal da pessoa, que deve ser calculado pela fun¸c˜ao pesoIdeal(), a ser definida pelo programador. A fun¸c˜ao deve calcular e devolver o peso ideal de uma pessoa dados seu sexo e altura de acordo com as f´ormulas abaixo:
(72, 7 × altura) − 58 (para homens) (62, 1 × altura) − 44, 7 (para mulheres)
O programa termina quando for informado sexo inv´alido ou altura 0 (zero).
4. (bolsa) Deseja-se distribuir bolsas de estudo para alunos de um curso. O valor da bolsa depende do valor da nota que o aluno teve em uma certa disciplina, conforme tabela abaixo:
Nota em disciplina Bolsa (R$) 70 6 nota < 80 500,00 80 6 nota < 90 600,00
nota > 90 700,00
70 > nota 0,00 (sem bolsa)
Pede-se um programa que ao receber a nota de 3 alunos, escolha a maior nota e conforme o valor desta, imprima na tela o valor da bolsa correspondente. Defina e use a fun¸c˜ao maior() para encontrar o maior valor de trˆes n´umeros que s˜ao passados como parˆametros. Tamb´em deve ser definida e usada a fun¸c˜ao bolsa() para calcular e devolver o valor da bolsa para uma determinada nota que ´e passada como parˆametro.
23.5 Exerc´ıcios
1. (lancheria) O card´apio de uma lancheria ´e o seguinte:
Especifica¸c˜ao C´odigo Pre¸co
Cachorro quente 100 1,20
Bauru simples 101 1,30
Bauru com ovo 102 1,50
Hamb´urger 103 1,20
Cheeseburguer 104 1,30
Refrigerante 105 1,00
Escrever um programa que leia um conjunto de pares de valores que indicam o c´odigo de um item e a quantidade do item e calcule o valor TOTAL. O c´alculo do pre¸co de um item deve ser feito pela fun¸c˜ao calcLanche() que recebe como parˆametros o c´odigo de um lanche e sua quantidade e retorna o sub-total de acordo com a tabela acima. Se o c´odigo informado ´e inv´alido, a fun¸c˜ao deve imprimir uma mensagem de erro, informando o c´odigo incorreto.
O programa termina quando for informado o c´odigo de valor 0 (zero).
2. (palindromo) Fa¸ca programa que recebe v´arios conjuntos de 2 inteiros positivos quaisquer do usu´ario e indica se um ´e o contr´ario do outro, isto ´e, se o primeiro n´umero for re-escrito do ´ultimo d´ıgito para o primeiro d´a como resultado o segundo n´umero. O programa termina quando o primeiro n´umero de um conjunto for negativo. A verifica¸c˜ao da propriedade deve ser feita pela fun¸c˜ao ehPalindromo() que recebe 2 strings como parˆametros e retorna True se as 2 strings possuem a propriedade e False caso contr´ario.
3. (abrevia) Escreva programa que obtenha do usu´ario v´arios nomes. Para cada um deles, o programa deve imprimir na tela todas as partes do nome abreviadas, com excess˜ao do ´
ultimo sobrenome. Al´em disso, as primeiras letras de todas as partes devem estar em MAI ´USCULA. Caso o nome informado tiver apenas 1 parte, ele deve ser considerado inv´alido e a convers˜ao n˜ao deve acontecer. Quando o usu´ario digitar a palavra ’FIM’, o programa deve imprimir quantos nomes foram informados e quantos nomes n˜ao foram processados. A palavra ’FIM‘ n˜ao deve ser processada de forma alguma (convers˜ao e contagem).
Ex.: se entrada for ’Armando Luiz Nicolini Delgado’, a sa´ıda deve ser ’A.L.N. Delgado’ O programa deve usar a fun¸c˜ao abrevia(), que recebe uma string contendo um nome a ser abreviado e retorna o nome abreviado conforme indicado acima, ou retorna a palavra Invalido se o nome n˜ao puder ser abreviado.
4. (dna-2) Calcular a porcentagem de nucleot´ıdeos informados pelo usu´ario em diversas cadeias de DNA tamb´em fornecidas pelo usu´ario. O programa termina quando uma cadeia vazia ´
e informada. O programa deve usar a fun¸c˜ao conta nucl() que recebe como parˆametros uma sequˆencia de DNA e um conjunto de nucleot´ıdeos retorna a porcentagem de cada nucleot´ıdeo na sequencia.
T´opico 10
Arquivos
Aula 24
24.1 Introdu¸c˜ao
O armazenamento de dados em vari´aveis e outras estruturas de dados (listas, dicion´arios, etc) ´e tempor´ario. Arquivos s˜ao usados para armazenamento permanente de grandes quantidades de dados em dispositivos de armazenamento secund´ario, como discos.
`
As vezes n˜ao ´e suficiente para um programa usar somente a entrada e sa´ıda padr˜ao (teclado e tela do computador). H´a casos em que um programa deve acessar arquivos. Por exemplo, se n´os guardamos uma base de dados com endere¸cos de pessoas em um arquivo, e queremos escrever um programa que permita ao usu´ario interativamente buscar, imprimir e mudar dados nesta base, este programa deve ser capaz de ler dados do arquivo e tamb´em gravar dados no mesmo arquivo.
No restante desta se¸c˜ao discutiremos como arquivos de texto s˜ao manipulados em Python . Como ser´a visto, tudo ocorre de maneira an´aloga ao que acontece com entrada e sa´ıda padr˜ao (teclado e tela do computador).