├── img ├── areas.png ├── busto.jpg ├── media.png ├── bhaskara.jpg ├── fechner.jpg ├── laplace.jpg ├── maldicao.png ├── mediana.jpg ├── quadrados.png ├── t_retangulo.png └── area_triangulo.png ├── ex1_ola.md ├── ex5_mediana.md ├── ex4_pares.md ├── ex3_pitagoras.md ├── README.md ├── ex2_media.md └── ex6_bhaskara.md /img/areas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Camilotk/exercicios-algoritmos/HEAD/img/areas.png -------------------------------------------------------------------------------- /img/busto.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Camilotk/exercicios-algoritmos/HEAD/img/busto.jpg -------------------------------------------------------------------------------- /img/media.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Camilotk/exercicios-algoritmos/HEAD/img/media.png -------------------------------------------------------------------------------- /img/bhaskara.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Camilotk/exercicios-algoritmos/HEAD/img/bhaskara.jpg -------------------------------------------------------------------------------- /img/fechner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Camilotk/exercicios-algoritmos/HEAD/img/fechner.jpg -------------------------------------------------------------------------------- /img/laplace.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Camilotk/exercicios-algoritmos/HEAD/img/laplace.jpg -------------------------------------------------------------------------------- /img/maldicao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Camilotk/exercicios-algoritmos/HEAD/img/maldicao.png -------------------------------------------------------------------------------- /img/mediana.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Camilotk/exercicios-algoritmos/HEAD/img/mediana.jpg -------------------------------------------------------------------------------- /img/quadrados.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Camilotk/exercicios-algoritmos/HEAD/img/quadrados.png -------------------------------------------------------------------------------- /img/t_retangulo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Camilotk/exercicios-algoritmos/HEAD/img/t_retangulo.png -------------------------------------------------------------------------------- /img/area_triangulo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Camilotk/exercicios-algoritmos/HEAD/img/area_triangulo.png -------------------------------------------------------------------------------- /ex1_ola.md: -------------------------------------------------------------------------------- 1 | # A Maldição do Programador 2 | 3 | Existe uma lenda muito antiga entre os programadores que teria surgido quando os criadores de C criaram o primeiro manual da linguagem que quando um programador está aprendendo uma nova linguagem de programação seu primeiro programa deve imprimir "Olá Mundo!" na tela, caso contrário o programador que não fizer isso vai atrair todo o azar para seu aprendizado, todos seus programas vão ter erros e todos os softwares que escrever nessa linguagem serão cheios de bugs e falhas. 4 | 5 |
6 |

7 | 8 |

Explicação retirada e traduzida de Urban Dictionary.

9 |

10 |
11 | 12 | Para evitar que isso aconteça com a linguagem que você está aprendendo é necessário que você aprenda a imprimir mensagens na tela. 13 | 14 | ## Programação 15 | 16 | ``` 17 | Para se livrar da terrível maldição do programador você deve escrever um programa que escreve as palavras "Olá mundo!" 18 | na tela. 19 | 20 | Entradas: 21 | - Nenhuma 22 | 23 | Saída: 24 | - Mensagem "Olá Mundo!" 25 | ``` -------------------------------------------------------------------------------- /ex5_mediana.md: -------------------------------------------------------------------------------- 1 | # Mediana 2 | 3 | ## O que é uma mediana? 4 | 5 |

6 | 7 |

8 | 9 | Na estatística a Mediana é o elemento que indica o valor médio em um conjunto de números ordenados. Essa medida indica qual valor que está exatamente no meio de um conjunto de dados ordenados. 10 | 11 | A Mediana nos diz que 50% (1/2) dos valores estão abaixo de seu valor e a outra metade está acima deste. Quando os conjuntos possuem um número ímpar de elementos a Mediana é o elemento que está ao meio, porém quando o conjunto possuí um número par de elementos a mediana é a média dos dois elementos centrais deste conjunto. 12 | 13 | A principal vantagem da mediana em relação a média é que a mediana pode retornar um valor central sem ser tão distorcida quando valores extremamente altos ou baixos estão presentes no conjunto. 14 | 15 | ## História 16 | 17 | A ideia de mediana aparece primariamente em um livro religioso o Talmude que é uma coletânea de livros sagrados da Religião Judaica. Porém, os Judeus utilizavam o método da mediana porén ainda sem um nome ou uma formalização sobre como utlizá-la fora das aplicações financeiras. 18 | 19 |

