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

Soluções para o exercício da Seção 02 #13

Open
wants to merge 129 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
ea0334a
First exercise
c137santos May 23, 2022
af79a5a
Exercise 01 and 02 concluded
c137santos May 23, 2022
68d8a7d
Exercise from 02 to 15 concluded
c137santos May 24, 2022
e07c393
Ex 16 and 17 finished
c137santos May 25, 2022
ac6eccd
First exercise
c137santos May 23, 2022
ec2020e
Exercise 01 and 02 concluded
c137santos May 23, 2022
58a7245
Exercise from 02 to 15 concluded
c137santos May 24, 2022
3d1cd66
Ex 16 and 17 finished
c137santos May 25, 2022
00bc607
Exercise 17 and 18 conclued
c137santos May 26, 2022
ecd4d0d
Merge branch 'secao_01' into ex_3
c137santos May 26, 2022
35a4ee8
Merge pull request #4 from ClaraSantosmf/ex_3
c137santos May 26, 2022
8131a6d
Exercise from 01 to 14
c137santos May 26, 2022
4c666ac
Merge pull request #5 from ClaraSantosmf/ex_2_1
c137santos May 26, 2022
a2b7946
Solution for exercise 15
c137santos May 27, 2022
24ae7f5
New Solution for 06 exercise
c137santos May 27, 2022
c50692f
Solution for ex_17 seccion 02
c137santos May 27, 2022
814cf90
Solution for exercise 18
c137santos May 27, 2022
50f9e06
I SOLVED THAT PROBLEM ALOOONEEgit add secao_02_estrutura_de_decisao/e…
c137santos May 29, 2022
57c1d26
Solution of exercise 19_decomposicao_de_numero
c137santos May 29, 2022
3904fef
created new branch for section 0
c137santos May 29, 2022
c092ba2
Exercise 20
c137santos May 29, 2022
654b319
Fixed exercise 15
c137santos May 29, 2022
34027da
Merge pull request #6 from ClaraSantosmf/ex_2_15
c137santos May 29, 2022
df54abc
Solution to 22, 23 and 24 exercise
c137santos May 30, 2022
935a329
solution exercise 25
c137santos May 30, 2022
4676a5f
Better solution
c137santos May 30, 2022
1f820fa
WIP
c137santos May 30, 2022
b6179b0
Merge branch 'main' into secao_2
c137santos May 30, 2022
096b18a
Merge branch 'secao_2' into ex_02_21
c137santos May 30, 2022
e1c210d
Solution to ex_12
c137santos May 30, 2022
9e5c6a3
Merge pull request #7 from ClaraSantosmf/ex_02_21
c137santos May 30, 2022
46bf175
Solution to ex_26
c137santos May 31, 2022
06d3000
Solution to ex_27 and ex_28
c137santos May 31, 2022
6eeaa26
Merge pull request #8 from ClaraSantosmf/ex_02_26_to_29
c137santos May 31, 2022
20764ab
Merge branch 'main' into secao_2
c137santos Jun 3, 2022
2db1410
aff
c137santos Jun 6, 2022
61ea7ff
Feita correção da questão 31 da seção de estrutura de repetição.
Jun 6, 2022
7cb8bb2
Feita correção da questão 32 da seção de estrutura de repetição.
Jun 6, 2022
3728500
Feita correção da questão 33 da seção de estrutura de repetição.
Jun 6, 2022
a863f39
Feita correção do exercício 36 da seção de estrutura de repetição.
Jun 6, 2022
2843124
Feita correção do exercício 37 da seção de estrutura de repetição.
Jun 6, 2022
875dfdf
Feita correção da questão 38 da seção de estrutura de repetição.
Jun 6, 2022
2899712
Corrigidos arquivos de corretores
Jun 6, 2022
9ae25f8
Feita correção do exercício 39 da seção de repetição
Jun 6, 2022
f5d6117
Update corretor_de_exercicios_secao_01.yml
c137santos Jun 6, 2022
00f4c32
Feita correção do exercício 40 da seção de repetição
Jun 6, 2022
aae00ff
Corrigido arquivo do ex 40 da seção de estrutura de repetição
Jun 6, 2022
4e9d9c8
First exercise
c137santos May 23, 2022
709d4bd
Exercise 01 and 02 concluded
c137santos May 23, 2022
19bfb23
Exercise from 02 to 15 concluded
c137santos May 24, 2022
06c7e6b
Ex 16 and 17 finished
c137santos May 25, 2022
7d9f6b8
Solution for exercise 15
c137santos May 27, 2022
e626d9c
Solution for ex_17 seccion 02
c137santos May 27, 2022
b6cbb88
Fixed exercise 15
c137santos May 29, 2022
ba0ac16
aff
c137santos Jun 6, 2022
8c4d9f6
Solution to 21 exercise section 02
c137santos Jun 6, 2022
e44157c
Merge branch 'main' into secao_2
c137santos Jun 7, 2022
07997ae
Mexendo na seção 01 para passar nos testes
c137santos Jun 7, 2022
f2a1c60
Corrigindo
c137santos Jun 7, 2022
6d1e90a
secao_03_ex_48
hgf777-br Jun 7, 2022
1289e50
feito gabarito e testes para o exercício 49 da Seção 3
hgf777-br Jun 7, 2022
6138d90
feito gabarito e testes para o exercício 50 da Seção 3
hgf777-br Jun 7, 2022
023a1fa
Feita correção do exercício 24 da seção de listas
RafaelLeone Jun 7, 2022
4430ab6
Corrigido typo secao02ex25
mhenrique94 Jun 7, 2022
94669b8
Ajustada semântica da questão 40 da seção de estrutura de repetição
Jun 8, 2022
1b1ceb7
removido import desncessário na questão 48 de estrutura de repetição
Jun 8, 2022
fd2c0e4
removido import desnecessários nas questões 49 e 50 de estrutura de r…
Jun 8, 2022
ed41e67
Feito teste do exerício 05 da seção de listas
Jun 8, 2022
f950af1
Feito teste do exercício 09 da seção de listas
Jun 8, 2022
8b1c90d
Feito teste do exercício 10 da seção de listas
Jun 8, 2022
865e0cc
Feito teste do exercício 11 da seção de listas
Jun 8, 2022
787c9f3
Feito teste do exercício 12 da seção de listas
Jun 8, 2022
be61d23
Merge branch 'devpro-br:main' into main
c137santos Jun 9, 2022
f554521
Feito gabarito da questão 05 da seção de strings.
Jun 11, 2022
396d9d3
Feito gabarito da questão 05 da seção de strings.
Jun 11, 2022
c2e8513
Incluido espaço em branco como caracter na questão 05 da seção de str…
Jun 19, 2022
9ccfa25
Substituido espaçõ por underline para tornar exercício 05 da seção de…
Jun 19, 2022
44613f7
Corridgo endereço no arquivo de CI de exercício 05 da seção de strings
Jun 19, 2022
42dd9fb
Corridgo endereço no arquivo de CI de exercício 05 da seção de strings
Jun 19, 2022
a46b73e
Merge branch 'devpro-br:main' into main
c137santos Jun 21, 2022
48c9bee
First exercise
c137santos May 23, 2022
16365ba
Exercise 01 and 02 concluded
c137santos May 23, 2022
fd9cf68
Exercise from 02 to 15 concluded
c137santos May 24, 2022
52419ec
Ex 16 and 17 finished
c137santos May 25, 2022
5d1fdb5
Exercise 17 and 18 conclued
c137santos May 26, 2022
5f9e845
First exercise
c137santos May 23, 2022
0bc7411
Exercise 01 and 02 concluded
c137santos May 23, 2022
5020a88
Exercise from 02 to 15 concluded
c137santos May 24, 2022
7efb180
Ex 16 and 17 finished
c137santos May 25, 2022
0ed4e31
Exercise from 01 to 14
c137santos May 26, 2022
cb09b37
Solution for exercise 15
c137santos May 27, 2022
5fa469b
New Solution for 06 exercise
c137santos May 27, 2022
58c203b
Solution for ex_17 seccion 02
c137santos May 27, 2022
4643b86
Solution for exercise 18
c137santos May 27, 2022
353ecda
I SOLVED THAT PROBLEM ALOOONEEgit add secao_02_estrutura_de_decisao/e…
c137santos May 29, 2022
fc2b351
Solution of exercise 19_decomposicao_de_numero
c137santos May 29, 2022
0c7d7ca
created new branch for section 0
c137santos May 29, 2022
8cfec95
Exercise 20
c137santos May 29, 2022
7c4d6a3
Fixed exercise 15
c137santos May 29, 2022
b750abf
Solution to 22, 23 and 24 exercise
c137santos May 30, 2022
2beebab
solution exercise 25
c137santos May 30, 2022
9550cf8
Better solution
c137santos May 30, 2022
caab763
WIP
c137santos May 30, 2022
663d888
Solution to ex_12
c137santos May 30, 2022
fbc87e2
Solution to ex_26
c137santos May 31, 2022
6af4ffa
Solution to ex_27 and ex_28
c137santos May 31, 2022
3aea0ee
aff
c137santos Jun 6, 2022
b664f57
Feita correção da questão 31 da seção de estrutura de repetição.
Jun 6, 2022
06a22fc
Feita correção da questão 32 da seção de estrutura de repetição.
Jun 6, 2022
0c3de23
Feita correção da questão 33 da seção de estrutura de repetição.
Jun 6, 2022
3226723
Feita correção do exercício 36 da seção de estrutura de repetição.
Jun 6, 2022
af85fcc
Feita correção do exercício 37 da seção de estrutura de repetição.
Jun 6, 2022
a40c570
Feita correção da questão 38 da seção de estrutura de repetição.
Jun 6, 2022
71d5a65
Corrigidos arquivos de corretores
Jun 6, 2022
601cff4
Feita correção do exercício 39 da seção de repetição
Jun 6, 2022
f44fc74
Update corretor_de_exercicios_secao_01.yml
c137santos Jun 6, 2022
1539730
Feita correção do exercício 40 da seção de repetição
Jun 6, 2022
02eba98
First exercise
c137santos May 23, 2022
0076723
Exercise 01 and 02 concluded
c137santos May 23, 2022
b1c7aea
Exercise from 02 to 15 concluded
c137santos May 24, 2022
e8528a6
Ex 16 and 17 finished
c137santos May 25, 2022
363ef6a
Solution for exercise 15
c137santos May 27, 2022
829a7f1
Solution for ex_17 seccion 02
c137santos May 27, 2022
8769307
Fixed exercise 15
c137santos May 29, 2022
9900d24
aff
c137santos Jun 6, 2022
b3b033a
Solution to 21 exercise section 02
c137santos Jun 6, 2022
a86dbf5
Mexendo na seção 01 para passar nos testes
c137santos Jun 7, 2022
a135e05
Corrigindo
c137santos Jun 7, 2022
6a4976e
Merge branch 'secao_2' of github.com:ClaraSantosmf/list-exercise-pyth…
c137santos Jun 22, 2022
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
24 changes: 0 additions & 24 deletions .github/workflows/corretor_de_exercicios_secao_03.yml
Original file line number Diff line number Diff line change
Expand Up @@ -167,27 +167,3 @@ jobs:
if: always()
run: |
python -m doctest -f secao_03_estrutura_de_repeticao/ex_40_transito.py
- name: Correção do Exercício 41 da seção de Estrutura de Repetição
if: always()
run: |
python -m doctest -f secao_03_estrutura_de_repeticao/ex_41_financiamento.py
- name: Correção do Exercício 42 da seção de Estrutura de Repetição
if: always()
run: |
python -m doctest -f secao_03_estrutura_de_repeticao/ex_42_intervalos.py
- name: Correção do Exercício 43 da seção de Estrutura de Repetição
if: always()
run: |
python -m doctest -f secao_03_estrutura_de_repeticao/ex_43_lanchonete.py
- name: Correção do Exercício 44 da seção de Estrutura de Repetição
if: always()
run: |
python -m doctest -f secao_03_estrutura_de_repeticao/ex_44_eleicao_presidencial.py
- name: Correção do Exercício 45 da seção de Estrutura de Repetição
if: always()
run: |
python -m doctest -f secao_03_estrutura_de_repeticao/ex_45_corretor_de_provas.py
- name: Correção do Exercício 46 da seção de Estrutura de Repetição
if: always()
run: |
python -m doctest -f secao_03_estrutura_de_repeticao/ex_46_salto_em_distancia.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
4 changes: 4 additions & 0 deletions .github/workflows/corretor_de_exercicios_secao_06.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,7 @@ jobs:
if: always()
run: |
python -m doctest -f secao_06_exercicios_strings/ex_01_comparador_de_strings.py
- name: Correção do Exercício 05 da seção de Strings
if: always()
run: |
python -m doctest -f secao_06_exercicios_strings/ex_05_nome_vertical_escada_invertida.py
1 change: 0 additions & 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,3 @@

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

