You are on page 1of 3

Universidade Federal do ABC


Bacharelado em Ciência e Tecnologia
Disciplina: Bases Computacionais da Ciência
Prof.: Angelica Lima
Turma: NC5 Sala: virtual
Exame: BCC-Lista07-IfElse Data: 29-10-2020

Ass.:
Estudante: ENRIQUE DA CRUZ ID/RA: 11202021819
#179 - 2020-11-02 - 11:44:41

Instruções:
(a) Note que o arquivo que deve ser usado em cada questão, para manipular os dados, pode ser diferente;
(b) Responda esta lista de exercı́cios necessariamente no moodle: https://moodle.ufabc.edu.br/mod/vpl/view.php?id=24001;
(c) Cada questão deve ser enviada com os nomes EXATOS de arquivos: Q1.py, Q2.py, Q3.py, Q4.py, e Q5.py;
(d) Esta lista deve ser entregue até 23/11/2020, às 6 horas da manhã. Não deixe para submeter na última hora, pois o servidor
poderá ficar sobrecarregado.

Questões Dissertativas: VERSÃO: #vXXX


1576 1. Considere a tabela deste link: https://www.dropbox.com/s/0v326g8de95oxq8/fake-classrooms02.csv?dl=1
Faça um programa contendo instruções para ler do teclado as Notas limites para conversão em conceitos, conforme
exemplo abaixo. A se 10 ≥ media ≥ notaA; B se notaA > media ≥ notaB; C se notaB > media ≥ notaC; D
se notaC > media ≥ notaD; F se notaD > media. O seu programa deverá criar mais uma coluna na tabela chamada
’Nota’, contendo a média aritmética das colunas ’Prova 1’, ’Prova 2’ e ’Trabalho’. Além disso, o seu programa deverá
criar também a coluna ’Conceito’, conforme regra anterior. A saı́da do seu programa deverá imprimir a frequência de
cada conceito (ver instruções na Sugestão 1, no final desta questão).
Entrada lida com o comando input:
8.2
6.8
6.1
3.8
Saı́da com os valores solicitados, conforme entradas lidas:
A: 1
B: 6
C: 8
D: 15

Sugestão 1: Formatar a responta com a seguinte função:


def formataConceito(df):
hist = df[’Conceito’].value_counts()
resp = ’’
if ’A’ in hist.keys(): # verifica se tem algum conceito A
resp += ’A: %d\n’ % hist[’A’]
if ’B’ in hist.keys():
resp += ’B: %d\n’ % hist[’B’]
if ’C’ in hist.keys():
resp += ’C: %d\n’ % hist[’C’]
if ’D’ in hist.keys():
resp += ’D: %d\n’ % hist[’D’]
if ’F’ in hist.keys():
resp += ’F: %d\n’ % hist[’F’]
return str(resp)

Sugestão 2: Para adicionar a coluna ’Notas’ na tabela df, contendo a média aritimética das demais notas, criar a
função calculaNota e a instrução a seguir:
# funç~
ao para calcular a média em cada linha da tabela
def calculaNota(linha):
return (linha["Prova 1"] + linha["Prova 2"] + linha["Trabalho"]) / 3

# criar a coluna ’Notas’ e utilizar o método apply, com argumentos:


# a funç~
ao criada e axis=1 (para processar cada linha de df)
df[’Nota’] = df.apply(calculaNota, axis=1)
† MCTest: gerador e corretor de exames disponı́vel para professores - www.ufabc.edu.br
Desafio: Crie o gráfico a seguir, mas não imprimir na sua solução enviada na atividade do Moodle:
http://mctest.ufabc.edu.br:8080/tmp/imgs180days/figBCC-if05(fake-classrooms02)(8.2;6.8;6.1;3.8;).png

Atenção: Na sua solução considere que o arquivo está armazenado localmente. Assim, para abri-lo utilize o nome
"fake-classrooms02.csv", ao invés de utilizar o link anterior.
1574 2. Considere a tabela deste link: https://www.dropbox.com/s/7d9z6d3pnedv5dd/fake-classrooms29.csv?dl=1
Faça um programa contendo instruções para ler do teclado um indice aluno da tabela representando um aluno da
turma. Considere como conceito final: A se 10 ≥ media ≥ 8.8; B se 8.8 > media ≥ 6.9; C se 6.9 > media ≥ 6.0; D se
6.0 > media ≥ 4.5; F se 4.5 > media. O seu programa deverá imprimir o nome do aluno, as notas, a média aritimética
(com duas casas decimais) e o conceito final, conforme exemplo a seguir.
Entrada lida com o comando input:
17
Saı́da com os valores solicitados, conforme entradas lidas:
Nome: Sherill Bethea
Prova 1: 2.7
Prova 2: 4.6
Trabalho: 7.3
Media: 4.87
Conceito: D

Aviso: Essa saı́da (mensagens de texto e cálculos) deve ter exatamente a mesma formatação desse exemplo acima.