20 | 21 |

Pierre Simon Laplace, primeiro a formalizar a Mediana.

22 |

23 | 24 | Foi somente em 1774 que o matemático francês Pierre Laplace o primeiro a formalizar o cálcula da mediana que em seu tempo foi ignorado por ser visto como redundante em sua época já que havia outros cálculos capazes de determinar tendências centrais. 25 | 26 |

27 | 28 |

Gustav Fechner, responsável por popularizar o uso da Mediana.

29 |

30 | 31 | Porém com o tempo mais e mais aplicações do uso da mediana surgiram tanto na Matemática, quanto na Astronomia, Física e Economia. Quase um século após Laplace ter formalizado a fórmula da mediana ela se tornou popular pela advocacia de outro matemático alemão: Gustav Fechner, que popularizou a importância do uso da Mediana na análise de dados onde é muito popular até os dias de hoje. 32 | 33 | ## Na Matemática 34 | 35 | 36 | 37 | ### Percentis 38 | 39 | #### Texto Adaptado do Site do [IBGE](https://educa.ibge.gov.br/professores/educa-recursos/17862-media-pagina-inicial.html) 40 | 41 | ## Programação -------------------------------------------------------------------------------- /ex4_pares.md: -------------------------------------------------------------------------------- 1 | # Paridade 2 | 3 | A definição mais simples e formal sobre números pares e ímpares em minha opinião é: 4 | 5 | "Número **par** é todo o **número inteiro** que quando dividido por dois, resulta em um número inteiro, em todos os outros casos o número é **ímpar**." 6 | 7 | A partir dessa definição podemos ter algumas informações úteis: 8 | 9 | - Essa é uma propriedade exclusiva dos números inteiros. Enquanto 2 é par pois $2 \div 2 = 1$ e 5 é ímpar pois $5 \div 2 = 2.5$, $1/4$ ou $0.5$ não podem ser par ou ímpar pois não pertencem ao conjunto numérico dos inteiros. 10 | - Todo número divisível por 2 forma pares (eis a origem do termo). Para isso, eles se repetem na sequência de números inteiros a cada 2 números: {2, 4, 6, 8, 10...}. Para encontrarmos o enésimo número par podemos usar: 11 | $$ x = x \cdot 2 $$ 12 | - Todo número inteiro que, ao ser dividido por 2, resulta em números decimais sempre possui um valor a mais que os pares. Por isso são ímpares, e esses números sempre aparecem na ordem ímpar-par na sequência de números inteiros. Os números ímpares são: {1, 3, 5, 7, 9...}. Já os inteiros seguem: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10...}. Podemos calcular o enésimo número ímpar com: 13 | $$ x = 2x - 1 $$ 14 | - 0 é um número par, pois é um número inteiro que dividido por 2 resulta nele mesmo. 15 | 16 | ## Teste de Paridade 17 | 18 | Existem muitas formas de determinar programaticamente se um número é par. A mais simples usa um operador matemático básico presente na maioria das linguagens, mas pouco usado na escola: o **módulo**. 19 | 20 | > A operação de módulo (normalmente expressa como `mod`, `rem`, ou `%`) é usada para encontrar o **resto** da divisão de um número por outro. 21 | > Por exemplo: `7 % 3 = 1` e `9 % 3 = 0`. 22 | 23 | Todo número divisível por outro tem resto zero quando o dividimos. Como 9 é divisível por 3, então: 24 | 25 | $$ 26 | 9 \div 3 = 3, \quad \text{resto } 0 27 | $$ 28 | 29 | Podemos aplicar isso para saber se um número é par, pois todo número par é divisível por 2. Exemplo: 30 | 31 | ### Exemplos 32 | 33 | $$ 34 | 8 \div 2 = 4, \quad \text{resto } 0 \Rightarrow 8 \text{ é par} 35 | $$ 36 | 37 | $$ 38 | 77 \div 2 = 38, \quad \text{resto } 1 \Rightarrow 77 \text{ é ímpar} 39 | $$ 40 | 41 | $$ 42 | 4346 \div 2 = 2173, \quad \text{resto } 0 \Rightarrow 4346 \text{ é par} 43 | $$ 44 | 45 | No entanto, há uma forma mais eficiente para grandes números: observar **o último dígito**. 46 | Se ele for divisível por 2, o número inteiro é par. Por exemplo, o último algarismo de 4346 é 6. Como 6 é divisível por 2, então 4346 é par. 47 | 48 | 49 | ## Exercício 50 | ``` 51 | Alguns amigos pediram que você desenvolva um algoritmo que determine o resultado de um jogo de "par ou ímpar", 52 | esse programa vai ser usado para calcular o resultado do Campeonato Mundial de Par ou Ímpar, 53 | o programa vai receber qual é o valor da mão jogada pelo jogador que vence caso ímpar e então o valor da mão jogada 54 | 55 | Entrada: 56 | - Valor int da mão do jogador ímpar 57 | - Valor int da mão do jogador par 58 | 59 | Saída: 60 | - Mensagem dizendo "PAR" ou "ÍMPAR" 61 | ``` 62 | 63 | 74 | -------------------------------------------------------------------------------- /ex3_pitagoras.md: -------------------------------------------------------------------------------- 1 | # Pitágoras 2 | 3 | ## Um pouco de história 4 | 5 | Pitágoras de Samos foi um filósofo, sábio, matemático e geômetra Grego. Ele nasceu na Ilha de Samos, por volta de 570 a.C. e desde muito novo recebeu educação dos melhores professores ao redor do mundo tendo estudado nos melhores centros de ensino da Grécia, Egito, Babilônia, Síria, Fenícia, Pérsia e Índia. Pitágoras teve inúmeras contribuições para a Filosofia e a Matemática, mas talvez a mais importante entre elas foi justamente ele ter sido o criador do nome desses campos de estudo quando criou o Curso de Filosofia (onde estudava-se sobre o saber e o conhecimento) e o Curso de Matemática (onde estudava-se sobre o método de formalização do aprendizado) na sua Escola Pitagórica, que seria como uma Universidade de seu tempo. 6 | 7 |

