Bom dia, pessoal. Vejam bem; eu estou estudando desenovolvimento web e, apesar de gostar mais do lado visual da coisa, eu também gosto (sou perfeccionista nisso) de aprender outras coisas, e quero desenvolver o meu lado lógico também, que não é muito bom.
Eu peguei uma lista de atividade de construção de algorítmo e tentei resolvê-la em portugol, primeiramente. Eis a 1ª questão:
Faça um programa capaz de solicitar um número N (1<N<1000) do usuário e ler N
números inteiros. Após a leitura do último número deve-se informar:
• Na primeira linha a soma dos N números em decimal.
• Na segunda linha a soma em hexadecimal dos números pares informados.
• Na terceira linha a soma em octal dos números impares informados.
Assuma que todos os números fornecidos pelo usuário serão inteiros válidos e que as somas nunca serão superiores a um número inteiro de 32 bits.
Se eu entendi a questão, é possível que o usuário queira entrar com… Não sei, 15 números, como eu vou fazer para o programa identificar o último número digitado sem se alongar acima disso? Por exemplo: Pelo o que entendi, é possível que o usuário entre com 998 números válidos (1< N >1000). Simplesmente empaquei nisso.
Mas aí pedir para o chatGPT resolver esse algorítmo em portugol e em seguida codificar em JS e para minha surpresa aconteceu exatamente o que eu estava pensando: de acordo com o código do chatGPT, se eu digitar; 23,35,45… ele simplesmente fica pedindo números sem chegar a um limite (imagino que esteja esperando os 998 serem digitados). Mas se eu digitar; 2,3,4. Ele me retorna os valores.
**
Eis o código:
algoritmo SomaHexOct
var
N, i, numero: inteiro
somaDecimal, somaHexPares, somaOctImpares: inteiro
inicio
// Solicitar o número N do usuário
escreva("Digite um número N (1 < N < 1000): ")
leia(N)
// Inicializar as somas
somaDecimal <- 0
somaHexPares <- 0
somaOctImpares <- 0
// Ler N números inteiros
para i de 1 ate N faca
escreva("Digite o número ", i, ": ")
leia(numero)
// Somar ao total
somaDecimal <- somaDecimal + numero
// Verificar se é par (hexadecimal)
se numero % 2 = 0 entao
somaHexPares <- somaHexPares + numero
// Verificar se é ímpar (octal)
senao
somaOctImpares <- somaOctImpares + numero
fimse
fimpara
// Exibir resultados
escreva("Soma dos N números em decimal: ", somaDecimal)
escreva("Soma em hexadecimal dos números pares: ", hexadecimal(somaHexPares))
escreva("Soma em octal dos números ímpares: ", octal(somaOctImpares))
fimalgoritmo
Em Javascript:
// Solicitar o número N do usuário
let N = parseInt(prompt("Digite um número N (1 < N < 1000):"));
// Inicializar as somas
let somaDecimal = 0;
let somaHexPares = 0;
let somaOctImpares = 0;
// Ler N números inteiros
for (let i = 1; i <= N; i++) {
let numero = parseInt(prompt("Digite o número " + i + ":"));
// Somar ao total
somaDecimal += numero;
// Verificar se é par (hexadecimal)
if (numero % 2 === 0) {
somaHexPares += numero;
} else { // Verificar se é ímpar (octal)
somaOctImpares += numero;
}
}
// Exibir resultados
console.log("Soma dos N números em decimal: " + somaDecimal);
console.log("Soma em hexadecimal dos números pares: " + somaHexPares.toString(16));
console.log("Soma em octal dos números ímpares: " + somaOctImpares.toString(8));