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

Desafio 03 feito em javascript por @joseildoandrade12 #1157

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
63 changes: 63 additions & 0 deletions desafio-03/joseildoandrade12/javascript/README.md
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”.

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.

Copy link
Contributor Author

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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

## 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:

Choose a reason for hiding this comment

The 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.
Mas a principal linha tu tirou:

Faça um clone do repositório para a máquina local, e rode o arquivo no node, passando os números como argumentos:

```bash

Choose a reason for hiding this comment

The 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?
Como que faz o processo pra rodar sua solução?

Essas coisas precisam estar no Readme.

Meu comentário inicial fala dos requisitos e das instruções.
Você botou pela metade os requisitos e menos da metade 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.
Compare ele com as instruções que você fez.
Imagine se a mesma abordagem que a sua fosse usada no repositório dos desafios e faça a seguinte pergunta:

Ficou mais fácil?

Copy link
Contributor Author

Choose a reason for hiding this comment

The 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.
52 changes: 52 additions & 0 deletions desafio-03/joseildoandrade12/javascript/script.js
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();
});
}
});
Loading