8 | 9 |

Busto de Pitágoras.

10 |

11 | 12 | A Escola Pitagórica fez inúmeras descobertas como os intervalos musicais, provas de que a Terra é esférica, a seção áurea, os números perfeitos e os primeiros tratados de Geometria que estudaram os Sólidos de Platão. Porém, quando falamos de Pitágoras talvez a primeira coisa que nos veem a cabeça é a lembrança do Teorema que se estuda principalmente no Ensino Médio, onde foi definido por Pitágoras que: 13 | 14 | > Em qualquer triângulo retângulo (aquele que possui um ângulo de 90º), a área do quadrado da hipotenusa (o lado oposto ao ângulo de 90º) é igual a soma da área dos catetos (os outros 2 lados). 15 | 16 | Apesar de Pitágoras de fato ter formulado o Teorema e ser o responsável por disseminar o conhecimento sobre essa relação no Ocidente, acreditasse que ele tenha apreendido em suas viagens de estudo pelo Oriente onde ela já era conhecida a milênios. Os primeiros registros dessa descoberta são Babilônicos e datam mais de um milênio antes do nascimento de Pitágoras, além disso existem registros na China e na índia que também antecedem Pitágoras (acreditasse provavelmente que através de conhecimento levado pelos Babilônicos). 17 | 18 | ## Vamos a Matemática 19 | 20 | Isso pode parecer abstrato, mas vamos por partes: 21 | 22 | 1. Imagine que você tem um triângulo retângulo qualquer em que você saiba apenas duas dimensões. 23 | 24 |

25 | 26 |

27 | 28 | 2. Um quadrado é uma figura com 4 lados de mesmo tamanho, então vamos imaginar que vamos transpor cada um dos lados do triângulo retângulo em quadrados. 29 | 30 |

31 | 32 |

33 | 34 | 3. A área de um quadrado é dado por seu lado vezes a si mesmo, ou lado², então a área de cada um desses quadrados é o valor do lado que transpomos ao quadrado. 35 | 4. Então Pitágoras observou que a área do quadrado maior **sempre** é do tamanho da soma dos outros dois. 36 | 37 |

