Buscar

TRABALHO LÓGICA DE PROGRAMAÇÃO E ALGORITMOS

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER
ESCOLA SUPERIOR POLITÉCNICA
ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
LÓGICA DE PROGRAMAÇÃO E ALGORITMOS
ATIVIDADE PRÁTICA
NOME ALUNO: GABRIEL PEREIRA DA FONSECA – RU: 3356131
NOME PROFESSOR: VINICIUS POZZOBON BORIN
CAXIAS DO SUL - RS
ANO DO PROJETO
2021
EXERCÍCIO 1:
Escreva um programa que leia o nome de um lutador e seu peso. Em seguida, informe a
categoria a que pertence o lutador, conforme a Tabela a seguir (note que a tabela foi criada
para efeito deste exercício e não condiz com qualquer categoria de luta). A saída do
programa deve exibir na tela uma frase com o padrão descrito a seguir: Nome fornecido:
Pepe Jordão Peso fornecido: 73.4 Frase a ser exibida: O lutador Pepe Jordão pesa 73,4 kg
e se enquadra na categoria Ligeiro.
Nome= str(input('NOME DO LUTADOR: ')).title()
Peso= int(input('PESO: '))
if Peso < 65:
print(f'O lutador {Nome} pesa {Peso}Kg e se enquadra na categoria PENA.')
elif 65 <= Peso < 72:
print(f'O lutador {Nome} pesa {Peso} e se enquadra na categoria LEVE.')
elif 72 <= Peso < 79:
print(f'O lutador {Nome} pesa {Peso} e se enquadra na categoria LIGEIRO.')
elif 79 <= Peso < 86:
print(f'O lutador {Nome} pesa {Peso} e se enquadra na categoria MEIO MÉDIO.')
elif 86 <= Peso < 93:
print(f'O lutador {Nome} pesa {Peso} e se enquadra na categoria MÉDIO.')
elif 93 <= Peso < 100:
print(f'O lutador {Nome} pesa {Peso} e se enquadra na categoria MÉDIO PESADO.')
else:
print(f'O lutador {Nome} pesa {Peso} e se enquadra na categoria PESADO.')
LINHA 1 : Comando input para aplicar o nome do lutador, definido como uma string e
imprimindo como um nome através do comando title.
LINHA 2 : Comando input para aplicar o peso do lutador, definido como um inteiro.
LINHA 3 a 12: Comando para impor uma condição. Caso o peso do lutador esteja dentro
das condições, ele imprimirá a mensagem informando a categoria de acordo com o peso
informado.
LINHA 13: Caso o lutador tenha mais de 100 kgs, ele imprimirá que sua categoria se
enquadra na dos pesados.
EXERCÍCIO 2:
Escreva um programa que receba como parâmetro de entrada um número inteiro de 5
dígitos no intervalo fechado [10000, 30000] que represente códigos de produtos vendidos
em uma loja. Crie uma função para validar os dados de entrada, obrigando o usuário a
respeitar o intervalo e o tipo de dado (inteiro). Crie uma função que calcule e retorne o dígito
verificador do código, utilizando a regra de cálculo explicada a seguir. Por exemplo,
considere o código 21853, em que cada dígito é multiplicado por um peso começando em 2,
os valores obtidos são somados, e do total obtido calcula-se o resto de sua divisão por 7.
numero= int(input('CÓDIGO DO PRODUTO: '))
n= str(numero)
peso= int(23456)
p= str(peso)
d1= (numero // 10000 % 10) * 2
d2= (numero // 1000 % 10) * 3
d3= (numero // 100 % 10) * 4
d4= (numero // 10 % 10) * 5
d5= (numero // 1 % 10) * 6
soma= d1 + d2 + d3 + d4 + d5
div= soma / 7
nroin= int(div * 10 % 10)
while numero > 50000 or numero < 30000 or numero == str(''):
numero = int(input('CÓDIGO DO PRODUTO:'))
if numero > 30000 or numero < 50000:
print(f'DIGITO {n[0]} {n[1]} {n[2]} {n[3]} {n[4]}')
print(f'PESO {p[0]} {p[1]} {p[2]} {p[3]} {p[4]}')
print(f'MULTIPLICAÇÃO {d1} {d2} {d3} {d4} {d5} ')
print(f' SOMA={soma} ')
print(f' RESTO DE {soma} por 7 = {nroin}')
print(f'{numero}-{nroin}')
LINHA 1 : comando para receber um número inteiro.
LINHA 2 : comando para tornar o inteiro recebido em string, possibilitando a manipulação da
variável e fazendo a impressão do número recebido separado em dígitos, mostrado na linha
16.
LINHA 3 : definido uma variável chamada ‘peso’ como um número inteiro.
LINHA 4 :comando para tornar o inteiro da variável peso em string, possibilitando a
manipulação e fazendo a impressão do número recebido separado em dígitos, mostrado na
linha 17.
LINHA 5 a 9: não existe comando para manipular inteiros no Python, nesse caso foi criado
variáveis para separar cada dígito do código recebido através de uma função, onde ela
divide o código de acordo com a sua posição no sistema decimal, por exemplo, o primeiro
dígito que faz parte da dezena de milhar, logo é feita a divisão por 10000, já o segundo
dígito faz parte da unidade de milhar, sendo divido por 1000 e assim sucessivamente até a
última unidade. A divisão ocorre com o comando // que divide o dividendo trazendo
somente o quociente inteiro e o seu resultado será dividido por 10 com o comando ‘%’,
resultando no resto da divisão que será cada dígito recebido na linha 1. No final da função,
o resultado será multiplicado por cada dígito correspondente da variável ‘peso’.
LINHA 10: variável criada para somar os resultados das multiplicações das variáveis dígito a
dígito.
LINHA 11: variável de divisão do resultado da soma.
LINHA 12: variável definida como inteiro para trazer como resultado, o primeiro número do
resto da divisão da linha 11.
LINHA 13: condição para receber entrada somente números do determinado intervalo, caso
não seja, o algoritmo irá solicitar novamente até atender o requisito.
LINHA 14: quando recebido um número dentro do intervalo requisitado, o programa irá
prosseguir para o resultado.
LINHA 15 a 21: comando para imprimir os dígitos do número recebido, dígitos do peso,
resultado da multiplicação, resultado da soma, resto da divisão e do número recebido com o
dígito verificador.
EXERCÍCIO 3
Considere o seguinte conjunto de dados: Nome + (N1, N2, N3, N4). Nome representa o
nome de um aluno e deve ser usado como chave. Já N1, N2, N3, N4 representam as notas
de provas desse aluno. Utilize uma estrutura de dicionário com listas para resolver este
exercício. Escreva um programa que leia os dados de N alunos e apresente na tela se
foram aprovados ou reprovados. O critério que garante a aprovação é que a média
aritmética das 4 notas seja maior ou igual 7,0. O valor de N é a quantidade de alunos, e
esse valor deve ser lido do teclado no começo do programa. Faça um laço de repetição
para a leitura destes N alunos. As notas devem ser exibidas ao final do programa com uma
casa decimal de precisão.
listas = list()
qtade = int(input('Quantidade de alunos avaliados: '))
while qtade <= 0:
qtade = int(input('Quantidade de alunos avaliados: '))
if qtade > 0:
for i in range(1, qtade + 1):
nome = (str(input(f'Nome do {i}º aluno: ')).title())
notas = [nome]
media = 0
for j in range(4):
n = float(input(f'Resultado da {j+1}ª nota: '))
media = media + n / 4
notas.append(n)
notas.append(media)
listas.append(notas)
print('Notas dos alunos:')
print('=-'*60)
print(f'{"Nome":<30}{"NOTA 1":<15}{"NOTA 2":<15}{"NOTA 3":<15}{"NOTA
4":<15}{"MÉDIA":<15}{"RESULTADO":<15}')
for i in range(qtade):
p = f'{listas[i][0]:<15}'
for q in range(1, 5):
n1 = f'{listas[i][1]:<15}'
n2 = f'{listas[i][2]:<15}'
n3 = f'{listas[i][3]:<15}'
n4 = f'{listas[i][4]:<15}'
d = f'{listas[i][5]:<15.1f}'
if listas[i][5] >= 7:
resultado = str('\033[1;32mAPROVADO\033[m')
else:
resultado = str('\033[31mREPROVADO\033[m')
print(f'{p:<30}{n1:<15}{n2:<15}{n3:<15}{n4:<15}{d:<15}{resultado:<15}')
LINHA 1: aplicado o comando de abertura de uma lista com a variável chamada ‘listas’.
LINHA 2: input solicitando a quantidade de alunos a serem avaliados.
LINHA 3 a 4: loop aplicado para quando a quantidade de alunos informada for menor ou
igual a zero, o algoritmo solicitará o input da linha 2.
LINHA 5 a 6: condição criada para quando a quantidade informada atender o requisito do
comando while, será executado um laço de repetição no intervalo de 1 a N (quantidade
aplicada na linha 2), aplicado soma de mais um intervalo para fechar a quantidade correta.
LINHA 7: input solicitando o nome dos alunos, dentro do intervalo. Comando title para
imprimir o nome com letra inicial maiúscula.
LINHA 8: criado outra lista chamada notas, aplicando dentro dela, os nomes dos alunos
recebidos.
LINHA 9: variável média criada, atribuindo o valor 0.
LINHA 10 a 11: criado laço derepetição no intervalo de 1 a 4, para que o algoritmo solicite
as 4 notas para cada aluno, variável n para receber as notas.
LINHA 12: função para cálculo da média das notas.
LINHA 13: comando aplicado para inserir as variáveis n dentro da lista ‘notas’.
LINHA 14: comando para aplicar a variável ‘media’ para dentro da lista ‘notas’
LINHA 15: comando para aplicar a lista ‘notas’ dentro da lista ‘listas’.
LINHA 16 e 17: imprime uma mensagem de informativo.
LINHA 18: formatado strings para um modelo de tabela são elas: nome, notas, média e
resultado final. O comando :<15 se refere como eles ficarão posicionados, < para a
esquerda e 15 sendo o limite de caracteres.
LINHA 19 a 20: laço de repetição definindo os nomes recebidos como uma variável p, o que
facilitará no momento da impressão dos resultados. Como o nome dentro da lista consta na
posição 0, para imprimi-la, é aplicado o comando listas[i][0].
LINHA 21 a 25: laço de repetição definindo as notas recebidas como variáveis de n1 a n4,
aplicando suas posições dentro das listas.
LINHA 26: definido uma variável ‘d’ como a posição da média dentro da lista.
LINHA 27: criado uma condição para quando a média for maior ou igual a 7.
LINHA 28: se a média for maior ou igual a 7, a variável resultado será igual a string
‘APROVADO’, configurado cor da fonte como verde.
LINHA 29 a 30: caso a média for menor, a variável resultado será igual a string
‘REPROVADO’, configurado cor da fonte como vermelho.
LINHA 31: impressão dos resultados, aplicando as variáveis sendo formatadas iguais as
strings impressas na linha 18, ficando no formato de tabela.
EXERCÍCIO 4:
Leia e armazene em um dicionário o nome, a idade e o número do telefone de seus
contatos, sendo que a chave deve ser o nome. Ao digitar uma string vazia para o nome, o
programa interrompe a leitura e se encerra. Apresente na tela os dados lidos em ordem
alfabética pelo nome dos contatos. Uma possível solução de ordenar alfabeticamente é usar
o método sort. Em seguida, armazene os contatos em outros dois dicionários, utilizando
como critério a idade: menores de 18 anos em um e os maiores em outro dicionário,
eliminando o original. Apresente na tela os dois dicionários resultantes da separação.
Imprima na tela um teste do seu programa usando como primeiro cadastro o seu nome,
como telefone o seu RU, e como idade os dois últimos dígitos do seu RU.
lista = []
dados = dict()
lista18 = []
lista_de_menor = []
dados['nome'] = str(input('Nome: ')).title()
while dados['nome'] != '':
dados['idade'] = int(input('Idade: '))
dados['telefone'] = int(input('Telefone: '))
lista.append(dados.copy())
dados['nome'] = str(input('Nome: ')).title()
ordenar = sorted(lista, key=lambda row: row['nome'])
print(f'\033[1;35m{"":<15}{"LISTA TELEFÔNICA"}\033[0;0m')
print('-=' * 25)
print('\033[1;35mGERAL\033[0;0m')
print(f'\033[34m{"NOME":<25}{"IDADE":<10}{"TELEFONE":<10}\033[0;0m')
for contatos in ordenar:
print(f'{contatos["nome"]:<25}{contatos["idade"]:<10}{contatos["telefone"]:<10}')
if contatos['idade'] >= 18:
lista18.append(contatos.copy())
if contatos['idade'] < 18:
lista_de_menor.append(contatos.copy())
print('-=' * 25)
print('\033[1;35mCONTATOS MAIORES DE IDADE\033[0;0m')
print(f'\033[34m{"NOME":<25}{"IDADE":<10}{"TELEFONE":<10}\033[0;0m')
for contatos1 in lista18:
print(f'{contatos1["nome"]:<25}{contatos1["idade"]:<10}{contatos1["telefone"]:<10}')
print('-=' * 25)
print('\033[1;35mCONTATOS MENORES DE IDADE\033[0;0m')
print(f'\033[34m{"NOME":<25}{"IDADE":<10}{"TELEFONE":<10}\033[0;0m')
for contatos1 in lista_de_menor:
print(f'{contatos1["nome"]:<25}{contatos1["idade"]:<10}{contatos1["telefone"]:<10}')
LINHA 1: criado uma variável chamada ‘lista’ sendo uma lista vazia.
LINHA 2: criado uma variável chamada ‘dados’ sendo um dicionário vazio.
LINHA 3: criado uma variável chamada ‘lista18’ sendo uma lista vazia, onde será
acondicionado os dados referentes aos contatos maiores de 18 anos.
LINHA 4: criado uma variável chamada ‘lista_de_menor’ sendo uma lista vazia, onde será
acondicionado os dados referentes aos contatos menores de 18 anos.
LINHA 5: definido a key ‘nome’ para o dicionário ‘dados’ e o value será o input que o usuário
inserir no programa, com o comando title, tornando a string com sua primeira letra em
maiúsculo.
LINHA 6: condição aplicada para o programa executar o restante dos inputs caso o input
recebido para o valor da key ‘nome’ seja diferente de uma string vazia.
LINHA 7: definido key ‘idade’ para o dicionário ‘dados’’ e o value será o input que o usuário
inserir no programa.
LINHA 8: definido key ‘telefone’ para o dicionário ‘dados’’ e o value será o input que o
usuário inserir no programa.
LINHA 9: comando para inserir o dicionário dentro da lista.
LINHA 10: início do ciclo novamente referente a linha 5.
LINHA 11: criado variável chamada ‘ordenar’, com função sorted para a lista, onde se
encontram os dicionários. Função lambda foi criada para definir uma função anônima para
ordenar a lista pela ordem alfabética, tomando referência pela key ‘nome’ presente na lista.
LINHA 12: print de cabeçalho para a impressão da lista.
LINHA 13: print de uma divisória da tabela.
LINHA 15: print das colunas nome, idade e telefone.
LINHA 16: comando for para um laço de repetição dentro da variável ‘ordenado’, no qual a
lista se encontra nesta variável e está ordenada alfabeticamente.
LINHA 17: print do nome, idade e telefone de todos contatos que estão dentro do dicionário,
de forma individual, para que seja feita uma formatação adequada.
LINHA 18 e 19 : condição aplicada para que caso os contatos que se encontram na lista
apresentarem a idade maior ou igual a 18 anos, ele irá adicionar este contato na lista
'lista18'.
LINHA 20 e 21: condição aplicada para que se os contatos que se encontram na lista,
apresentarem a idade menor que 18 anos, ele irá adicionar este contato na lista
‘lista_de_menor’.
LINHA 22: print de uma divisória para o código.
LINHA 23: print de uma string definindo um título para o trecho da lista onde se encontram
os contatos maiores de idade.
LINHA 24: print das colunas nome, idade e telefone.
LINHA 25: comando for para um laço de repetição no qual ele percorre todas as
informações dentro da lista ‘lista18’.
LINHA 26: print do nome, idade e telefone de todos contatos que estão dentro do dicionário,
na lista ‘lista18’, de forma individual, para que seja feita uma formatação adequada.
LINHA 27: print de uma divisória para o código.
LINHA 28: print de uma string definindo um título para o trecho da lista onde se encontram
os contatos menores de idade.
LINHA 29: print das colunas nome, idade e telefone.
LINHA 30: comando for para um laço de repetição no qual ele percorre todas as
informações dentro da lista ‘lista_de_menor’.
LINHA 31: print do nome, idade e telefone de todos contatos que estão dentro do dicionário,
na lista ‘lista_de_menor’, de forma individual, para que seja feita uma formatação adequada.

Continue navegando