Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

1 – PRIMEIRA LISTA DE EXERCÍCIOS
1. Calcular a soma de dois n´umeros inteiros [6]. 
2. Dado um n´umero inteiro obter o ´ultimo algarismo desse n´umero [6]. 
3. Dado um n´umero inteiro de 3 algarismos diferentes de zero, inverter a ordem de seus algarismos [6]. 
4. Dado um n´umero inteiro de 3 algarismos, construir outro n´umero de 4 algarismos em que os trˆes primeiros, contados da esquerda para a direita, s˜ao iguais aos do n´umero dado e o quarto algarismo ´e um d´ıgito de controle calculado da seguinte forma [6]: • primeiro algarismo + segundo algarismo × 3 + terceiro algarismo × 5. • o d´ıgito de controle ´e igual ao resto da divis˜ao dessa soma por 7. • Por exemplo, se o n´umero digitado for 245, o resultado esperado ´e 2454. Se o n´umero digitado for 199, o resultado esperado ´e 1993. 
5. Dado um n´umero inteiro de segundos determinar o seu valor equivalente em horas, minutos e segundos. Se a quantidade de segundos for insuficiente para dar o valor em horas, o valor em horas deve ser zero. A mesma observa¸c˜ao continua v´alida em rela¸c˜ao a minutos e segundos [6]. Por exemplo: • 3600 segundos = 1 hora, 0 minutos e 0 segundos. • 3500 segundos = 0 horas, 58 minutos e 20 segundos. 
6. Dado um n´umero inteiro que representa um n´umero bin´ario de cinco d´ıgitos, determinar o seu equivalente decimal [6]. Para saber como transformar um n´umero bin´ario em um n´umero decimal, veja a transparˆencia do primeiro dia de aula do curso. Por exemplo, o n´umero bin´ario 10000 equivale a 16 em decimal, o n´umero bin´ario 11110 equivale a 30 em decimal. 
7. Dados o primeiro termo e a raz˜ao de uma progress˜ao aritm´etica, determinar a soma dos seus primeiros cinco termos [6]. 
8. Escreva uma sequˆencia de comandos para ler dois valores inteiros a e b, trocar os valores de a e b e imprimir os valores de a e b. Obs: ao final da sequˆencia de comandos, o valor inicial de a deve estar na vari´avel b, e o valor inicial de b deve estar em a [7]. 
9. Resolva o problema anterior sem utilizar vari´aveis auxiliares. Dica: use os operadores de soma (+) e subtra¸c˜ao (-) [7
 1.2 Comandos sequenciais e tipo de valor inteiro e real Utilize apenas comandos sequenciais e tipo de valor inteiro ou real.
 1. Escreva um programa em Python que recebe como entrada o raio de um c´ırculo em cent´ımetros e imprime, como sa´ıda, o diˆametro, a circunferˆencia e a ´area do c´ırculo. Assuma π como sendo 3.14159. Por exemplo, se o raio do c´ırculo ´e 20cm, ent˜ao a ´area ´e 1256,636 e a circunferˆencia ´e 125,636. 
2. Escreva um programa em Python para converter a distˆancia de uma maratona dada em milhas e jardas para quilˆometros. Uma maratona ´e definida em 26 milhas e 385 jardas. Sabe-se que uma milha vale 1,609 quilˆometros e que uma milha tem 1760,0 jardas. O programa deve calcular e exibir o valor 42.18596875 quilˆometros [3]. 
3. Escreva um programa em Python para converter um valor de temperatura dado em Celsius para Fahrenheit. O programa captura um valor de temperatura em Celsius, fornecido via teclado pelo usu´ario, e exibe como sa´ıda a temperatura correspondente em Fahrenheit. Sabe-se que F ◦ = C ◦ × 1, 8 + 32 [5]. Por exemplo, se o usu´ario entrar com o valor 5.0 ◦ C, o resultado ´e 41.00◦ F. 
4. Escreva um programa em Python para converter a altura de uma pessoa dada em metros para a altura expressa em pés e polegadas. Sabe-se que um pé tem 30,48 cm e que 1 polegada tem 2,54 cm. Assim, se o usuário entrar com o valor 1.8 (em metros) o programa deve exibir o valor 5ft 10.9pol. 
# Programa para converter altura em metros para ft e pol
import locale 
h = raw_input("Digite altura em metros (numero real): ")
h = float(h)
#converte para centimetros
h = 100*h 
# calcula numero de pes
f = (int) (h/30.48) 
p = (h-f*30.48)/2.54 # calcula numero de polegas do restante 
# Exibe altura convertida com uma casa decimal
print "Altura: ", f, "ft.", locale.format("%.1f",p), " pol."
5. Escreva um programa em Python que calcule o pre¸co da gasolina por litro no Brasil se adot´assemos o mesmo pre¸co cobrado nos Estados Unidos. O programa deve ler o pre¸co do gal˜ao de gasolina praticado nos Estados Unidos (em d´olares) e a taxa de convers˜ao do d´olar para o real. O programa ent˜ao deve exibir o pre¸co do litro de gasolina correspondente em reais. Sabe-se que um gal˜ao tem 3.7854 litros. Por exemplo, se o usu´ario digitar R$ 2,20 para o pre¸co do gal˜ao e R$ 2,58 para a taxa de convers˜ao do d´olar, o pre¸co em reais ´e de, aproximadamente, R$ 1,499445. 
6. Considerando o crit´erio de aprova¸c˜ao de uma disciplina que determina que um aluno est´a aprovado se a m´edia ponderada de suas trˆes provas for maior ou igual a 5.0, onde a m´edia ´e dada pela f´ormula: M´edia = (P1 + P2 + 2.0* P3)/4.0 Escreva um programa em Python que capture as duas primeiras notas de um aluno, fornecidas pelo usu´ario via teclado, e calcule e imprima a nota m´ınima que o aluno precisa tirar na P3 para que seja aprovado. 
7. Considere as equa¸c˜oes de movimento para calcular a posi¸c˜ao (s) e velocidade (v) de uma part´ıcula em um determinado instante t, dado sua acelera¸c˜ao a, posi¸c˜ao inicial s0 e velocidade inicial v0, de acordo com as f´ormulas: s = s0 + v0t + at2 e v = v0 + at. Escreva um programa Python que capture os valores de s0, v0, a e t, fornecidos pelo usu´ario via teclado, e calcule e imprima os valores de s e v. Todos os valores tratados no programa devem ser n´umeros reais
 1.3 Estrutura de sele¸c˜ao Utilize somente instru¸c˜oes sequenciais e de sele¸c˜ao. 
1. Fa¸ca um programa em Python que capture um valor inteiro fornecido via teclado e imprima uma mensagem informando se o n´umero inserido ´e um n´umero par ou ´ımpar. 2. Fa¸ca um programa em Python que leia dois n´umeros inteiros e: (a) Se o primeiro n´umero for igual ao segundo, o programa deve imprimir a mensagem “Os numeros s˜ao iguais.”. (b) Se o primeiro n´umero for maior ao segundo, o programa deve verificar se o segundo divide exatamente o primeiro e imprimir a mensagem “O segundo numero divide exatamente o primeiro numero.”; caso contr´ario, a mensagem “Os numeros n˜ao s˜ao divisiveis.”. (c) Do contr´ario o programa deve imprimir a mensagem “O segundo n´umero ´e maior!”. 3. Escreva um programa em Python que leia trˆes n´umeros inteiros e imprima os trˆes n´umeros em ordem crescente. 4. Escreva um programa em Python que recebe dois n´umeros inteiros como entrada e imprime, como sa´ıda, se o primeiro ´e m´ultiplo do segundo. 
5. Escreva um programa em Python para classificar um triângulo de acordo com suas medidas, fornecidas pelo usuário. Sejam A, B e C as medidas do triângulo. Sabe-se da geometria: (i) se os três lados A, B e C forem iguais então o triângulo é equilátero; (ii) se dois lados forem iguais e um diferente então o triângulo é isósceles; e (iii) se os três lados forem diferentes entre si então o triângulo é escaleno. Verifique também, inicialmente, se a premissa que garante que as três medidas formam um triângulo, dada por “cada um dos lados é menor do que a soma dos outros dois”, é válida. O programa deve então ler três medidas, verificar se formam um triângulo e, em caso afirmativo, dizer qual o tipo de triângulo: equilátero, isósceles ou escaleno. 
a = input("Digite o primeiro lado do triangulo (inteiro): ")
b = input("Digite o segundo lado do triangulo (inteiro): ")
c = input("Digite o terceiro lado do triangulo (inteiro): ")
try:
 a = int(a)
 b = int(b)
 c = int(c)
except:
 print ("Entrada invalida")
else:
 if (a < c+b) and (b < a+c) and (c < b+a):
 print ("As medidas ", a, b, c, " formam um triangulo")
 if (a==b) and (a==c): print ("Equilatero.")
 elif (a==b) or (a==c) or (c==b) : print ("ISOSCELES.")
 else: print ("ESCALENO.")
 else: print ("As medidas ", a, b, c, " NAO formam um triangulo.") 
6. Dados um n´umero n e quatro outros a, b, c e d, correspondentes, respectivamente, `as extremidades dos intervalos [a,b] e [c,d], sendo a
2- Lista de exercícios2.1 Estruturas de repetição e tipos de valores inteiro e real
1. Dado um inteiro n, calcular e imprimir a soma dos n primeiros números pares .
n = raw_input("Digite o valor de n (inteiro): ")
try:
 n = int(n)
except:
 print "Entrada invalida" 
 quit()
soma = 0
for i in range(1,n+1):
	t = 2*i
	soma = soma + t
print "Soma = ", soma
2. Dado um inteiro n, imprimir os n primeiros números ímpares .
n = int(input("Digite o valor de n: "))
for i in range(1, n+n, 2):
 print(i)
3. Dado um inteiro n, imprimir os n primeiros números ímpares em ordem oposta .
4. Considere a progressão geométrica (PG) 1; 2; 4; 8; 16; 32; : : : e um inteiro positivo n.Deseja-se imprimir os n primeiros termos e a soma dos n primeiros termos da PG sem utilizar a fórmula da soma .
5. Imprimir os n primeiros termos das sequências definidas pelas relações de recorrência:
(a) yk+1 = yk + k; k = 1; 2; 3; : : : ; y1 = 1.
(b) yk+1 = yk + (2k + 1); k = 0; 1; 2; 3; : : : ; y1 = 1.
(c) yk+1 = yk + 3k2 + 3k + 1; k = 0; 1; 2; 3; : : : ; y1 = 1.
(d) yk+1 = 2yk; k = 1; 2; 3; : : : ; y1 = 1.
6. Calcular as somas [6]:
(a)
(b)‬
(c)
7. Escreva um programa para, dado dois valores inteiros a e b, calcular e imprimir o
resultado do somatório [8]:
Por exemplo, se o usuário digitar a=5 e b=3, o resultado é 640.
8. Considerando n um valor de entrada que deve ser numérico, inteiro e ímpar, escreva um programa que calcule e imprima o resultado da seguinte expressão :
Por exemplo, se o usuário digitar n=5, o resultado é 3.7.
n = raw_input ("Digite o valor de n (impar e inteiro): ")
ival = 1
try:
 n = int(n)
except:
 ival = -1
if ival == -1 or n%2!= 1:
 print "Entrada invalida" 
 quit()
soma = 0
for i in range(1,n+1):
	termo = float(i)/(n-i+1) 
	if (i%2==0): termo = termo *-1
	soma = soma + termo
print "Soma: ",soma
Outra solução
n = raw_input ('valor de inicio ')
try:
 n = int (n)
except:
 print 'entrada invalida'
 exit()
if (n % 2 == 0):
 print 'numero par' 
 quit()
soma = 0
d = n * 1.0 
for x in range (1, n+1):
 if (x % 2 == 0): soma = soma - x/d
 elif (x % 2 != 0): soma = soma + x/d
 d = d-1
print soma 
9. Faça uma pequena alteração no exercício anterior de forma que, caso o número n,
fornecido pelo usuário, não seja positivo nem ímpar, ou mesmo não seja um número,
o programa continue pedindo os dados para o usuário.
10. Um determinado material radioativo perde metade de sua massa a cada 50s. Sendo dado de entrada a massa do material (em g), escreva um programa que calcule o tempo necessário para que a massa deste material passe a ser inferior a 1g. Escreva na tela sua resposta em horas, minutos e segundos .
11. A sequência
converge para a raiz quadrada de A, sendo A > 0. Calcule um valor aproximado da raiz quadrada de um número A através de n iterações. Os valores de A > 0 e n são fornecidos pelo usuário. Chamado método de Newton-Raphson.
# calcula valor aproximado da raiz quadrada de um dado numero
A = raw_input("Digite o valor de A (real, >0): ")
ival = 1
try:
 A = float(A)
except:
 ival = -1
if ival == -1 or A <=0:
 print "Entrada invalida" 
 quit()
raiz = 1.0
for i in range(1,6):
	raiz = (raiz+ A/raiz)/2.0
print "Raiz: ",raiz
12. Usando a relação de recorrência definida no exercício anterior obtenha uma tabela de raízes quadradas dos números inteiros de 2 a 10. O valor aproximado de cada raiz quadrada deve ser obtido através de cinco iterações .
# calcula valor aproximado da raiz quadrada de varios numeros em 5 iteracoes
print "Tabela de raizes quadradas de 2 a 10"
for x in range(2,11):
	raiz = 1.0
	for i in range(1,6):
		raiz = (raiz+ x/raiz)/2.0
	print "Raiz de: ",x," = ",raiz
13. Tabelar n! para n variando de 0 at_e 10. Por de_ni_c~ao
n! = n _ (n 􀀀 1) _ (n 􀀀 2) _ : : : _ 1, onde 0! = 1 [6].
14. Dados dois inteiros n~ao negativos a e n, calcule an. O programa n~ao pode alterar o
valor de a nem de n e sim atribuir o valor de an a outra vari_avel, por exemplo b. O
programa pode usar outras vari_aveis [7].
15. Dados dois inteiros n~ao negativos a e b, calcule o produto de a * b. Somente os
operadores +;􀀀;=; 6= s~ao permitidos [7].
16. Dados um inteiro n~ao negativo a e um inteiro positivo d, calcule o quociente q e o
resto r quando a _e dividido por d. N~ao use os operadores / ou % [7].
17. Dados dois n_umeros inteiros positivos determinar quantas vezes o primeiro divide
exatamente o segundo. Se o primeiro n~ao divide o segundo o n_umero de vezes _e
zero [6].
18. Dados dois n_umeros inteiros positivos determinar o valor da maior pot^encia do primeiro
que divide o segundo. Se o primeiro n~ao divide o segundo, a maior pot^encia _e
de_nida igual a zero [6].
19. Dados dois n_umeros reais positivos determinar o quociente inteiro do primeiro pelo
segundo usando apenas os operadores aritm_eticos reais [6].
20. Dado um n_umero real positivo determinar sua parte inteira e sua parte fracion_aria
usando apenas os operadores aritm_eticos reais [6].
21.Dado um número binário inteiro positivo determinar a sua conversão decimal. Por exemplo, se o usuário digitar o número binário 111111 o decimal correspondente é 63.
print "Mostre a conversao de um numero binario inteiro positivo em decimal."
n = raw_input("Digite um numero binario (inteiro, >0): ")
ival = 1
try:
 n = int(n)
except:
 ival = -1
if ival == -1 or n <=0:
 print "Entrada invalida" 
 quit()
decimal = 0
mult = 1
binario = n
while (n>0):
	b = n%10
	decimal = decimal + (b*mult)
	mult = mult * 2
	n = n/10
print "Binario ",binario," = ",decimal," decimal."
Solução 2
print "Mostre a conversao de um numero binario inteiro positivo em decimal."
n = raw_input("Digite um numero binario (inteiro, >0): ")
ival = 1
try:
   n = int(n)
except:
   ival = -1
if ival == -1 or n <=0:
   print "Entrada invalida" 
   quit()
decimal = 0
mult = 1
binario = n
while (n>0):
   b = n%10
   decimal = decimal + (b*mult)
   mult = mult * 2
   n = n/10
print "Binario ",binario," = ",decimal," decimal."
22. Fa_ca um programa para calcular e imprimir os divisores dos n_umeros de 1 a n. O
usu_ario do programa deve fornecer o valor de n. O exemplo abaixo simula a execu_c~ao
do programa:
Divisores dos numeros entre 1 e 10
1
2 1
3 1
4 1 2
5 1
6 1 2 3
7 1
8 1 2 4
9 1 3
10 1 2 5
23. Um número chamado palíndromo é aquele que continua o mesmo se seus dígitos forem escritos em ordem inversa. Faça um programa que leia vários números inteiros não negativos e verifique se cada um é ou não um palíndromo. O programa deve imprimir a mensagem EH PALINDROMO caso o número seja palíndromo e NAO EH PALINDROMO caso contrário.
n = int(input ("Digite o número a verificar:"))
q = 0
while 10 ** q < n:
 q = q + 1
i = q
f = 0
nf = ni = n # Aqui nós copiamos n para ni e nf
pi = pf = 0 # e fazemos pi = pf (para casos especiais)
while i > f:
 pi = int(ni / (10 ** (i-1))) # Dígito mais à direita
 pf = nf % 10 # Dígito mais à esquerda
 if pi != pf: # Se são diferentes, saímos
 break
 f = f + 1 # Passamos para o próximo dígito a esqueda
 i = i - 1 # Passamos para o dígito a direita seguinte
 ni = ni - (pi * (10 ** i )) # Ajustamos ni de forma a retirar o dígito anterior
 nf = int(nf / 10) # Ajustamos nf para retirar o último dígito
if pi == pf:
 print("%d é palíndromo" % n)
else:
 print("%d não é palíndromo" % n)
24. Dizemos que um número é TRIANGULAR se ele é inteiro positivo e pode ser visto como uma multiplicação de três números consecutivos. Exemplos:
_ 6 é TRIANGULAR pois 6 = 1 * 2 * 3
_ 10 não é um número TRIANGULAR
_ 24 é TRIANGULAR pois 24 = 2 * 3 * 4
Implemente um programa que teste se um número inteiro positivo é triangular ou não.
def tri(n):
	a = 1
	b = 2
	c = 3
	while (a*b*c<n):
		a = a + 1
		b = b + 1
		c = c + 1
	if (a*b*c==n): return True
	else: return Falsewhile True:
 n = input("Digite um numero inteiro (>0): ")
 ival = 1
 try:
 n = int(n)
 except:
 ival = -1
 if ival == -1 or n <=0:
 print ("Entrada invalida.")
 continue
 break
ok = tri(n) 
if (ok): print ("EH TRIANGULAR.")
else: print ("NAO EH TRIANGULAR.")
25. Escreva um programa em Python que verifique se um determinado número é primo. O número a ser testado deve ser fornecido pelo usuário do programa via teclado.O programa deve imprimir a mensagem NUMERO PRIMO caso o némero seja primo, e NUMERO NAO PRIMO caso contrário.
n = raw_input("Digite um numero inteiro (>0): ")
ival = 1
try:
 n = int(n)
except:
 ival = -1
if ival == -1 or n <=0:
 print "Entrada invalida" 
 quit()
achou = False
div = 2
while (div<n):
	if (n%div == 0):
		achou = True
		break
	else:
		div = div +1
if (achou): print "NAO EH PRIMO"
else : print "EH PRIMO"
26. Faça um programa que imprima os n primeiros termos da série de Fibonacci, lembrando que esta série é definida da seguinte forma:
termo1 = 1
termo2 = 1
termo n = termo n-1 + termo n-2
O usuário do programa deve fornecer o número de termos. Por exemplo, se o usuário
pedir os 6 primeiros termos da série de Fibonacci o programa deve ter a seguinte
saída: 1 1 2 3 5 8.
n = raw_input("Digite um numero inteiro (>0): ")
ival = 1
try:
 n = int(n)
except:
 ival = -1
if ival == -1 or n <=0:
 print "Entrada invalida." 
 quit()
t1 = 1
t2 = 1
cont = 0
if (n>=1): 
 print t1
 cont = cont + 1
if (n>=2):
 print t2
 cont = cont + 1
while (cont<n):
 termo = t1 + t2
 print termo
 cont = cont + 1
 t1 = t2
 t2 = termo
27. Faça um programa que teste se um número pertence a série de Fibonacci. O número a ser testado deve ser fornecido pelo usuário do programa. O programa deve imprimir a mensagem “PERTENCE A SERIE" caso o número pertença a série, e “NÃO PERTENCE A SERIE" caso contrário.
n = raw_input("Digite um numero inteiro (>0): ")
ival = 1
try:
 n = int(n)
except:
 ival = -1
if ival == -1 or n <=0:
 print "Entrada invalida." 
 quit()
t1 = 1
t2 = 1
termo = 1 
while (termo<n):
 termo = t1 + t2
 t1 = t2
 t2 = termo
if (n == termo):
 print n,"pertence a serie."
else:
 print n, "nao pertence a serie." 
28. Faça um programa para, dados dois números inteiros positivos a e b, fornecidos pelo usuário, calcular e imprimir o máximo divisor comum (mdc) entre a e b. Por exemplo, se a = 54180 e b = 13125, a resposta é 105.
a = raw_input("Digite a (inteiro, >0): ") 
b = raw_input("Digite b (inteiro, >0): ") 
ival = 1
 try: 
a = int(a) 
b = int(b) 
except: 
ival = -1
 if ival == -1 or a <=0 or b<=0: 
print "Entrada invalida." 
quit() 
maior = a 
menor = b
 if (b>maior):
 	maior = b 
menor = a 
while (menor>0): 
r = maior % menor 
maior = menor 
menor = r
 print "Mdc de ", a, b, "eh", maior
29 - Faça um programa em Python para calcular e imprimir o resultado do somatório da expressão abaixo:
Dica: use dois comandos for. O programa é bem simples! Apenas 5 linhas. O resultado do somatório é 1485.
Soma=0
for j in range (1,4):
	for k in range (11):
		soma=soma+ 5+(4*k*j)
print “soma”,soma
30 - Escreva um programa em Python que leia três números inteiros e imprima os três números em ordem crescente. Use comandos try/except para tratar o caso do usuário não digitar um número inteiro
a = raw_input("Digite o valor do primeiro numero (inteiro): ") 
b = raw_input("Digite o valor do segundo numero (inteiro): ") 
c = raw_input("Digite o valor de terceiro numero (inteiro): ") 
ival = 1
try: 
 	a = int(a)
 b = int(b) 
 c = int(c) 
except: 
ival = -1
 if ival == -1 :
 print "Entrada invalida"
 quit() 
if (a > b ) : 
if (b > c): 
print c, b, a 
 else:
 if (a > c): print b, c, a 
else : print b, a, c 
elif (b>c):	
 if (a>c): print c, a, b 
else : print a, c, b 
else : print a, b, c
3 – LISTA DE EXERCÍCIOS
Exerc´ıcio resolvido sobre fun¸c˜oes 1. (a) Escreva uma fun¸c˜ao em Python que receba como parˆametro um n´umero inteiro n˜ao negativo e retorne, como resultado da fun¸c˜ao, o valor do seu fatorial. Escreva um programa para testar sua fun¸c˜ao. def fat(n): f = 1 for i in range(1,n+1): f = f * i return f n = input("Digite um numero inteiro (>0): ") ival = 1 try: n = int(n) except: ival = -1 if ival == -1 or n <=0: print ("Entrada invalida") else: print (fat(n)) (b) Seja N um conjunto com n elementos, chama-se de combina¸c˜oes dos n elementos, tomados k a k, aos subconjuntos de N constitu´ıdos de k elementos. A f´ormula para calcular o n´umero total de combina¸c˜oes de um conjunto de n elementos tomados k a k ´e dada por: C k n = n! (n − k)! ∗ k! Usando a fun¸c˜ao fatorial do item (a), escreva um programa que capture via teclado dois n´umeros inteiros, representando n e k, e imprima o valor do n´umero total de combina¸c˜oes, C k n . Pode-se assumir que o usu´ario sempre fornecer´a valores v´alidos. Por exemplo, se o usu´ario digitar n = 5, k = 2, a resposta ´e 10. Respostas: def fat(n): f = 1 for i in range(1,n+1): f = f * i return f n = input("Digite n (>0): ") k = input("Digite k (>0): ") ival = 1 try: n = int(n) k = int(k) except: ival = -1 if ival == -1 or n<=0 or k<=0: print ("Entrada invalida") else: combinacao = fat(n)//(fat(n-k)*fat(k)) print (combinacao) 1/3 UNIRIO Profs. Adriana C. F. Alvim Programa¸c˜ao I Fun¸c˜oes 1. Implemente a fun¸c˜ao dentroRetangulo(v1x, v1y, v2x, v2y, x, y) que indica se um ponto (x, y) est´a localizado dentro ou fora de um retˆangulo. O retˆangulo ´e definido por seus v´ertices inferior esquerdo (v1x, v1y) e superior direito (v2x, v2y). A fun¸c˜ao deve retornar True caso o ponto esteja localizado dentro do retˆangulo e False caso contr´ario. Teste sua fun¸c˜ao. 2. Implemente a fun¸c˜ao dentroCirculo (cx, cy, r, x, y) que indica se um ponto (x, y) est´a localizado dentro ou fora de um c´ırculo. O c´ırculo ´e definido por seu centro (cx, cy) e seu raio r. A fun¸c˜ao deve retornar True caso o ponto esteja localizado dentro do c´ırculo e False caso contr´ario. Teste sua fun¸c˜ao. 3. Implemente a fun¸c˜ao numPrimo(n) que testa se um n´umero inteiro ´e primo ou n˜ao, em que o parˆametro n ´e o n´umero a ser testado. A fun¸c˜ao deve retornar True caso n seja primo e False caso contr´ario. Teste sua fun¸c˜ao. 
4. Implemente uma função que receba um inteiro positivo n como parâmetro e retorne o n-ésimo termo da série de Fibonacci:
 1 1 2 3 5 8 13 21 . . . 
Por exemplo, se n = 7 a função retorna 13. Lembre que: 
fibonacci(1) = 1
 fibonacci(2) = 1 
fibonacci(n) = fibonacci(n-1) + fibonacci(n-2) 
def enesimo_fib(n):
 t1 = 1
 t2 = 1
 if (n==1): return 1
 if (n==2): return 1
 cont = 2
 while (cont<n):
 termo = t1 + t2
 cont = cont + 1
 t1 = t2
 t2 = termo
 return termo
n = input("Digite um numero inteiro (>0): ")
ival = 1
try:
 n = int(n)
except:
 ival = -1
if ival == -1 or n <=0:
 print ("Entrada invalida.")
else: 
 print (enesimo_fib(n))
5. Implemente uma função que receba um inteiro positivo n por parâmetro e imprima n linhas, em que cada linha é formada pelo número da linha repetido o número da linha vezes. Por exemplo, para n = 5, o resultado seria: 
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
def imp_n_linhas_iguais(n):
 for i in range(1, n+1):
 for j in range(1,i+1):
 print i, # print j vezes o numero i na mesma linha
 print # print nova linha
n = raw_input("Digite um numero inteiro (>0): ")
ival = 1
try:
 n = int(n)
except:
 ival = -1
if ival == -1 or n <=0:
 print "Entrada invalida." 
 quit() 
imp_n_linhas_iguais(n)
6. Implemente uma função que receba um inteiro positivo n por parâmetro e imprima n linhas, em que cada linhaé formada pelos n´umeros de 1 at´e o n´umero da linha. Por exemplo, para n = 5, o resultado seria: 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 Exemplo de fun¸c˜ao que retorna mais de um valor 
7. Implemente a função raizes(a,b,c) que calcula as raízes de uma equação do segundo grau, do tipo ax2 + bx + c = 0. Seja ∆ = b^ 2 − 4ac. Se ∆ ≥ 0 as raízes são reais e x = −b± √ ∆/ 2a . A função recebe como parâmetro três números inteiros a, b e c que representam os coeficientes da equação e retorna as raízes x1 e x2 e um código conforme a seguir: 
(a) Se as raízes forem reais e distintas, x1 deve guardar a raiz de menor valor e x2 a de maior valor e a função deve retornar o código 2. 
(b) Se as raízes forem reais e iguais x1 = x2 e a função deve retornar código 1. 
(c) Se não existirem raízes reais, x1 = None e x2 = None e a função deve retornar código 0. 
(d) Para o cálculo da raiz quadrada de um número, utilize a função sqrt definida no módulo math da biblioteca padrão do Python. Use o comando import math para importar o módulo. Se a = 1, b = −5, c = 6 então x1 = 2, x2 = 3 e r = 2. Se a = 1, b = 8, c = 16 então x1, x2 = −4 e r = 1. Se a = 10, b = 6, c = 10 então x1 = x2 = None e r = 0. 
8. Implemente um programa completo que capture via teclado os três coeficientes de uma equação do segundo grau e, usando a função do item acima, calcule e imprima os valores das raízes correspondentes, informando também por escrito (imprimindo uma mensagem) se elas são reais e distintas, reais e iguais ou se não existem raízes reais.
Solução do 7 e do 8
from math import sqrt
def raizes(a,b,c):
 ret = 0
 x1 = x2 = 0.0
 delta = (b*b) - 4*a*c
 if (delta>=0):
 x1 = (-b-sqrt(delta))/(2*a)
 x2 = (-b+sqrt(delta))/(2*a)
 if (delta==0): ret = 1
 else: ret = 2
 else:
 x1=x2=None
 return x1, x2, ret 
a = input("Digite o valor do coeficiente a (inteiro): ")
b = input("Digite o valor do coeficiente b (inteiro): ")
c = input("Digite o valor de coeficiente c (inteiro): ")
try:
 a = int(a)
 b = int(b)
 c = int(c)
except:
 print ("Entrada invalida") 
else:
 x1, x2, ret = raizes(a,b,c)
 if (ret==1):
 print ('As raizes sao reais e iguais x1=x2=', x1)
 elif ret==2:
 print ('As raizes sao reias e diferentes x1=',x1,'x2=',x2)
 else: print ('nao ha raizes reais')

Mais conteúdos dessa disciplina