diff --git a/README.md b/README.md index 5fc7e3e..81db935 100644 --- a/README.md +++ b/README.md @@ -192,6 +192,30 @@ for (let index = 10; index >= 0; index--) { console.log(index); } ``` +## Extra: aprenda a aprender: + +Esta aula foi pesadíssima, eu sei. +Como sugestão para diversificar seu aprendizado, deixo algumas sugestões: + +### For. While e Do While +#### Free Code Camp (em inglês) +- Entre na [página do free code camp](https://www.freecodecamp.org/learn) +- Navegue até a sessão **JavaScript Algorithms and Data Structures Certification (300 hours)** +- Na sessão **Basic JavaScript**, faça os seguintes exercícios: + - Iterate with JavaScript While Loops + - Iterate with JavaScript For Loops + - Iterate Odd Numbers With a For Loop + - Count Backwards With a For Loop + - Iterate Through an Array with a For Loop + - Nesting For Loops + - Iterate with JavaScript Do...While Loops + +#### Insegura com o inglês? Seguem alguns vídeos em português: +- [Comando de loop FOR](https://youtu.be/3DLDoCtje9o) +- [Comando de loop WHILE](https://youtu.be/ZCjUZk9Xfw4) +- [Comando de loop DO WHILE](https://youtu.be/9cNRNlhb-EA) + +*** ## Funções @@ -546,3 +570,6 @@ Então, nada de `var`! As variáveis `let` e `const` surgiram justamente pra ate - Uma geral sobre [escopos]() na Wikipedia --- + + +```js diff --git a/entrega/exercise1.js b/entrega/exercise1.js new file mode 100644 index 0000000..e82e972 --- /dev/null +++ b/entrega/exercise1.js @@ -0,0 +1,13 @@ +/* 1 - Supondo que a população de um país A seja da ordem de 80000 habitantes com uma taxa anual de crescimento de 3% e que a população de B seja 200000 habitantes com uma taxa de crescimento de 1.5%. Faça um programa que calcule e escreva o número de anos necessários para que a população do país A ultrapasse ou iguale a população do país B, mantidas as taxas de crescimento */ + +let countryA = 80000; +let countryB = 200000; +let years = 0; + +while (countryA <= countryB) { + countryA = countryA * 1.03; + countryB = countryB * 1.015; + years += 1; +} + +console.log("Após " + years + " anos a população do país A ultrapassou a população do país B."); \ No newline at end of file diff --git a/entrega/exercise2.js b/entrega/exercise2.js new file mode 100644 index 0000000..02a694d --- /dev/null +++ b/entrega/exercise2.js @@ -0,0 +1,10 @@ +// 2 - Programa disco da xuxa: receba um texto e imprima este texto invertido na tela + +const readlineSync = require("readline-sync"); +let texto = readlineSync.question("Digite um texto: "); +let textoInvertido = ""; + +for (let index = texto.length - 1; index >= 0; index--) { + textoInvertido += texto[index]; +} +console.log(textoInvertido); \ No newline at end of file diff --git a/entrega/exercise3.js b/entrega/exercise3.js new file mode 100644 index 0000000..fd78561 --- /dev/null +++ b/entrega/exercise3.js @@ -0,0 +1,14 @@ +/* 3 - A seqüência de Fibonacci é a seguinte: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... Sua regra de formação é simples: os dois primeiros elementos são 1; a partir de então, cada elemento é a soma dos dois anteriores. Faça um algoritmo que leia um número inteiro calcule o seu número de Fibonacci. F1 = 1, F2 = 1, F3 = 2, etc. */ + +const readlineSync = require("readline-sync"); +let fibonacci = Number(readlineSync.question("Digite um numero para saber seu Fibonacci: ")); +let anterior = 0; +let atual = 1; +let proximo = 1; + +for(index = 2; index <= fibonacci; index++) { + proximo = atual + anterior; + anterior = atual; + atual = proximo; +} +console.log("O Fibonacci de " + fibonacci + " é igual a " + proximo); \ No newline at end of file diff --git a/entrega/exercise4.js b/entrega/exercise4.js new file mode 100644 index 0000000..f9c60a5 --- /dev/null +++ b/entrega/exercise4.js @@ -0,0 +1,15 @@ +/* 4 - Crie uma função com as seguintes características: +A função deve receber 3 parâmetros +Se qualquer um dos três parâmetros não estiverem preenchidos, a função deve retornar a string: "Preencha todos os valores corretamente!" +O retorno da função deve ser a multiplicação dos 3 parâmetros, somando 2 ao resultado da multiplicação. */ + +function operacao(num1, num2, num3) { + if (num1 === undefined || num2 === undefined || num3 === undefined) { + console.log("Preencha todos os valores corretamente!") + } else { + let calculo = num1 * num2 * num3 + 2; + console.log(calculo); + } +} + +operacao(2,3,5) \ No newline at end of file diff --git a/entrega/exercise5.js b/entrega/exercise5.js new file mode 100644 index 0000000..717629d --- /dev/null +++ b/entrega/exercise5.js @@ -0,0 +1,20 @@ +/* 5. O Sr. Manoel Joaquim possui uma grande loja de artigos de R\$ 1,99, com cerca de 10 caixas. Para agilizar o cálculo de quanto cada cliente deve pagar ele desenvolveu um tabela que contém o número de itens que o cliente comprou e ao lado o valor da conta. Desta forma a atendente do caixa precisa apenas contar quantos itens o cliente está levando e olhar na tabela de preços. Você foi contratado para desenvolver o programa que monta esta tabela de preços, que conterá os preços de 1 até 50 produtos, conforme o exemplo abaixo: + +``` +Lojas Quase Dois - Tabela de preços + +1 - R$ 1.99 + +2 - R$ 3.98 + +... + +50 - R$ 99.50 */ + +console.log("Lojas Quase Dois - Tabela de precos"); +const preco = 1.99; + +for (let numeroItens = 1; numeroItens <= 50; numeroItens++) { + conta = preco * numeroItens; + console.log(numeroItens + " - R$ " + conta.toFixed(2)); +} \ No newline at end of file diff --git a/entrega/exercise6.js b/entrega/exercise6.js new file mode 100644 index 0000000..0d52ab6 --- /dev/null +++ b/entrega/exercise6.js @@ -0,0 +1,22 @@ +/* 6. crie uma função que receba um número qualquer devolva o seguinte padrão como resultado (inclusive com os espaços). Por exemplo, caso receba o número 6 como parâmetro: + +``` +* +** +*** +**** +***** +****** +``` */ +const readlineSync = require("readline-sync"); +let numeroDigitado = readlineSync.question("Digite um numero: "); +let linha = ""; + + +function piramide(numero) { + for (let index = 0; index <= numero - 1; index++) { + linha = linha + "*" + console.log(linha); + } +} +piramide(numeroDigitado); \ No newline at end of file diff --git a/entrega/exercise7.js b/entrega/exercise7.js new file mode 100644 index 0000000..1cca197 --- /dev/null +++ b/entrega/exercise7.js @@ -0,0 +1,22 @@ +/* 7. Refaça o exercício acima, porém agora com o seguinte padrão: + +``` + * + ** + *** + **** + ***** +``` */ + +const readlineSync = require("readline-sync"); +let numeroDigitado = readlineSync.question("Digite um numero: "); +let linha = ""; +let espaco = " "; + +function piramide(numero) { + for (let index = 0; index <= numero - 1; index++) { + linha = linha + "*" + console.log(espaco.repeat(numero - linha.length) + linha); + } +} +piramide(numeroDigitado); \ No newline at end of file diff --git a/node_modules/readline-sync/package.json b/node_modules/readline-sync/package.json index 555c508..603b4c5 100644 --- a/node_modules/readline-sync/package.json +++ b/node_modules/readline-sync/package.json @@ -22,7 +22,7 @@ "_resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", "_shasum": "41df7fbb4b6312d673011594145705bf56d8873b", "_spec": "readline-sync", - "_where": "/Users/jcosta/workspace/reprograma/T9-backend-2020/On9-Accenture-S3-Logica", + "_where": "C:\\On9-Accenture-S3-Logica", "author": { "name": "anseki", "url": "https://github.com/anseki" diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..2be967a --- /dev/null +++ b/package-lock.json @@ -0,0 +1,11 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "readline-sync": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", + "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==" + } + } +}