38 | 39 |

40 | 41 | 5. Dados isso, chegamos a fórmula que os lados da **hipotenusaª = catetoª + cateto²**, mais conhecido como **a² = b² + c²**. 42 | 43 | Essa observação tem sido colocado a prova a milênios, sendo que outras personalidades como Da Vinci, Euler e Einstein também escreveram diferentes provas que confirmam que essa é uma relação real. 44 | 45 | ## Programação 46 | 47 | ``` 48 | Você deve desenvolver um algoritmo que calcule a área do triângulo (fórmula abaixo), 49 | o tamanho da hipotenusa e as áreas dos quadrados do triângulo retângulo. 50 | 51 | Entradas: 52 | - Valor float de Altura 53 | - Valor float de Base 54 | 55 | Saída: 56 | - Valor do tamanho da hipotenusa 57 | - Valor do área do quadrado da hipotenusa 58 | - Valor da área do quadrado da altura 59 | - Valor da área do quadrado da base 60 | - Valor do tamanho do triângulo 61 | ``` 62 | 63 | **dicas**: 64 | - Comece calculando as áreas dos quadrados e use-os para encontrar o valor da hipotenusa. 65 | - Você pode passar a exponenciação para o outro lado da igualdade como sua operação inversa (raíz). 66 | - Operações Matemáticas com Float (números decimais) não são exatas, e por tanto provavel que o valor da soma dos quadrados seja aproximadamente o quadrado da hipotenusa, mas não exato. Isso é um problema característico de linguagens de programação, não se preocupe se não for exato. 67 | - A área do triângulo é calculada com a seguinte fórmula: 68 | 69 |

70 | 71 |

