Skip to content

Commit

Permalink
implementação de código para pegar dados do usuário e correção de val…
Browse files Browse the repository at this point in the history
…idação
  • Loading branch information
joseildoandrade12 committed Nov 29, 2024
1 parent b16d4df commit ccaa719
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 18 deletions.
14 changes: 8 additions & 6 deletions desafio-03/joseildoandrade12/javascript/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,16 @@ Um palíndromo é uma palavra ou expressão que pode ser lida da esquerda para a

## Solução

Primeiro passo: defini uma variável com um valor vazio de array para colocar os números palindrômicos.
Primeiro passo: puxar os valores que foram passados pelo usuário;

Segundo 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, retornando uma mensagem de qual erro o usuário cometeu.
Segundo passo: definir uma variável com um valor vazio de array para colocar os números palindrômicos.

Terceiro passo: utilizei os valores que foram verificados em uma função com dois parâmetros min(valor mínimo) e max(valor máximo).
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: criei um loop que caso min fosse menor ou igual a max, ocorresse uma validação.
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: criei uma constante numInverso, 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 utilizei 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 utilizei 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.
Quinto passo: criar um loop que caso min fosse menor ou igual a max, ocorresse uma validação.

Sexto passo: fazer uma validação com um if, se o valor min é igual ao valor que está em numInverso, ele vai adicionar o valor de min a váriavel que criei no inicio da solução pelo método de array variavel.push(valor).
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).
49 changes: 37 additions & 12 deletions desafio-03/joseildoandrade12/javascript/script.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,53 @@
const numerosPalidromos = [];
function palindromos(min, max) {
let valueMin = min;
let 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(min, max) {
if (typeof min !== "number" || typeof max !== "number") {
function verificacao(value) {
if (isNaN(value)) {
console.log("Coloque apenas valores númericos");
} else if (min < 1 || max < 1) {
} else if (value < 1) {
console.log("Adicione apenas valores positivos ou maior que 0");
} else if (min >= max) {
console.log(
"O valor mínimo não pode ser maior ou igual ao valor máximo"
);
} else if (!(Number.isInteger(min) && Number.isInteger(max))) {
} else if (!Number.isInteger(value)) {
console.log("Adicione apenas números inteiros");
} else {
palindromos(min, max);
return true;
}
}
console.log(verificacao(1, 50));
console.log(numerosPalidromos);

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();
});
}
});

0 comments on commit ccaa719

Please sign in to comment.