Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
lukemariano committed Jun 14, 2022
2 parents 0dd4bfa + 787c9f3 commit 3f181d5
Show file tree
Hide file tree
Showing 13 changed files with 307 additions and 11 deletions.
12 changes: 12 additions & 0 deletions .github/workflows/corretor_de_exercicios_secao_03.yml
Original file line number Diff line number Diff line change
Expand Up @@ -191,3 +191,15 @@ jobs:
if: always()
run: |
python -m doctest -f secao_03_estrutura_de_repeticao/ex_46_salto_em_distancia.py
- name: Correção do Exercício 48 da seção de Estrutura de Repetição
if: always()
run: |
python -m doctest -f secao_03_estrutura_de_repeticao/ex_48_inteiro_invertido.py
- name: Correção do Exercício 49 da seção de Estrutura de Repetição
if: always()
run: |
python -m doctest -f secao_03_estrutura_de_repeticao/ex_49_imprimir_serie.py
- name: Correção do Exercício 50 da seção de Estrutura de Repetição
if: always()
run: |
python -m doctest -f secao_03_estrutura_de_repeticao/ex_50_soma_serie.py
24 changes: 24 additions & 0 deletions .github/workflows/corretor_de_exercicios_secao_04.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,27 @@ jobs:
if: always()
run: |
python -m doctest -f secao_04_exercicios_lista/ex_01_vetor_5_numeros.py
- name: Correção do Exercício 05 da seção de Listas
if: always()
run: |
python -m doctest -f secao_04_exercicios_lista/ex_05_vetore_par_e_impar.py
- name: Correção do Exercício 09 da seção de Listas
if: always()
run: |
python -m doctest -f secao_04_exercicios_lista/ex_09_soma_de_quadrados.py
- name: Correção do Exercício 10 da seção de Listas
if: always()
run: |
python -m doctest -f secao_04_exercicios_lista/ex_10_intercalacao_de_vetores.py
- name: Correção do Exercício 11 da seção de Listas
if: always()
run: |
python -m doctest -f secao_04_exercicios_lista/ex_11_intercalacao_de_3_vetores.py
- name: Correção do Exercício 12 da seção de Listas
if: always()
run: |
python -m doctest -f secao_04_exercicios_lista/ex_12_filtro_de_baixinhos.py
- name: Correção do Exercício 24 da seção de Listas
if: always()
run: |
python -m doctest -f secao_04_exercicios_lista/ex_24_lancamento_de_dados.py
16 changes: 8 additions & 8 deletions secao_02_estrutura_de_decisao/ex_25_sherlock.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,25 +11,25 @@
"Já trabalhou com a vítima?"
O programa deve no final emitir uma classificação sobre a participação da pessoa no crime.
Se a pessoa responder positivamente a 2 questões ela deve ser classificada como "Suspeita",
Se a pessoa responder positivamente a 2 questões ela deve ser classificada como "Suspeito",
entre 3 e 4 como "Cúmplice" e 5 como "Assassino".
Caso contrário, ele será classificado como "Inocente".
>>> investivar('Sim','Sim','Sim','Sim','Sim')
>>> investigar('Sim','Sim','Sim','Sim','Sim')
'Assassino'
>>> investivar('Sim','Sim','Sim','Sim','Não')
>>> investigar('Sim','Sim','Sim','Sim','Não')
'Cúmplice'
>>> investivar('Sim','Sim','Sim','Não','Não')
>>> investigar('Sim','Sim','Sim','Não','Não')
'Cúmplice'
>>> investivar('Sim','Sim','Não','Não','Não')
>>> investigar('Sim','Sim','Não','Não','Não')
'Suspeito'
>>> investivar('Sim','Não','Não','Não','Não')
>>> investigar('Sim','Não','Não','Não','Não')
'Inocente'
>>> investivar('Não','Não','Não','Não','Não')
>>> investigar('Não','Não','Não','Não','Não')
'Inocente'
"""


def investivar(telefonou: str, estava_no_local: str, mora_perto: str, devia: str, trabalhou: str, ):
def investigar(telefonou: str, estava_no_local: str, mora_perto: str, devia: str, trabalhou: str, ):
"""Escreva aqui em baixo a sua solução"""
6 changes: 3 additions & 3 deletions secao_03_estrutura_de_repeticao/ex_40_transito.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@
>>> calcular_estatisticas(('SJC', 190_000, 300), ('SP', 1_000_000, 2_000 ),
... ('BH', 800_000, 1000), ('FZ', 600_000, 700), ('FL', 150_000, 900)
... )
O maior índice de acidentes é de FL, com 6.0 acidentes por mil habitantes.
O menor índice de acidentes é de FZ, com 1.2 acidentes por mil habitantes.
O maior índice de acidentes é de FL, com 6.0 acidentes por mil carros.
O menor índice de acidentes é de FZ, com 1.2 acidentes por mil carros.
O média de veículos por cidade é de 548000.
A média de acidentes total nas cidades com menos de 150 mil habitantes é de 900.0 acidentes.
A média de acidentes total nas cidades com menos de 150 mil carros é de 900.0 acidentes.
"""