72 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | ### Exercícios - Aula 1 3 | - [Olá Python](./ex1_ola.md): Escrever o primeiro `Hello World` e começar a desenvolver se livrando da *maldição do programador*. 4 | - [Médias](./ex2_media.md): Entender o conceito de `média` e desenvolver um algoritmo que calcule a média de 3 valores. 5 | - [Teorema de Pitágoras](./ex3_pitagoras.md): Conhecer o `Teorema de Pitágoras` e criar um algoritmo que retorne o valor da hipotenusa dado os catetos. 6 | 7 | ### Exercícios - Aula 2 8 | - [Números Pares](./ex4_pares.md): Compreender a `paridade` dos números e fazer um algoritmo que determina a vitória do par-ou-ímpar. 9 | - [Mediana](./ex5_mediana.md): Entender o conceito de `mediana` e desenvolver um porgrama que retorne a mediana de um conjunto de dados. 10 | - [Fórmula de Báskhara](./ex6_bhaskara.md): Conhecer a `Fórmula de Báskhara` e fazer um algoritmo que retorna os quadrados dependendo do Delta. 11 | 12 | ### Exercícios - Aula 3 13 | - [Conversor de Sistemas de Numeração](#): Compreender o `Sistema Internacional de Unidades` e criar um algoritmo capaz de converter diferentes medidas. 14 | - [Criptografia](#): Conhecer como funciona a `Criptografia` e desenvolver um algoritmo que calcule a Cifra de César. 15 | - [Sólidos de Platão](#): Entender o que são os `Sólidos de Platão` suas características e desenvolver um rolador de dados. 16 | 17 | ### Exercícios - Aula 4 18 | - [Regra de Crammer](#): Entender o básico sobre `equações` e desenvolver um algoritmo que resolva sistemas lineares usando a Regra de Crammer. 19 | - [Tabela ASCII](#): Compreender como funciona `ASCII` e `Unicode` e desenvolver um script que imprima a tabela ascii indicando os valores de cada símbolo ao lado no terminal. 20 | - [Progreção Aritmética e Progressão Geométrica](#): Entender como funcionam as `progressões` e desenvolver um algoritmo que nos diga o elemento n de determinada progressão. 21 | 22 | ### Exercícios - Aula 5 23 | - [Calculadora RPN](#): Entender o que é a `Notação Polonesa` e desenvolver uma calculadora que leia expressões RPN e devolva o resultado. 24 | - [Números Primos](#): Conhecer os `Números Primos` e fazer um algoritmo que retorne a soma de todos números primos até o número passado, caso não seja primo devolver uma exceção. 25 | - [Sequência de Fibonacci](#): Conhecer a `Sequência de Fibonacci` e desenvolver um algoritmo recursivo que retorno o n elemento da sequência. 26 | 27 | ### Exercícios - Aula 6 28 | - [Torre de Hanói](#): Conhecer o problema da `Torre de Hanói` e escrever um algoritmo que resolva o criar um algoritmo que mova um numero n de discos para outro. 29 | - [Funções Matemáticas](#): Conhecer `Funções Lineares`, `Funções Quadráticas` e `Funções Trigonométricas` e criar algoritmos que plotem essas funções usando matplotlib ou seaborn. 30 | - [Funções Compostas](#): Entender sobre `composição de funções` e escrever algoritmos que usem `High Order Functions` e `Currying`. 31 | 32 | ### Exercícios - Aula 7 33 | - [Conversor de Criptomoedas](#): Usar o módulo urlib do Python para interagir com uma `API` que retorna valores de Criptomoedas e converter o valor de uma Criptomoeda para outra. 34 | - [Frequência de Palavras](#): Criar um algoritmo que recebe um arquivo .txt e retorna um dicionário indicando a frequência de palavras. 35 | - [Números Binários](#): Conhecer sobre `Números na base 2` desde sua origem e escrever um algoritmo que recebe recebe hexagramas do I Ching e performa operações matemáticas entre eles. 36 | 37 | ### Exercícios - Aula 8 38 | - [Turtle](#): Conhecer o módulo `Turtle` do Python, aprender sobre LOGO e Pedagogia Construtivista. 39 | - [Regex](#): Aprender o módulo`re` sobre como funciona Regex e a sintaxe básica de regex. 40 | - [SQLite](#): Conhecer o módulo `sqlite3` do Python, aprender o que é SQL, os comandos básicos de SQLite e desenvolver um programa que percorre a pasta de exercícios e salva no banco de dados os nomes dos arquivos, extensão, tamanho e número de linhas. 41 | 42 | ### Exercícios - Aula 9 43 | - [Escrevendo testes](#): Aprender o que são testes e conhecer o `doctest`. 44 | - [Testes unitários](#): Entender como funciona o AAA (Arrange-Act-Assert) e aprender `pytest`. 45 | - [Testes de integração](#): Entender como escrever testes de integração com o pytest. 46 | 47 | ### Exercícios - Aula 10 48 | - [Livro de Visitas](#): Aprender a trabalhar com a `Escrita de Arquivos` e criar um algoritmo que exibe uma lista de assinaturas de visitantes de um museu e que permite as pessoas Adicionar, Alterar e Excluir assinaturas que ficam salvas em um arquivo .txt 49 | - [O Jogo da Vida](#): Criar uma versão própria do `Jogo da Vida` de Conway. 50 | - [Leitor de E-mails](#): Fazer um programa que dado uma conta de emails exibe a caixa de entrada e lê em voz o email selecionado. 51 | -------------------------------------------------------------------------------- /ex2_media.md: -------------------------------------------------------------------------------- 1 | # Média 2 | 3 | ## O que é uma Média 4 | 5 | Todos nós em algum momento da nossa vida tivemos que ser avaliados de alguma forma por uma **Média**, geralmente na escola durante o Ensino Básico e/ou Médio temos um boletim que descreve nossas notas e também nossas médias. 6 | 7 | A Média fornece um indicador que pode representar, em certas circunstâncias, os dados de uma pesquisa e também é a base para o cálculo de outras medidas tais como o desvio padrão, coeficiente de variação, de correlação, dentre outras. 8 | 9 | A média é muito utilizada na estatisca em alguns casos: 10 | - Para estimar uma quantidade desconhecida na presença de erros de medição, que é a diferença entre o valor indicado e o verdadeiro valor medido; 11 | - Para obter um valor justo/eqüitativo para uma distribuição uniforme, ou seja, dos valores que tem a mesma chance de ocorrer em um intervalo; 12 | - Para servir de elemento representativo de um conjunto de dados, cuja distribuição é simétrica – quando coincidem os valores da média, da moda e da mediana; 13 | - Para obter um valor mais provável quando aleatoriamente tomamos um elemento de uma população; 14 | - Para ser uma boa estimativa para a média de uma população; 15 | - Para ser uma estimativa da variável para tempo futuro. 16 | 17 | ## Na Matemática 18 | 19 | ### Média Aritmética Simples 20 | 21 | A Média Aritmética será chamada de Média Aritmética Simples quando for calculada como o quociente entre a soma de todos os valores do conjunto e o número de elementos que esse conjunto possui. 22 | 23 | **Por exemplo**: 24 | 25 | Em uma família, de quatro pessoas, a idade do pai é 40, da mãe é 36, do filho é 10 e da filha é 14. Então, qual é a média entre os valores relacionados? 26 | 27 | O primeiro passo é somar todos os valores, ou seja: 28 | 29 | 40 + 36 + 14 + 10 = 100 30 | 31 | E agora dividir o resultado pelo número de elementos que esse conjunto possui, nesse caso pai, mãe, filho e filha são 4 elementos. 32 | 33 | 100 / 4 = 25 34 | 35 | ### Média Aritmética Ponderada 36 | 37 | Ela será chamada de Média Aritmética Ponderada quando alguns valores possuírem mais importância (peso) do que outros. Essa relevância é indicada por um numeral denominado peso. 38 | 39 | Neste caso, encontraremos a Média Aritmética Ponderada dividindo o somatório dos produtos dos valores por seus respectivos pesos pela soma dos pesos. 40 | 41 | **Por exemplo**: 42 | 43 | Em um curso de mecânica, a nota final é obtida após a conclusão de um trabalho prático e duas provas. Mas a organização do curso acha melhor considerar cada prova com diferentes relevâncias. Cada relevância será indicada por um número chamado de peso. 44 | 45 | Suponhamos que você esteja fazendo esse curso, então no decorrer do curso você fará um trabalho prático, uma prova com peso 3 e outra prova com peso 6. 46 | 47 | No trabalho sua nota foi 8. Na primeira prova sua nota foi 9 e na segunda prova sua nota foi 7. 48 | 49 | Então, os valores são: 8 (do trabalho), 9 (da segunda nota que possui peso 3) e 7 (da terceira nota que possui peso 6). 50 | 51 | Observação: no caso dos valores que não possuem pesos atribuídos, subentende-se que o peso seja 1. 52 | 53 | Confira o cálculo da média ponderada na animação a seguir: 54 | 55 |

