segunda-feira, 17 de março de 2014

Operações com Variáveis e o Input

Neste trecho de aula, vamos aprender:
  1. Pedir um dado para o usuário
  2. Realizar operações com variáveis
Em primeiro lugar, perceba que até agora, não pedimos para o usuário nada, estamos fazendo programas para nós mesmos. Mas se... Começassemos a pedir valores para o usuário e mais... Realizásse-mos operações com os dados recebidos, retornando novos valores! Vamos lá! Mãos à obra!
Para saber pedir um determinado dado para o usuário, devemos saber o tipo de dado que estamos pedindo e saber que podemos converter tipos de dados. Vejamos:
decimal = 1.523
inteiro = int(decimal)
texto = str(inteiro)
print("Float: %f Inteiro: %i String: %s" %(decimal,inteiro,texto))
Note que, antes de definir a variável, tivemos que especificar, com as três letras iniciais, o tipo de variável que queremos, e, em seguida, o nome da variável entre parenteses... Note que a saída do programa será a seguinte:
Float: 1.523 Inteiro: 1 String: 1
Mas por que o inteiro ficou como 1? Isso se deve ao fato de que o inteiro, como já foi passado na aula passada, não pode compreender números decimais. Com isso ele corta a parte decimal e fica com a parte inteira para si. E é essa parte inteira que a string imprime. Mas porque estamos falando isso? Tenhamos em mente o seguinte problema: eu vou fazer um programa que receba a altura e a idade de uma pessoa, e calcule o Índice de Massa Corporea (IMC). Detalhe: O cálculo do IMC é feito dividindo o peso (em quilogramas) pela altura (em metros) ao quadrado. Ao final deve ser mostrado para o usuário o resultado.
Então temos alguns problemas, que ainda não sabemos solucionar... Em primeiro lugar, como receber um dado do usuário? Para receber um dado do usuário, temos que utilizar o input() (pra quem tem o python 2.x, não é input, mas sim: raw_input()).
Vejamos:
idade = input("Digite sua idade: ")
Percebeu que o input é semelhante ao print? As diferenças são que o input é utilizado diretamente na variável, para que logo possamos armazenar o valor digitado pelo usuário, o nome em si, que é diferente de print e que o input nada mais faz que esperar que o usuário digite algo.
Entretanto, existe um pequeno problema: o valor recebido pelo input, sempre será string. Logo temos que converter essa string para o type que queremos, existem dois modos, vejamos:
idade = input("Digite sua idade: ")
idade = int(idade)
OU
idade = int(input("Digite sua idade: "))
Em ambos os casos estamos fazendo exatamente a mesma coisa, só que o segundo modo de solucionar tal problema é mais "direto".
Agora que sabemos recolher informações do usuário, podemos partir para a parte de operações, já que também é necessário que conheçamos para que possamos atingir a meta desta aula (resolver a questão citada acima).
Assim como em uma calculadora qualquer (como própria a calculadora do computador), as Linguagens de Programação dispõem de calculadora. As principais operações a fazermos é:
+ (soma)
- (subtrai)
* (multiplica)
/ (divide)
** (eleva a um determinado número)
% (extrai o resto de uma determinada divisão)
Vejamos agora uma aplicação, dando continuidade à nossa resolução do problema:
idade = int(input("Digite sua idade: "))
altura = float(input("Digite sua altura: "))
soma = idade + altura
subtracao = idade - altura
multiplicacao = idade * altura
divisao = idade/altura
exponenciacao = idade ** altura
resto = idade%altura
print("Idade: %i\nAltura: %.1f\nSoma: %.1f\nSubtração: %.1f\nMultiplicação: %.1f\nDivisão: %.1f\nExponenciação: %.1f\nResto: %.1f" %(soma,subtracao,divisao,exponenciacao,resto))
A soma, a subtração, a multiplicação e a divisão não é novidade para ninguém... Isso é fato. Mas temos coisas novas: ** e %. Já vimos antes que % é utilizado na impressão de variáveis, mas não é só isso! O símbolo % retorna o resto da divisão existente entre o número que vem à esquerda do símbolo pelo número que vem à direita do símbolo. Enquanto isso, temos que ** retorna o resultado da potenciação existente entre o número que vem à esquerda do símbolo elevado ao número que vem à direita do símbolo.
Com isso, já temos um bom empenho e já somos capazes de resolver muitos problemas... Mas precisamos de algo amais...
Python é capaz de solucionar expressões, e é capaz de resolver conforme às regras da matemática (primeiro o que vier entre parêntesis e com potenciação e coisas do tipo), portanto, se temos uma determinada expressão, podemos pôr um parêntesis para "forçar" o python a solucionar primeiro tal cálculo (o que estiver entre parêntesis).
Vejamos então:
peso = int(input("Digite seu peso: "))
altura = float(input("Digite sua altura: "))
imc = altura/(peso**2)
print("Seu IMC é %.2f" %(imc))
Veja como nossa capacidade de programar já evoluiu! Partimos de um simples "Hello World" e já estamos fazendo este tipo de cálculo.
Agora vamos praticar, já que a prática é a melhor e mais eficiente maneira de aprender... Mesmo errando, mas é pelo erro que aprendemos como não cometê-lo novamente.
 
Atividade
 
  1. Faça um programa que peça a idade do usuário, e imprima a idade na tela
  2. Faça um programa que seja capaz de resolver uma soma com dois números informados pelo usuário
  3. Faça um programa que seja capaz de realizar potenciação, pedindo para o usuário a base e o expoente.
  4. Faça um programa que seja capaz de solucionar uma equação de 2° grau, pedindo o valor correspondente a A, o valor correspondente a B e o valor correspondente a C.
  5.  

Nenhum comentário:

Postar um comentário