-
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
conclusão desafio 03 por @joseildoandrade12 em javascript #1163
Merged
Merged
Changes from all commits
Commits
Show all changes
19 commits
Select commit
Hold shift + click to select a range
ca09ac1
Desafio 03 feito em javascript por @joseildoandrade12
joseildoandrade12 3140c63
Correção de código com implementação de validação junto ao aumento do…
joseildoandrade12 e95c164
correção de indentação
joseildoandrade12 14c956c
Correção do código e README
joseildoandrade12 65a30c6
correção do código
joseildoandrade12 b16d4df
retirada dos return
joseildoandrade12 ccaa719
implementação de código para pegar dados do usuário e correção de val…
joseildoandrade12 4c01470
Correção de indentação
joseildoandrade12 36312c9
correção de erros mostrados no pipeline
joseildoandrade12 5f920b7
Correção de README
joseildoandrade12 24da2b1
Correção de README
joseildoandrade12 b6a1860
Merge branch 'desafio' of https://github.com/joseildoandrade12/op-des…
joseildoandrade12 e240297
Ajustes no README
joseildoandrade12 b1cc917
Correção README
joseildoandrade12 b74ccd5
Update README.md
joseildoandrade12 fd31141
Merge branch 'desafio' of https://github.com/joseildoandrade12/op-des…
joseildoandrade12 42c6af3
correção de código e readme
joseildoandrade12 13067ab
correção de virgula
joseildoandrade12 88c030f
Correção de frase que chama os valores
joseildoandrade12 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
## 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 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: | ||
|
||
```bash | ||
$ git clone https://github.com/joseildoandrade12/op-desafios.git | ||
``` | ||
|
||
Após ter clonado, abra o terminal e digite o código 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 pergunta 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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
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("Digite apenas valores númericos"); | ||
return false; | ||
} else if (value < 1) { | ||
console.log("Digite apenas valores maiores que 0"); | ||
return false; | ||
} else if (!Number.isInteger(value)) { | ||
console.log("Digite apenas números inteiros"); | ||
return false; | ||
} else { | ||
return true; | ||
} | ||
} | ||
|
||
const readline = require("node:readline"); | ||
const rl = readline.createInterface({ | ||
input: process.stdin, | ||
output: process.stdout | ||
}); | ||
|
||
function valorMin() { | ||
rl.question("Informe o valor minimo: ", (min) => { | ||
if (!verificacao(+min)) { | ||
valorMin(); | ||
} else { | ||
valorMax(min); | ||
} | ||
}); | ||
} | ||
|
||
function valorMax(min) { | ||
rl.question("Informe o valor máximo: ", (max) => { | ||
if (!verificacao(+max)) { | ||
valorMax(min); | ||
} else if (min >= max) { | ||
console.log( | ||
"O valor mínimo não pode ser maior ou igual ao valor máximo" | ||
); | ||
valorMax(min); | ||
} else { | ||
palindromos(+min, +max); | ||
rl.close(); | ||
} | ||
}); | ||
} | ||
valorMin(); |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
O seu programa aborta se o usuário digita valor inadequado. Você precisa controlar o fluxo de execução do programa e repetir a pergunta até o dado ser o correto ou o usuário interromper o programa. Corrija por favor.
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.
Eu tenho que ficar mostrando as mensagens de erro até ele digitar o valor correto ou fechar o programa, certo?
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.
@joseildoandrade12 não.
A ordem é:
Deu erro, exibe mensagem de erro e rejeita o valor e mostra a pergunta novamente.
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.
Ahhh entendi, caso o usuário coloque o valor errado eu tenho que mostrar o erro e resetar a pergunta.