1 change: 0 additions & 1 deletion secao_01_estrutura_sequencial/ex_02_escreva_um_numero.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,3 @@

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

1 change: 0 additions & 1 deletion secao_01_estrutura_sequencial/ex_04_notas_bimestrais.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,3 @@

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

2 changes: 0 additions & 2 deletions secao_01_estrutura_sequencial/ex_11_contas_matematicas.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,3 @@

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


Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

"""

from math import ceil, floor

def calcular_latas_e_preco_de_tinta():
"""Escreva aqui em baixo a sua solução"""
4 changes: 4 additions & 0 deletions secao_02_estrutura_de_decisao/ex_01_imprimir_maior_numero.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,7 @@

def maior_de_dois_numeros(x, y):
"""Escreva aqui em baixo a sua solução"""
if x > y:
print(x)
else:
print(y)
6 changes: 6 additions & 0 deletions secao_02_estrutura_de_decisao/ex_02_positivo_ou_negativo.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,9 @@

def positivo_ou_negativo(n):
"""Escreva aqui em baixo a sua solução"""
if n > 0:
print("'positivo'")
elif n < 0:
print("'negativo'")
else:
print("'não tem positivo nem negativo'")
8 changes: 8 additions & 0 deletions secao_02_estrutura_de_decisao/ex_03_F_ou_M.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,11 @@

def f_ou_m(sexo):
"""Escreva aqui em baixo a sua solução"""
if sexo == ("F"):
print("'F - Feminino'")
elif sexo == ("M"):
print("'M - Masculino'")
elif sexo == ("Z"):
print("'Sexo inválido'")
elif sexo == (1):
print("'Sexo inválido'")
5 changes: 5 additions & 0 deletions secao_02_estrutura_de_decisao/ex_04_vogal_ou_consoante.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,8 @@

def vogal_ou_consoante(letra):
"""Escreva aqui em baixo a sua solução"""
vogais = ('a', 'e', 'i', 'o', 'u')
if letra.lower() in vogais:
print("'vogal'")
else:
print("'consoante'")
7 changes: 7 additions & 0 deletions secao_02_estrutura_de_decisao/ex_05_notas_parciais.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,10 @@

def notas_parciais(nota_1, nota_2):
"""Escreva aqui em baixo a sua solução"""
media = (nota_1 + nota_2) /2
if media == 10:
print("'Aprovado com Distinção'")
elif (media >= 7) and (media < 10):
print("'Aprovado'")
else:
print("'Reprovado'")
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,4 @@

def calcular_maior_de_3_numeros(x, y, z):
"""Escreva aqui em baixo a sua solução"""
print(max(x, y, z))
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,8 @@

def calcular_maior_de_3_numeros(x, y, z):
"""Escreva aqui em baixo a sua solução"""
a = sorted([x, y, z])
b = a.pop()
c = a.pop(0)
print("Maior:", b)
print("Menor:", c)
3 changes: 3 additions & 0 deletions secao_02_estrutura_de_decisao/ex_08_escolha_de_produto.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@

def decidir_melhor_produto(x, y, z):
"""Escreva aqui em baixo a sua solução"""
a = sorted([x, y, z])
b = a.pop(0)
print(f"Melhor produto custa R$ {b:.2f}")
2 changes: 2 additions & 0 deletions secao_02_estrutura_de_decisao/ex_09_numeros_decrescentes.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,5 @@

def ordenar_decrescente(x, y, z):
"""Escreva aqui em baixo a sua solução"""
b = sorted([x, y, z], key=int, reverse=True)
print(f"{b[0]}, {b[1]}, {b[2]}")
8 changes: 8 additions & 0 deletions secao_02_estrutura_de_decisao/ex_10_cumprimento_em_turno.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,11 @@

def cumprimentar(turno: str):
"""Escreva aqui em baixo a sua solução"""
if turno.upper() == 'M':
print("'Bom dia!'")
elif turno.upper() == 'V':
print("'Boa tarde!'")
elif turno.upper() == 'N':
print("'Boa noite!'")
else:
print("'Valor Inválido!'")
23 changes: 23 additions & 0 deletions secao_02_estrutura_de_decisao/ex_11_salario_tabajara.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,26 @@

def calcular_aumento(salario: float):
"""Escreva aqui em baixo a sua solução"""
b = salario
if b <= 280:
p = '20%'
aum = b * 0.20
b += aum
elif b > 280 and b <= 700:
p = '15%'
aum = b * 0.15
b += aum
elif b > 700 and b <= 1500:
p = '10%'
aum = b * 0.10
b += aum
else:
p = '5%'
aum = b * 0.05
b += aum
print(f"Salário atual: R$ {salario:.2f}")
print(f"Aumento porcentual: {p}")
print(f"Valor do aumento: R$ {aum:.2f}")
print(f"Novo salário: R$ {b:.2f}")


43 changes: 43 additions & 0 deletions secao_02_estrutura_de_decisao/ex_12_clt_assalto.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,46 @@

def calcular_salario_liquido(valor_hora: float, horas_trabalhadas: int):
"""Escreva aqui em baixo a sua solução"""
salario_bruto = valor_hora * horas_trabalhadas
percentual_inss = 0.1
desconto_inss = salario_bruto * percentual_inss

percentual_sindicato = 0.03
desconto_sindicato = salario_bruto * percentual_sindicato

percentual_fgts = 0.11
desconto_fgts = salario_bruto * percentual_fgts

faixas_ir = {0: 900, 0.05: 1500, 0.10: 2500}
percentual_ir = 0.2
for percentual_progressivo, salario_limite in faixas_ir.items():
if salario_bruto <= salario_limite:
percentual_ir = percentual_progressivo
break

desconto_ir = salario_bruto * percentual_ir

descontos_totais = desconto_ir + desconto_sindicato + desconto_inss

salario_liquido = salario_bruto - descontos_totais

tamanho_label = len('Salário Bruto: (R$ 100.00 * 160) ')

label_salario_bruto = f'Salário Bruto: (R$ {valor_hora:.2f} * {horas_trabalhadas})'
label_salario_bruto = completar_com_espacos_em_branco(label_salario_bruto, tamanho_label)

label_ir = f'(-) IR ({percentual_ir:.0%})'
label_ir = completar_com_espacos_em_branco(label_ir, tamanho_label)

print(f'{label_salario_bruto}: R$ {salario_bruto:8.2f}')
print(f'{label_ir}: R$ {desconto_ir:8.2f}')
print(f'(-) INSS ({percentual_inss:.0%}) : R$ {desconto_inss:8.2f}')
print(f'(-) Sindicato ({percentual_sindicato:.0%}) : R$ {desconto_sindicato:8.2f}')
print(f'FGTS ({percentual_fgts:.0%}) : R$ {desconto_fgts:8.2f}')
print(f'Total de descontos : R$ {descontos_totais:8.2f}')
print(f'Salário Liquido : R$ {salario_liquido:8.2f}')


def completar_com_espacos_em_branco(label, tamanho_label):
return label + (' ' * (tamanho_label - len(label)))

3 changes: 3 additions & 0 deletions secao_02_estrutura_de_decisao/ex_13_dia_da_semana.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,6 @@

def calcular_dia_da_semana(numero: int):
"""Escreva aqui em baixo a sua solução"""
semana = {1:"'Domingo'", 2:"'Segunda'", 3:"'Terça'", 4:"'Quarta'", 5:"'Quinta'", 6:"'Sexta'", 7:"'Sábado'"}
b = semana.get(numero, "'Dia Inválido'")
print(b)
20 changes: 20 additions & 0 deletions secao_02_estrutura_de_decisao/ex_14_atribuicoes_de_conceitos.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,23 @@

def calcular_conceito(nota_1: float, nota_2: float):
"""Escreva aqui em baixo a sua solução"""
media = (nota_1 + nota_2) / 2
if media >= 9 and media <= 10:
conceito = 'A'
status = 'APROVADO'
elif media >= 7.5 and media < 9:
conceito = 'B'
status = 'APROVADO'
elif media >= 6.0 and media < 7.5:
conceito = 'C'
status = 'APROVADO'
elif media >= 4.0 and media < 6.0:
conceito = 'D'
status = 'REPROVADO'
elif media >= 0.0 and media < 4.0:
conceito = 'E'
status = 'REPROVADO'
print(f"Notas: {nota_1:.1f} e {nota_2:.1f}.")
print(f"Média: {media:.1f}")
print(f"Conceito: {conceito}")
print(f"Status: {status}")
10 changes: 9 additions & 1 deletion secao_02_estrutura_de_decisao/ex_15_triangulo.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
Dicas:
Três lados formam um triângulo quando a soma de quaisquer dois lados for maior que o terceiro;
Triângulo Equilátero: três lados iguais;
Triângulo Isósceles: quaisquer dois lados iguais;
Triângulo Isósceles: quaisquer dois lados iguais;gi
Triângulo Escaleno: três lados diferentes;

>>> classificar_triangulo(2, 3, 4)
Expand All @@ -27,3 +27,11 @@

def classificar_triangulo(lado_a: float, lado_b: float, lado_c: float):
"""Escreva aqui em baixo a sua solução"""
if (lado_a + lado_b) < lado_c or (lado_a + lado_c) < lado_b or (lado_b + lado_c) < lado_a:
print(f"'Não é um triângulo'")
elif (lado_a == lado_b) and (lado_b == lado_c):
print("'Triângulo Equilátero'")
elif ((lado_c != lado_b) and (lado_a != lado_b) and (lado_a != lado_c)):
print("'Triângulo Escaleno'")
else:
print("'Triângulo Isósceles'")
15 changes: 15 additions & 0 deletions secao_02_estrutura_de_decisao/ex_16_equacao_segundo_grau.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,18 @@

def resolver_equacao_do_segundo_grau(a: float, b: float, c: float):
"""Escreva aqui em baixo a sua solução"""

if a == 0:
print("'Valor do coeficiente a deve ser diferente de 0'")
return
d = b **2 - 4 * a * c
if d < 0:
print(f"'Delta negativo ({d:.0f}), por isso não existem raízes reais'")
return
if d == 0:
raiz1 = (-1*b)/(2*a)
print(f"'Delta é {d}, raíz única no valor de {raiz1}'")
else:
raiz_positiva = (-1*(b) + d**(1/2)) / (2*a)
raiz_negativa = (-1*(b) - d**(1/2)) / (2*a)
print(f"'Delta é {d}, raízes são {raiz_positiva} e {raiz_negativa}'")
6 changes: 6 additions & 0 deletions secao_02_estrutura_de_decisao/ex_17_ano_bissexto.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,9 @@

def eh_ano_bissexto(ano: int):
"""Escreva aqui em baixo a sua solução"""
if (ano % 4) == 0 and (ano % 100) == 0 and (ano % 400) == 0:
print(True)
elif (ano % 4)==0 and (ano % 100) != 0:
print(True)
else:
print(False)
9 changes: 8 additions & 1 deletion secao_02_estrutura_de_decisao/ex_18_validador_de_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,14 @@
'Data inválida'

"""

import time
from time import strptime

def validar_data(data: str):
"""Escreva aqui em baixo a sua solução"""
try:
time.strptime(data, '%d/%m/%Y')
except ValueError:
return 'Data inválida'
else:
return 'Data válida'
Loading