Expand Down
23 changes: 23 additions & 0 deletions secao_03_estrutura_de_repeticao/ex_48_inteiro_invertido.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
"""
Exercício 48 da seção de estrutura sequencial da Python Brasil:
https://wiki.python.org.br/EstruturaDeRepeticao
Faça um programa que peça um numero inteiro positivo e em seguida mostre este numero invertido.
Exemplo:
entrada => 12376489
saida => 98467321
>>> inverter_inteiro(0)
0
>>> inverter_inteiro(123456789)
987654321
>>> inverter_inteiro(3454232311243232979128123)
3218219792323421132324543
>>> inverter_inteiro(987654321)
123456789
"""


def inverter_inteiro(numero):
"""Escreva aqui em baixo a sua solução"""
39 changes: 39 additions & 0 deletions secao_03_estrutura_de_repeticao/ex_49_imprimir_serie.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
"""
Exercício 49 da seção de estrutura sequencial da Python Brasil:
https://wiki.python.org.br/EstruturaDeRepeticao
Faça um programa que mostre os n termos da Série a seguir:
S = 1/1 + 2/3 + 3/5 + 4/7 + 5/9 + ... + n/m.
Imprima no final a soma da série.
----------------------------------
| EXEMPLO |
----------------------------------
| ENTRADA: |
| n = 5 |
| SAIDA: |
| S = 1/1 + 2/3 + 3/5 + 4/7 + 5/9 |
| soma = 3.393650793650793 |
----------------------------------
>>> imprimir_serie(5)
S = 1/1 + 2/3 + 3/5 + 4/7 + 5/9
soma = 3.393650793650793
>>> imprimir_serie(7)
S = 1/1 + 2/3 + 3/5 + 4/7 + 5/9 + 6/11 + 7/13
soma = 4.477566877566877
>>> imprimir_serie(3)
S = 1/1 + 2/3 + 3/5
soma = 2.2666666666666666
>>> imprimir_serie(9)
S = 1/1 + 2/3 + 3/5 + 4/7 + 5/9 + 6/11 + 7/13 + 8/15 + 9/17
soma = 5.540311975606093
"""


def imprimir_serie(n):
"""Escreva aqui em baixo a sua solução"""
31 changes: 31 additions & 0 deletions secao_03_estrutura_de_repeticao/ex_50_soma_serie.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
"""
Exercício 50 da seção de estrutura sequencial da Python Brasil:
https://wiki.python.org.br/EstruturaDeRepeticao
Sendo H = 1 + 1/2 + 1/3 + 1/4 + ... + 1/N,
Faça um programa que calcule o valor de H com N termos.
----------------------------------
| EXEMPLO |
----------------------------------
| ENTRADA: |
| n = 5 |
| SAIDA: |
| H = 2.283333333333333 |
----------------------------------
>>> soma_serie(5)
H = 2.283333333333333
>>> soma_serie(7)
H = 2.5928571428571425
>>> soma_serie(17)
H = 3.439552522640758
>>> soma_serie(2)
H = 1.5
"""


