Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#77 #119

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

#77 #119

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 121 additions & 0 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Module",
"type": "python",
"request": "launch",
"module": "pytest",
"justMyCode": true
},
{
"name": "Pytest",
"type": "python",
"request": "launch",
"module": "pytest",
"args": ["${file}", "--doctest-modules"],
"cwd": "${workspaceRoot}",
"justMyCode": true
}
]
}
2 changes: 1 addition & 1 deletion secao_01_estrutura_sequencial/ex_01_alo_mundo.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@

def ola_mundo():
"""Escreva aqui em baixo a sua solução"""

print("Olá Mundo")
21 changes: 21 additions & 0 deletions secao_03_estrutura_de_repeticao/ex_15_fibonnacci_ate_n.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,24 @@

def calcular_serie_de_fibonacci(n: int) -> str:
"""Escreva aqui em baixo a sua solução"""

[1, 1, 2, 3, 5, 8, 13, 21, 34]

fibonacci = [1, 1]
i = 2

while i < n:
fibonacci.append(fibonacci[-2] + fibonacci[-1])
i += 1

print(fibonacci)










130 changes: 130 additions & 0 deletions secao_04_exercicios_lista/ex_19_sistema_operacional.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
"""
Exercício 19 da seção de listas da Python Brasil:
https://wiki.python.org.br/ExerciciosListas

Uma empresa de pesquisas precisa tabular os resultados da seguinte enquete feita a um grande quantidade de organizações:
"Qual o melhor Sistema Operacional para uso em servidores?"

As possíveis respostas são:

1- Windows Server
2- Unix
3- Linux
4- Netware
5- Mac OS
6- Outro
Você foi contratado para desenvolver um programa que leia o resultado da enquete e informe ao final o resultado da mesma. O programa deverá ler os valores até ser informado o valor 0, que encerra a entrada dos dados. Não deverão ser aceitos valores além dos válidos para o programa (0 a 6). Os valores referentes a cada uma das opções devem ser armazenados num vetor. Após os dados terem sido completamente informados, o programa deverá calcular a percentual de cada um dos concorrentes e informar o vencedor da enquete. O formato da saída foi dado pela empresa, e é o seguinte:
Sistema Operacional Votos %
------------------- ----- ---
Windows Server 1500 17%
Unix 3500 40%
Linux 3000 34%
Netware 500 5%
Mac OS 150 2%
Outro 150 2%
------------------- -----
Total 8800

O Sistema Operacional mais votado foi o Unix, com 3500 votos, correspondendo a 40% dos votos.

>>> from secao_04_exercicios_lista import ex_19_sistema_operacional
>>> entradas = ['0', '2', '2', '6','6', '2', '1','5', '2', '1','2', '2', '4','2', '2', '1','2', '2', '1',]
>>> ex_19_sistema_operacional.input = lambda k: entradas.pop()
>>> ex_19_sistema_operacional.rodar_senso()
Sistema Operacional Votos %
------------------- ----- -----
Windows Server 4 22.2%
Unix 10 55.6%
Linux 0 0.0%
Netware 1 5.6%
Mac OS 1 5.6%
Outro 2 11.1%
------------------- -----
Total 18
>>> entradas = ['0', '3', '2', '1']
>>> ex_19_sistema_operacional.input = lambda k: entradas.pop()
>>> ex_19_sistema_operacional.rodar_senso()
Sistema Operacional Votos %
------------------- ----- -----
Windows Server 1 33.3%
Unix 1 33.3%
Linux 1 33.3%
Netware 0 0.0%
Mac OS 0 0.0%
Outro 0 0.0%
------------------- -----
Total 3
>>> entradas = ['0', '2', '1']
>>> ex_19_sistema_operacional.input = lambda k: entradas.pop()
>>> ex_19_sistema_operacional.rodar_senso()
Sistema Operacional Votos %
------------------- ----- -----
Windows Server 1 50.0%
Unix 1 50.0%
Linux 0 0.0%
Netware 0 0.0%
Mac OS 0 0.0%
Outro 0 0.0%
------------------- -----
Total 2
>>> entradas = ['0', '2', '7']
>>> ex_19_sistema_operacional.input = lambda k: entradas.pop()
>>> ex_19_sistema_operacional.rodar_senso()
Sistema Operacional Votos %
------------------- ----- -----
Windows Server 0 0.0%
Unix 1 100.0%
Linux 0 0.0%
Netware 0 0.0%
Mac OS 0 0.0%
Outro 0 0.0%
------------------- -----
Total 1



"""


def rodar_senso():
"""Escreva aqui em baixo a sua solução"""
entradas = []

while True:
inp = input('Digite o nome: ')
if inp == '0':
break
entradas.append(inp)

server = entradas.count('1')
unix = entradas.count('2')
linux = entradas.count('3')
netware = entradas.count('4')
mac = entradas.count('5')
outros = entradas.count('6')

total = server + unix + linux + netware + mac + outros

porc_server = server / total * 100
porc_unix = unix / total * 100
porc_linux = linux / total * 100
porc_netware = netware / total * 100
porc_mac = mac / total * 100
porc_outros = outros / total * 100



print(f'Sistema Operacional Votos %')
print(f'------------------- ----- -----')
print(f'Windows Server'.ljust(25), f'{server:4} {porc_server:4.1f}%')
print(f'Unix'.ljust(25), f'{unix:4} {porc_unix:4.1f}%')
print(f'Linux'.ljust(25), f'{linux:4} {porc_linux:4.1f}%')
print(f'Netware'.ljust(25), f'{netware:4} {porc_netware:4.1f}%')
print(f'Mac OS'.ljust(25), f'{mac:4} {porc_mac:4.1f}%')
print(f'Outro'.ljust(25), f'{outros:4} {porc_outros:4.1f}%')
print(f'-------------------'.ljust(25), f'-----')
print(f'Total'.ljust(25), f'{total:4}')