Exercicios sala
Aula 2
Datas
- Escreva um código que armazene uma data qualquer e a imprima nos
seguintes formatos:
20/10/2023 10h
,20-10-23 10:20
,10/23 10h20min
, - Escreva um código que armazene a data atual e a imprima nos formatos
(mesmo do exercicio anterior):
20/10/2023 10h
,20-10-23 10:20
,10/23 10h20min
- Escreva um código que pergunte a data de nascimento do usuário, em seguida informe quantos anos o usuário tem, em anos como um número real (o código deve funcionar em qualquer ano que seja utilizado).
- Escreva um código que pergunte a data de nascimento do usuário e informe em qual dia da semana será seu aniversário esse ano (o código deve funcionar em qualquer ano que seja utilizado).
Condicionais
Faça um algoritmo para receber um número qualquer do usuário e informar na tela se é par ou ímpar
Tendo como dados de entrada a altura, o sexo (M/F) e a massa (Kg) de uma pessoa. Construa um algoritmo que calcule seu peso ideal, utilizando as seguintes fórmulas:
- para homens: (72.7 * h) – 58;
- para mulheres: (62.1 * h) – 44.7
Em seguida informe se o peso do usuário está acima, abaixo ou exatamente no peso ideal. 3. Considere uma frase fornecida pelo usuário. Se o usuario não digitar nada, mostre a mensagem “Você não digitou nada…” e pare o programa. Se uma mensagem foi digitada, verifique qual das três vogais (a,e,i) ocorre mais vezes na frase, e informe ao usuário.
- Considere o exercício de encontrar o dia da semana do aniversário do usuário (ex. 4 de Datas). Atualize o código para que o dia da semana encontrado seja mostrado em PT-BR.
Laço for
- Considerando a lista abaixo, faça o que se pede:
Imprima todos os elementos da lista usando as duas formas do laço for.
Verifique quantos elementos negativos existem na lista e informe ao usuário (se existem (quantos) e se não existem).
Informe quantos elementos existem na lista.
Imprima os elementos da lista de forma reversa.
Calcule a soma de todos os números pares de 0 a 100 e mostre o resultado na tela.
Escreva um código que pergunte a data de nascimento do usuário e informe em qual dia da semana será seu aniversário nos próximos 20 anos. Imprima o ano e o dia da semana.
Laço While
- Considere a seguinte lista de strings:
- Imprima os elementos da lista usando um laço while.
- Imprima os elementos da lista com letras maiusculas usando um laço while.
- Crie um algoritmo que receba numeros inteiros positivos do usuário, até o momento em que ele digite -1. Ao fim do programa mostre a soma de todos os números digitados e qual foi o maior deles.
Aula 3
Tuplas
- Crie uma tupla com os 100 primeiros números ímpares positivos.
- Atribua os 4 primeiros valores da tupla nas variáveis A,B C e D, usando o desempacotamento.
- Some os 4 valores (A,B,C e D), e atribua a soma nos 4 primeiros elementos da tupla.
- Finalmente, encontre a soma de todos os elementos da nova tupla.
Listas
- A lista abaixo mostra um conjunto de cidades:
Um algoritmo de roteirização foi executado determinando a ordem de visita de cada uma das cidades (por seus indices), na lista abaixo:
Imprima a rota das cidades que deve ser seguida.
- Considere a lista abaixo:
2.1 Remova todos os elementos -1 da lista
2.1 Remova todos os elementos negativos da lista (com a lista reinicializada)
- (pos fatiamento) Considere a lista abaixo:
Imprima os elementos como uma escada: [] [0] [0,1] [0,1,2] …
- (pos fatiamento e sum) Considere os dados de vendas de um produto como mostrado na lista abaixo:
Faça uma estimativa de vendas para os próximos 3 períodos usando o método das médias-móveis, com 4 períodos anteriores.
- (pos matriz). A matriz abaixo representa as atividades de um projeto e suas dependencias. As linhas e colunas representam atividades, e o valor 1 indica que a atividade da linha precede a atividade da coluna. A última atividade é a 4 (começando em 0). O vetor T indica o tempo de processamento que cada atividade leva para ser completada. Considerando um projeto que deve terminar no periodo 5, e estamos no periodo 1, verifique se com a configuração atual é possível executar o projeto a tempo.
A precedência de atividades fica:
Dicionários
Crie um dicionário com as seguintes marcas de carros e seus preços: Honda:40000 Toyota:20000 Chevrolet:25000 Peça ao usuário o input de um carro e, se o mesmo existir, mostre o seu valor. Se não,pergunte se o usuário gostaria de cadastrar o novo veículo. Colete o valor do veículo e adicione no dicionário. Ao final imprima o dicionário completo.
Considere uma indústria que fabrica 4 tipos de pães de queijo: P1,P2,P3 e P4. Cada “batelada” (ordem de produção) de um tipo de pão é salvo em uma lista. A lista abaixo mostra as bateladas em um dia:
Quantas bateladas foram feitas de cada tipo de pão de queijo?
- Considere uma industria que fabrica 4 tipos de pães de queijo: P1,P2,P3 e P4. O setor de PCP armazena as quantidades produzidas, horas de inicio e fim e quantidades de cada batelada em um banco de dados:
l_paes = ["P1","P1","P2","P3","P4","P4"]
l_inicios = ["08:20","08:40","09:05","09:30","09:56","11:00"]
l_terminos = ["08:25","08:58","09:25","09:55","10:56","13:50"]
l_qtde = [500,420,400,450,800,900]
Considere que só existe uma masseira. Responda o que se pede:
- Quais foram os tempos totais de produção de cada pão na masseira (em minutos)?
- Quantas vezes cada pão foi executado na masseira?
- Qual foi o rendimento total (em kg) de cada pão?
List comprehension
Verifique se as seguintes séries são convergentes ou não, usando list comprehensions. 1.1 \(\frac{1}{n}\) 1.2 \(\frac{1}{2^n}\)
Considere a seguinte lista com diversos valores:
Separe os dados em duas listas, uma com as palavras salvas de forma maiúscula, e uma com os números (transformados em números). Imprima o número de palavras e a soma dos números. - Faça usando for E list comprehension (.isdigit)
- Considere a seguinte lista:
Filtre somente as palavras com menos do que 7 caracteres e salve em uma lista (usando list comprehensions)
- Crie as duas matrizes abaixo usando list comprehensions:
- Considere a seguinte matriz:
Crie uma lista somente com os elementos negativos da matriz, use list comprehension
- (Pós list comprehension e dicionários) Você quer criar um tradutor de sentenças de en para pt. Use dicionários para traduzir a seguinte sentença:
Funções
- O controle de qualidade de uma empresa mede o diametro de uma peça, salvando os valores na seguinte lista:
Cada medição feita por um funcionário:
Crie uma função que retorne uma lista com o nome dos funcionários cujas medições ficaram abaixo da média da amostra (se possível use list comprehension para reduzir o código).
Crie uma função que receba duas matrizes numéricas, realize a soma das mesmas e retorne a nova matriz. Se as matrizes não puderem ser somadas (por divergência em suas dimensões), a soma não é realizada e o usuário deve ser informado. DICA: Tuplas podem ajudar muito no retorno das funções e parâmetros como um dicionário.
Crie uma função que calcule integrais definidas. A função deve permitir o cálculo da integral de quaisquer funções.
Crie uma função (
f_raiz
) que calcule pelo menos uma raiz de uma função (f) usando o método da bissetriz. O usuário deve passar os valores iniciais dea
eb
. Passe a função f como argumento daf_raiz
.
Aula 4 - Numpy
Arrays
- Considerando o ex. para o calculo de integrais. O usuário definiu o intervalo de integração (a,b). Crie o vetor de elementos x usando arrays e o método .arange()
Random
Simule o processo de 2 pessoas jogando “par ou impar” 10 vezes. Quantas vezes par ganhou? Quantas vezes impar ganhou?
Simule o processo do jogo da “parede”, em que uma bola é lançada, e a cada etapa ela vai para direita ou esquerda com mesma probabilidade. No fim de cada caminho está um premio, existem 5 camadas de “decisões” e os caminhos são numerados [0,1,2,3,4,5,6,7,8,9,10]. A bola cai a partir do caminho 5, se a pessoa acertar os caminhos 2, 8 ou 10 ela ganha um prêmio. Considere que a pessoa pode tentar 3 vezes. Ela ganha o premio ou não?
Considere o algoritmo da bisseção feito nas ultimas aulas. Nele o usuário digitava os valores de a e b iniciais. Crie uma função em que esses argumentos são opcionais. Se o usuário não os digitar, encontre valores adequados de a e b.
Operações aritméticas
- Uma empresa de cereais possui 5 funcionários. A produção mensal de cada funcionário, bem como seus nomes, são dados pelas listas:
Usando arrays numpy responda o que se pede: * Qual foi a produção total? * Qual foi a média de produção? * Qual foi a maior produção? E a menor? * Quais foram os funcionarios que as fizeram?
Crie uma função que realize a soma de duas matrizes (de arrays) M1 e M2.Gere as duas matrizes aleatoriamente com valores inteiros aleatórios entre 5 e 10. OBS: Usar try: except: para coletar erros no código.
Considere a matriz criada da seguinte forma:
- Qual é a soma de todos os elementos da matriz?
- Qual a soma dos elementos por linhas?
- Qual a soma dos elementos por colunas?
Fatiamento
Exercicio 13 da lista
A matriz criada da seguinte forma:
Indica a produção de 4 máquinas (linhas) durante o período de 5 dias (colunas). Sejam as máquinas e os dias armazendos em duas listas:
Responda o que se pede:
- Qual foi o total produzido na semana?
- Qual foi o total produzido por dia
- Qual foi o total produzido por máquina?
- Qual foi o dia com a maior produção?
- Qual foi a máquina com a maior produção?
- Qual foi o total de produção da terça-feira? E da quarta?
- A empresa precisa atualizar os dados da seguinte forma:
- Toda a produção de sexta feira deve ser = 5
- Toda a produção da máquina 4 (exceto na sexta) deve ser nula
Indexação booleana
Ex. pães
Considere as vendas de uma empresa salvas em 2 listas, uma de datas e uma de valores:
l_datas = ["2022/01/01","2022/02/01","2022/02/02","2022/01/01","2022/03/01"]
l_valores = [300,200,400,200,500]
Quais foram as vendas do mês de fevereiro?
- O algoritmo Simplex encontra o elemento pivo a cada iteração, como a coluna do mínimo (negativo) da fo e o minimo de \(\frac{b}{A_i}\), com \(A_i > 0\). Considere o PL abaixo:
Encontre o elemento pivô para o problema acima.
- Desafio: termine a implementação do algoritmo simplex (executar o pivoteamento na tabela e reaplicar a rotina de encontrar o elemento pivô, até o momento em que não existam \(c < 0\))
Aula 4 - Pandas
- Crie um DataFrame com 5 colunas, cada coluna deve ter 20 valores gerados aleatoriamente a partir da dist. uniforme, entre os intervalos:
- col1: [0,10]
- col2: [11,20]
- col3: [21,30]
- col4: [31,40]
- col5: [41,50]
Adicione uma nova coluna chamada “soma”, com a soma dos elementos de cada linha.
- Crie um dataframe a partir de uma matriz 4x5 gerada aleatóriamente
com valores entre 2 e 9. As colunas devem ter os nomes:
["seg","ter","qua","qui","sex"]
e as linhas(maquinas)["M1","M2","M3","M4"]
.
- Mostre produção total da semana.
- Mostre produção total da semana por máquinas.
- Mostre produção total da semana por dias.
- Mostre qual foi o dia da semana com a maior produção total.
- Considere as informações a seguir, dadas por listas, de uma famosa empresa que vende papel:
nomes = ["Angela","Dwight","Michael","Stanley","Jim"]
vendas = [0 ,300 , 150 , 29 , 286]
dias_trabalhados = [25 , 20 , 25 , 25 , 19]
faltas = [0 , 0 , 1 , 2 , 2]
- Crie um DataFrame com os dados, e responda as perguntas a partir do dataframe.
- Qual foi o funcionário com a maior venda?
- Crie uma nova coluna com a proporção de vendas/dias trabalhados, chamada produtividade.
- Qual foi o funcionário com a maior produtividade?
- Quais os funcionários que não tiveram faltas no periodo?
- Quais os funcionários que tiveram 0 ou 2 faltas?
- Acesse as faltas e a produtividade dos funcionário Dwight e Michael, usando FATIAMENTO no df
- Exporte o dataframe criado
- Considerando o conjunto de dados “clientes_shopping.csv”, responda:
- Quantos homens e quantas mulheres estão no bd?
- Qual é a média de idade das pessoas no bd, e de rendimento anual?
- Qual é a porcentagem de mulheres que ganham acima da média, e de homens?
- Considerando o conjunto de dados “Production_Data”, responda o que se pede:
Quantas OP foram processadas?
Quantos produtos diferentes existem no bd?
Considerando a atividade “Turning & Milling - Machine 4”,
5.1 qual OP teve o processo com a maior quantidade completada?
5.2 qual foi o funcionário que a realizou?
5.3 qual foi a peça processada?
5.4 Quanto tempo (em horas), a máquina ficou em processamento?
5.5 Considerando todas as vezes que a máquina foi usada, qual foi o tempo médio de processamento (em horas)?
Aula 5 Matplotlib
- Considerando o conjunto de dados Production_Data.csv, faça o que se pede:
- Gere um gráfico de barras com a média dos tempos de processamento para cada Atividade (em horas).
- O gráfico deve possuir nomes nos eixos e título.
- A média de processamento considerada tolerável para as máquinas é de 7 horas. Coloque essa informações no gráfico de forma que fique fácil visualizar quais máquinas não estão conforme.
- Ajuste o gráfico para que seja possível visualizar os nomes das atividades no eixo x.
- Considerando o conjunto de dados “clientes_shopping.csv”, faça:
- Crie um gráfico de pizza com a proporção de mulheres e de homens no banco de dados. Crie um código que exploda a maior proporção de forma automática (em função da maior proporção).
- Considerando o conjunto de dados “producao_grega.csv”, com registros da produção de vasos gregos: Existem alguns tipos de defeitos associados à produção. A gerencia gostaria de saber quais defeitos devem ser tratados primeiro. Responda essa pergunta por meio de uma análise de gráfico de Pareto.
- Crie um gráfico de Pareto considerando que o custo dos defeitos é diretamente proporcional à sua frequencia de ocorrencia.
- marque no gráfico as linha de frequencia acumulada: 70%, 80% e 90%
Considerando o conjunto de dados “producao_grega.csv”, e o vaso chamado “peça2”. Suspeita-se de que a temperatura do dia pode influenciar a medição dos vasos. Como você faria para extrair mais informações a esse respeito e tomar uma decisão, usando um gráfico? Qual a sua decisão? Crie o gráfico que suporte o seu raciocinio.
Considerando o conjunto de dados “Iris.csv”, com informações a respeito de comprimentos e larguras da pétala e sépala de 3 tipos de flores Iris. Dê um palpite sobre qual pode ser a distribuição de dados do comprimento da sépala par a flor do tipo “Iris-setosa”. Paute sua decisão gráficamente.