def soma_serie(n):
"""Escreva aqui em baixo a sua solução"""
21 changes: 21 additions & 0 deletions secao_04_exercicios_lista/ex_05_vetore_par_e_impar.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
"""
Exercício 05 da seção de listas da Python Brasil:
https://wiki.python.org.br/ExerciciosListas
Faça um Programa que receba um vetor de inteiros. Armazene os números pares no vetor PAR e os
números IMPARES no vetor impar. Imprima os três vetores.
>>> separar_em_vertores_par_e_impar([])
'Vetor original: []. Vetor com elementos pares: []. Vetor com elementos impares: [].'
>>> separar_em_vertores_par_e_impar([1])
'Vetor original: [1]. Vetor com elementos pares: []. Vetor com elementos impares: [1].'
>>> separar_em_vertores_par_e_impar([1, 2])
'Vetor original: [1, 2]. Vetor com elementos pares: [2]. Vetor com elementos impares: [1].'
>>> separar_em_vertores_par_e_impar(list(range(10)))
'Vetor original: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]. Vetor com elementos pares: [0, 2, 4, 6, 8]. Vetor com elementos impares: [1, 3, 5, 7, 9].'
"""


def separar_em_vertores_par_e_impar(inteiros: list) -> str:
"""Escreva aqui em baixo a sua solução"""
21 changes: 21 additions & 0 deletions secao_04_exercicios_lista/ex_09_soma_de_quadrados.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
"""
Exercício 09 da seção de listas da Python Brasil:
https://wiki.python.org.br/ExerciciosListas
Faça um Programa que receba um vestor de números inteiros, calcule e mostre a soma dos quadrados dos elementos do
vetor.
>>> calcular_soma_de_quadrados([])
0
>>> calcular_soma_de_quadrados([1])
1
>>> calcular_soma_de_quadrados([1, 2])
5
>>> calcular_soma_de_quadrados(list(range(10)))
285
"""


def calcular_soma_de_quadrados(inteiros: list) -> int:
"""Escreva aqui em baixo a sua solução"""
22 changes: 22 additions & 0 deletions secao_04_exercicios_lista/ex_10_intercalacao_de_vetores.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
"""
Exercício 10 da seção de listas da Python Brasil:
https://wiki.python.org.br/ExerciciosListas
Faça um Programa receba dois vetores com mesmo tamanho. Gere um terceiro vetor com o dobro elementos, cujos valores
deverão ser compostos pelos elementos intercalados dos dois outros vetores.
>>> intercalar([], [])
[]
>>> intercalar([1],[2])
[1, 2]
>>> intercalar([1, 2], [3, 4])
[1, 3, 2, 4]
>>> intercalar(list(range(10)), list(range(10, 20)))
[0, 10, 1, 11, 2, 12, 3, 13, 4, 14, 5, 15, 6, 16, 7, 17, 8, 18, 9, 19]
"""


def intercalar(lista_1: list, lista_2: list) -> list:
"""Escreva aqui em baixo a sua solução"""

21 changes: 21 additions & 0 deletions secao_04_exercicios_lista/ex_11_intercalacao_de_3_vetores.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
"""
Exercício 11 da seção de listas da Python Brasil:
https://wiki.python.org.br/ExerciciosListas
Altere o programa anterior, intercalando 3 vetores.
>>> intercalar([], [], [])
[]
>>> intercalar([1], [2], [3])
[1, 2, 3]
>>> intercalar([1, 2], [3, 4], [5, 6])
[1, 3, 5, 2, 4, 6]
>>> intercalar(list(range(5)), list(range(5, 10)), list(range(10, 15)))
[0, 5, 10, 1, 6, 11, 2, 7, 12, 3, 8, 13, 4, 9, 14]
"""


def intercalar(lista_1: list, lista_2: list, lista_3: list) -> list:
"""Escreva aqui em baixo a sua solução"""

