Program Arcade Games
With Python And Pygame

Chapter 1: Crie uma Calculadora Personalizada

(Oi! Se você ainda não tem uma máquina com Python e Pygame instalados então, volte para a sessão "anterior" para baixar e instalá-los para então poder começar.)

1.1 Introdução

fig.trajectory

Uma das coisas mais simples que podemos fazer com Python é criar uma simpática calculadora. Opa! Uma calculadora não é um jogo! Por que estamos falando sobre calculadoras? Que chato...

Ei! Para calcular objetos caindo, balas voando, pontuações altas, precisamos de uma calculadora. E mais, qualquer nerd de verdade enxerga a calculadora como um brinquedo, ao invés de um dispositivo de tortura! Vamos começar nosso aprendizado de jogos com calculadoras. Não se preocupe, começaremos com os gráficos no Capítulo 5.

Um simples programa de calculadora pode ser usado para pedir ao usário alguma informação e então calcular coisas chatas como pagamento de aluguel ou coisas mais emocionantes como a trajetória de bolas de lama ao voarem pelo ar.

No primeiro exemplo calcularemos energia cinética, algo que poderemos precisar numa engine de jogos.

fig.kinetic_energy
Figure 1.1: Usando Python para calcular energia cinética

A melhor parte de fazer isso num programa é a habilidade de esconder as complexidades de uma equação. A única coisa que o usuário precisa nos fornecer é a informação e então ele ou ela pode receber o resultado num formato fácil de entender. Uma calculadora como essa poderia rodar num smart phone, permitindo a pessoa realizar esse cálculo facilmente.

1.2 Imprimindo

1.2.1 Imprimindo Texto

Como um programa imprime algo na tela?

print("Hello World.") 
fig.printing_calculator

Esse programa imprime “Hello World” na tela. Vai lá, digite isso no prompt e veja como funciona. Tente também imprimir outras palavras e frases. O computador irá imprimir alegremente qualquer coisa que você quiser, verdadeiro ou não.

Como esse programa “Hello World” se parece em outras linguages de programação? Dê uma conferida no Wikipedia. Eles mantêm um conjunto bacana de programas “Oi Mundo” escritos em várias linguagens de programação diferente:
http://pt.wikipedia.org/wiki/Programa_Ol%C3%A1_Mundo

É interessante ver quantas linguagens de programacão diferentes existem. Você pode ter uma idéia da complexidade de uma linguagem ao ver o programa “Hello World”.

Video: A função print

Lembre-se, o comando para imprimir em Python é fácil. É so usar print. Depois do comando print vem um par de parênteses ( ). Dentro desse parênteses é o que deverá ser impresso na tela. Usar parênteses para passar informação para uma função é uma prática comum na matemática e nas linguagens de programação.

Estudantes de matemática aprendem a usar parênteses avaliando expressões como $sin(\theta)=cos(\frac{\pi}{2}-\theta)$. $sin$ e $cos$ são funções. Dados são passados para essas funções dentro do parênteses. No nosso caso, o que é diferente é que a informacão que está sendo passada, é um texto.

Note que há aspas duplas em volta do texto a ser impresso. Se uma declaração tem aspas ao redor do texto, o computador irá imprimi-lo como foi escrito. Por exemplo, este programa imprimirá 2+3:

print("2+3")

1.2.2 Imprimindo Resultados de Expressões

O próximo programa não tem aspas em volta de $2+3$ e o computador irá avaliá-lo como uma expressão matemática. Irá imprimir 5 ao invés de 2+3.

print(2+3)

O código abaixo irá gerar um erro porque o computador irá tentar avaliar “Hello World” como uma expressão matemática e isso não funciona de maneira alguma.

print(Hello World)

O código abaixo irá gerar o erro SyntaxError: invalid syntax que, em linguagem de computador, significa que ele não sabe o que é “Hello” e nem o que é “World”.

Por favor, lembre-se que isso é uma aspas simples: ' e isso é aspas duplas: " Se eu te pedir aspas duplas, um erro bem comum é escrever "" que é duas aspas duplas.

1.2.3 Imprimindo Múltiplos Itens

Uma declaração com 'print' pode imprimir várias coisas de um só vez, cada item separado por uma vírgula. Por exemplo, este código irá imprimir Sua nova pontuação é 1040

print("Sua nova pontuação é", 1030+10)