56 | 57 |

58 | 59 | ### Tanto para a Média Aritmética Simples quanto para a Ponderada 60 | 61 | - A média está localizada entre os valores extremos (valor mínimo e valor máximo) 62 | 63 | | Minimo | < | Média | < | Máximo | 64 | |--------|---|-------|---|--------| 65 | | 10 | < | 25 | < | 40 | 66 | 67 | - A soma dos desvios a partir da média é zero 68 | O desvio significa a diferença entre o valor e a média. Mas devemos considerar a posição que a média ocupará no conjunto de valores, após estiverem ordenados: 69 | - Assim, os desvios são: (10 - 25), (14 - 25), (36 - 25) e (40 - 25). 70 | - Somando os desvios: - 15 - 11 + 11 + 15 = 0. 71 | - A média é influenciada por cada um e por todos os valores; 72 | - A média não necessariamente coincide com um dos valores que a compõem; 73 | - A média pode ser um número que não tem um correspondente na realidade física (por exemplo, em 2000 a mulher brasileira tinha, em média, 2,3 filhos; 74 | - O cálculo da média leva em consideração todos os valores, inclusive os nulos e os negativos; 75 | - A média é um valor representativo dos dados a partir dos quais ela foi calculada; 76 | - Em termos espaciais, a média é o valor que está mais próximo de todos os valores. 77 | 78 | ##### Texto Adaptado do Site do [IBGE](https://educa.ibge.gov.br/professores/educa-recursos/17862-media-pagina-inicial.html) 79 | 80 | ## Programação 81 | ``` 82 | Imagine que vários desenvolvedores de software que trabalham com front-end 83 | publicaram abertamente seus salários no Twitter e você gostaria de fazer um programa 84 | que calculasse a média de salários de cada região a partir do input de 3 salários dessa região. 85 | 86 | Entradas: 87 | - Valor float do primeiro salário 88 | - Valor float do segundo salário 89 | - Valor float do terceiro salário 90 | 91 | Saída: 92 | - Valor float da média aritmética simples 93 | ``` 94 | **Dicas**: 95 | - Cuide a precedência das operações. 96 | - Lembre-se que quando lemos as entradas elas strings e precisamos convertê-las em floats. 97 | - Não se preocupe caso o resultado exiba muitos números após a vírgula, é normal que os números decimais saiam assim, vamos aprender a formatar esses números mais para frente. -------------------------------------------------------------------------------- /ex6_bhaskara.md: -------------------------------------------------------------------------------- 1 | # Fórmula de Bháskara 2 | 3 | ## Um pouco de história 4 | 5 | Bháskara foi o mais famoso Geômetra da Índia, considerado em seu tempo por todos um importante sábio que sabia todos os segredos dos astros e estudava os mistérios dos céus. Bhaskara nasceu em Bidon, na Província de Deca em 1145 d.C. Sua primeira e principal obra *Bija-ganita* (*Bija* quer dizer *semente*, e *ganita* quer dizer *contar, avaliar, medir* ou seja *A Arte de Contar Sementes*) que continha doze capítulos e foi o primeiro a apresentar um método de cálculo de duas raízes para um número positivo. 6 | 7 |

