MAC2166 Introdução à Computação - aulas 01 e 02 - Mauro Cesar Bernardes 25/Fevereiro/2014
Agenda Instalação do Python Python Shell Variáveis Operadores relacionais Operadores numéricos Comando de saída print() Comando de entrada input Exemplos de problemas Comando while Comando if, elif, else
http://python.org/download/
Python Shell
Python Shell
Variáveis Variáveis podem ser definidas como itens que podem ser alterados. São nomes dados a áreas de memória Nomes podem ser compostos de algarismos, letras ou o símbolo_ O primeiro caractere não pode ser um algarismo Palavras reservadas (print, if, while, etc) não podem ser utilizadas para variáveis (veremos isso mais à frente...) Exemplos de nomes de variáveis: nota aluno01 1aluno _x nota!01 nota 01 Servem para: (correto) (correto) (incorreto) (correto) (incorreto) (incorreto) Guardar valores intermediários Construir estruturas de dados
Atribuição Uma variável é modificada usando o comando de atribuição: <var> = <expressão> É possível também atribuir a várias variáveis simultaneamente: var1,var2,...,varn = expr1,expr2,...,exprn Exemplos: nota_maxima = 10 a = 2 c = a b = c soma = nota_maxima fator = 3 x1, x2, x3 = 5,4,7
Atribuição
Variáveis: revisão Nomes de variáveis devem obrigatoriamente iniciar com uma letra ou sublinhado (_). Podem conter números e o símbolo sublinhado (_) Exemplos de nomes válidos e inválidos Nome a1 velocidade Velocidade90 Salario medio Salario_medio _b 1a Válido? sim sim sim não sim sim não
Operadores numéricos Operador Descrição + Adição - Subtração * Multiplicação / Divisão // Divisão inteira % Módulo (resto da divisão) ** Potência
Operadores numéricos
Operadores relacionais Utilizado para realização de comparações Também chamadas expressões lógicas Resultam em verdadeiro (True) ou falso (False) Símbolo matemático Operador Python operação = = = Igualdade > > Maior que < < Menor que!= diferente >= Maior ou igual <= Menor ou igual
Operadores relacionais Utilizado para realização de comparações
Primeiros comandos em Python Saída de dados: print() Entrada de dados: input()
Saída: print() Forma geral: print (expr,expr,...) Os valores das expressões são escritos um após o outro sem pular de linha: >>> print ("1.001 ao quadrado é ",1.001**2) 1.001 ao quadrado é 1.002001 Por exemplo: >>> aluno = 1234 >>> nota = 8.5 >>> print ("A nota do aluno", aluno, "é", nota A nota do aluno 1234 é 8.50
Entrada: input() O input() permite interagir com o usuário ( variável (normalmente atribuindo valor a uma (" input("mensagem Formato: onde mensagem é uma string opcional que será exibida para orientar quanto ao valor que se espera. Exemplo: (" número: >>> a = input("entre com um Entre com um número: 21 >>> print (a) 21
Entrada: input() O comando input() espera que se digite algo que faça sentido do lado direito de um sinal de atribuição. Exemplo: >>> print (a) 19 () input >>> b = 15 >>> b 15 (" número: >>> c = input("entre com um entre com um número: 37
Entrada: input() Mas Atenção!!!! Analise o trecho abaixo Algo errado??
Entrada: input() O comando input() lê o que for digitado no teclado como uma sequencia de caracteres (string), incluindo os números. Para a conversão de um caractere em um número inteiro, devemos utilizar int()
Entrada: input()
Python Shell
Python Shell
Python
PROBLEMA 0: Dada dois inteiros, calcular a sua soma. Primeira tentativa: a = 3 b = 4 soma = a + b print("a soma de a + b é igual a soma")
Python: Edição
Python: Execução
Python: Resultado
PROBLEMA 0: Dada dois inteiros, calcular a sua soma. Segunda tentativa: a = 3 b = 4 soma = a + b print("a soma de a + b é igual a", soma)
Python: Resultado
PROBLEMA 0: Dada dois inteiros, calcular a sua soma. Terceira tentativa: a = 3 b = 4 soma = a + b print("a soma de", a, "+", b, "é igual a", soma)
Python: Resultado
PROBLEMA 0: Dada dois inteiros, calcular a sua soma. Quarta tentativa: a = input("digite o primeiro número: ") b = input("digite o segundo número: ") soma = a + b print("a soma de", a, "+", b, "é igual a", soma)
Python: Resultado
PROBLEMA 0: Dada dois inteiros, calcular a sua soma. Quinta tentativa: atexto = input("digite o primeiro número: ") btexto = input("digite o segundo número: ") a = int(atexto) b = int(btexto) soma = a + b print("a soma de", a, "+", b, "é igual a", soma)
Python: Resultado
PROBLEMA 0: Dada dois inteiros, calcular a sua soma. Sexta tentativa: a = int(input("digite o primeiro número: ")) b = int(input("digite o segundo número: ")) soma = a + b print("a soma de", a, "+", b, "é igual a", soma)
Python: Resultado
Estrutura de repetição: while Utilizadas para executar partes de um programa várias vezes, normalmente dependendo de uma condição. while <condição>: comando_1 comando_2 comando_3 comando_fora_do_while x=1 while x<3: print(x) x = x + 1 print("fim do programa") while: repete um bloco de comandos enquanto uma condição for verdadeira.
Problema 1: Leia uma sequência de números inteiros diferentes de zero e calculando sua soma. O programa termina quando for digitado um zero. Por exemplo, para a sequência: 12 17 4-6 8 0 o seu programa deve escrever o número 35. num = int(input("digite um inteiro: ")) soma1 = 0 while num!= 0: soma = soma1 + num num = int(input("digite um inteiro: ")) print("a soma é", soma)
Python: Resultado
Problema 2: Dados números inteiros n e k, com k>=0, determinar n k. Por exemplo, dados os números 3 e 4 o seu programa deve escrever o número 81. n = int(input("digite o valor de n: ")) k = int(input("digite o valor de k: ")) pot = 1 i = 1 while i <= k: pot = pot*n i = i + 1 print("a potencia é", pot) print("o valor de %d elevado a %d é %d" %(n, k, pot))
Python: Resultado
Problema 3: Dado um número inteiro n >= 0, calcular n!. n = int(input("digite o valor de n: ")) fat = 1 i = 2 while i <= n: fat = fat*i i = i + 1 print("o valor de %d! é =" %n, fat)
Python: Resultado
Condições: if, else Condições servem para selecionar quando uma parte do programa deve ser executada ou quando deve ser simplesmente ignorada if <condição>: comando_1 comando_2 comando_fora_do_if if <condição>: comando_1 comando_2 else: comando_3 comando_4 comando_fora_do_if_else a=int(input("valor 1:")) b=int(input("valor 2:")) if a > b: print("maior valor:", a) print("fim do programa") a=int(input("valor 1:")) b=int(input("valor 2:")) if a>b: print("maior valor:", a) else: print("maior valor:", b) print("fim do programa") Mas e se a for igual a b????
Condições: if, elif, else if <condição>: comando_1 comando_2 elif <condição>: comando_3 comando_4 elif <condição>: comando_5 comando_6 else: comando_7 comando_8 comando_fora_do_if_else a=int(input("valor 1:")) b=int(input("valor 2:")) if a > b: print("maior valor:", a) elif a= =b: print(a,"=",b) else: print("maior valor:", b) print("fim do programa")
Problema 4: Dados um número inteiro n, n>0, e uma sequência com n números inteiros, determinar a soma dos inteiros positivos da sequência. Por exemplo, para a sequência de 6 números -2 7 0-5 8 4 o seu programa deve escrever o número 19. n = int(input("digite o tam da seq: ")) soma = 0 while n > 0: num = int(input("digite um num da seq: ")) n = n - 1 if num > 0: soma = soma + num print("a soma dos positivos é", soma)
Python: Resultado
Problema 5: Dados um número inteiro n, n>0, e uma sequência com n números inteiros, determinar a soma dos inteiros positivos e a soma dos inteiros negativos da sequência. Por exemplo, para a sequência 6-2 7 0-5 8 4 o seu programa deve escrever os números 19 e -7. n = int(input("digite o tam da seq: ")) somap = 0 soman = 0 while n > 0: num = int(input("digite um num da seq: ")) if num > 0: somap = somap + num else: soman = soman + num n = n 1 print("a soma dos positivos é", somap) print("a soma dos negativos é", soman)
Python: Resultado
Tabela Verdade: Operador and (e) O resultado é verdadeiro apenas quando todos os operadores forem verdadeiros v1 V2 v1 and v2 True True False False True False True False True False False False
Tabela Verdade: Operador or (ou) O resultado é falso apenas quando todos os operadores forem falsos v1 V2 v1 or v2 True True False False True False True False True True True False
Tabela Verdade: Operador not (não) O resultado é uma inversão do valor v1 True False not v1 False True
Operadores lógicos Utilizados para agrupar operações com lógica booleana Python permite a utilização de três operadores lógicos: and (e), or (ou), not (não) Operador Python and or not Operação e ou não
Problema 6: Dados um número inteiro n>0 e as notas de n alunos, determinar quantos ficaram de recuperação. Um aluno está de recuperação se sua nota estiver entre 30 e 50 (nota máxima é 100). n = int(input("digite n: ")) rec = 0 cont = 0 while cont < n: media = int(input("digite uma nota: ")) if media >= 30 and media < 50: rec = rec + 1 cont = cont + 1 print(rec, "alunos ficaram de recuperação")
Python: Resultado
Exercícios (variáveis, input e print) 1. Faça um programa que leia 2 números (entrada) e imprima (saída) a sua média aritmética. 2. Faça um programa que leia um número e imprima o seu antecedente e o seu sucessor. 3. Faça um programa que leia um valor de conta em uma lanchonete, representando o gasto realizado pelo cliente e imprima o valor total a ser pago, considerando que o restaurante cobra 10% para o garçom. 4. Faça um programa que leia um valor da hora corrente (hora e minutos) e informe quantos minutos se passaram deste o início do dia (0h).
Exercícios: 1. Faça um programa que leia um número e diga se ele é par ou ímpar 2. Faça um programa que leia 2 números e imprima uma mensagem dizendo o maior deles. Detalhe: se os números forem iguais, imprima uma mensagem avisando ao usuário. 3. Faça um programa que informe o maior valor de 3 números entrados. 4. Faça um programa que leia três notas de um aluno, calcule sua média aritmética e imprima uma mensagem dizendo se o aluno foi aprovado, reprovado ou deverá fazer prova final. O critério de aprovação é o seguinte: aprovado (média 7); reprovado (média < 3) e prova final ( 3 média < 7). 5. Faça um programa que leia 3 números e imprima uma das seguintes mensagens: todos os números são iguais; todos os números são diferentes; ou apenas dois números são iguais. 6. Faça um programa que leia 3 números e imprima o valor intermediário, entre o menor e o maior número. Suponha que os números serão diferentes. 7. (DESAFIO) Faça um programa que leia 3 números e os imprima em ordem decrescente. 8. (DESAFIO) Um cinema faz descontos no seu preço relativos ao dia da semana e a idade dos clientes. Faça um programa que leia o preço normal de um ingresso, o dia na semana e a idade do cliente e informe o preço final. As datas da semana são representados por números de 1 a 7 e os descontos seguem a tabela abaixo acima de 65 ou abaixo de 12 anos de Segunda a Quinta (2, 3, 4 e 5) Sexta, Sábado e Domingo (6, 7 e 1) 60% 40% entre 12 e 65 anos 35% 5%
Exercícios para estudo Resolver os exercícios de 1 a 6 disponíveis em: http://www.ime.usp.br/~macmulti/exercicios/inteiros/index.html