O próximo código irá imprimir Sua nova pontuação é 1030+10. Os números não são somados porque estão entre aspas. Qualquer coisa que estiver entre aspas o computador tratará como sendo um texto. Qualquer coisa que estiver fora, o computador entenderá como sendo uma declaração matemática ou código de computador.

print("Sua nova pontuação é", "1030+10")
A vírgula tem que estar dentro ou fora das aspas?

Esse próximo código não funciona. Isso acontece pois não há uma vírgula separando o texto entre aspas e 1030+10. A princípio pode parecer que tem uma vírgula mas, ela está dentrodas aspas. A vírgula que separa os termos a serem impressos tem que estar fora das aspas. Se o programador quer que uma vírgula seja impressa então terá que colocá-la entre aspas.

print("Sua nova pontuação é," 1030+10)

O próximo exemplo funciona porque tem uma vírgula separando os termos. Imprime:
Sua nova pontuação é, 1040
Note que apenas uma vírgula é impressa. Vírgulas fora das aspas separam os termos, vírgulas entre aspas são impressas. A primeira vírgula é impressa, a segunda é usada para separar os termos.

print("Sua nova pontuação é,", 1030+10)

1.3 Escapando código

Se usamos aspas para indicar o computador onde começa e termina a sequência de texto que você quer imprimir, como um programa imprime um conjunto de aspas duplas? Exemplo:

