• Nenhum resultado encontrado

Introdução à Computação para Engenharia - aulas 03 e 04 -

N/A
N/A
Protected

Academic year: 2022

Share "Introdução à Computação para Engenharia - aulas 03 e 04 -"

Copied!
31
0
0

Texto

(1)

MAC2166

Introdução à Computação para Engenharia

- aulas 03 e 04 -

Mauro Cesar Bernardes

11/Março/2014

(2)

Agenda

Revisão

Comando de saída print()Comando de entrada inputComando while

Comando if, elif, else

Exemplos de problemas

Tipo float

Monitoria

EP1

(3)

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

(4)

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

(5)

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

(6)

Primeiros comandos em Python

Saída de dados: print()

Entrada de dados: input()

(7)

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.

(8)

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)

(9)

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....

(10)

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)

(11)

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! .

(12)

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")

(13)

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")

(14)

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")

(15)

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

(16)

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)

(17)

Tipos Numéricos

Operações com int , produz int (exceto para /).

Operações com float produz float

(18)

Tipos Numéricos

(19)

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)

(20)

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

(21)

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

(22)

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

(23)

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

(24)

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

(25)

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.

(26)

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

(27)

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

(28)

Tabela Verdade: Operador not (não)

O resultado é uma inversão do valor

v1 not v1

True False

False True

(29)

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

(30)

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

PROBLEMA 8.

Dados um número inteiro n>0 e as médias de n alunos, determinar

quantos ficaram de recuperação. Um aluno está de recuperação se sua

média for maior ou igual a 3,0 e menor 5,0 (nota máxima é 10,0).

(31)

Para mais exercícios:

• Lista de Exercícios com Inteiros

http://www.ime.usp.br/~macmulti/exercicios/inteiros/index.html

• Lista de Exercícios com Reais

http://www.ime.usp.br/~macmulti/exercicios/reais/index.html

Referências

Documentos relacionados

A partir de uma análise cuidadosa dos artigos incluídos na revisão integrativa, foram identificadas quatro categorias de intervenção: utilização de contato telefônico e

On physical examination the patient reported pain during left humerus greater tubercle palpation and left shoulder active range of motion was limited by pain in flexion (150º),

Deve-se destacar que as culturas de banana e milho empregadas como referencia, muito contrastantes, forneceram valores similares de FBN nos genótipos de capim elefante

adenovírus, rinovírus Freqüentemente causam pneumonia entre as crianças mais jovens deste grupo etário Streptococcus pneumoniae Causa mais provável de pneumonia lobar ou segmentar,

No infarto agudo do miocárdio, o tratamento com lisinopril não deve ser iniciado em pacientes com evidência de disfunção renal, definida como concentrações de

Ao contrário – exatamente promovendo uma desconstrução ideológica – ficou registrada na história a práxis de Nelson Mandela, que lutou contra o apartheid (política ideológica

Comportamento Termodinâmico do Gás Natural e Propriedades Físicas; Balanço de Materiais em Reservatórios de Gás Natural; Escoamento Poço - Reservatório; Escoamento de Gás

Este estudo apresentou como principal finalidade, a avaliação da poluição ambiental provocada pela disposição inadequada dos RSU’s, em área de disposição de RSU`s e