Olá, segue minha solução.
Criei um HTML com 6 botões, que invocam os funcionalidades desejadas.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Document</title>
</head>
<body>
<header>
<h1></h1>
</header>
<main class="container">
<button onclick="IMCButton()" class="button">1. IMC</button>
<button onclick="fatorialButton()" class="button">2. Fatorial</button>
<button onclick="converteDolaresEmReaisButton()" class="button">3. Converte R$ em $</button>
<button onclick="retanguloButton()" class="button">4. Área e perímetro de um retangulo</button>
<button onclick="circuloButton()" class="button">5. Área e perímetro de um círculo</button>
<button onclick="tabuadaButton()" class="button">6. Tabuada</button>
</main>
<script src="app.js"></script>
</body>
</html>
No javascript, separei a parte de interação com o usuário da parte com a lógica (as funções do exercício)
function IMCButton(){
console.log('IMCButton()');
let peso = prompt('Peso em quilogramas');
let altura = prompt('Altura em metros');
let IMCValue = IMC(peso, altura);
alert (`IMC igual a ${IMCValue} kg/m2`);
}
function fatorialButton(){
console.log('fatorialButton()');
let numero = prompt('Digite un número maior ou igual a zero');
let fatorialValue = fatorial(numero);
alert(`O fatorial de ${numero} é ${fatorialValue}`)
}
function converteDolaresEmReaisButton(){
console.log('converteDolaresEmReaisButton()');
let valorReais = prompt('Digite o valor em R$');
let valorDolares = converteDolaresEmReais(valorReais);
let texto = valorReais == 1 ? 'é equivalente' : 'são equivalentes';
alert(`${valorReais} R$ ${texto} a ${valorDolares} $`)
}
function retanguloButton(){
console.log('retanguloButton()');
let lado1 = parseInt(prompt('Comprimento primeiro lado:'));
let lado2 = parseInt(prompt('Comprimento segundo lado:'));
let [perimetro, area] = retangulo(lado1, lado2);
alert(`Área: ${area} - Perímetro: ${perimetro}`);
}
function circuloButton(){
console.log('circuloButton()');
let raio = parseFloat(prompt('Comprimento raio:'));
let [perimetro, area] = circulo(raio);
alert(`Área: ${area} - Perímetro: ${perimetro}`);
}
function tabuadaButton(){
console.log('tabuadaButton()');
let numero = parseInt(prompt('Digite um número positivo'));
tabuada(numero);
}
function IMC(peso, altura){
console.log('IMC()');
return peso/(altura*altura);
}
function fatorial(numero){
console.log('fatorial()');
let fatorialValue = 0;
if(numero == 0){
fatorialValue = 1;
}
else{
fatorialValue = numero*fatorial(numero -1);
}
return fatorialValue;
}
function converteDolaresEmReais(reias){
console.log('converteDolaresEmReais()');
let taxaConversão = 4.8;
return reias * taxaConversão;
}
function retangulo(lado1, lado2){
console.log('retangulo()')
let perimetro = 2*(lado1 + lado2);
let area = lado1*lado2;
console.log(`Área: ${area} - Perímetro: ${perimetro}`)
return [perimetro, area];
}
function circulo(raio){
console.log('circulo()')
console.log(Math.PI); // Não uso Math.PI porque no exercício pede para considerar 3.14
let pi = 3.14;
let perimetro = 2*pi*raio;
let area = pi*raio*raio;
return [perimetro, area];
}
function tabuada(numero){
console.log('tabuada()');
textoTabuada = '';
for(let i = 0; i < 10; i++){
textoTabuada = textoTabuada + `\n${numero} x ${i+1} = ${numero*(i+1)}`;
}
alert(textoTabuada);
}