Prévia do material em texto
#LISTA DE EXERCICIOS – INTROD. PROG. ESTRUTURADA – 2020/2
#CURSO: Ciência da Computação – CAMPUS: Anchieta – #PROFESSOR: Marcos Junior
#ALUNO: Giuliana Menezes Branco – RA: N67548-9 – SEMESTRE: 2o Semestre
#ENUNCIADO: 01 - Desenvolva uma classe que apresente todos os números primos
existentes entre N1 e N2, em que N1 e N2 são números naturais fornecidos. Um
número é primo quando é divisível somente por ele e pela unidade (1).
n1 = int(input("Indique o primeiro número natural: "))
n2 = int(input("Agora, indique o segundo número natural: "))
if n1>n2:
aux = n1
n1 = n2
n2= aux
primos = []
for prs in range(n1, n2 + 1, 1):
if n1<0:
break
quantia= 0
for cont in range(n1, n2 + 1):
if (prs%cont==0):
quantia+=1
if quantia<=2:
primos.append(prs)
print(primos)
#ENUNCIADO: 02 - Escrever um algoritmo que produza na tela um triângulo de
Pascal de grau “n” usando uma matriz. Abaixo temos um triângulo de Pascal de
grau 6 (isto é, com seis linhas):
#1
#1 1
#1 2 1
#1 3 3 1
#1 4 6 4 1
#1 5 10 10 5 1
#Os elementos extremos em cada linha são iguais a 1. Os outros são obtidos
somando-se os dois valores que aparecem imediatamente acima e à esquerda na
linha anterior. Exemplo: O quarto elemento da linha corresponde a soma do
quarto e do terceiro elemento na linha anterior, isto é, 4 = 1 + 3.
def triangulo_de_pascal(n):
trow = [1]
y = [0]
for x in range(max(n,0)):
print(trow)
trow=[l+r for l,r in zip(trow+y, y+trow)]
return n>=1
triangulo_de_pascal(6)
#ENUNCIADO: 03 - Escreva uma classe que leia um vetor de 30 posições de
números inteiros e imprimir, logo após, gerar 2 vetores a partir dele, um
contendo os elementos de posições ímpares do vetor e o outro os elementos
pares. Imprimi-los no final.
l1=[]
num_pares=[]
num_impares=[]
from random import randint
for x in range(1, 31, 1):
num= randint(0, 50)
l1.append(num)
print(l1)
for cont in range(1, len(l1), 1):
if l1[cont]%2==0:
pares.append(l1[cont])
print(f"\nOs pares:{num_pares}")
print(f"\nOs impares:{num_impares}")
#ENUNCIADO: 04 - Escreva um procedimento que receba um número arábico inteiro
e imprima o corresponde número em romano. Por exemplo, para 5 a saída desejada
é “V”. A função deve ser capaz de gerar o número romano para os 50 primeiros
inteiros. Uma mensagem de erro deve ser mostrada caso um número fora dessa
faixa seja recebido. Crie também um algoritmo que leia um valor inteiro e
chame o procedimento criado acima para a impressão do número romano.
num=int(input("Indique um valor de 1 até 50:"))
def numromano(num):
numroman= ["I", "II", "III", "IV", "V", "VI","VII", "VIII", "IX", "X", "XI",
"XII", "XV", "XVI", "XVII", "XVIII", "XIX", "XX","XXI", "XXII", "XXIII",
"XXIV", "XXV", "XXVI", "XXVII", "XXVIII", "XXIX", "XXX", "XXXI", "XXXII",
"XXXIII", "XXXIV", "XXXV", "XXXVI", 'XXXVII', "XXXVIII", "XXXIX", "XL", "XLI",
"XLII", "XLIII", "XLIV", "XLV", "XLVI", "XLVII". "XLVIII", "XLIX", "L"]
flag = 0
for cont in range(1, len(numroman)):
if num<1
fla= 1
if num==cont
flag=2
if flag==1
print("Não foi possível reconhecer este número. Tente novamente.")
if flag==2:
print(numroman[num])
numromano(num)
print('><'*15)
num2= int(input("Indique um número de 1 até 50: "))
print("O número que você indicou em romanos é representado por:")
numromano(num2)
#ENUNCIADO: 05 - Preencher por leitura uma matriz M (5,5). Em seguida,
calcular e imprimir a matriz toda e a média dos elementos das áreas
assinaladas abaixo:
matriz = [[], [], [], [], []]
from random import randint
for l in range(0,5):
for c in range(0,5):
num=randint(1,25)
matriz[l].append(num)
for l in range(0,5):
for c in range(0,5):
print(f"[{matriz[l][c]:^5}]", end=" ")
print()
#ENUNCIADO: 06 - Fazer um algoritmo que calcule e escreva a soma dos 50
primeiros termos das seguintes séries:
main()
{
float dividendo = 1000.0;
int divisor =1;
float resultado = 0.0;
for(divisor=1;divisor<=50;divisor++)
{
if(divisor %2==1)
{
resultado += dividendo/divisor;
}else{
resultado -= dividendo/divisor;
}
dividendo-=3;
}
printf("Resultado da expressao %6.2f\n",resultado);
}
#ENUNCIADO: 07 -Escrever um algoritmo que lê um par de coordenadas (x,y)
inteiras e imprima uma mensagem informando em qual quadrante está o ponto. O
algoritmo deve também ser capaz de identificar se o ponto está sobre um dos
eixos ou no ponto central.
x= int(input("Indique uma coordenada para X: "))
y= int(input("Indique uma coordenada para Y: "))
if x>0:
if y>0:
print("As coordenadas que você indicou se encontram no PRIMEIRO QUADRANTE")
elif y<0:
print("As coordenadas que você indicou se encontram no QUARTO QUADRANTE")
if x<0:
if y>0:
print("As coordenadas que você indicou se encontram no SEGUNDO QUADRANTE")
elif y<0:
print("As coordenadas que você indicou se encontram no TERCEIRO QUADRANTE")
if x==0 and y==0:
print("As coordenadas indicadas se encontram no EIXO CENTRAL")
if x==0:
print("As coordenadas indicadas se encontram no EIXO Y")
if y==0:
print("As coordenadas indicadas se encontram no EIXO X")
#ENUNCIADO: 08 - Crie um programa que leia um número entre 2 e 20 e gere uma
tela com a seguinte configuração:
#Digite um número: 7
#Saída do programa:
#1234567
#x123456
#xx12345
#xxx1234
#xxxx123
#xxxxx12
#xxxxxx1
lista= []
num= int(input("Escreva um número de 2 a 20: "))
atenum=1
loop= 0
while loop<1:
if atenum<=num:
lista.append(atenum)
atenum+=1
elif atenum>num:
loop=2
print(lista)
for cont in range(0,len(lista)-1):
lista.pop()
lista.insert(cont,"x")
print(lista)
#ENUNCIADO: 09 - Faça uma função que recebe um valor inteiro e verifica se o
valor é positivo, negativo ou zero. A função deve retornar 1 para valores
positivos, ‐1 para negativos e 0 para o valor 0.
num= int(input("Indique um número e o programa apontará se é positivo,
negativo ou zero, sendo 1 para positivo, -1 para negativo e 0 par zero: "))
def numero(num):
if num>0:
print("1")
elif num<0:
print("-1")
elif num==0
print("0")
numero(num)
#ENUNCIADO: 10 - Elabore um algoritmo que leia dois vetores de dez posições e
faça a multiplicação dos elementos da seguinte forma: o primeiro do vetor 1
com o último do vetor 2, o segundo do vetor 1 com o penúltimo do vetor 2 e
assim por diante, colocando o resultado num terceiro vetor, que deve ser
mostrado como saída.
vet1=[1,2,3,4,5,6,7,8,9,10]
vet2=[10,9,8,7,6,5,4,3,2,1]
vet3=[]
print(vet1)
print(vet2)
for cont in range(0,10):
vet3.append(vet1[cont]*vet2.pop())
print("=="*8)
print(vet3)
#ENUNCIADO: 11 - Construa um programa que, para um grupo de 50 valores
inteiros, determine:
#a) A soma dos números positivos;
#b) A quantidade de valores negativos;
l1= []
soma= 0
negativo=0
from random import randint
for x in range(0, 50, 1):
num=randint(-15,35)
l1.append(num)
print(l1)
for cont in range(0, len(l1), 1):
if l1[cont]>=0:
soma+=l1[cont]
elif l1[cont]<0:
negativo+=1
print(f'\n A soma dos números positivos corresponde a {soma} ')
print(f'\n A quantia dos números negativos corresponde a {negativo}')
#ENUNCIADO: 12 - Desenvolva um programa que receba 25 números (tipo float)
digitados pelo usuário e apresente no final a quantidade de números positivos,
negativos, zeros, pares e ímpares digitados.
l1=[]
positivos=0
negativos=0
zeros=0
par=0
impar=0
for x in range(1, 51, 1):
num=float(input("Indique o valor desejado: "))
l1.append(num)
print(l1)
for cont in range(0, len(l1), 1):
if l1[cont]%2==0:
par+=1
elif l1[cont]%2!=0:
impar+=1
for cont in range(0, len(l1), 1):
if l1[cont]>0:
positivos+=1
elif l1[cont]<0:
negativos+=1
elif l1[cont]==0:
zeros+=1
print(f"\nA quantia de números positivos é: {positivos}") print(f"\nA quantia
de números negativos é: {negativos}")print(f"\nA quantia de números zeros é: {zeros}")
print(f"\nA quantia de números ímpares é: {impar}") print(f"\nA quantia de
números pares é: {pares}")
#ENUNCIADO: 13 - Desenvolva um programa que receba nome, idade e salário
digitados pelo usuário e apresente no final quantas dessas idades estão entre
15 e 17 anos, quantas são maiores de 21 anos, quantos salários estão entre
R$1.500,00 e R$2.000,00, quantos estão acima de R$3.500,00 e qual é o maior e
o menor salário digitado. (utilizar laço de repetição com opção de saída do
sistema).
laco=0
maiores=0
menores=0
salarioentre=0
salarioacima=0
menor_idade=0
maior_idade=0
while laco<1:
nome=input("Diga seu nome: ")
if nome =="0":
break
idade=int(input("Diga sua idade: "))
if idade>=15 and idade<=17:
menor_idade+=1
elif idade>=21:
maior_idade+=1
salario=float(input("Diga seu salário: "))
if salario>maiores:
maiores=salario
if salario<menores:
menores=salario
if salario>=1500.0 and salario<=2000.0:
salarioentre+=1
elif salario>3500.0:
salarioacima+=1
print("\n digite 0 no campo nome para sair\n")
print(f"\n Idades indicadas entre 15 e 17: {menor_idade})
print(f"\n Idades indicadas acima de 21: {maior_idade})
print(f"\n Salários indicados entre 1,500,00R$ e 2,000,00R$: {salarioentre})
print(f"\n Salários indicados acima de 3,500,00R$: {salarioacima})
print(f"\n O maior salário registrado: {maiores})
print(f"\n O menor salário registrado: {menores})
#ENUNCIADO: 14 - Desenvolva um programa que receba nome e salário de um
funcionário e calcule o valor do salário líquido desse funcionário, utilizando
função, descontando os impostos INSS e Imposto de Renda (IR) conforme tabela
oficial vigente. (utilizar laço de repetição com opção de saída do sistema).
loop=0
def INSSIR(sal):
if sal<=1045:
INSS=sal*0.075
elif sal>1045 and sal<2000:
INSS=sal*0.08
elif sal>2000 and sal<3000:
INSS=sal*0.09
elif sal>3000 and sal<6000:
INSS=sal*0.11
elif sal>6000:
INSS=713.09
if sal<1903:
IR=0
elif sal>1904 and sal<2826.65:
IR=sal*0.15
elif sal>2826.66 and sal<3751.05:
IR=sal*0.15
elif sal>3751.06 and sal<4664.68:
IR=sal*0.225
elif sal>4664.68:
IR=sal*0.275
print("><"*22)
print(f"O total a pagar para o INSS corresponde a: R${INSS}")
print(f"O total a pagar para o IR corresponde a: R${IR}")
print(f"O salário líquido corresponde a: R${sal-(INSS+IR)}")
#ENUNCIADO: 15 - Elabore um programa que receba dois números (tipo float)
digitados pelo usuário e pergunte qual operação ele deseja realizar. Operações
possíveis: soma, subtração, multiplicação, divisão, maior e menor número.
Exiba no final os números digitados e o resultado da operação escolhida.
print("Selecione a operação desejada: ")
print("(+) soma")
print("(-) subtração")
print("(*) multiplicação")
print("(/) divisão")
print("(<>) maior e menor")
opr=input()
print("===="*15)
n= float(input('Indique o primeiro número para a operação: '))
m= float(input('Indique o segundo número para a operação: '))
if opr=="+":
print(f"Você indicou os números {n} e {m}")
print(f"O resultado da soma desses números: {n+m}")
elif opr=="-":
print(f"Você indicou os números {n} e {m}")
print(f"O resultado da subtração desses números: {n-m}")
elif opr=="*":
print(f"Você indicou os números {n} e {m}")
print(f"O resultado da multipliação desses números: {n*m}")
elif opr=="/":
print(f"Você indicou os números {n} e {m}")
print(f"O resultado da divisão desses números: {n/m}")
elif opr=="<>":
a=0
b=0
if n>m:
a=n
b=m
elif m>n:
a=m
b=n
print(f"Você indicou os números {n} e {m}")
print(f"O resultado do maior número é: \nmaior:{a}\nmenor:{b}")
else:
print("Operação não reconhecida.")
#ENUNCIADO: 16 - Elabore um programa que faça a conversão de moedas. O
programa deve receber uma quantidade em determinada moeda e a taxa de
conversão e apresentar a quantidade convertida na moeda selecionada.
Conversões possíveis: dólar para real, euro para real, real para dólar e real
para euro. (utilizar laço de repetição com opção de saída do sistema).
import math
print("\t CONVERSOR DE MOEDA: \n")
print("Selecione a moeda a ser convertida: ")
b = input("DÓLAR PARA REAL ----> \n'1'\n"
"DÓLAR PARA EURO ----> \n'2'\n"
"EURO PARA REAL ----> \n'3'\n"
"EURO PARA DÓLAR ----> \n'4'\n"
)
if b == '1':
print("\t DÓLAR PARA REAL: \n")
d = input("DIGITE O VALOR DO DÓLAR: ")
v = input("DIGITE O VALOR A SER CONVERTIDO EM DÓLARES: ")
resp = float(d) * float(v)
print("\t O VALOR EM REAIS É:",resp,"\n")
elif b == '2':
print("\t DÓLAR PARA EURO: \n")
d = input("DIGITE O VALOR DO DÓLAR: ")
e = input("DIGITE O VALOR DO EURO: ")
v = input("DIGITE O VALOR A SER CONVERTIDO EM DÓLARES: ")
resp = (float(v) * float(d)) * float(e)
print("\t O VALOR EM EUROS É:",resp,"\n")
elif b == '3':
print("\t EURO PARA REAL: \n")
e = input("DIGITE O VALOR DO EURO: ")
v = input("DIGITE O VALOR A SER CONVERTIDO EM EUROS: ")
resp = float(v) * float(e)
print('\t O VALOR EM REAIS É:',resp,'\n')
elif b == '4':
print("\t EURO PARA DÓLAR: \n")
d = input("DIGITE O VALOR DO DÓLAR: ")
e = input("DIGITE O VALOR DO EURO: ")
v = input("DIGITE O VALOR A SER CONVERTIDO EM EUUROS: ")
resp = (float(v) * float(e)) * float(d)
print("\t O VALOR EM DÓLARES É:",resp,"\n")
#ENUNCIADO: 17 - Desenvolver um programa que calcule a média aritmética
simples das notas de um aluno com opção de escolha para entrada de 2 notas, 3
notas ou 4 notas. Exiba no final o nome do aluno e sua média com a informação:
“Aprovado” se média maior ou igual a 7, “Reprovado” se média menor que 4 e
“Exame” nos demais casos. (utilizar laço de repetição com opção de saída do
sistema).
h=0
while h<1:
nome=input("Preencha com seu nome: ")
print("\nIndique a quantidade de notas: ")
print("2-notas\n3-notas\n4-notas")
notas=int(input())
if notas==2:
notaA=float(input("Indique a primeira nota: "))
notaB=float(input("Indique a segunda nota: "))
media=(notaA+notaB)/2
if media>=7:
print(f"O aluno {nome} , obteve a média {media} , portanto está aprovado.")
elif media<=4:
print(f"O aluno {nome} , obteve a média {media} , portanto está reprovado.")
else:
print(f"O aluno {nome} , obteve a média {media} , portanto está em exame.")
elif notas==3:
notaA=float(input("Indique a primeira nota: "))
notaB=float(input("Indique a segunda nota: "))
notaC=float(input("Indique a terceira nota: "))
media=(notaA+notaB+notaC)/3
if media>=7:
print(f"O aluno {nome} , obteve a média {media} , portanto está aprovado.")
elif media<=4:
print(f"O aluno {nome} , obteve a média {media} , portanto está reprovado.")
else:
print(f"O aluno {nome} , obteve a média {media} , portanto está em exame.")
elif notas==4:
notaA=float(input("Indique a primeira nota: "))
notaB=float(input("Indique a segunda nota: "))
notaC=float(input("Indique a terceira nota: "))
notaD-=float(input("Indique a quarta nota: "))
media=(notaA+notaB+notaC+notaD)/4
if media>=7:
print(f"O aluno {nome} , obteve a média {media} , portanto está aprovado.")
elif media<=4:
print(f"O aluno {nome} , obteve a média {media} , portanto está reprovado.")
else:
print(f"O aluno {nome} , obteve a média {media} , portanto está em exame.")
else:
print("Valor não reconhecido")
fim= int(input("\nDigite 1 para continuar, caso contrário, digite 2."))
if fim==2:
break
#ENUNCIADO: 18 -Desenvolver um programa que entre com as notas (NP1 e NP2),
quantidade de falta e carga horaria da disciplina e informe se o aluno “Passou
Direto”, “Exame”, “Substitutiva” ou “Reprovado”. Caso o aluno entre com “NC” o
aluno deve realizar a PSUB. Caso o aluno fique com nota insatisfatória, deve
realizar um exame e após o lançamento, o programa deve reanalisar a situação,
acrescentando “Aprovado após exame” ou PÁGINA 5 DE 6“Reprovado após exame”. A
regra deve ser a mesma do Manual do Aluno (vide páginas 14 e 25) disponível no
link:
np1=float(input("Indique o valor da sua nota NP1 (caso NC preencha com 11: "))
np2=float(input("Indique o valor da sua nota NP2 (caso NC preencha com 11: "))
ausencias=int(input("Indique a quantidade de faltas do aluno em questão: "))
ausenciasp=100-((ausencias/20)*100)
if ausencias>5:
print("Pela quantidade de ausências acumuladas, o aluno está reprovado.")
else:
mediafinal=(np1+np2)/2
if mediafinal>=7:
print(f"O aluno \nobteve média final {mediafinal} \ncom frequência de
{ausenciasp} . Portando, atingiu a média necessária para passar na disciplina
e está aprovado ")
elif mediafinal<=4:
print(f"O aluno \nobteve média final {mediafinal} \ncom frequência de
{ausenciasp} . Portando, não atingiu a média necessária para passar na
disciplina e está reprovado. ")
else
print("Nota insuficiente, há necessidade de realizar um exame\n")
ex=float(input("Indique a nota obtida no exame: "))
mediafinalex=(np1+np2+ex)/3
if mediafinalex>=7:
print(f"O aluno \nobteve nota a nota de exame {ex} , \nresultando em uma média
final de {mediafinal} \ncom frequência de {ausenciasp} . Portando, atingiu a
média necessária para passar na disciplina e está aprovado.")
else:
print(f"O aluno \nobteve nota a nota de exame {ex} , \nresultando em uma média
final de {mediafinal} \ncom frequência de {ausenciasp} . Portando, não atingiu
a média necessária para passar na disciplina e está reprovado.")
#ENUNCIADO: 19 -Uma pista de Kart permite 10 voltas para cada um de 6
corredores. Escreva um programa que leia todos os tempos em segundos e os
guarde em um dicionário, onde a chave é o nome do corredor. Ao final diga de
quem foi a melhor volta da prova e em que volta; e ainda a classificação final
em ordem (1o o campeão). O campeão é o que tem a menor média de tempos.
#ENUNCIADO: 20 - Desenvolva um programa que receba 10 valores de temperatura
ambiente de uma cidade. O programa deve armazenar tais valores em uma lista
denominada temp, conforme os valores vão sendo recebidos. Após isso, o
programa deve retornar a média de temperatura, temperatura máxima, temperatura
mínima e por fim criar uma segunda lista (chamada dados) e por os valores em
ordem crescente.
for a in range(0, 10):
temp.append(float(input("Indique o valor da temperatura: ")))
media=(temp[0]+temp[1]+temp[2]+temp[3]+temp[4]+temp[5]+temp[6]+temp[7]+temp[8]
+temp[9])
dados=sorted(temp)
print(f"\nA média de temperatura corresponde a {media}°C\nA temperatura maxíma
corresponde a {max(temp)}°C\nA temperatura miníma corresponde a {min(temp)}°C)
print(dados)