Sugestão: utilizar o comando a seguir para obter os dados da tabela df, dado o ı́ndice indice aluno:

nome, prova1, prova2, trabalho = df[[’Nome’,’Prova 1’,’Prova 2’,’Trabalho’]].loc[indice_aluno]

Atenção: Na sua solução considere que o arquivo está armazenado localmente. Assim, para abri-lo utilize o nome
"fake-classrooms29.csv", ao invés de utilizar o link anterior.
1572 3. Considere a tabela deste link: https://www.dropbox.com/s/aaje9apn2klvucq/fake-classrooms06.csv?dl=1
Faça um programa contendo instruções para ler do teclado um indice aluno da tabela representando um aluno da turma.
Considere como média de aprovação da turma o valor 7.0. O seu programa deverá imprimir o nome do aluno, as notas,
a média aritmética (com duas casas decimais) e se está “Aprovado” ou “Reprovado”, conforme exemplo a seguir.
Entrada lida com o comando input:
21
Saı́da com os valores solicitados, conforme entradas lidas:
Nome: George Kantor
Prova 1: 1.2
Prova 2: 8.4
Trabalho: 8.4
Media: 6.00
Resultado: Reprovado

Aviso: Essa saı́da (mensagens de texto e cálculos) deve ter exatamente a mesma formatação desse exemplo acima.

Sugestão: utilizar o comando a seguir para obter os dados da tabela df, dado o ı́ndice indice aluno:

nome, prova1, prova2, trabalho = df[[’Nome’,’Prova 1’,’Prova 2’,’Trabalho’]].loc[indice_aluno]

Atenção: Na sua solução considere que o arquivo está armazenado localmente. Assim, para abri-lo utilize o nome
"fake-classrooms06.csv", ao invés de utilizar o link anterior.
1575 4. Considere a tabela deste link: https://www.dropbox.com/s/drli1htl4snjuxt/fake-classrooms22.csv?dl=1
Faça um programa contendo instruções para ler do teclado duas colunas da tabela, coluna lida1 e coluna lida2. O
programa deve exibir a média de valores da coluna lida1, a média de valores da coluna lida2 e alguma(s) das seguintes
mensagens que forem verdadeiras, de acordo com os cálculos realizados:

Apenas Media coluna_lida1 eh maior que 5.0


Apenas Media coluna_lida2 eh maior que 5.0
As duas Medias sao maiores que 5.0
Nenhuma media eh maior que 5.0

Entrada lida com o comando input:


Prova 1
Trabalho
Saı́da com os valores solicitados, conforme entradas lidas:
Media Prova 1 = 3.68
Media Trabalho = 8.27
Apenas Media Trabalho eh maior que 5.0

Aviso: Essa saı́da (mensagens de texto e cálculos) deve ter exatamente a mesma formatação desse exemplo acima.

Atenção: Na sua solução considere que o arquivo está armazenado localmente. Assim, para abri-lo utilize o nome
"fake-classrooms22.csv", ao invés de utilizar o link anterior.
1577 5. Considere a tabela deste link: https://www.dropbox.com/s/kmerqw2l5nnb1bd/fake-classrooms-correl02.csv?
dl=1
Escreva um programa para:
a) Ler o nome de duas colunas da tabela (col1 e col2), sendo que col1 será usada como variável dependente e col2
como independente;

b) Calcular e imprimir a correlação entre as duas colunas;


c) Calcular e mostrar a equação da reta na forma y = mx + b;
d) Ler um número inteiro x representando um valor de col1 que será usado para fazer a predição;

e) Caso o valor absoluto da correlação seja < 0.45 exibir a mensagem "Correlaç~
ao < 0.45. Prediç~
ao n~
ao exibida!";
f) Caso o valor absoluto da correlação seja >= 0.78 o programa deve calcular e imprimir o valor de y (predição) para
o x lido e a mensagem "Correlaç~ ao >= 0.78";
g) Caso o valor absoluto da correlação seja >= 0.45 e < 0.78 o programa deve calcular e imprimir o valor de y
(predição) para o "x" lido e a mensagem "Correlaç~
ao < 0.78. Prediç~
ao n~
ao exibida!".

Exemplo:

Entrada lida com o comando input:

Faltas
Horas Estudo
22

Saı́da com os valores solicitados, conforme entradas lidas:


Correlaç~ao entre Faltas e Horas Estudo = -0.87
Equaç~
ao: y= -0.95x + 22.46
Prediç~ao de Faltas para Horas Estudo = 22.00 é 1.66. Correlaç~
ao >= 0.8.

Crie o gráfico a seguir com a aproximação da reta, mas não imprimir na sua solução enviada na atividade do Moodle:
http://mctest.ufabc.edu.br:8080/tmp/imgs180days/figBCC-if06(fake-classrooms-correl02)(Faltas;HorasEstudo;22;).png

Atenção: Na sua solução considere que o arquivo está armazenado localmente. Assim, para abri-lo utilize o nome
"fake-classrooms-correl02.csv", ao invés de utilizar o link anterior.

You might also like