---
# System prepended metadata

title: Nívelamento Bayer Data Analytics

---

# Nívelamento Bayer Data Analytics

Consiste em entender o seu nível nos temas que serão abordados no curso.


## Programming Base (2 pontos)

1. Nesse esquema de pirâmide, o líder de um funcionário sempre ganha 5% do total de vendas de seus subordinados. No caso do líder de um outro líder, o seu ganho é sempre calculado baseado no ganho final do seus funcionários (vendas + lucros sobre a equipe). Crie um programa que mostre o valor que cada funcionário ganhou no exemplo abaixo.

Funcionário | Venda | Equipe
------------|-------|-------
Gabriel Roger | 0 | Gustavo, Beatriz, Nikão
Gustavo | 300 | Nati, Camila
Beatriz | 450 | Zaca
Nikão | 500 | Jefferson, Davi
Nati | 100 | 
Camila | 350 |
Zaca | 200 |
Fábio | 210 |
Jefferson | 150 |
Davi | 100 |


**Resposta**

```
equipe = {
    'nome': 'Gabriel Roger',
    'vendas': 0,
    'subordinados': [
        {
            'nome': 'Gustavo',
            'vendas': 300,
            'subordinados': [
                {
                    'nome': 'Nati',
                    'vendas': 100,
                },
                {
                    'nome': 'Camila',
                    'vendas': 350,          
                }
            ]
        },
        {
            'nome': 'Beatriz',
            'vendas': 450,
            'subordinados': [
                {
                    'nome': 'Zaca',
                    'vendas': 200,            
                }
            ]
        },
        {
            'nome': 'Nikão',
            'vendas': 500,
            'subordinados': [
                {
                    'nome': 'Jefferson',
                    'vendas': 150,            
                },
                {
                    'nome': 'Davi',
                    'vendas': 100,            
                }
            ]
        }
    ]
}


ganho_subordinados = 0.05


def calcular_salario(funcionario):
    salario_subordinados = 0

    if 'subordinados' in funcionario.keys():
        for subordinado in funcionario['subordinados']:
            salario_subordinados += calcular_salario(subordinado)
    
    salario = funcionario['vendas'] + salario_subordinados * ganho_subordinados

    funcionario['salario'] = salario

    return salario


def imprimir_salarios(funcionario):
    if 'subordinados' in funcionario.keys():
        for subordinado in funcionario['subordinados']:
            imprimir_salarios(subordinado)
    
    print(funcionario['nome'] + ':', funcionario['salario'])


calcular_salario(equipe)
imprimir_salarios(equipe)
```
---

2. Crie 4 funções

- sacar
- extrato
- depositar
- executar atm

Ao chamar a função executar atm o usuário terá algumas opções como:

- tecle 1 para sacar seu dinheiro
- tecle 2 para extrato do seu dinheiro
- tecle 3 para depositar seu dinheiro
- tecle 4 para sair

Lembre-se que para sacar não poderá ser um valor maior que seu saldo e para depositar não pode ser um valor maior que 1000 reais

crie novas regras se sentir falta enquanto estiver desenvolvendo o seu código

**Resposta**
```
def sacar(saldo, valor_de_saque):
    if valor_de_saque >= 0:
        return saldo - valor_de_saque

def depositar(saldo, valor_de_deposito):
    if valor_de_deposito <= 1000:
        return saldo + valor_de_deposito
    return '

def extrato(saldo):
    print('Extrato:-----', saldo)

def executar_atm():
    saldo = float(input('digite um valor para simular seu saldo maior que 0-->'))
    opcao = 0
    
    while int(opcao) != 4:
        print('digite 1 para sacar')
        print('digite 2 para extrato')
        print('digite 3 para deposito')
        print('digite 4 para finalizar')

        opcao = input('qual sua opcao? ')
        
        if int(opcao) == 1:
            valor_saque = float(input('Qual seu valor de saque? '))
            saldo = sacar(saldo, valor_saque)
            print(saldo)
        elif int(opcao) == 2:
            extrato(saldo)
        elif int(opcao) == 3:
            valor_deposito = float(input('Qual seu valor de deposito? '))
            saldo = sacar(saldo, valor_deposito)
            print(saldo)
        else:
            print("Opção inválida. Tente novamente.")
    
    print('Obrigado por vir ao banco!')
```
---

## Análise de dados (4 pontos)


3. Visualize esse dataset: https://www.kaggle.com/shree1992/housedata

- No google colab, crie uma análise exploratória básica e responda o que pode influenciar no preço final da casa com base nas outras variáveis.
- Ferramentas que desejamos que você utilize:
    - pandas
    - seaborn
    - matplotlib
    - markdown

**Exemplo de resposta:**
https://github.com/g-roger/EDA-housing/blob/master/EDA_housing.ipynb

---

## Modelagem (4 pontos)

4. Modele o problema a seguir.

obs: use https://app.diagrams.net/

```
Read the following case study carefully:
 

The University of United States (UUS) offers four year programs in the following courses:

- Information Technology
- Civil Engineering
- Mechanical Engineering 
- Electrical Engineering
- Fashion Designing
- Hotel Management
 

This year, for campus recruitment of senior students, UUS is planning to call companies needing majors in:

- Information Technology
- Mechanical Engineering
- Fashion Designing
 

They are only calling the best three companies in their fields. For this, they need to record the following details:

- Company Name
- Company Field
- HR Person Name
- HR Person Contact
- HR Person Email ID
- Date of Campus-Visit
 

Also, all the companies visiting the campus need the following student details:

- Name
- Enrollment Number
- Enrolled Course
- Number of Projects Completed
 

In addition, the companies demand the following information about each one of the student's completed projects. 

- Title
- Mentor
- Duration
- Technology
- Grade Awarded
```

- Crie um modelo de entidade relacionamento que resolva este problema.
- Justifique sua resposta, explicando porque modelou de tal forma.

**Resposta**

![](https://i.imgur.com/YtqOMng.png)

![](https://i.imgur.com/jGl4iqc.png)

---

## Full Stack (1 ponto)

5. Qual sua experiência com API's?
6. Quais frameworks já ouvir falar para construção de API's REST?
7. Quais técnicas você utiliza para construção de um site responsivo?