43 changes: 43 additions & 0 deletions secao_04_exercicios_lista/ex_12_filtro_de_baixinhos.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
"""
Exercício 12 da seção de listas da Python Brasil:
https://wiki.python.org.br/ExerciciosListas
Foram anotados os nomes, as idades e alturas de de vários alunos.
Faça um Programa que determine quantos alunos com mais de 13 anos possuem altura inferior à média de altura desses
alunos.
Mostre a média com uma casa decimal.
>>> calcular_baixinhos_com_mais_de_13_anos(('Renzo', 39, 162))
Média de altura: 162.0 centímetros.
Não há nenhum aluno abaixo da média
>>> calcular_baixinhos_com_mais_de_13_anos(('Renzo', 39, 162), ('Priscila', 33, 158))
Média de altura: 160.0 centímetros.
Existe(m) 1 aluno(s) com altura abaixo da média com mais de 13 anos:
1. Priscila, com 158 centímetros e 33 ano(s) de idade
>>> calcular_baixinhos_com_mais_de_13_anos(('Renzo', 39, 162), ('Priscila', 33, 158), ('Gigante', 20, 210))
Média de altura: 176.7 centímetros.
Existe(m) 2 aluno(s) com altura abaixo da média com mais de 13 anos:
1. Renzo, com 162 centímetros e 39 ano(s) de idade
2. Priscila, com 158 centímetros e 33 ano(s) de idade
>>> calcular_baixinhos_com_mais_de_13_anos(
... ('Renzo', 39, 162), ('Priscila', 33, 158), ('Gigante', 20, 210), ('Criança', 7, 100)
... )
Média de altura: 157.5 centímetros.
Não há nenhum aluno abaixo da média
>>> calcular_baixinhos_com_mais_de_13_anos(
... ('Renzo', 39, 162), ('Priscila', 33, 158), ('Gigante', 20, 210),
... ('Criança', 7, 100), ("Shaquille O'Neal", 25, 216)
... )
Média de altura: 169.2 centímetros.
Existe(m) 2 aluno(s) com altura abaixo da média com mais de 13 anos:
1. Renzo, com 162 centímetros e 39 ano(s) de idade
2. Priscila, com 158 centímetros e 33 ano(s) de idade
"""


def calcular_baixinhos_com_mais_de_13_anos(*alunos):
"""Escreva aqui em baixo a sua solução"""


39 changes: 39 additions & 0 deletions secao_04_exercicios_lista/ex_24_lancamento_de_dados.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
"""
Exercício 24 da seção de listas da Python Brasil:
https://wiki.python.org.br/ExerciciosListas
A partir de uma simulação de lançamento de dados, foram armazenados os valores de cada lançamento.
Mostre na tela:
1)Quantas vezes o dado foi lançado;
2)Quantas vezes cada valor foi obtido;
3)Qual lado caiu mais vezes (e quantas vezes.)
>>> lancar_dados(2, 2, 2, 5, 3, 3, 1, 3, 4, 2, 6, 4, 3, 4, 4, 2, 6, 3, 6, 3, 4,
... 3, 5, 5, 5, 1, 2, 1, 6, 5, 6, 3, 1, 6, 1, 1, 6, 5, 1, 6, 1, 1, 2, 1, 1, 2, 2,
... 4, 4, 4, 2, 1, 4, 6, 6, 4, 2, 4, 4, 2, 5, 3, 6, 1, 2, 5, 4, 4, 5, 3, 4, 6, 6)
O dado foi lançado 73 vezes
O número 1 caiu 13 vezes
O número 2 caiu 13 vezes
O número 3 caiu 10 vezes
O número 4 caiu 15 vezes
O número 5 caiu 9 vezes
O número 6 caiu 13 vezes
O lado com o número 4 caiu mais vezes (15 vezes)
>>> lancar_dados(6, 6, 2, 5, 4, 5, 3, 3, 5, 1, 4, 5, 4, 4, 2, 4, 6, 3, 6, 1,
... 6, 6, 6, 6, 5, 5, 6, 6, 3, 5, 5, 1, 5, 5, 5, 2, 6, 4, 5, 5, 1, 3, 2, 3, 3,
... 6, 3, 4, 3, 4, 1, 6, 6, 3, 1, 1, 2, 2, 2, 4, 4, 3, 1, 2, 6, 2, 5, 2, 2)
O dado foi lançado 69 vezes
O número 1 caiu 8 vezes
O número 2 caiu 11 vezes
O número 3 caiu 11 vezes
O número 4 caiu 10 vezes
O número 5 caiu 14 vezes
O número 6 caiu 15 vezes
O lado com o número 6 caiu mais vezes (15 vezes)
"""


def lancar_dados(*valor_lancamentos):
"""Escreva aqui em baixo a sua solução"""

0 comments on commit 3f181d5

Please sign in to comment.