Você está na página 1de 5

Computação para Economia – Trabalho G3 – 2021.

Professora: Ana Carolina Letichevsky

Você recebeu um trabalho com 4 questões, sendo uma dividida em subitens, que devem ser resolvidas utilizando o
RStudio. A resolução deverá ser feita em um único script, assim como feito na G1, contendo todas as
implementações realizadas. A criação e a organização do script fazem parte da resolução do trabalho. Completando
o material, também estão sendo disponibilizados arquivos de dados referenciados nos subitens.

O script final deverá ser salvo com o nome “INF1513_MATRICULA.R”, substituindo o texto “MATRICULA” pelo
número da sua matrícula.

O trabalho é individual, e todas as atividades relacionadas à solução do trabalho proposto devem ser realizadas,
respeitando-se o código de ética do CTC disponível na plataforma EAD, e devem incluir o que se descreve a seguir:

• A resolução do item através da linguagem R. O código implementado nos moldes estabelecidos no enunciado,
e os arquivos porventura criados deverão ser enviados, por meio da plataforma EAD, até 26/11/2021.

• A documentação, no próprio arquivo R, de todas as implementações realizadas, com exemplos de execução


das rotinas e funções.

Como parte da avaliação, também será realizada uma avaliação oral, com duração de até 10 minutos, conforme
sorteio, nos dias 01/12.

A pontuação que aparece ao lado de cada subitem se refere exclusivamente à parte escrita do presente trabalho.

Observações gerais

• Deverão ser utilizados comandos SQL que permitam, a partir de sua execução, a criação das tabelas do banco
de dados, a inclusão, a alteração, a exclusão e a consulta de dados.
• Operações de consolidação de dados, como soma e média e operações de seleção, filtro e consulta de dados,
deverão ser realizadas através de comandos SQL.
• Informações, como legendas de gráficos, não poderão ter valores pré-definidos dentro do código, e todo
gráfico deverá ter título, nome dos eixos e legenda, quando aplicável ao tipo de gráfico.
• Para mostrar que suas rotinas funcionam, implemente e deixe no seu código exemplos de sua utilização. Se
forem necessários arquivos para que a rotina seja executada, inclua arquivos de exemplo para serem
processados.
• Organize seu código em diversas rotinas que possam ser chamadas para execução.

1
1) Suponha que o valor cobrado por evento organizado pela empresa MegaEventos tome como base a quantidade de
pessoas presentes no evento, sendo dado pela fórmula “valor = quantidade de pessoas presente * (custo por pessoa
+ custo opcional) * (taxa / 100) + custo base”. A “taxa” e o “custo base”, referenciados na fórmula, seguem a tabela
abaixo.

Quantidade de pessoas presentes Taxa Custo base

Até 70 109% R$ 4.100,00

Acima de 70 até 250 108% R$ 4.000,00

Acima de 250 105% R$ 3.800,00

O “custo por pessoa”, referenciado na fórmula, é fixo e vale R$ 300,00 independentemente da quantidade de pessoas
presentes. Além disso, o “custo opcional”, referenciado na fórmula, é calculado a partir de dois custos opcionais:
“custo por pessoa bar”, que corresponder ao bar de bebidas liberado contratado; e “custo por pessoa doces”, que
corresponde à mesa de doces contratada. Esses custos opcionais somente entram no cálculo do valor do evento se
forem contratados e seguem a tabela abaixo: (1,0 ponto)

Opcional Custo opcional

Somente Bar de bebidas liberado contratado R$ 90,00

Somente Mesa de doces contratada R$ 40,00

Bar de bebidas liberado e Mesa de doces, ambos R$ 110,00


contratados

a) Elabore uma função chamada calcula.valor que calcula o valor de um evento cobrado pela empresa a partir de três
parâmetros: quantidade de pessoas presentes; bar de bebidas liberado contratado; mesa de doces contratada. A
seguir, teste a função criada usando como exemplo os dados da tabela abaixo.
Quantidade de pessoas presente Bar liberado contratado* Mesa de doces contratada*

60 N N

200 S N

300 N S

320 S S

* Se “S” o opcional foi contratado e se “N” o opcional não foi contratado.

2
b) Elabore um fluxograma para a função calcula.valor . O fluxograma pode ser elaborado usando uma ferramenta
qualquer como Word ou PowerPoint, sendo que o arquivo com o fluxograma deverá ser enviado para correção em
formato PDF ou PNG, gerado pela própria ferramenta ou através de outro mecanismo que achar mais prático. O
fluxograma também pode ser feito à mão e, nesse caso, deve ser enviado um arquivo PDF.

2) O índice 𝑟, cuja fórmula está abaixo, relaciona dois vetores de dados 𝑥 e 𝑦.

Onde:

Sabendo que os vetores possuem o mesmo tamanho 𝑛 faça: (1,0 ponto)


a) Elabore uma função no R chamada calcula.indice que calcula e retorna o valor do índice 𝑟 a partir de dois vetores
passados como parâmetros e, a seguir, utilize a função criada para calcular o índice 𝑟 para os vetores X e Y abaixo. (1,0
ponto)

𝑿 48,0 64,0 44,0 42,0 55,0 44,0 44,0 47,0 50,0 56,0

𝒀 25,0 40,0 25,0 24,0 33,0 23,0 23,0 24,0 25,0 34,0