8 | 9 |

Bhaskara Akaria, matemático, astrônomo e astrólogo indiano.

10 |

11 | 12 | E você deve estar pensando: *Isso quer dizer que esse é o cara que criou a **Fórmula de Bháskara**, certo?* 13 | 14 | E lamento lhe informar que não! 15 | 16 | Na verdade, a fórmula é apenas conhecida com esse nome no Brasil. A maior parte do mundo conhece essa fórmula como **equação quadrática** e a mesma foi descoberta aproximadamente 4000 anos antes de Bháskara nascer, na Babilônia e foi amplamente empregada na forma geométrica pelos Gregos milhares de anos antes de Bháskara. Porém, na Europa o trabalho de Bháskara em *A Arte de Contar Sementes* tornou-se famosa, a mesma continha um método de resolução desses problemas que na verdade havia sido criado por outro matemático indiano chamado Sridhara que viveu duzentos anos antes de Bháskara, mas graças ao livro no mundo acadêmico europeu onde é normal associar pesquisadores da matemática ao conteúdo de suas obras assim Bháskara tornou-se conhecido por essa fórmula em sua obra de resolução de equações quadráticas. 17 | 18 | E agora sim você deve estar pensando: *Ah! Agora entendi! Agora tudo faz sentido! Todas portas se abriram! Então foi esse tal de **Sridhara** quem criou essa fórmula que me traz memórias de guerra do ensino médio!* 19 | 20 | E lamento lhe informar novamente que não! 21 | 22 | Eita! De novo? Pois é, a fórmula que estava presente em *A Arte de Contar Sementes* na verdade não é a mesma que utilizamos para resolver equações quadráticas no Ensino Médio, nessa obra o que é mostrado é um passo-a-passo (lembra disso?) de como encontrar as raízes de uma equação quadrática, mas mesmo Bháskara ou Sridara não entendiam como isso funcionava ou tinham uma fórmula para isso, na verdade essa fórmula foi criada por um matemático francês chamado François Viète no Séc. XVII que a criou como uma fórmula geral para a resolução de equações de segundo grau. 23 | 24 | *Trè bien, allons-y*! 🇫🇷 25 | 26 | ## Vamos a Matemática! 27 | 28 | A "Fórmula de Bháskara" (entre aspas, chame de **equação quadrádica** se preferir) é uma fórmula que usamos para calcular o valor de **x** em uma equação de 2º grau que basicamente é uma equação que é representada por: 29 | 30 |

31 | ax² + bx + c = 0 32 |

33 | 34 | Normalmente quando temos uma equação de segundo grau temos os valores de **a**, **b** e **c**, por exemplo: *x² - 2x + 1 = 0*, nesse caso **a** vale 1 pois temos 1x² mas omitimos o valor 1 a frente, **b** vale -2 e **c** vale 1. 35 | 36 | > Quando trabalhamos com equações de segundo grau, os valore b e c podem ser 0. Por exemplo, 2x² + 5 = 0 é uma equação com valores a = 2, b = 0 e c = 5. Porém, o valor de a nunca pode ser 0, pois nesse caso não seria mais uma equação de segundo grau. 37 | 38 | A fórmula é essa: 39 |

