-
Notifications
You must be signed in to change notification settings - Fork 267
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
Desafio 03 feito em javascript por @joseildoandrade12 #1157
Changes from all commits
ca09ac1
3140c63
e95c164
14c956c
65a30c6
b16d4df
ccaa719
4c01470
36312c9
5f920b7
24da2b1
b6a1860
e240297
b1cc917
b74ccd5
fd31141
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
## Desafio 03: Números Palíndromos | ||
|
||
Um palíndromo é uma palavra ou expressão que pode ser lida da esquerda para a direita ou da direita para a esquerda mantendo o mesmo significado. Um exemplo de palíndromo é a palavra “reviver”. | ||
|
||
## Solução | ||
|
||
Primeiro passo: puxar os valores que foram passados pelo usuário; | ||
|
||
Segundo passo: definir uma variável com um valor vazio de array para colocar os números palindrômicos. | ||
|
||
Terceiro passo: fazer uma validação em uma função para saber valores passados nos parâmetros estão de acordo com o necessário para saber se é um número palindromo, caso não seja retornará uma mensagem de qual erro o usuário cometeu. | ||
|
||
Quarto passo: utilizar os valores que foram verificados em uma função com dois parâmetros min(valor mínimo) e max(valor máximo). | ||
|
||
Quinto passo: criar um loop que caso min fosse menor ou igual a max, ocorresse uma validação. | ||
|
||
Sexto passo: criar uma constante onde os valores que passaram na condição vão passar pelo método toString() tornando o Number numa string e logo em seguida com esse valor em String utilizando o método split('') que irá transformar a string numa array separando pelo valor que está sendo atribuito nos paresenteses, após isso utilizar o método de array reverse() para os valores que estão na array reverterem(quem está no inicio vai para o final e quem está no final vai para o inicio, e assim por diante), e depois utilizar o split('') que irá juntar os valores da array pela condição que está no método tornando essa junção em uma String novamente. | ||
|
||
Sétimo passo: fazer uma validação com um if, se o valor min é igual ao valor que está na constante passada, ele vai adicionar o valor de min a váriavel que criou no inicio da solução pelo método de array variavel.push(valor). | ||
|
||
## Teste e execução | ||
|
||
Para testar a solução, é necessário ter o [Node.js](https://nodejs.org/) com a versão mais recente instalada em sua máquina. | ||
|
||
É necessário ter uma IDE, recomendo o [VsCode](https://code.visualstudio.com/) com a versão mais recente. | ||
|
||
É necessário ter o GIT em sua máquina [GIT](https://git-scm.com/downloads) com a versão mais recente. | ||
|
||
Entre no Git e faça um clone do repositório para a sua máquina: | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Poxa cara, eu te mandei um bom exemplo e você modificou ele tirando a parte mais importante... O texto tá igual na parte de teste e execução, só ajustaste o link do git.
|
||
```bash | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Com isso agora fica solto as suas instruções de bash a seguir. Qual é a versão do Node que vc tá usando? Essas coisas precisam estar no Readme. Meu comentário inicial fala dos requisitos e das instruções. Trabalhe em melhorar o Readme com as suas próprias palavras. Como estudo, olhe o readme do próprio repositório dos desafios. Ficou mais fácil? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Perdão pelo erro, irei ajustar assim que possível e tentarei deixar de forma mais clara possível de como utilizar. Agradeço por apontar os erros! |
||
$ git clone https://github.com/joseildoandrade12/op-desafios.git | ||
``` | ||
|
||
Após ter clonado, abra a pasta no VsCode e no VsCode abra o terminal e digite o código esse para acessar a pasta que contém o arquivo : | ||
|
||
```bash | ||
cd desafio-03/joseildoandrade12/javascript | ||
``` | ||
|
||
Depois disso, ainda no terminal digite o seguinte para inicializar o código: | ||
|
||
```bash | ||
node script.js | ||
``` | ||
|
||
Quando você inicializar o código, vai aparecer a seguinte mensagem: | ||
|
||
```bash | ||
Informe o valor minimo: | ||
``` | ||
|
||
Na primeira pegunta insira o valor mínimo, caso ele não tenha os requisitos necessários irá retornar uma mensagem mostrando seu erro. | ||
|
||
Depois irá aparecer: | ||
|
||
```bash | ||
Informe o valor máximo: | ||
``` | ||
|
||
Como no primeiro insira o valor, caso esteja fora dos requisitos ele irá retornar uma mensagem de erro. | ||
|
||
Após tudo isso ele retornará todos os números palíndromos no intervalo dos valores que o usuário escolheu. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
function palindromos(min, max) { | ||
const valueMin = min; | ||
const valueMax = max; | ||
const numerosPalidromos = []; | ||
for (; min <= max; min++) { | ||
const numInverso = +min.toString().split("").reverse().join(""); | ||
if (min === numInverso) { | ||
numerosPalidromos.push(min); | ||
} | ||
} | ||
console.log( | ||
`os números palindromos entre ${valueMin} e ${valueMax} são : ${numerosPalidromos}` | ||
); | ||
return numerosPalidromos; | ||
} | ||
|
||
function verificacao(value) { | ||
if (isNaN(value)) { | ||
console.log("Coloque apenas valores númericos"); | ||
} else if (value < 1) { | ||
console.log("Adicione apenas valores positivos ou maior que 0"); | ||
} else if (!Number.isInteger(value)) { | ||
console.log("Adicione apenas números inteiros"); | ||
} else { | ||
return true; | ||
} | ||
} | ||
|
||
const readline = require("node:readline"); | ||
const rl = readline.createInterface({ | ||
input: process.stdin, | ||
output: process.stdout | ||
}); | ||
|
||
rl.question("Informe o valor minimo: ", (min) => { | ||
if (!verificacao(+min)) { | ||
rl.close(); | ||
} else { | ||
rl.question("Informe o valor máximo: ", (max) => { | ||
if (!verificacao(+max)) { | ||
rl.close(); | ||
} else if (min >= max) { | ||
console.log( | ||
"O valor mínimo não pode ser maior ou igual ao valor máximo" | ||
); | ||
} else { | ||
palindromos(+min, +max); | ||
} | ||
rl.close(); | ||
}); | ||
} | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seu readme não contém as instruções de como rodar seu programa, muito menos os requisitos necessários.
Adicione essas informações nele, sem isso não consigo testar sua solução.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tem algum exemplo de como eu possa fazer essa parte? algum README de inspiração? não sou bom com o readme
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aqui um bom exemplo