b) Calcule o valor de 𝑟 para 50 pares de vetores X e Y (cada vetor com 100 números aleatórios) gerados usando o
comando runif e a seguir esboce um gráfico box-plot para os 50 valores calculados de 𝑟.

3) O arquivo dados.csv apresenta uma amostra referente a duas variáveis 𝑥 e 𝑦 para as quais se supõe existir uma
relação entre elas. Utilizando o arquivo, implemente uma única função chamada processa.dados que: 1) utilizando a
biblioteca descr carregue o arquivo dados.csv em um data frame chamado dados que deve apresentar uma sequência
de dados chamada 𝑥 e outra chamada 𝑦; 2) a seguir, esboce um gráfico de dispersão de 𝑥 por 𝑦; 3) acrescente no data
frame uma nova linha que contenha para 𝑥 a média dos valores da coluna 𝑥 do data frame e para 𝑦 a média dos valores
da coluna 𝑦 do data frame; 4) acrescente no data frame duas novas colunas chamada diferencax e diferencay que
contenham, respectivamente, o valor absoluto da diferença entre a coluna 𝑥 e a média da coluna 𝑥 e o valor absoluto
da diferença entre a coluna 𝑦 e a média da coluna 𝑦. O data frame gerado no passo 4) deve ser retornado pela função.
(1,0 ponto)

3
4) A importadora WinePlus usa o banco de dados Vinho.db para controlar a venda de vinhos para seus clientes. O
banco de dados possui três tabelas chamadas Cliente, Vinho e Compra, as quais já possuem dados carregados. Os
detalhes das três tabelas são apresentados a seguir:

o Cliente – armazena os clientes.


▪ Id – identificador único do cliente correspondendo ao seu CPF.
▪ Telefone – telefone do cliente.
▪ Nome – nome do cliente.
▪ Endereco – endereço do cliente.
o Vinho – armazena os vinhos disponíveis para venda.
▪ Id – identificador único do vinho.
▪ Nome – nome do vinho.
▪ Uva – flag que identifica o tipo da uva usada na fabricação do vinho (“S” - Cabernet Sauvignon,
“M” - Merlot, “P” - Pinot Noir, “B” - Malbec, “C” - Chardonnay).
▪ Safra – indica o ano de colheita das uvas.
▪ PrecoVinho – preço do vinho.
▪ Estoque – indica a quantidade de garrafas em estoque do vinho.
o Compra – armazena a relação entre os vinhos e seus clientes.
▪ IdVinho – identificador do vinho relacionado ao campo Id da tabela Vinho.
▪ IdCliente – identificador do cliente relacionado ao campo Id da tabela Cliente.
▪ Quantidade – quantidade total de garrafas do vinho já compradas pelo cliente.

Para a importadora e seu banco de dados faça:

a) Elabore uma função chamada criar.tabelas que pode ser utilizada para criar todas as tabelas do banco Vinho.db.
(1,0 ponto)

b) A área de vendas da importadora deseja receber, quando necessário, um arquivo que possa abrir no Excel contendo
uma lista dos vinhos que a empresa vende. Crie uma função que possa gerar este arquivo, sabendo, que cada linha
deverá conter: Id, Nome, Uva e Safra do vinho. (1,0 ponto)

c) A área de estoque da importadora precisa eventualmente consultar quais são os vinhos (Id, Nome, Safra, PrecoVinho
e Estoque), ordenados por estoque, feitos a partir de uma determinada uva. Implemente uma função que permita, a
partir do tipo da uva passada como parâmetro, retornar um data frame que atenda a necessidade de consulta da área
de estoque. (1,0 ponto)

d) Implemente uma função que retorne um data frame com o CPF dos clientes que já compraram um determinado
vinho, tomando como parâmetro o Id do vinho. O data frame deverá conter também, para cada cliente, o seu telefone

4
e a quantidade do respectivo vinho que foi por ele comprada. (1,0 ponto)

e) Implemente uma função cujo retorno deve conter: o Id do vinho mais vendido; a quantidade de garrafas vendidas
desse vinho; a quantidade de clientes que comprou esse vinho. (1,0 ponto)

f) Crie uma função de inclusão de dados e uma de alteração que julgar úteis para o negócio da importadora. Observe
que: (1,0 ponto)

• para uma função de inclusão de dados, caso o dado a ser inserido já exista, a inclusão não deverá ser feita,
e a função deverá acusar o ocorrido através de mensagem na tela ou através do seu valor de retorno.
• para uma função de alteração de dados, caso o dado a ser alterado não exista, a alteração não deverá ser
feita, e a função deverá acusar o ocorrido através de mensagem na tela ou através do seu valor de retorno.

g) Crie uma função que, dependendo dos parâmetros recebidos, possa gerar 2 gráficos de tipos diferentes que julgar
úteis para o negócio da importadora. A cada chamada, a função deverá gerar apenas um tipo de gráfico. Deve ser
implementado 1 exemplo para cada um dos gráficos, utilizando informações recuperadas a partir da base de dados.
Os gráficos não podem utilizar os mesmos dados mudando-se apenas o tipo do gráfico. Justifique no seu código o
motivo pelo qual considerou útil o tipo de gráfico criado para a empresa. (1,0 ponto)

Você também pode gostar