Implementação de algoritmos para questões do teste técnico para vaga de Estágio em Análise e Desenvolvimento
Tip
Abaixo estão listadas as questões resolvidas no teste, cada questão possui um link em seu título para o arquivo com o código do algoritmo em Python, você também pode ver uma versão do código com comentários explicativos sobre a implementação clicando em Código 💡
Observe o trecho de código abaixo:
int INDICE = 13, SOMA = 0, K = 0;
Enquanto K < INDICE faça { K = K + 1; SOMA = SOMA + K; }
Imprimir(SOMA);
Ao final do processamento, qual será o valor da variável SOMA?
R - Ao final do processamento a variável soma terá o valor de 91.
Código 💡
indice = 13
soma = 0
k = 0
while k < indice:
k += 1 # Soma 1 a variável k
soma += k # Soma o valor de k a variável soma
print(soma) # soma = 91
Dado a sequência de Fibonacci, onde se inicia por 0 e 1 e o próximo valor sempre será a soma dos 2 valores anteriores (exemplo: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34...), escreva um programa na linguagem que desejar onde, informado um número, ele calcule a sequência de Fibonacci e retorne uma mensagem avisando se o número informado pertence ou não a sequência.
Important
Esse número pode ser informado através de qualquer entrada de sua preferência ou pode ser previamente definido no código.
Código 💡
def number_in_fibonacci(number: int):
fibonacci = [0, 1]
while fibonacci[-1] < number:
new_value = fibonacci[-1] + fibonacci[-2]
fibonacci.append(new_value)
if fibonacci[-1] == number:
print(f'O número {int(number)} pertence a sequência de Fibonacci.')
return True
print(f'O número {number} não pertence a sequência de Fibonacci.')
return False
test_number = number_in_fibonacci(test_number)
Dado um vetor que guarda o valor de faturamento diário de uma distribuidora, faça um programa, na linguagem que desejar, que calcule e retorne:
- O menor valor de faturamento ocorrido em um dia do mês;
- O maior valor de faturamento ocorrido em um dia do mês;
- Número de dias no mês em que o valor de faturamento diário foi superior à média mensal.
Important
- Usar o json ou xml disponível como fonte dos dados do faturamento mensal;
- Podem existir dias sem faturamento, como nos finais de semana e feriados. Estes dias devem ser ignorados no cálculo da média.
Resposta:
- O menor faturamento ocorrido no mês foi deR$ 373.78 no dia 14.
- O maior faturamento ocorrido no mês foi deR$ 48924.24 no dia 16.
- O número de dias em que o faturamento diário foi superior à média mensal foi de 10 dias.
Código 💡
import json
with open('dados.json', encoding='utf-8') as file:
data = json.load(file)
biling_days = 0
min_value = data[0]
max_value = data[0]
monthly_amount = 0
for day in data:
if day['valor'] > 0:
biling_days += 1
if day['valor'] < min_value['valor'] and day['valor'] != 0:
min_value = day
if day['valor'] > max_value['valor']:
max_value = day
monthly_amount += day['valor']
average = monthly_amount / biling_days
higher_days = 0
for day in data:
if day['valor'] > average:
higher_days += 1
print(
'O menor faturamento ocorrido no mês foi de '
f'R$ {min_value["valor"]:.2f} no dia {min_value["dia"]}.'
)
print(
'O maior faturamento ocorrido no mês foi de '
f'R$ {max_value["valor"]:.2f} no dia {max_value["dia"]}.'
)
print(
'O número de dias em que o faturamento diário '
f'foi superior à média mensal foi de {higher_days} dias.'
)
Dado o valor de faturamento mensal de uma distribuidora, detalhado por estado:
- SP – R$67.836,43
- RJ – R$36.678,66
- MG – R$29.229,88
- ES – R$27.165,48
- Outros – R$19.849,53
Escreva um programa na linguagem que desejar onde calcule o percentual de representação que cada estado teve dentro do valor total mensal da distribuidora.
Resposta:
- SP - 37.53%
- RJ - 20.29%
- MG - 16.17%
- ES - 15.03%
- OUTROS - 10.98%
Tip
Abaixo segue um gráfico com a representação percentual da análise de distribuição por estado, caso queiro ver o código em Jupyter Notebook clique aqui
Código 💡
test_data = {
'sp': 67836.43,
'rj': 36678.66,
'mg': 29229.88,
'es': 27165.48,
'outros': 19849.53,
}
def calculate_percentages(invoicing: dict[str, float]):
total = sum(invoicing.values())
percentages = {
state: (value / total) * 100 for state, value in invoicing.items()
}
return percentages
print(
'O percentual de representação de cada estado'
'no faturamento mensal da distribuidora foi de:'
)
for state, percentage in calculate_percentages(test_data).items():
print(f'{state.upper()} - {percentage:.2f}%')
Escreva um programa que inverta os caracteres de um string.
Important
- Essa string pode ser informada através de qualquer entrada de sua preferência ou pode ser previamente definida no código;
- Evite usar funções prontas, como, por exemplo, reverse.
Código 💡
def reverse_str(string: str):
inverted = ''
for i in range(len(string) - 1, -1, -1):
inverted += string[i]
return inverted
string = 'Test'
print('String original:', string)
print('String invertida:', reverse_str(string))