MAC2166
Introdução à Computação para Engenharia
- aulas 03 e 04 -
Mauro Cesar Bernardes
11/Março/2014
Agenda
• Revisão
– Comando de saída print() – Comando de entrada input – Comando while
– Comando if, elif, else
• Exemplos de problemas
• Tipo float
• Monitoria
• EP1
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 Válido?
b2
velocidade Velocidade90 Salario medio Salario_medio
_b 2b
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 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
Primeiros comandos em Python
Saída de dados: print()
Entrada de dados: input()
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 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 = n
while k > 1:
pot = pot*n k = k - 1
print("A potência é", pot)
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 potência é", pot)
print("O valor de %d elevado a %d é %d" %(n, k, pot)) Outra solução....
Problema 3:
Dado um número inteiro n >= 0, calcular n! .
n = int(input("Digite o valor de n: ")) fat = n
while n > 1:
n = n -1
fat = fat*n
print("O resultado é =", fat)
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)
Outra solução....
Problema 3:
Dado um número inteiro n >= 0, calcular n! .
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 6.
Leia um número inteiro n, n > 0, e uma sequência com n números inteiros, determinar quantos números da sequência são pares e quantos são ímpares.
Por exemplo, para a sequência: 6 -2 7 0 -5 8 4
o seu programa deve escrever o número 4 para o número de pares e 2 para o de ímpares.
n = int(input("Digite o tamanho da sequência: ")) n_salvo = n
conta_par = 0 while n > 0:
n = n - 1
num = int(input("Digite um número da sequência: ")) if num % 2 == 0:
conta_par = conta_par + 1 print(conta_par,"números pares")
print(n_salvo-conta_par, "números ímpares")
PROBLEMA 6.
Leia um número inteiro n, n > 0, e uma sequência com n números inteiros, determinar quantos números da sequência são pares e quantos são ímpares.
Por exemplo, para a sequência: 6 -2 7 0 -5 8 4
o seu programa deve escrever o número 4 para o número de pares e 2 para o de ímpares.
#solução 2
n = int(input("Digite o tamanho da sequência: ")) conta_par = 0
conta_ímpar = 0 while n > 0:
num = int(input("Digite um num da seq: ")) n = n - 1
if num % 2 == 0:
conta_par = conta_par + 1 else:
conta_ímpar = conta_ímpar + 1 print(conta_par, "números pares") print(conta_ímpar, "números ímpares")
PROBLEMA 7.
Leia um número inteiro n, n>0, e um dígito d(0 ≤ d ≤ 9), determinar quantas vezes d ocorre em n.
Exemplo 1:
Digite o valor de n (n > 0): 63543 Digite o valor de d (0<=d<=9): 3 O dígito 3 ocorre 2 vezes em 63543
Exemplo 2:
Digite o valor de n (n > 0): 0 Digite o valor de d (0<=d<=9): 0 O dígito 0 ocorre 0 vezes em 0
Exemplo 3:
Digite o valor de n (n > 0): 0110 Digite o valor de d (0<=d<=9): 0 O dígito 0 ocorre 1 vezes em 110
PROBLEMA 7.
Dados um número inteiro n, n>0, e um dígito d(0 ≤ d ≤ 9), determinar quantas vezes d ocorre em n.
n = int(input("Digite o valor de n (n > 0): ")) d = int(input("Digite o valor de d (0<=d<=9): ")) conta_dígito = 0
n_salvo = n while n > 0:
dig = n % 10 n = n // 10 if dig == d:
conta_dígito = conta_dígito + 1
print("O dígito",d,"ocorre",conta_dígito,"vezes em ",n_salvo)
Tipos Numéricos
Operações com int , produz int (exceto para /).
Operações com float produz float
Tipos Numéricos
PROBLEMA 4.
leia um número inteiro n, n>0, e n notas de uma turma de MAC2166, determinar a média da turma. Por exemplo, para a sequência
6 2.3 7.5 0.5 5.1 8.7 4.9 o seu programa deve escrever:
A média da turma é 4.833333333333333
n = int(input("Digite o número de alunos: ")) n_salvo = n
soma = 0.0 while n > 0:
nota = float(input("Digite uma nota: ")) n = n - 1
soma = soma + nota
print("A média da turma é ", soma/n_salvo)
PROBLEMA 5.
Leia um número inteiro n, n>0, e uma sequência com n médias de MAC2166, determinar:
1. quantos alunos aprovados (média ≥ 5.0);
2. quantos alunos em recuperação(3.0 ≤ média < 5.0);
3. quantos alunos reprovados (média < 3.0); e 4. quantos alunos excelentes (média ≥ 8.0);
n = int(input("Digite o número de alunos: ")) conta_aprovados = 0
while n > 0:
media = float(input("Digite uma média: ")) n = n - 1
if media >= 5.0:
conta_aprovados = conta_aprovados + 1
print("Total de alunos aprovados: ", conta_aprovados)
Solução Parcial: resolvendo item 1
PROBLEMA 5.
Dados um número inteiro n, n>0, e uma sequência com n médias de MAC2166, determinar:
1. quantos alunos aprovados (média ≥ 5.0);
2. quantos alunos em recuperação(3.0 ≤ média < 5.0);
3. quantos alunos reprovados (média < 3.0); e 4. quantos alunos excelentes (média ≥ 8.0);
n = int(input("Digite o número de alunos: ")) conta_aprovados = 0
conta_recuperacao = 0 while n > 0:
media = float(input("Digite uma média: ")) n = n - 1
if média >= 5.0:
conta_aprovados = conta_aprovados + 1 if média < 5.0:
if média >= 3.0:
conta_recuperacao = conta_recuperacao + 1 print("Total de alunos aprovados: ", conta_aprovados)
print("Total de alunos de recuperacao: ", conta_recuperacao)
Solução Parcial: resolvendo item 1 e item 2
PROBLEMA 5.
Dados um número inteiro n, n>0, e uma sequência com n médias de MAC2166, determinar:
1. quantos alunos aprovados (média ≥ 5.0);
2. quantos alunos em recuperação(3.0 ≤ média < 5.0);
3. quantos alunos reprovados (média < 3.0); e 4. quantos alunos excelentes (média ≥ 8.0);
n = int(input("Digite o número de alunos: ")) conta_aprovados = 0
conta_recuperação = 0 conta_reprovados = 0 while n > 0:
média = float(input("Digite uma média: ")) n = n - 1
if média >= 5.0:
conta_aprovados = conta_aprovados + 1 elif média < 3.0:
conta_reprovados = conta_reprovados + 1 else:
conta_recuperação = conta_recuperação + 1
print("Total de alunos aprovados: ", conta_aprovados)
print("Total de alunos de recuperacao: ", conta_recuperação) print("Total de alunos reprovados: ", conta_reprovados)
Solução Parcial: resolvendo itens 1, 2 e 3
PROBLEMA 5.
Dados um número inteiron,n>0, e uma sequência com nmédias de MAC2166, determinar:1. quantos alunos aprovados (média ≥ 5.0);
2. quantos alunos em recuperação (3.0 ≤ média <5.0);
3. quantos alunos reprovados (média < 3.0) 4. quantos alunos excelentes (média ≥ 8.0);
n = int(input("Digite o número de alunos: ")) conta_aprovados = 0
conta_recuperação = 0 conta_reprovados = 0 conta_excelentes = 0 while n > 0:
média = float(input("Digite uma média: ")) n = n - 1
if media >=8:
conta_excelentes=conta_excelentes+1 conta_aprovados=conta_aprovados+1 elif média >=5:
conta_aprovados = conta_aprovados + 1 elif média < 3.0:
conta_reprovados = conta_reprovados + 1 else:
conta_recuperação = conta_recuperação + 1
print("Total de alunos aprovados: ", conta_aprovados)
print("Total de alunos de recuperacao: ", conta_recuperação) print("Total de alunos reprovados: ", conta_reprovados)
Uma solução completa
PROBLEMA EXTRA I (exercício 10 da lista de exercícios sobre inteiros).
Dizemos que um número inteiro positivo é triangular se ele é o produto de três números inteiros consecutivos. Por exemplo, 120 é triangular,
pois 4*5*6 é igual a 120.
Leia um número inteiro positivo n, verificar se n é triangular.
'''
Programa que lê um inteiro positivo n e imprime uma mensagem indicando se ele é ou não triangular
'''
print("Determina se um número n é triangular\n")
# leia o valor de n
n = int(input("Digite o valor de n: ")) i = 1
while i * (i+1) * (i+2) < n:
i = i + 1
if i * (i+1) * (i+2) == n:
print("%d é o produto %d*%d*%d" %(n,i,i+1,i+2)) else:
print("%d não é triangular" %(n))
Uma solução
num=int(input("Número para transformar da base2 para a base10:"))
# inicializações num_salvo=num
final = 0 pot2 = 1
while num != 0:
final = final + (num % 10) * pot2 num = num // 10
pot2 = pot2 * 2
print("%d na base 10 é: %d" %(num_salvo,final))
Uma solução completa
PROBLEMA EXTRA II (exercício 16 da lista de exercícios sobre inteiros).
Dado um número natural na base binária, transformá-lo para a base decimal.
Exemplo:
Dado 10010 a saída será 18, pois
1×2
4+ 0×2
3+ 0×2
2+ 1×2
1+ 0×2
0= 18.
Tabela Verdade: Operador and (e)
O resultado é verdadeiro apenas quando todos os operadores forem verdadeiros
v1 V2 v1 and v2
True True
True False
False True
False 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
True False
False True
False False
True
True
True
False
Tabela Verdade: Operador not (não)
O resultado é uma inversão do valor
v1 not v1
True False
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 Operação
and e
or ou
not não
n = int(input("Digite n: ")) rec = 0
cont = 0
while cont < n:
media = float(input("Digite uma nota: ")) if media >= 3.0 and media < 5.0:
rec = rec + 1 cont = cont +1
print(rec, "alunos ficaram de recuperação")
Uma solução completa