40 | 41 |

42 | 43 | O valor representado por Δ (letra grega delta) é chamado de **discriminante**: 44 |

45 | 46 |

47 | Seu valor vai nos dizer quantas raízes nossa equação vai ter: 48 | 49 | - Se o delta for maior que zero, a equação terá dois valores reais e distintos. 50 | - Se o delta for igual a zero, a equação terá somente um valor real ou dois resultados iguais. 51 | - Se o delta for menor que zero, a equação não possuirá valores reais. 52 | 53 | ### Primeiro Exemplo 54 | Vamos então resolver a equação que tínhamos usado de exemplo: 55 | 56 |

57 | x² - 2x + 1 = 0 58 |

59 | 60 | Vamos começar nossa fórmula pelo cálculo do discriminante, substituindo os valores de *a, b e c* pelos valores de nossa equação, nesse caso **a** vale 1, **b** vale -2 e **c** vale 1: 61 | 62 |

63 | 64 |

65 |
66 |

67 | 68 |

69 |
70 |

71 | 72 |

73 |
74 |

75 | 76 |

77 | 78 | 79 | E então substituimos os valores de Δ, a e b em nossa bháskara: 80 | 81 |

82 | 83 |

84 | 85 | Nosso **discriminante** é 0, então temos 1 raíz: 86 | 87 |

88 | 89 |

90 |
91 |

92 | 93 |

94 | 95 | ### Segundo Exemplo 96 | 97 | Vamos então resolver mais uma equação de segundo grau: 98 | 99 |

100 | 4x² + 2x -6 = 0 101 |

102 | 103 | Vamos começar nossa fórmula pelo cálculo do discriminante, substituindo os valores de *a, b e c* pelos valores de nossa equação, nesse caso **a** vale 4, **b** vale 2 e **c** vale -6: 104 | 105 |

106 | 107 |

108 |
109 |

110 | 111 |

112 |
113 |

114 | 115 |

116 |
117 |

118 | 119 |

120 | 121 | 122 | E então substituimos os valores de Δ , a e b em nossa bháskara: 123 | 124 |

125 | 126 |

127 | 128 | Nosso **discriminante** é maior que 0, então temos 2 raízes: 129 | 130 |

131 | 132 |

133 | 134 | Então podemos simplificar essa conta dividindo os valores por 2, uma vez em que é um fator comum entre numerador e denominador: 135 | 136 |

137 | 138 |

139 | 140 | E agora podemos determinar as raízes. 141 | 142 | Sendo a **primeira**: 143 | 144 |

145 | 146 |

147 |
148 |

149 | 150 |

151 |
152 |

153 | 154 |

155 | 156 | E a **segunda**: 157 | 158 |

159 | 160 |

161 |
162 |

163 | 164 |

165 | 166 | Que póde ser simplificado para: 167 | 168 |

169 | 170 |

171 | 172 | Logo, as raízes dessa equação são 1 e -3/2. 173 | 174 | ## Programação 175 | 176 | Ok, agora que relembramos como calcular equações de segundo grau vamos para nosso exercício de programação: 177 | ``` 178 | Você deve desenvolver um algoritmo que calcule o resultado de uma equação quadrática. 179 | 180 | Entradas: 181 | - Valor int de a 182 | - Valor int de b 183 | - Valor int de c 184 | 185 | Saída: 186 | - Se o valor de delta for maior que zero, o retorno deve ser dois valores reais e distintos. 187 | - Se o delta for igual a zero, o retorno terá somente um valor real (duas raízes iguais). 188 | - Se o delta for menor que zero, deverá ser escrito no console que essa equação não possuí raízes reais. 189 | ``` 190 | 191 | ##### Dicas: 192 | - Calcule o valor de Delta primeiro. 193 | - Use estruturas condicionais para determinar o calculo da raíz a partir do Delta. 194 | - Caso seja necessário, reveja a aula sobre operadores aritméticos e entrada / saída de valores. 195 | --------------------------------------------------------------------------------