print("Eu quero imprimir aspas duplas " por algum motivo.")

Este código não funciona. O computador olha para as aspas no meio da frase e acha que é o fim do texto. Não tem a mínima idéia do que fazer com por algum motivo e as aspas no final o confundem ainda mais.

É necessário informar ao computador que queremos tratar as aspas no meio como texto, não como o fim da frase. Isto é fácil, apenas coloque uma contrabarra na frente das apas para indicar que faz parte da sequência de texto(string) e não um caracter que finaliza a string. Exemplo:

print("Eu quero imprimir aspas duplas \" por alguma razão.")	
fig.escape_codes

Esta combinação de 2 caracteres \" é chamado de escape code.Quase todas as linguagens possui ele. Como a contrabarra é usada como parte do escape code ela mesma precisa ser escapada. Por exemplo, este código não funciona corretamente.

print("O arquivo está salvo em C:\nova pasta")	

Por que? Porque \n representa uma nova linha. Para imprimir a contrabarra devemos escapá-la assim:

print("O arquivo está salvo em C:\\nova pasta")		

Existem outros escape codes importantes. Aqui está uma tabela com os mais importantes:

Escape codeDescrição
\'Aspas simples
\"Aspas duplas
\tTab
\rCR: Carriage Return (posiciona o cursor no início da linha atual.)
\nLF: Line Feed (Nova Linha) (move para baixo)

O que é “Carriage Return” e “Line Feed”? Tente este exemplo:

print("Este\né\nmeu\nexemplo.")	

A saída deste código é:

Este
é
meu
exemplo.

O caracter \n representa uma nova linha. Ele move o “cursor” para baixo, pulando uma linha. O computador armazena o texto numa grande linha. Ele sabe que tem que pular várias linhas por causa dos caracteres \n.

Para complicar um pouco mais as coisas, cada sistemas operacional tem um jeito diferente de interpretar o fim de uma linha.

Escape codesDescrição
\r\nCR+LF: Microsoft Windows
\nLF: sistemas UNIX e os novos Macs.
\rCR: Antigos sistemas Mac

Geralmente o seu editor de texto irá tomar conta disto para você. O Bloco de Notas do Windos não...e, arquivos UNIX abertos no Bloco de Notas aparecem terríveis porque o fim da linha não aparece ou aparecem como pequenas caixas pretas.

1.4 Comentários

Comentários são importantes (mesmo que o computador ignore eles)

De vez em quando nosso código precisa de uma explicacão extra para a pessoa que está lendo. Para fazer isso nós colocamos “comentários” no código. Os comentários servem para serem lidos pelos seres humanos e não pelo computador.

Existem dois modos para fazermos um comentário. O primeiro é usar o símbolo #. O computador irá ignorar qualquer código num programa em Python que esteja após o #. Exemplo:

	
# Este é um comentário, começa com o caracter #
# e o computador irá ignorá-lo

print("Este não é um comentário, o computador irá")
print("rodar isto e imprimi-lo.")

O # entre aspas não é considerado um comentário. O programador pode desabilitar uma linha de código colocando # ana frente dela. Também é possível colocar um comentário no fim de uma linha.

print("O # entre aspas não é um comentário.")	

# print("Este é um comentário, mesmo sendo código de computador.")

print("Oi") # Este é um comentário no fim de uma linha

É possível comentarmos várias linhas de código usando 3 aspas simples em sequência para delimitar os comentários.

print("Oi")	
'''
Esta é
uma 
linha
múltipla
comentada. Nada
Que estiver entre aspas irá rodar.
print("Aqui")
'''
print("Pronto")

A maioria dos programadores profissionais em Python irão usar este tipo de comentário para algo que chamamos de docstrings.Docstrings te permite escrever a documentação ao longo do código para depois ser interpretado automaticamente e ser impresso em sites e nas IDEs (ambiente de desenvolvimento integrado). Para comentários gerais o # é o melhor.

Mesmo que você seja a única pessoa que irá ler o código que você escreve, comentários podem ajudar a ganhar tempo. Adicionando comentários do tipo “Cuida das bombas alienígenas” isto vai te ajudar a lembrar rapidamente o que esta parte do código faz, evitando de ter que lê-lo novamente para decifrá-lo.

1.5 Operadores de Atribuição

Video: O Operador de Atribuição

Como agente guarda a pontuação do nosso jogo? Ou acompanha a saúde do inimigo? Precisamos do operador de atribuição. (Um operador é um símbolo como + ou -.) Isto amrazenar o valor em uma variável para ser usado mais tarde. O código abaixo irá atribuir 10 à variável x e depois imprimir o valor armazenado em x.

Dê uma olhada no exemplo abaixo. Clique no botão “Step” para ver como o código roda.

# Cria a variável x	
# Armazena o valor 10 nela.
x = 10

# Imprime o valor armazenado em x.
print(x)

# Imprime a letra x e não o valor de x.
print("x")

# Imprime "x= 10"
print("x=",x)
Variáveis:
x=
Saída:
10
x
x= 10
Variáveis ficam do lado de fora das aspas.

Nota: A lista abaixo também mostra a diferença entre imprimir um x entre aspas e um x de fora das aspas. Se um x está entre aspas então o computador imprime x. Se o x está fora the quotation marks então o computador irá imprimir o valor de x. Ficar confuso nesse “entre ou do lado de fora das aspas” é muito comum para aqueles que estão aprendendo a programar.

fig.pi

Uma declaração de atribuição (uma linha de código que usa o operador =) é diferente da igualdade algébrica que você aprendeu em matemática. Não os considere como sendo iguais. Do lado esquerdo do operador de atribuição, devemos ter apenas uma variável. Nada mais pode estar lá.

À direita do sinal de igual / atribuição temos uma expressão. Uma expressão é qualquer coisa que avalie um valor. Examine o código abaixo.

x = x + 1

Obviamente o código abaixo não pode ser uma igualdade algébrica. Mas é valido para o computador porque é uma declaração de atribuição. Equações matemáticas são diferentes das declarações de atribiução mesmo se eles tiverem variéveis, números e um sinal de igual.

O código acima pega o valor atual de x, adiciona 1 a ele e armazena o resultado de volta em x.

Incrementando o nosso exemplo, a declaracão abaixo irá imprimir o número 6.

x = 5
x = x + 1
print(x)

Os comandos são executados sequencialmente. O computador não “adiante.” No código abaixo, o computador imprimirá 5 na segunda linha e na linha 4 imprimirá 6. Isso acontecerá pois, na linha 2, o código que adiciona 1 ao x ainda não foi executado.

x = 5
print(x) # Imprime 5
x = x + 1
print(x) # Imprime 6

A próxima instrução é válida e irá rodar mas, é inútil. O computador somará 1 a x mas o resultado nunca é armazenado ou impresso.

x + 1

O código abaixo imprimirá 5 ao invés de 6 porque o programador esqueceu de armazenar o resultado de x + 1 na variável x.

x = 5
x + 1
print(x)

A próxima instrução não é válida porque do lado esquerdo do sinal de igual existe mais de uma variável:

x + 1 = x

Python tem outros tipos de operadores de atribuição. Eles permitem que o programador modifique facilmente uma variável. Por exemplo:

x += 1

O código acima é equivalente a escrever o código abaixo:

x = x + 1

Há também os operadores de atribuição de adição, subtração, multiplicação e divisão.

1.6 Variáveis

Variáveis começam com uma letra minúscula.

Variáveis devem começar com uma letra minúscula. Variáveis podem começar com uma letra maíuscula ou com o underscore, mas eles são casos especiais e não devem ser usados normalmente. Após a primeira letra minúscula a variável pode conter letras maiúsculas ou minúsculas juntamente com os números e underscores. Variáveis não devem incluir espaços.

Variáveis são case sensitive. Isto pode confundir o programador se ele não estiver esperando por isso. No código abaixo a saída será 6 ao invés de 5 porque existem 2 variavéis diferentes, x and X.

x = 6
X = 5
print(x)

O guia oficial de boas práticas do Python(sim, os programadores realmente escreveram sobre boas práticas) diz que, em Python, os nomes de variáveis com mais de uma palavra devem ser separadas por underscores. Por exemplo, use hair_style e não hairStyle. Pessoalmente, se você for um dos meus estudantes, eu não me importo muito com esta regra porque a próxima linguagem que veremos será Java e, para ela, essa regra é exatamente o contrário. Eu costumava tentar ensinar estas regras de Java nessa aula mas eu comecei a receber emails com reclamações dos amantes de Python. Este I used to try teaching Java style rules while in this class, but then I started getting hate-mail from Python lovers. Estas pessoas acessavam meu site e ficavam chocadas, eu digo, chocadas, por causa do meu estilo (regras)

Joan Rivers não tem nada a ver com estas pessoas, então eu desisti e resolvi obedecer as regras de boas práticas.

Aqui estão alguns exemplos de nomes de variáveis que estão ok e não ok para usar:

Nomes de variáveis aceitáveis Nomes de variáveis ilegais Aceitável, mas não adequadas
first_name first name FirstName
distance 9ds firstName
ds9 %correct X

Todo nome de variáveis em maiúsculas como MAX_SPEED somente são permitidas quando o valor da variável não fôr nunca mudar. Uma variável que não é variável é chamada de uma constante.

1.7 Operadores

Para operações matemáticas mais complexas, operadores mais comuns estão disponíveis. Assim como outros não tão comuns.

operador operação exemplo de equação código exemplo
+ adição $3 + 2$ a = 3 + 2
- subtração $3 - 2$ a = 3 - 2
* multiplicação $3 \cdot 2$ a = 3 * 2
/ divisão $\frac{10}{2}$ a = 10 / 2
// divisão inteira N/A a = 10 // 3
** potênciacão $2^3$ a = 2 ** 3
% resto N/A a = 8 % 3
: Operadores

“Divisão inteira” sempre irá arredondar a resposta para o número inteiro mais próxima. Por exemplo, 11//2 será 5, not 5.5, e 99//100 será 0.

Multiplicação por justaposição não funciona em Python. As duas linhas seguintes não funcionarão:

# Isso não funciona
x = 5y
x = 5(3/2)

É necessário usar o operador de multiplicação para fazer este código funcionar:

# Isso funciona
x = 5 * y
x = 5 * (3 / 2)

1.7.1 Espaçamento de operadores

Pode

Pode haver qualquer número de espaços, antes e depois de um operador, o computador entenderá isso muito bem. Por exemplo, cada uma dessas linhas será interpretada da mesma maneira.

x=5*(3/2)
x = 5 * ( 3 / 2 )
x      =5     *(    3/   2)

O guia oficial de boas práticas do Python diz que deve-se usar um espaço antes e depois de cada operador. (Você deve estar morrendo de curiosidade não é mesmo? Ok, o guia oficial de boas práticas para o Python está aqui : PEP-8.) Das três linhas de código acima, a mais “estilosa” seria a da linha 2.

1.8 Ordem das operações

Python irá avaliar as expressões usando a mesma ordem de operação que são esperadas nas expressões matemáticas padrão. Por exemplo, esta equacão não calcula corretamente a média(average):

average=90+86+71+100+98/5


A primeira operação feita é 98/5. O computador calcula:

$90+86+71+100+\frac{98}{5}$
ao invés pretendido:

$\dfrac{90+86+71+100+98}{5}$

Este problema pode ser resultado ao se usar o parênteses:
average=(90+86+71+100+98)/5

1.9 Funções Trigonométricas

Funções trigonométricas são usadas para calcular seno e cosseno em equações. Por padrão, Python não sabe como calcular seno e cosseno, mas, isso é possível ao importarmos a biblioteca adequada. As unidades estão em radianos.

# Importa a biblioteca matemática
# Esta linha aparece apenas uma vez e no topo
# do programa.
from math import *

# Calcula x usando sine(seno) e cosine(cosseno)
x = sin(0) + cos(0)

1.10 Calculadora de Equação Personalizada

Um programa pode usar Python para calcular a quilometragem que um carro percorreu à 294 milhas com 10.5 litros de combustível.

m = 294 / 10.5
print(m)

Este programa pode ser melhorado se usarmos variáveis. Isto permite que os valores sejam facilmente mudados sem que a equação tenha que ser modificada.

m = 294
g = 10.5
m2 = m / g # Usando uma variável
print(m2)
É importante darmos bons nomes às variáveis.

Por si só, este programa é difícil de se entender. As variáveis m e g não querem dizer muita coisa sem um contexto. O programa pode ficar mais fácil de se entender se usarmos nomes de variáveis mais apropriados:

milesDriven = 294
gallonsUsed = 10.5
mpg = milesDriven / gallonsUsed
print(mpg)

Agora, até mesmo um pessoa que não programe pode olhar o programa e ter uma idéia mais claro do que ele faz. Outros exemplos de programas ruins e bons de se entender:

# Difícil de entender
ir = 0.12
b = 12123.34
i = ir * b

# Facíl de entender
interestRate = 0.12
accountBalance = 12123.34
interestAmount = interestRate * accountBalance
Vídeo: Criando um programa de Calculadora Personalizada

No editor inativo é possível editar uma linha prévia sem ter que redigitá-la. Para isso mova o cursor para a linha e aperte a tecla“enter”. A linha atual será modificada.

Ao digitarmos código em Python no >>> prompt é mais lento e só pode ser feito uma linha por vez. Também não é possível salvarmos o código para que uma outra pessoa possa rodá-lo. Felizmente, há uma maneira ainda melhor para inserir o código em Python.

Podemos usar um script para escrevermos código em Python. Um script é uma série de linhas de código em Python que serão executadas todas de uma só vez. Para criar um script abra uma nova janela como na Figura 1.2.

fig.entering_a_script
Figure 1.2: Criando um script

Escreva o programa em Python para calcular o consumo de combustível/milha e salve o arquivo. Salve onde você quiser: pen-drive, na rede. Programas em Python devem sempre terminar com.py. Veja a figura 1.3.

fig.saving_mpg_calculator
Figure 1.3: Salvando um script

Rode o programa digitado clicando em “Run” no menu e selecione “Run Module”. Tente modificar o programa com valores diferentes de milhas dirigidas e combustivel usado.

Atenção, erro comum!

De agora em diante, a maioria do código escrito deve ser rodado de um script/módulo. Não digite o seu programa no >>> prompt. Código escrito aqui não é salvo. Se isso acontecer, será necessário recomeçar. Para novos programadores, este é um erro muito comum

Este programa será mais útil se interagisse com o usuário e peddise para ele entrar com os valores das milhas e combustivel. Isso pode ser feito com input. Veja o código abaixo:

# Este código quase roda
milesDriven = input("Enter miles driven:") # Entre com as milhas percorridas
gallonsUsed = input("Enter gallons used:") # Entre com o combustivel usado
mpg = milesDriven / gallonsUsed
print("Miles per gallon:", mpg)

Ao rodarmos este programa ele irá perguntar ao usuário os valores das milhas e combustível mas irá gerar o erro mostrado na Figura 1.4.

fig.mpg_program_error
Figure 1.4: Erro ao rodar o programa MPG

A razão deste erro pode ser demonstrado se mudarmos ele um pouco

milesDriven = input("Enter miles driven:")
gallonsUsed = input("Enter gallons used:")
x = milesDriven + gallonsUsed
print("Sum of m+g:",x) # Soma de m+g

Rodando o programa acima teremos o resultado mostrado na Figura 1.5.

fig.mpg_incorrect_addition
Figure 1.5: Adição Incorreta

O programa não soma os dois números, apenas coloca um após o outro. Isto acontece porque o programa não sabe que o usuário irá digitar números. O usário pode digitar “Bob” e “Mary”, e ao somarmos as variáveis teríamos “BobMary”; que faria mais sentido.

A entrada tem que ser convertida em números

Para dizer ao computador que são números é necessário envolvemos a função input com int( ) ou float( ). Use o primeiro para inteiros e o último para números de ponto flutuante.

O programa final rodando:

# Sample Python/Pygame Programs
# Simpson College Computer Science
# http://programarcadegames.com/
# http://simpson.edu/computer-science/

# Explanation video: http://youtu.be/JK5ht5_m6Mk

# Calculate Miles Per Gallon
print("This program calculates mpg.")

# Get miles driven from the user
miles_driven = input("Enter miles driven:")
# Convert text entered to a
# floating point number
miles_driven = float(miles_driven)

# Get gallons used from the user
gallons_used = input("Enter gallons used:")
# Convert text entered to a
# floating point number
gallons_used = float(gallons_used)

# Calculate and print the answer
mpg = miles_driven / gallons_used
print("Miles per gallon:", mpg)

Variáveis:
milesDriven=
gallonsUsed=
mpg=
Saída:
This program calculates mpg.
Enter miles driven:288
Enter gallons used:15
Miles per gallon: 19.2

Outro exemplo para calcular a energia cinética de um objeto:

# Sample Python/Pygame Programs
# Simpson College Computer Science
# http://programarcadegames.com/
# http://simpson.edu/computer-science/

# Calculate Kinetic Energy

print("This program calculates the kinetic energy of a moving object.")
m_string = input("Enter the object's mass in kilograms: ")
m = float(m_string)
v_string = input("Enter the object's speed in meters per second: ")
v = float(v_string)

e = 0.5 * m * v * v
print("The object has " + str(e) + " joules of energy.")

Para encurtar um programa é possível aninhar o input com o float statement. Exemplo:

 
milesDriven=input("Enter miles driven:")
milesDriven=float(milesDriven)

Faz o mesmo que esta linha:

milesDriven=float(input("Enter miles driven:"))

Neste caso, a saída da função input é diretamente adicionada à função float. Qualquer um dos dois funciona, é uma questão de preferência de cada programador porém é importante ser capaz de entender as duas formas.

1.11 Questões de Revisão

Clique aqui para o questionário de múltipla-escolha (quiz).

  1. Escreva um código que imprima seu nome.
  2. Como você comenta um programa?
  3. Qual a saída das linhas abaixo?
    print(2 / 3)
    print(2 // 3)
    
  4. Crie um programa que tenha uma variável chamada pi e preencha com o valor apropriado.
  5. Por que este código não roda?
    A = 22
    print(a)
    
  6. Todas os nomes abaixo podem ser usados para uma variável. Qual deles é melhor?
    a
    A
    Area
    AREA
    area
    areaOfRectangle
    AreaOfRectangle
    
  7. Qual desses nomes de variável não é permitido em Python? (Mais de um pode estar errado.)
    apple
    Apple
    APPLE
    Apple2
    1Apple
    account number
    account_number
    account.number
    accountNumber
    account#
    
  8. Por que este código não funciona?
    print(a)
    a=45
    
  9. Explique o erro neste código:
    pi = float(3.14)
    
  10. Explique o erro neste código:
    radius = input("Radius:")
    x = 3.14
    pi = x
    area = pi  * radius ** 2
    
  11. Explique o erro neste código:
    a = ((x)*(y))
    
  12. Explique o erro neste código:
    radius = input(float("Enter the radius:")) # Entre com o valor do raio
    
  13. Explique o erro neste código::
    area = π*radius**2
  14. Escreva um programa que pergunte ao usuário o comprimento do lado de um quadrado e armazene o resultado em uma variável. Certifique-se de converter o número para inteiro.
  15. Escreva um programa que imprima a área de um quadrado, usando o número que o usúario entrou e que você guardou na pergunta 9.
  16. Faça o mesmo que as questões 14 e 15 mas com a fórmula para a área de uma elipse.
    $s=\pi ab$
    onde $a$ and $b$ são os comprimentos dos maiores raios.
  17. Faça o mesmo que as questões 14 e 15 mas com a fórmula para achar a pressão do gás.
    $P=\dfrac{nRT}{V}$
    onde $n$ é o número de mols, $T$ é a temperatura absoluta, $V$ é o volume, e $R$ é a constante de gás 8.3144.

    Veja http://en.wikipedia.org/wiki/Gas_constant para mais informações sobre a constante de gás.

1.12 Laboratório

Complete oLaboratório 1 antes de continuar. Este laboratório contem o material deste capítulo e faz com que você treine o que aprendeu.


You are not logged in. Log in here and track your progress.